如何搭建ipv6網(wǎng)絡(luò)

網(wǎng)上有通過(guò)mac電腦安裝ipv6網(wǎng)絡(luò)的(這種方式的教程請(qǐng)?jiān)L問(wèn):http://www.tuicool.com/articles/InIjMzn),發(fā)現(xiàn)只能承受住很少的手機(jī)在線,如果想承擔(dān)起大量的用戶訪問(wèn),請(qǐng)使用以下教程:
一、搭建ipv6單臺(tái)主機(jī)環(huán)境
1 IPv6網(wǎng)絡(luò)環(huán)境總圖

Paste_Image.png

2 操作系統(tǒng)的安裝
建議安裝服務(wù)器為Mandrake8.2,或redhat7.2操作系統(tǒng)。在安裝時(shí),不要忘記選擇Kernel Source這個(gè)內(nèi)核源碼的包。

3 編譯配置IPv6協(xié)議
3.1 編譯一個(gè)支持IPv6協(xié)議的新內(nèi)核。

  1.     以root身份登陸,進(jìn)入源碼所在的目錄:cd /usr/src/linux
    
  2.     運(yùn)行 make clean,清除一些可能過(guò)期的中間代碼。
    
  3.     然后配置內(nèi)核選項(xiàng):make menuconfig 或者 make xmenuconfig
    

運(yùn)行make menuconfig后,將表1列出的選項(xiàng)選上,而其他內(nèi)核選項(xiàng)請(qǐng)根據(jù)自己系統(tǒng)的具體情況作出符合自己系統(tǒng)的選擇。
表1內(nèi)核編譯選項(xiàng)
內(nèi)核編譯主選項(xiàng)

內(nèi)核編譯子選項(xiàng)

選擇

Code maturity level options

Prompt for development and/or incomplete code/drivers

Yes

Loadable module support

Enable loadable module support

No

General setup

Video mode selection support

Yes

Networking options

Packet socket

Yes

 

Unix domain sockets

Yes

 

TCP/IP networking

Yes

 

The IPv6 protocol

Yes

 

IPv6: enable EUI-64 token format

Yes

 

IPv6: disable provider based address

Yes

File systems

/proc filesystem support

Yes

Kernel hacking

Magic sysrq key

Yes

然后運(yùn)行make dep; make clean; make bzImage

  1.                    如果沒(méi)有錯(cuò)誤,你現(xiàn)在已經(jīng)編譯成功了支持IPv6協(xié)議的內(nèi)核了。cp arch/i386/boot/zImage /boot/vmlinuz-ipv6
    
  2.                    編輯你的lilo.conf使新的kernel成為boot的選擇。
    
  3.     重起系統(tǒng): reboot
    

3.2 編譯iputils(ping6,tracepath6,traceroute6,等)
此工具替代了原先的Inet6-applications。
Mandrake8.2自帶此安裝包,配置好IPv6協(xié)議后,其自動(dòng)安裝。
3.3 編譯iproute(測(cè)試IPv6的工具,比下面的net-tools新)
Mandrake8.2 也自帶了此安裝包,配置好IPv6協(xié)議后,其自動(dòng)安裝。
3.4 Net-Tools(包括hostname,netstat,arp,ifconfig,rarp,route)。
當(dāng)前最新版本是Net-Tools1.54(http://www.tazenda.demon.co.uk/phil/net-tools/)。
安裝步驟:

  1.     進(jìn)入源碼目錄:cd /usr/src
    
  2.     解壓源程序:tar xzf your-path/net-tools-version.tar.gz –C /usr/src
    
  3.     重新命名新目錄:mv net-tools net-tools-version
    
  4.     建立符號(hào)鏈接:ln –sf /usr/src/net-tools-version /usr/src/net-tools
    
  5.     進(jìn)入安裝目錄:cd /usr/src/net-tools
    
  6.     配置編譯選項(xiàng):make clean;make config
    

Net-tools 選項(xiàng)

子選項(xiàng)

選擇

GNU gettext

 

Yes(如果使用glibc-2)

Protocol families

Unix protocol family

Yes

 

INET(tcp-ip)protocol family

Yes

 

INET(ipv6)protocol family

Yes

Device hardware types

SIT (IPv6-inIPv4) support

Yes

  1.     開(kāi)始編譯:make
    
  2.     安裝:make install
    

4 配置網(wǎng)絡(luò)
4.1 打開(kāi)或關(guān)閉接口
4.1.1 使用“ip”
用法:

ip link set dev <interface> up

ip link set dev <interface> down

例子:

ip link set dev eth0 up

ip link set dev eth0 down

4.1.2 使用“ifconfig”
用法:

/sbin/ifconfig <interface> up

/sbin/ifconfig <interface> down

例子:

/sbin/ifconfig eth0 up

/sbin/ifconfig eth0 down

4.2 配置IPv6地址
4.2.1 顯示現(xiàn)有IPv6地址
(1)使用“ip”
用法:

/sbin/ip -6 addr show dev <interface>

(2)使用“ifconfig”
用法:

/sbin/ifconfig <interface>

4.2.2 添加或刪除一個(gè)IPv6地址
(1)使用“ip”
用法:

/sbin/ip -6 addr <add/del> <ipv6address>/<prefixlength> dev <interface>

例子:

/sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0

(2)使用“ifconfig”
用法:

/sbin/ifconfig <interface> inet6 [add/del] <ipv6address>/<prefixlength>

例子:

/sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64

4.3 配置IPv6路由
4.3.1 顯示現(xiàn)有路由
(1)使用“ip”
用法:

/sbin/ip -6 route show [dev <device>]

例子:

/sbin/ip -6 route show dev eth0

3ffe:ffff:0:f101::/64 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 proto kernel metric 256 mtu 1500 advmss 1440
default proto kernel metric 256 mtu 1500 advmss 1440
(2)使用“route”
用法:

/sbin/route -A inet6

例子:

/sbin/route -A inet6 |grep -w "eth0"

3ffe:ffff:0:f101 ::/64 :: UA 256 0 0 eth0 <- Interface route for global address
fe80::/10 :: UA 256 0 0 eth0 <- Interface route for link-local address
ff00::/8 :: UA 256 0 0 eth0 <- Interface route for all multicast addresses
::/0 :: UDA 256 0 0 eth0 <- Automatic default route
4.3.2 增加或刪除到一個(gè)網(wǎng)關(guān)的路由
(1)使用“ip”
用法:

/sbin/ip -6 route <add/del> <ipv6network>/<prefixlength> via <ipv6address> [dev <device>]

例子:

/sbin/ip -6 route <add/del> 2000::/3 via 3ffe:ffff:0:f101::1

(2)使用“route”
用法:

/sbin/route -A inet6 add <ipv6network>/<prefixlength> gw <ipv6address> [dev <device>]

如果網(wǎng)關(guān)的IPv6地址是一個(gè)鏈路地址,則需要加上dev <device>參數(shù)。
4.4 配置IPv6-in-IPv4隧道
4.4.1 隧道類(lèi)型
(1)靜態(tài)的點(diǎn)到點(diǎn)隧道:6bone
點(diǎn)到點(diǎn)的隧道是一個(gè)終端(endpoint)的專(zhuān)用隧道。配置這樣的隧道需要知道:
? 你的本地隧道終端的IPv4地址必須是靜態(tài)、全球唯一,并且外部隧道終端可以到達(dá)的地址。
? 分配給你的全球IPv6前綴
? 外部隧道終端能夠?qū)⒛愕腎Pv6前綴路由到你的本地隧道終端
(2)自動(dòng)隧道
自動(dòng)產(chǎn)生的隧道,這發(fā)生在本節(jié)點(diǎn)和另外一個(gè)具有IPv4地址的節(jié)點(diǎn)有直接的鏈接時(shí)。
(3)6to4隧道

4.4.2 顯示現(xiàn)有隧道
(1)使用“ip”
用法:

/sbin/ip -6 tunnel show [<device>]

例子:

/sbin/ip -6 tunnel show

sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
sit1: ipv6/ip remote 195.226.187.50 local any ttl 64
(2)使用“route”
用法:

/sbin/route -A inet6

例子:

/sbin/route -A inet6 | grep "\Wsit0\W*$"

::/96 :: U 256 2 0 sit0
2002::/16 :: UA 256 0 0 sit0
2000::/3 ::193.113.58.75 UG 1 0 0 sit0
fe80::/10 :: UA 256 0 0 sit0
ff00::/8 :: UA 256 0 0 sit0
4.4.3 建立點(diǎn)到點(diǎn)隧道
共有3種可能的方法增加或刪除點(diǎn)到點(diǎn)隧道的方法。
u 增加點(diǎn)到點(diǎn)隧道
(1)使用“ip”和“route”
建立少量隧道的通用方法。
建立一個(gè)隧道設(shè)備的用法(此后要讓配置立刻生效,同時(shí)由于TTL的默認(rèn)值為0,我們還要指定TTL的值):

/sbin/ip tunnel add <device> mode sit ttl <ttldefault> remote <ipv4addressofforeigntunnel> local <ipv4addresslocal>

三個(gè)通用的例子:

/sbin/ip tunnel add sit1 mode sit ttl <ttldefault> remote <ipv4addressofforeigntunnel1> local <ipv4addresslocal>

/sbin/ifconfig sit1 up

/sbin/route -A inet6 add <prefixtoroute1> dev sit1

/sbin/ip tunnel add sit2 mode sit ttl <ttldefault> <ipv4addressofforeigntunnel2> local <ipv4addresslocal>

/sbin/ifconfig sit2 up

/sbin/route -A inet6 add <prefixtoroute2> dev sit2

/sbin/ip tunnel add sit3 mode sit ttl <ttldefault> <ipv4addressofforeigntunnel3> local <ipv4addresslocal>

/sbin/ifconfig sit3 up

/sbin/route -A inet6 add <prefixtoroute3> dev sit3

(2)使用“ifconfig”和“route”(不推薦使用)
在只增加一個(gè)隧道時(shí),沒(méi)有任何問(wèn)題,但當(dāng)你建立多個(gè)隧道時(shí),問(wèn)題便出現(xiàn)了。這時(shí),你不能夠輕松的關(guān)閉前一個(gè)隧道,而同時(shí)讓其它的隧道運(yùn)行。
用法:(三個(gè)隧道的通用例子)

/sbin/ifconfig sit0 up

/sbin/ifconfig sit0 tunnel <ipv4addressofforeigntunnel1>

/sbin/ifconfig sit1 up

/sbin/route -A inet6 add <prefixtoroute1> dev sit1

/sbin/ifconfig sit0 tunnel <ipv4addressofforeigntunnel2>

/sbin/ifconfig sit2 up

/sbin/route -A inet6 add <prefixtoroute2> dev sit2

/sbin/ifconfig sit0 tunnel <ipv4addressofforeigntunnel3>

/sbin/ifconfig sit3 up

/sbin/route -A inet6 add <prefixtoroute3> dev sit3

(3)只使用“route”
用法:(3個(gè)通用的例子)

/sbin/ifconfig sit0 up

/sbin/route -A inet6 add <prefixtoroute1> gw ::<ipv4addressofforeigntunnel1> dev sit0

/sbin/route -A inet6 add <prefixtoroute2> gw ::<ipv4addressofforeigntunnel2> dev sit0

/sbin/route -A inet6 add <prefixtoroute3> gw ::<ipv4addressofforeigntunnel3> dev sit0

u 刪除點(diǎn)到點(diǎn)的隧道
(1)使用“ip”和“route”
用法:

/sbin/ip tunnel del <device>

舉三個(gè)通用的用法:

/sbin/route -A inet6 del <prefixtoroute1> dev sit1

/sbin/ifconfig sit1 down

/sbin/ip tunnel del sit1

/sbin/route -A inet6 del <prefixtoroute2> dev sit2

/sbin/ifconfig sit2 down

/sbin/ip tunnel del sit2

/sbin/route -A inet6 del <prefixtoroute3> dev sit3

/sbin/ifconfig sit3 down

/sbin/ip tunnel del sit3

(2)使用“ifconfig”和“route”(現(xiàn)在不推薦使用)
和創(chuàng)建隧道的命令一樣,刪除隧道的方式也令人很費(fèi)解。最后創(chuàng)建的隧道必須最先刪除。
用法:(3個(gè)常用例子)

/sbin/route -A inet6 del <prefixtoroute3> dev sit3

/sbin/ifconfig sit3 down

/sbin/route -A inet6 del <prefixtoroute2> dev sit2

/sbin/ifconfig sit2 down

/sbin/route -A inet6 add <prefixtoroute1> dev sit1

/sbin/ifconfig sit1 down

/sbin/ifconfig sit0 down

(3)使用“route”
這有點(diǎn)像刪除通常的IPv6路由。
用法:(3個(gè)常用例子)

/sbin/route -A inet6 del <prefixtoroute1> gw ::<ipv4addressofforeigntunnel1> dev sit0

/sbin/route -A inet6 del <prefixtoroute2> gw ::<ipv4addressofforeigntunnel2> dev sit0

/sbin/route -A inet6 del <prefixtoroute3> gw ::<ipv4addressofforeigntunnel3> dev sit0

/sbin/ifconfig sit0 down

4.4.4 建立6to4隧道
u 增加6to4隧道
(1)使用“ip”和一個(gè)專(zhuān)用的隧道設(shè)備(推薦采用方式)
建立一個(gè)新的隧道設(shè)備:

/sbin/ip tunnel add tun6to4 mode sit remote any local <localipv4address>

激活此隧道接口:

/sbin/ip link set dev tun6to4 up

給隧道接口增加本地6to4地址

/sbin/ip -6 addr add <local6to4address>/16 dev tun6to4

使用全6to4路由器IPv4任播地址向全球IPv6網(wǎng)絡(luò)增加一個(gè)(默認(rèn)的)路由器:

/sbin/ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

(2)使用“ifconfig”和“route”以及通常的(generic)隧道設(shè)備“sit0”(不推薦使用)
缺點(diǎn):使用“sit0”不允許每個(gè)設(shè)備的特定的過(guò)濾。
激活通常隧道接口“sit0”:

/sbin/ifconfig sit0 up

給接口增加本地6to4地址:

/sbin/ifconfig sit0 add <local6to4address>/16

使用全6to4路由器IPv4任播地址向全球IPv6網(wǎng)絡(luò)增加一個(gè)(默認(rèn)的)路由器:

/sbin/route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0

u 刪除6to4隧道
(1)使用“ip”和一個(gè)專(zhuān)用隧道設(shè)備
刪除到專(zhuān)用隧道設(shè)備的所有路由:

/sbin/ip -6 route flush dev tun6to4

關(guān)閉接口:

/sbin/ip link set dev tun6to4 down

刪除建立的隧道設(shè)備:

/sbin/ip tunnel del tun6to4

(2)使用“ifconfig”和“route”和通常隧道設(shè)備“sit0”(不推薦使用)
刪除默認(rèn)到6to4隧道接口的路由:

/sbin/route -A inet6 del 2000::/3 gw ::192.88.99.1 dev sit0

刪除到接口的本地6to4地址:

/sbin/ifconfig sit0 del <local6to4address>/16

關(guān)閉“sit0”:(此步驟要注意,因?yàn)閟it0有可能還在使用)

/sbin/ifconfig sit0 down

至此ipv6單機(jī)環(huán)境搭建完畢

二、搭建ipv6網(wǎng)絡(luò)環(huán)境
有了單機(jī)環(huán)境之后將單機(jī)的ipv6網(wǎng)絡(luò)分享出去就ok了,下一步需要使用支持ipv6網(wǎng)絡(luò)的軟路由。

對(duì)于軟路由可以使用海蜘蛛,建議通過(guò)虛擬機(jī)進(jìn)行安裝,安裝后配置ipv6的dhcp,之后將網(wǎng)關(guān)指向第一步的ipv6主機(jī)即可,具體教程網(wǎng)上很多,請(qǐng)參考操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容