南京邮电大学通达学院2016届本科生毕业设计(论文)
使用Tunnel隧道。仅在边界路由器R4,R5上运行双栈协议,并在这两天路由器上开启了tunnel隧道模式。因此在这两台路由器上最容易出现环路问题,以及出现路由传递成功,但是无法正常通信,ping包失败的故障。如下图3.8问题图(1)。图3.9问题图(2)中反应的则是另一种情况,接口的状态口和协议口都处于UP状态,但是ping包并不能正常发送。
图3.8问题图(1)
在区域3中,在R5,以及分公司IPv6user 的路由器上,首先是运行了双栈协议,同时配置了IPv4和IPv6地址,使两种协议同时存在。因IPv4与IPv6无法直接通信,所以他们互相分离,独立存在。R5,IPv4ISP2,IPv6user,互相在IPv4地址下互相建立起IPv4的BGP邻居关系。在低层IPv4的BGP路由能通的情况下,在建立IPv6的隧道串联起R5和IPv6user。此时很容易出现一个问题,也就是在隧道建起来后,R5和IPv6user的端口是up状态,但是相互直连并不能 ping通。同理,在区域2中也容易出现这种情况。
图3.9 问题图(2)
25
南京邮电大学通达学院2016届本科生毕业设计(论文)
3.2.5 解决方案
在查找资料和询问过部署过IPv6项目的工程师后,得知6to4隧道是存在一个固定地址转化规则的。6to4隧道的隧道地址并不能随便设置。需要将在建立低层IPv4时的端口地址进行进制变换,由十进制改写成十六进制。而且存在固定格式必须以2002:AABB:CCDD::X/X 为准。其中AA是由IPv4地址的第一段进行进制转换而来的,BB是IPv4地址的第二段转化结果,CC是IPv4地址的第三段的转化结果,DD是IPv4地址的第四段转化结果。IPv6地址的最后一位X和掩码X是任意的,是根据实际要求由管理员配置的。
即将R5与IPv4ISP2相连的e0/2端口的ipv4地址:192.168.201.5/24进行转换。具体转化方式如表3.2地址转化表一所示。
3.2地址转化表一
十进制 十六进制 192 C0 168 A8 201 C9 5 05 转化过后端口地址变为2002:C0A8:C905::1/64。在图4.2-1 中能看到转化后的地址。
图3.10 R5的Tunnel地址
同理在IPv6user上也需要进行地址进制转换,也就是将IPv6user与IPv4ISP2相连的e0/0端口的ipv4地址:192.168.200.2/24进行转换。具体转化方式如表3.3地址转化表二所示。
26
南京邮电大学通达学院2016届本科生毕业设计(论文)
表3.3地址转化表二
十进制 十六进制 192 C0 168 A8 200 C8 2 02 转化过后端口地址变为2002:C0A8:C802::2/64
图3.11 IPv6的Tunnel地址
而且因为tunnel隧道的IPv6地址是通过各自路由器的IPv4低端接口的地址转化而来,因此tunnel隧道两头IPv6user和R5上的tunnel隧道地址不在同一网段。也因此出现了新的问题。根据IPv6协议的基本规则,一个直连网段若两端接口地址并不在同一网段下,无法完成正常通信。
因此若要想tunnel建立成功,确保数据通信正常。在地址变换完成后还需要进行路由策略,使tunnel隧道两端地址进行正常通信。在实验上的结果也就是表现为能进行相互ping包,且不存在丢包。因此需要在R5和IPv6user上设置一条默认路由,ipv6 route 2002::/16 tunnel 0 ,使得目的网段为2002::,掩码为16位的数据包,都从tunnel 0 端口发出。让tunnel隧道两段用静态路由来完成数据交流。
27
南京邮电大学通达学院2016届本科生毕业设计(论文)
图3.12 R5的默认路由
图3.13 IPv6user的默认路由(1)
之后因为转化过IP地址,使得IPv6user的网段与公司内网的网段不在一起,无法进行路由传递,因此需要再写一条默认,ipv6 route ::/0 2002:C0A8:C905 ::1 ,使他能转发来自内网的数据包。
28