YESLAB学霸日记—华为数通之IPv6及6to4隧道实验
作者:互联网
实验名称
IPv6及6to4隧道实验
实验目的
1、 配置并验证IPv4兼容IPv6隧道,观察报文封装
2、 配置并验证6to4隧道,观察报文封装
实验拓扑
实验步骤
1:基本的IP地址配置,ISP IPv4 IGP 为OSPF(本步骤省略)
2: 配置并验证IPv4兼容IPv6隧道
IPv4兼容IPv6隧道是自动隧道的一种,采用IPv4兼容地址,格式为::IPv4/96,要求每台主机必须拥有合法的IPv4地址,且通信的主机要支持双栈和IPv4兼容IPv6隧道,业务网段地址非IPv4兼容地址,那么边界路由器在配置路由时必须同时指定出接口和下一跳地址。
在AR2、AR4、AR8上配置tunnel接口,协议类型为ipv6-ipv4 auto-tunnel,以R2为例配置如下:
此时AR2、AR4、AR8之间的隧道ipv6地址便可以互通,自动隧道并没有指定目的ipv地址,ipv6报文经过隧道时,设备依据报文的目的地址分析出对应的隧道对端目的ipv4地址时多少,比如::10.8.8.8去访问::10.2.2.2,根据ipv4兼容地址,可以判断出隧道对端目的ipv4地址为10.2.2.2,从而对报文进行ipv4封装,源地址为隧道指定的源地址,此处为loopback0接口地址,目的地址10.2.2.2,查找ipv4路由表,通过相应的接口转发出去:
但这仅仅是隧道之间可以互访,配置隧道的目的是为了业务数据可以互通,分别配置AR1、AR5、AR9 loopback0 IPv6地址为IPv4兼容IPv6地址,并配置默认ipv6路由,以AR1为例:
在AR2、AR4、AR8上分别配置指向AR1、AR5、AR9的loopback0及互联接口地址的静态路由:
配置完成后,AR1、AR5、AR9之间实际是无法互访的,原因是在AR2、AR4、AR8上配置静态路由的时候,下一跳无法同时指定出接口和下一跳地址(华为设备只能选择指定其中一项),这样设备对IPv6报文进行隧道封装的时候,既无法通过IPv6报文的目的IP地址判断出应该采用哪个隧道对端IPv4地址封装报文,也无法通过静态路由的下一跳地址判断出,导致设备无法进行隧道封装,最终只能丢弃报文。目前该技术已经被6to4隧道所代替。
3:配置并验证6to4隧道
IPv6 to IPv4 6to4隧道是自动隧道的一种,可以支持R2R、R2H、H2R等场景,采用6to4专用地址,即2002:IPv4::/48,一个ipv4地址只能用于一个6to4隧道的源地址,所以如果一个边界路由器连接了多个6to4网络使用同样的ipv4地址作为隧道的源地址,则需使用6to4地址的SLAID来区分。如果有个别Site不是按照6to4地址进行地址分配的,则需要使用6to4中继,实际是通过配置静态路由时下一跳地址采用6to4地址,这样设备也可以通过下一跳地址判断出采用哪个IPv4地址对IPv6报文进行隧道封装。
修改网络拓扑的配置,Site1和Site2规划为6to4网络,Site3规划为IPv6网络。
在AR2、AR4、AR8上配置隧道接口,协议采用ipv6-ipv4 6to4,地址采用6to4专用地址格式,以AR2为例配置如下:
此时AR2、AR4、AR8上配置隧道接口地址之间时无法互访的,原因时6to4隧道不会自动形成隧道直连路由,需要手动配置,此处可以配置为ipv6 route-static 2002:: 16 Tunnel 0/0/10,此时AR2、AR4、AR8上隧道接口地址之间时便可互访:
6to4网络的地址在规划的时候,网络前缀必须要使用边界路由器上隧道接口配置的IPv6专用地址的前缀,如果同一台边界路由器连接多个站点可以使用SLAID进行区分。将Site1和Site2规划为6to4网络,同时配置指指向边界路由器的缺省路由:
此处规划使用SLAID是12.
此处规划使用SLAID是45.
将Site3规划为IPv6网络:
此时Site1和Site2之间互访没有问题,在AR1上pingAR5,并在AR2的G0/0/01开启抓包:
当AR1 ping AR4的数据报文到达AR2时,AR2查找IPv6路由表发现时通过隧道接口进行转发,隧道接口的封装协议IPv6-IPv4 6to4,需要对IPv6报文封装IPv4包头,源地址为隧道的源地址,目的地址根据IPv6报文的目的地址进行解析,由于采用的时6to4专用地址,所以很容易解析出目的IPv4地址,在对IPv6报文封装完IPv4报头后,查找IPv4路由表,从相应的接口转发出去,中间路由器AR3只看外层Ipv4报头进行转发,当数据到达AR4的时候,AR4发现报文的目的地址时自身的一个隧道接口地址,解封在发现内层时IPv6数据报文,交给IPv6协议栈处理,查找IPv6路由表,发现存在直连路由,进行地址解析,获得目的地址的MAC地址,转发给AR5。回包过程类似。
对于6to4网络访问IPv6普通网络,需要通过6to4中继完成,实际是在6to4网络的边界路由器上(此处为AR2和AR4)配置指向IPv6普通网络的路由时,下一跳采用6to4地址(隧道对端地址),配置完成后下一跳地址所在的路由器(此处为AR8)称为6to4中继路由器,即在6to4网络和普通IPv6网络之间转发数据的设备:
此时Site1和Site2即可正常访问Site3:
数据转发过程原理类似,唯一不同的是,在隧道接口对于进行封装的时候是依据IPv6路由的下一跳地址判断应该采用哪个IPv4地址进行封装。
实验心得
1、IPv4兼容IPv6自动隧道在配置完成后会自动产生::/96的直连路由,下一跳为隧道接口。6to4隧道配置完成后不会自动产生2002:: 16的路由,需要手工指定。
2、6to4网络在规划的时候,网络前缀必须要使用边界路由器上隧道接口配置的IPv6专用地址的前缀,如果连接多个站点可以使用SLAID进行区分。
3、IPv4兼容IPv6隧道和6to4都是采用专用的IPv6地址,所以是无法支持动态路由的,原因是动态路由的目的地址采用的是组播地址,组播地址代表的是一组设备,无法将一个组播地址映射成一个隧道专用的地址。
获取更多实验报告及课程资料,请联系QQ:2852378190
标签:隧道,学霸,报文,6to4,数通,地址,IPv4,IPv6 来源: https://blog.51cto.com/14476517/2472910