IPv6
协议栈的支持,在windows XP下面,使用ipv6 install命令便可以启动IPv6协议栈,在默认安装的linux下,利用modprobe ipv6便可以以模块的方式加载IPv6协议栈。本篇仅介绍linux下面的IPv6协议栈的配置命令,以后会陆续推出更为详尽的linux及windows下的各种过渡机制,比如6to4,nat-pt,teredo等的配置实例。
1 打开或关闭接口
1.1 使用“
ip
”
用法:
# ip link set dev
up
# ip link set dev
down
例子:
# ip link set dev eth0 up
# ip link set dev eth0 down
1.2 使用“ifconfig”
用法:
# /sbin/ifconfig
up
# /sbin/ifconfig
down
例子:
# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down
2 配置IPv6地址
2.1 显示现有IPv6地址
(1)使用“ip”
用法:
# /sbin/ip -6 addr show dev
(2)使用“ifconfig”
用法:
#/sbin/ifconfig
2.2 添加或删除一个IPv6地址
(1)使用“ip”
用法:
# /sbin/ip -6 addr
/
dev
例子:
# /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
3 配置IPv6路由
3.1 显示现有路由
(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
3.2 增加或删除到一个
网关
的路由
(1)使用“ip”
用法:
# /sbin/ip -6 route
/
via
[dev ]
例子:
# /sbin/ip -6 route
2000::/3 via 3ffe:ffff:0:f101::1
(2)使用“route”
用法:
# /sbin/route -A inet6 add
/
gw
[dev ]
如果网关的IPv6地址是一个链路地址,则需要加上dev 参数。
4 配置IPv6-in-
IPv4
隧道
4.1 隧道类型
(1)静态的点到点隧道:6bone
点到点的隧道是一个终端(endpoint)的专用隧道。配置这样的隧道需要知道:
你的本地隧道终端的IPv4地址必须是静态、全球唯一,并且外部隧道终端可以到达的地址。
分配给你的全球IPv6前缀
外部隧道终端能够将你的IPv6前缀路由到你的本地隧道终端
(2)自动隧道
自动产生的隧道,这发生在本节点和另外一个具有IPv4地址的节点有直接的链接时。
(3)6to4隧道
4.2 显示现有隧道
(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
4.3 建立点到点隧道
共有3种可能的方法增加或删除点到点隧道的方法。
增加点到点隧道
(1)使用“ip”和“route”
建立少量隧道的通用方法。
建立一个隧道设备的用法(此后要让配置立刻生效,同时由于TTL的默认值为0,我们还要指定TTL的值):
# /sbin/ip tunnel add mode sit ttl
remote
local
三个通用的例子:
# /sbin/ip tunnel add sit1 mode sit ttl
remote
local
# /sbin/ifconfig sit1 up
# /sbin/route -A inet6 add
dev sit1
# /sbin/ip tunnel add sit2 mode sit ttl
local
# /sbin/ifconfig sit2 up
# /sbin/route -A inet6 add
dev sit2
# /sbin/ip tunnel add sit3 mode sit ttl
local
# /sbin/ifconfig sit3 up
# /sbin/route -A inet6 add
dev sit3
(2)使用“ifconfig”和“route”(不推荐使用)
在只增加一个隧道时,没有任何问题,但当你建立多个隧道时,问题便出现了。这时,你不能够轻松的关闭前一个隧道,而同时让其它的隧道运行。
用法:(三个隧道的通用例子)
# /sbin/ifconfig sit0 up
# /sbin/ifconfig sit0 tunnel
# /sbin/ifconfig sit1 up
# /sbin/route -A inet6 add
dev sit1
# /sbin/ifconfig sit0 tunnel
# /sbin/ifconfig sit2 up
# /sbin/route -A inet6 add
dev sit2
# /sbin/ifconfig sit0 tunnel
# /sbin/ifconfig sit3 up
# /sbin/route -A inet6 add
dev sit3
(3)只使用“route”
用法:(3个通用的例子)
# /sbin/ifconfig sit0 up
# /sbin/route -A inet6 add
gw ::
dev sit0
# /sbin/route -A inet6 add
gw ::
dev sit0
# /sbin/route -A inet6 add
gw ::
dev sit0
删除点到点的隧道
(1)使用“ip”和“route”
用法:
# /sbin/ip tunnel del
举三个通用的用法:
# /sbin/route -A inet6 del
dev sit1
# /sbin/ifconfig sit1 down
# /sbin/ip tunnel del sit1
# /sbin/route -A inet6 del
dev sit2
# /sbin/ifconfig sit2 down
# /sbin/ip tunnel del sit2
# /sbin/route -A inet6 del
dev sit3
# /sbin/ifconfig sit3 down
# /sbin/ip tunnel del sit3
(2)使用“ifconfig”和“route”(现在不推荐使用)
和创建隧道的命令一样,删除隧道的方式也令人很费解。最后创建的隧道必须最先删除。
用法:(3个常用例子)
# /sbin/route -A inet6 del
dev sit3
# /sbin/ifconfig sit3 down
# /sbin/route -A inet6 del
dev sit2
# /sbin/ifconfig sit2 down
# /sbin/route -A inet6 add
dev sit1
# /sbin/ifconfig sit1 down
# /sbin/ifconfig sit0 down
(3)使用“route”
这有点像删除通常的IPv6路由。
用法:(3个常用例子)
# /sbin/route -A inet6 del
gw ::
dev sit0
# /sbin/route -A inet6 del
gw ::
dev sit0
# /sbin/route -A inet6 del
gw ::
dev sit0
# /sbin/ifconfig sit0 down
5.4.4 建立6to4隧道
增加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
/16 dev tun6to4
使用全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
/16
使用全6to4路由器IPv4任播地址向全球IPv6网络增加一个(默认的)路由器:
# /sbin/route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0
删除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
/16
关闭“sit0”:(此步骤要注意,因为sit0有可能还在使用)
# /sbin/ifconfig sit0 down