News
发布日期:2023-06-09 浏览次数:1712 来源:赵顺杰
EI CCNP培训学习笔记IPv6的前缀重编址,IPv4到IPv6的迁移,6to4隧道
WOLFLAB官方微信:17316362402,关注【WOLF-LAB】实验室,了解思科认证EI CCNP培训课程!
IPv6的前缀重编址
设备只要拥有一个ipv6全球单播地址,且开启了ipv6的单播路由功能便会自动地发送自己ipv6地址的前缀给FF02::1(也就是所有的设备),而作为主机当然可以根据这个前缀和EUI-64自动生成一个ipv6全球单播地址
可用生存周期和首选生存周期
首选生存周期:思科设备默认7天,首选生存时间到期了的话,IPv6地址将不能够主动发起链接请求
有效生存周期:思科设备默认30天,如果首选生存周期到期,IPv6地址将不能够主动发起链接请求,但是地址还是可以使用,只能够接收其它地址的连接请求.
EI CCNP培训课程-实验1:
R1(config)#ipv6 unicast-routing
R1(config)#interface g0/0
R1(config-if)#no shutdown
R1(config-if)#ipv6 address 2001:123::1/64
R1(config-if)#ipv6 nd prefix 2001:123::/64 200 100 //更改R1通告前缀的可以生存周期和首选生存周期
R3(config)#interface g0/0
R1(config-if)#no shutdown
R1(config-if)#ipv6 address autoconfig //思科路由器需要手动开启ipv6自动配置
R3#show ipv6 int g0/0 //查看ipv6通过EUI64生成的全球单播地址
观察此时R3的G0/0接口的ipv6地址,会发现可用生存周期和首选生存周期发生了变化.
IPv6的静态路由书写
EI CCNP培训课程-实验二:
在R1上面书写静态路由指向出接口G0/0并在R3上配置相同的回包路由,判断:
1. R1是否可以ping通2001:23::3
2. R1是否可以ping通2001:23::2
R1(config)#ipv6 route 2001:23::/64 g0/0
R3(config)#ipv6 route 2001:12::/64 g0/1
R1 ping 2001:23::3 不通
数据包封装 | Dmac:不知道 Smac:R1 G0/0 | Sip: 2001:12::1 Dip : 2001:23::3 |
由于没有R3的mac地址,ICMPv6数据包封装失败
发送NS消息给2001:23::3的被请求节点组播地址,请求其mac地址
数据包封装 | Dmac:3333:FF00:0003 Smac:R1| Sip: 2001:12::1 Dip : FF02::1:FF00:3 |
R2从G0/0接口能够收到来自于R1发送过来的NS请求消息
由于R2的G0/0接口的ipv6地址是2001:12::2/64 那么R2只加入了一个被请求节点组播 FF02::1:FF00::2
R2发现目的的被请求阶段组播地址自己根本就没有加入,因此整个数据包看都不看.
至此,通信失败
R1 ping 2001:23::2 不通
数据包封装 | Dmac:不知道 Smac:R1 G0/0 | Sip: 2001:12::1 Dip : 2001:23::2 |
由于没有R2的mac地址,ICMPv6数据包封装失败
发送NS消息给2001:23::2的被请求节点组播地址,请求其mac地址
数据包封装 | Dmac:3333:FF00:0002 Smac:R1| Sip: 2001:12::1 Dip : FF02::1:FF00:2 |
R2从G0/0接口能够收到来自于R1发送过来的NS请求消息
由于R2的G0/0接口的ipv6地址是2001:12::2/64 那么R2加入了一个被请求节点组播 FF02::1:FF00::2
因为R2的G0/0接口的ipv6地址和G0/1接口的ipv6地址都加入了相同的被请求节点组播组,因此会接收这个NS消息
但是R2拆开这个NS消息发现请求的是2001:23::2的Mac地址,而自己G0/0的接口是2001:12::2,找的不是它
因此R2不会做出回复
至此,通信失败
究其原因是因为在IPv6当中没有了广播,也就没有ARP,更没有proxy-ARP,没有了代理ARP,在IPv6当中根本就不会代替回复ARP
因此得出结论,在IPv6当中写静态路由尽可能跟下一跳地址..而不是跟出接口(例外:点到点链路,比如cisco的两端都是Serial接口,HDLC封装的点到点链路)
IPv6运行动态路由协议的方式
1. RIPNG
方法一:
– ipv6 router rip xxxx //进程名,本地有效
interface g0/0
ipv6 rip xxx enable
方法二:
– interface g0/0
ipv6 rip xxx enable //直接运行RIPNG,会自动起一个进程
2. EIGRP
– ipv6 router eigrp xx
eigrp router-id x.x.x.x
interface g0/0
ipv6 eigrp xx
3. OSPF
– ipv6 router ospf 1
router-id x.x.x.x
interface g0/0
ipv6 ospf 1 area 0
EI CCNP培训课程-实验三:
R1和R3背后都有一个IPv6站点,R1和R3之间模拟公网,使用的都是IPv4的公网地址.而我们需要利用6to4tunnel技术打通R1和R3背后的ipv6站点.
首先配置公网部分,简单运行一下EIGRP
R1(config)#router eigrp 90
R1(config-router)#no auto-summary
R1(config-router)#network 1.1.12.1 0.0.0.0
R2(config)#router eigrp 90
R2(config-router)#no auto-summary
R2(config-router)#network 1.1.12.2 0.0.0.0
R2(config-router)#network 1.1.23.2 0.0.0.0
R3(config)#router eigrp 90
R3(config-router)#no auto-summary
R3(config-router)#network 1.1.23.3 0.0.0.0
配置两者之间的6to4隧道
R1(config)#interface tunnel 0
R1(config-if)#tunnel mode ipv6ip 6to4 //tunnel模式改为6to4
R1(config-if)#tunnel source 1.1.12.1 //设置tunnel source,这里是公网地址
R1(config-if)#ipv6 enable //开启ipv6,会自动生成link-local地址
R3(config)#interface tunnel 0
R3(config-if)#tunnel mode ipv6ip 6to4
R3(config-if)#tunnel source 1.1.23.3
R3(config-if)#ipv6 enable
配置两者之后的站点地址
在这里需要注意的是,6to4隧道地址必须使用IANA已经预定分好的2002::/16的地址范围,而且并不是这么大的范围随便配
6to4背后的站点ipv6地址必须和6to4的tunnel source地址相同对应
对应的方式是:
• 将tunnel source 公网ipv4地址的32个bit位,分别对应着2002::/16 6to4预留ipv6地址的第17bit至48bit位
R1:
tunnel source 地址 1.1.12.1
换算成二进制 00000001.00000001.00001100.00000001
更换成16进制数为 0101:0C01
将它们放到6to4地址的对应位置 2002:0101:0C01
因此,R1背后的站点必须使用的IPv6地址范围为 2002:0101:0C01/48
在这里我们利用loopback 0 接口模拟R1背后的站点地址为 2002:0101:0C01::1/64
R1(config)#interface loopback 0
R1(config-if)#ipv6 address 2001:0101:0C01::1/64
R3:
tunnel source 地址 1.1.23.3
换算成二进制 00000001.00000001.00010111.00000011
更换成16进制数为 0101:1703
将它们放到6to4地址的对应位置 2002:0101:1703
因此,R3背后的站点必须使用的IPv6地址范围为 2002:0101:1703/48
在这里我们利用loopback 0 接口模拟R3背后的站点地址为 2002:0101:1703::3/64
R1(config)#interface loopback 0
R1(config-if)#ipv6 address 2002:0101:1703::3/64
但是两站点之间的互访需要路由,而在6to4 tunnel当中由于所有的站点都是用的是2002::/16的地址,可以使用静态路由
R1(config)#ipv6 unicast-routing //开启IPv6路由功能
R1(config)#ipv6 route 2002::/16 tunnel //设置静态路由,出接口为tunnel口
R3(config)#ipv6 unicast-routing //开启IPv6路由功能
R3(config)#ipv6 route 2002::/16 tunnel //设置静态路由,出接口为tunnel口
测试
R1#ping 2002:0101:1703::3
R3#ping 2002:0101:0C01::1
由于是6to4 tunnel,流量进入隧道的时候,会自动地去检测目的IPv6地址的第17bit位-第48bit位,将其换算成为IPv4地址作为了tunnel的destination,如此两者之间能够通过公网ipv4地址实现IPv6站点之间的互访.
WOLFLAB官方微信:17316362402
WOLFLAB官方QQ:2569790740
我们有CCNA|CCNP|EI CCIE;HCIA|HCIP|HCIE Datacom|VMware等培训