6to4隧道属于tunnel隧道中的一种技术,但它能够实现点到多点建立隧道。
6to4隧道特征:
1、地址格式前缀为/48的IPV6地址,由2002::/16和边缘路由器的IPV4地址组合而成,2002::/16是一个专用于6to4隧道的地址范围。
2、边缘路由器自动使用嵌入在IPv6地址中的IPV4地址建立隧道。当目标地址直接是IPV6且内嵌IVP4的,就在此地址中提取出IPV4当成tunnel的destination,从而与该地址建立起6to4隧道;如果目标地址非内嵌IPV4的IPV6地址,则根据路由表中的目标地址的下一跳IPV6地址中的IPv4地址当作tunnel的destination建立起隧道。注意这里的“目标地址下一跳IPV6地址”肯定是以2002开头且内嵌有ipv4的地址。
6to4隧道缺点:
1、只能使用静态路由或BGP。这是因为其他路由协议使用链路本地地址来建立邻居关系和交换更新,而链路本地地址不符合6to4隧道的要求(以2002打头且内嵌了ipv4地址)。这个规定使得6to4模式不像tunnel隧道模式为gre ip或gre ipv6可以兼容所有地址格式通过。
2、不能在隧道的IPV4路径上使用NAT,同样是由于6to4隧道对地址的要求。
实验目录:
1)6to4隧道基本配置
2)使隧道两端接口建立成功
3)使目标数据流经过隧道传输
实验拓扑:
实验配置:
1)各接口配置哪上图,在边缘路由器R2、R3上配置6to4隧道。
R2#
interface Tunnel2
no ip address
no ip redirects
ipv6 address 2002:101:102::1/128
ipv6 rip ripng_1 enable
tunnel source 1.1.1.2
tunnel mode ipv6ip 6to4
R3#
interface Tunnel3
no ip address
no ip redirects
ipv6 address 2002:202:202::/128
ipv6 rip ripng_1 enable
tunnel source 2.2.2.2
tunnel mode ipv6ip 6to4
查看路由表
R2#sh ipv rou
IPv6 Routing Table - 4 entries
C 20::/64 [0/0]
via ::, Serial1/3
L 20::1/128 [0/0]
via ::, Serial1/3
R 50::/64 [120/2]
via FE80::CA07:21FF:FE8C:0, Serial1/3
L FF00::/8 [0/0]
via ::, Null0
R2#
在tunnel两端配置ripng路由协议,但路由表中没有看到对端目标地址的路由,这是由于链路本地地址格式符合6to4隧道的要求,从而不能建立邻居。所以为了使隧道两端接口地址能够通讯即建立起6to4隧道,必须使用静态路由(注意了这里的静态路由必须以接口作为下一跳,如果以IP地址作为下一跳就没用了,因为对端IP地址Ping不能。这点在另一章中已经细讲过)。
R2(config)#ipv route 2002::/16 tunnel 2
R3(config)#ipv route 2002::/16 tunnel 3
测试隧道连通性及路由表
R2(config-if)#do ping 2002:202:202::R2(config-if)#do sh ipv rou
IPv6 Routing Table - 6 entries
C 20::/64 [0/0]
via ::, Serial1/3
L 20::1/128 [0/0]
via ::, Serial1/3
R 50::/64 [120/2]
via FE80::CA07:21FF:FE8C:0, Serial1/3
S 2002::/16 [1/0]
via ::, Tunnel2 \\这条是目标路由进入6to4隧道的关键。
LC 2002:101:102::1/128 [0/0]
via ::, Tunnel2
L FF00::/8 [0/0]
via ::, Null0
R2(config-if)#
可以知道6to4隧道建立成功,那么再测试隧道更远的目标地址
R2(config-if)#do ping 30::1 re 1从传输过程可以知道,目标地址无法转发,因为路由表中不存在该路由。所以必须目标路由,R2、R3上配置对应路由
R2(config)#ipv route 30::/64 tunnel 2
R3(config)#ipv rou 20::1/64 tunnel 3
查看路由表及测试结果
R2(config)#do sh ipv rou sta
IPv6 Routing Table - 7 entries
S 30::/64 [1/0]
via ::, Tunnel2
S 2002::/16 [1/0]
via ::, Tunnel2
R2(config)#do ping 30::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 30::1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
R2(config)#
看上去路由表已经有了转发的出口了,但为什么ping不通呢?根据6to4隧道的第2点的特征知道,要么目标地址是IPV6且内嵌IVP4,要么路由表中目标地址的下一跳是IPV6且IPV4地址,但ping 30::1任何一点也没有达到。所以无法触发隧道的建立。在这里只能修改目标路由的下一跳。
R2(config)#no ipv route 30::/64 tunnel 2
R2(config)#ipv route 30::/64 2002:202:202::
R3(config)#no ipv rou 20::1/64 tunnel 3
R3(config)#ipv rou 20::1/64 2002:101:102::1
这里的目标路由只能一条一条的添加,除非只有这两个点建立隧道,才可以使用默认路由。
最后测试连接成功
R2(config)#do ping 30::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 30::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/48/84 ms
R2(config)#