網(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)境總圖
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)核。
以root身份登陸,進(jìn)入源碼所在的目錄:cd /usr/src/linux
運(yùn)行 make clean,清除一些可能過(guò)期的中間代碼。
然后配置內(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
如果沒(méi)有錯(cuò)誤,你現(xiàn)在已經(jīng)編譯成功了支持IPv6協(xié)議的內(nèi)核了。cp arch/i386/boot/zImage /boot/vmlinuz-ipv6
編輯你的lilo.conf使新的kernel成為boot的選擇。
重起系統(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/)。
安裝步驟:
進(jìn)入源碼目錄:cd /usr/src
解壓源程序:tar xzf your-path/net-tools-version.tar.gz –C /usr/src
重新命名新目錄:mv net-tools net-tools-version
建立符號(hào)鏈接:ln –sf /usr/src/net-tools-version /usr/src/net-tools
進(jìn)入安裝目錄:cd /usr/src/net-tools
配置編譯選項(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
開(kāi)始編譯:make
安裝: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)參考操作。