建议安装实验室服务器上的Mandrake8.2,或redhat7.2操作系统。在安装时,不要忘记选择Kernel Source这个内核源码的包。
1. 以root身份登陆,进入源码所在的目录:cd /usr/src/linux
2. 运行 make clean,清除一些可能过期的中间代码。
3. 然后配置内核选项:make menuconfig 或者 make xmenuconfig
运行make menuconfig后,将表1列出的选项选上,而其他内核选项请根据自己系统的具体情况作出符合自己系统的选择。
表1内核编译选项
内核编译主选项 |
内核编译子选项 |
选择 |
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 |
然后运行make dep; make clean; make bzImage
4. 如果没有错误,你现在已经编译成功了支持IPv6协议的内核了。
cp arch/i386/boot/zImage /boot/vmlinuz-ipv6
5. 编辑你的lilo.conf使新的kernel成为boot的选择。
6. 重起系统: reboot
此工具替代了原先的Inet6-applications。
Mandrake8.2自带此安装包,配置好IPv6协议后,其自动安装。
Mandrake8.2 也自带了此安装包,配置好IPv6协议后,其自动安装。
当前最新版本是Net-Tools1.54(http://www.tazenda.demon.co.uk/phil/net-tools/)。
安装步骤:
1. 进入源码目录:cd /usr/src
2. 解压源程序:tar xzf your-path/net-tools-version.tar.gz –C /usr/src
3. 重新命名新目录:mv net-tools net-tools-version
4. 建立符号链接:ln –sf /usr/src/net-tools-version /usr/src/net-tools
5. 进入安装目录:cd /usr/src/net-tools
6. 配置编译选项:make clean;make config
Net-tools 选项 |
子选项 |
选择 |
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 |
7. 开始编译:make
8. 安装:make install
用法:
# ip link set dev up
# ip link set dev down
例子:
# ip link set dev eth0 up
# ip link set dev eth0 down
用法:
# /sbin/ifconfig up
# /sbin/ifconfig
例子:
# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down
(1)使用“ip”
用法:
# /sbin/ip -6 addr show dev
(2)使用“ifconfig”
用法:
#/sbin/ifconfig
(1)使用“ip”
用法:
# /sbin/ip -6 addr
例子:
# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
(2)使用“ifconfig”
用法:
# /sbin/ifconfig inet6 [add/del] /
例子:
# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64
(1)使用“ip”
用法:
# /sbin/ip -6 route show [dev ]
例子:
# /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
(1)使用“ip”
用法:
# /sbin/ip -6 route
例子:
# /sbin/ip -6 route
(2)使用“route”
用法:
# /sbin/route -A inet6 add
如果网关的IPv6地址是一个链路地址,则需要加上dev
(1)静态的点到点隧道:6bone
点到点的隧道是一个终端(endpoint)的专用隧道。配置这样的隧道需要知道:
Ø 你的本地隧道终端的IPv4地址必须是静态、全球唯一,并且外部隧道终端可以到达的地址。
Ø 分配给你的全球IPv6前缀
Ø 外部隧道终端能够将你的IPv6前缀路由到你的本地隧道终端
(2)自动隧道
自动产生的隧道,这发生在本节点和另外一个具有IPv4地址的节点有直接的链接时。
(3)6to4隧道
(1)使用“ip”
用法:
# /sbin/ip -6 tunnel show [
例子:
# /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
共有3种可能的方法增加或删除点到点隧道的方法。
u 增加点到点隧道
(1)使用“ip”和“route”
建立少量隧道的通用方法。
建立一个隧道设备的用法(此后要让配置立刻生效,同时由于TTL的默认值为0,我们还要指定TTL的值):
# /sbin/ip tunnel add
三个通用的例子:
# /sbin/ip tunnel add sit1 mode sit ttl
# /sbin/ifconfig sit1 up
# /sbin/route -A inet6 add
# /sbin/ip tunnel add sit2 mode sit ttl
# /sbin/ifconfig sit2 up
# /sbin/route -A inet6 add
# /sbin/ip tunnel add sit3 mode sit ttl
# /sbin/ifconfig sit3 up
# /sbin/route -A inet6 add
(2)使用“ifconfig”和“route”(不推荐使用)
在只增加一个隧道时,没有任何问题,但当你建立多个隧道时,问题便出现了。这时,你不能够轻松的关闭前一个隧道,而同时让其它的隧道运行。
用法:(三个隧道的通用例子)
# /sbin/ifconfig sit0 up
# /sbin/ifconfig sit0 tunnel
# /sbin/ifconfig sit1 up
# /sbin/route -A inet6 add
# /sbin/ifconfig sit0 tunnel
# /sbin/ifconfig sit2 up
# /sbin/route -A inet6 add
# /sbin/ifconfig sit0 tunnel
# /sbin/ifconfig sit3 up
# /sbin/route -A inet6 add
(3)只使用“route”
用法:(3个通用的例子)
# /sbin/ifconfig sit0 up
# /sbin/route -A inet6 add
# /sbin/route -A inet6 add
# /sbin/route -A inet6 add
u 删除点到点的隧道
(1)使用“ip”和“route”
用法:
# /sbin/ip tunnel del
举三个通用的用法:
# /sbin/route -A inet6 del
# /sbin/ifconfig sit1 down
# /sbin/ip tunnel del sit1
# /sbin/route -A inet6 del
# /sbin/ifconfig sit2 down
# /sbin/ip tunnel del sit2
# /sbin/route -A inet6 del
# /sbin/ifconfig sit3 down
# /sbin/ip tunnel del sit3
(2)使用“ifconfig”和“route”(现在不推荐使用)
和创建隧道的命令一样,删除隧道的方式也令人很费解。最后创建的隧道必须最先删除。
用法:(3个常用例子)
# /sbin/route -A inet6 del
# /sbin/ifconfig sit3 down
# /sbin/route -A inet6 del
# /sbin/ifconfig sit2 down
# /sbin/route -A inet6 add
# /sbin/ifconfig sit1 down
# /sbin/ifconfig sit0 down
(3)使用“route”
这有点像删除通常的IPv6路由。
用法:(3个常用例子)
# /sbin/route -A inet6 del
# /sbin/route -A inet6 del
# /sbin/route -A inet6 del
# /sbin/ifconfig sit0 down
u 增加6to4隧道
(1)使用“ip”和一个专用的隧道设备(推荐采用方式)
建立一个新的隧道设备:
# /sbin/ip tunnel add tun6to4 mode sit remote any local
激活此隧道接口:
# /sbin/ip link set dev tun6to4 up
给隧道接口增加本地6to4地址
# /sbin/ip -6 addr add
使用全6to4路由器IPv4任播地址向全球IPv6网络增加一个(默认的)路由器:
# /sbin/ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1
(2)使用“ifconfig”和“route”以及通常的(generic)隧道设备“sit0”(不推荐使用)
缺点:使用“sit0”不允许每个设备的特定的过滤。
激活通常隧道接口“sit0”:
# /sbin/ifconfig sit0 up
给接口增加本地6to4地址:
# /sbin/ifconfig sit0 add
使用全6to4路由器IPv4任播地址向全球IPv6网络增加一个(默认的)路由器:
# /sbin/route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0
u 删除6to4隧道
(1)使用“ip”和一个专用隧道设备
删除到专用隧道设备的所有路由:
# /sbin/ip -6 route flush dev tun6to4
关闭接口:
# /sbin/ip link set dev tun6to4 down
删除建立的隧道设备:
# /sbin/ip tunnel del tun6to4
(2)使用“ifconfig”和“route”和通常隧道设备“sit0”(不推荐使用)
删除默认到6to4隧道接口的路由:
# /sbin/route -A inet6 del 2000::/3 gw ::192.88.99.1 dev sit0
删除到接口的本地6to4地址:
# /sbin/ifconfig sit0 del
关闭“sit0”:(此步骤要注意,因为sit0有可能还在使用)
# /sbin/ifconfig sit0 down
根据地址分配方案,对科大IPv6试验床上的主要节点(路由器/服务器/子网)地址做了如下分配:
机器名 |
接口IP地址 |
域名 |
说明 |
R4/6 cyclone |
对外:3FFE:3216:2101::1/48 |
Cyclone.ecn.6test.edu.cn www.ecn.6test.edu.cn proxy.ecn.6test.edu.cn tb.ecn.6test.educ.n Ns.ecn.6test.edu.cn |
双协议栈 同时还提供通向外面节点的隧道 |
对R6-1: 3FFE:3216:2101:1000::1/52 |
|||
对R6-1: 3FFE:3216:2101:2000::1/52 |
|||
R6-1 |
对R4/6: 3FFE:3216:2101:1000::2/52 |
Eastheader.ecn.6test.edu.cn |
东区核心路由器 IPv6-only |
对R6-2: 3FFE:3216:2101:3000::1/52 |
|||
对下一级: 3FFE:3216:2101:1100::1/56 |
|||
R6-2 |
对R4/6: 3FFE:3216:2101:2000::2/52 |
Westlake.ecn.6test.edu.cn |
西区核心路由器 IPv6-only |
对R6-1: 3FFE:3216:2101:3000::2/52 |
|||
对下一级: 3FFE:3216:2101:2100::1/56 |
|||
Email服务器 |
3FFE:3216:2101:1100::2/56 |
Mail.ecn.6test.edu.cn |
IPv6-only |
FTP服务器 |
3FFE:3216:2101:1100::3/56 |
ftp.ecn.6test.edu.cn |
IPv6-only |
BBS服务器 |
3FFE:3216:2101:1100::4/56 |
Bbs.ecn.6test.edu.cn |
IPv6-only |
东区隧道口 |
3FFE:3216:2101:1100::5/56 |
Tunnel-east.ecn.6test.edu.cn |
双协议栈 |
v6RT v6 web |
3FFE:3216:2101:2100::3/56 |
V6rt-v6.ecn.6test.edu.cn |
IPv6-only |
V6RT WWW |
3FFE:3216:2101:2106::1/64 |
V6rt.ecn.6test.edu.cn |
双协议栈 |
V6RT 子网 |
3FFe:3216:2101:2106::/64 |
|
|
NIC子网 |
3FFE:3216:2101:1188::/64 |
|
|
东区的子网 |
3FFE:3216:2101:11XY::/64 |
|
XY为系代号 |
西区的子网 |
3FFE:3216:2101:11XY::/64 |
|
XY为系代号 |
对外自由隧道 |
3ffe:3216:e000:X::1/128 |
|
X为申请序号 |
安大地址 |
3ffe:3216:2102::/56 |
Ahu.ecn.6test.edu.cn(子域) |
|
滁州师专 |
3ffe:3216:2201::/56 |
Czsz.ecn.6test.edu.cn(子域) |
|
北京研究生院 |
3ffe:3216:2101:5000::/56 |
Bjgs.ecn.6test.edu.cn(子域) |
|
甘肃工大 |
3ffe:3216:2101:6000::/52 |
Gsut.ecn.6test.edu.cn(子域) |
|