前面的一个实验是在Ipv4路由域上用6to4隧道来连接Ipv6网络,这种方法比配置隧道要方便很多,但是局限性也是很明显的,即必须使用统一的编址:2002:xxxx:xxxx/48。牛人们提出了一个解决方案,就是在Ipv4中设置中继,让同统一编址的与一般的Ipv6网络也可以通信,这就很强大了。但是还是有一个局限性,中继放在哪里呢?如果我在海南,中继路由器放在东北,哪就很要命了。牛人们又想出了一个好办法,就是多放几个中继路由器,各个6to4路由器就近选择中继路由器。这就是任播技术!

任播需要使用一个特殊的地址段,192.88.99.0/24,一般我们就把中继的tunnel源地址设置为19288.99.1就行了。
6to4路由器正常设置即可,当然要保证ipv4路由域的可达性。
另外一个重要的地方就是默认路由和静态路由的使用,这是保证本实验成功的一个关键因素。
 
下面的实验中,我在IPV4路由域用了OSPF,在ipv6网络分别使用了OSPFRIPISIS来组建。
 
拓扑如下:
 

配置步骤如下:
 
首先使Ipv4网络畅通。
然后是ipv6网络畅通
然后建立tunnel
建立静态路由和缺省路由
静态路由和缺省路由重发布
 
下面是配置文件。
R1:
ipv6 unicast-routing
!        
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf network point-to-point
!
interface Tunnel0
 no ip address
 no ip redirects
 ipv6 enable
 tunnel source Loopback0
 tunnel mode ipv6ip 6to4
!
interface Serial1/0
 no ip address
 ipv6 address 2002:101:101:1::1/64
 ipv6 ospf 10 area 0
 serial restart-delay 0
!
interface Serial1/1
 ip address 12.1.1.1 255.255.255.0
 serial restart-delay 0
!
interface Serial1/2
 ip address 14.1.1.1 255.255.255.0
 serial restart-delay 0
!
router ospf 10
 router-id 1.1.1.1
 log-adjacency-changes
 network 1.1.1.1 0.0.0.0 area 0
 network 12.1.1.0 0.0.0.255 area 0
 network 14.1.1.0 0.0.0.255 area 0
!
ipv6 route 2002::/16 Tunnel0
ipv6 route ::/0 2002:C058:6301::   #重点
ipv6 router ospf 10
 router-id 1.1.1.1
 log-adjacency-changes
 default-information originate     #也可以redistribute static
!
 
R2,R3.R4,R5.R6在附件里。
 
看看各自的路由表。
R5#sh ipv rou os
IPv6 Routing Table - 7 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
OE2 ::/0 [110/1], tag 10
     via FE80::C200:AFF:FE7C:0, Serial1/0
 
看看联通性
R5#ping 2001:0202:0202:2::6
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:202:202:2::6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/60/104 ms
R5#ping 2001:0404:0404:2::3
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:404:404:2::3, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
R5#
发现ping不同R3上的loop口,这是为什么?
R6上去ping R5,也是可以ping的通的。
R6#ping 2002:0101:0101:2::5
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2002:101:101:2::5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/28/36 ms
R6#
 
Ping不同的原因是比较合理的,据我试验测试,R1选择了一个中继之后,那么他就将一直使用这个中继,如果这个中继到达不了目标网段,那么他也不会智能的递归查询给别的中继,问问看别人知不知道。因为这样会给网络带来很大的开销。比方说我乱发一个流量出去,所有的中继都知道,那么这个流量或者查询将在网络上饶一大圈!
因此,中继路由器必须要知道大部分的网络,不是随随便便一个路由器往网络上一放就冒充中继路由器的。现在在网络上提供中继服务的有美国的微软:6to4.Ipv6.microsoft.com,还有6to4.kfu.com,荷兰的6to4.ipng.nl等几个国家。
那么如何让R5可以pingR3上的loop口?
关闭R2连接R1s1/1接口,这样到R2了就不如到R4近了,那么就可以pingR3了。
 
R2(config)#in s1/1
R2(config-if)#shut
 
R5#ping 2001:0404:0404:2::3
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:404:404:2::3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 52/80/100 ms