IPv6无状态自动配置详细实验

理论

成功实现IPv6地址无状态自动配置的条件:

  • 路由器要开启IPv6功能(华三设备默认开启,思科和华为默认关闭);
  • 路由器的接口地址前缀的掩码只能为64位(因为EUI-64生成了后64位的接口标识符);
  • 路由器的接口要能周期发送RA报文,需要通过命令手工激活周期发送RA报文。

无状态自动配置过程:

  • 主机根据接口标识符自动产生链路本地地址;
  • 主机发出NS邻居请求报文,对链路本地地址进行重复地址检测;
    • 如果地址冲突,则停止自动配置,需要手工配置。
    • 如果不冲突,链路本地地址生效,节点具备本地链路通信能力。
  • 主机发送RS路由器请求报文(或接收到路由器定期发送的RA路由器公告报文);
  • 根据RA报文中的前缀信息和通过EUI-64规范生成的接口标识符得到IPv6全球单播地址。

实验

搭建一个简单的拓扑验证一下。

 首先,我们先尝试让R1的GE0/0/0接口自动产生链路本地地址:

#
interface GigabitEthernet0/0/0
 ipv6 address auto link-local
#

查看IPv6接口地址信息,可以看到设备根据接口MAC地址生成了一个实验性IPv6本地链路地址(实验性表示还未进行地址冲突检测,因为R2的端口还没有开启)。


Q1:本地链路地址是怎么生成的?

A1:由FE80::/10结合EUI-64的接口标识符自动形成的。也可以手工指定,手工指定的前缀要固定为FE80::/10。

Q2:EUI-64是怎么生成地址的?

A2:把接口48比特的MAC地址转换为二进制表示:

  1. 将48比特的MAC地址对半分开,前后各24比特,然后在中间插入16比特的值FFFE,即二进制的值1111111111111110,使整个地址变成8段;
  2. 设置U/L位,把首个字节的第7比特取反,通常设置为1;
  3. 把地址转换回十六进制,每4位十六进制数字合并为一段,就得到了4段的十六进制接口标识符;
  4. 最终形成64比特的EUI-64接口标识符。

        之所以需要把第7比特取反的主要原因是在单播MAC中,第7比特的U/L位和EU-64中第7比特U/L位的含义相反。在单播MAC中第7比特位为0表示U(表示由IEEE管理分配),而在EUI-64的第7比特位为1才表示U。

Q3:串行接口如何形成EUI-64?

A3:思科设备取设备第一个以太网接口的MAC进行EUI-64的转换和形成,会导致一个设备可能有多个接口的EUI-64接口标识一样,但是因为链路本地地址只在本地链路有效,所以不会产生冲突。而华三设备串行接口的IEEE EUI-64格式的接口标识符由设备随机生成。

        以实验为例,查看接口MAC地址:

        接口MAC地址为90E1-8EAF-0105,对半分并插入16比特值FFFE,即为90E1-8EFF-FEAF-0105。把首个字节(90)的第7比特取反,即0000 1001 0000 0000橙字部分取反,变为0000 1001 0000 0010,即16进制值92。最终生成EUI-64值为92E1-8EFF-FEAF-0105。最后添加前缀部分,即FE80:0000:0000:0000:92E1:8EFF:FEAF:0105,格式化为FE80::92E1:8EFF:FEAF:105即为链路本地地址。


根据要求,开启RA报文的周期性发送:

#
interface GigabitEthernet0/0/0
 undo ipv6 nd ra halt
#

 打开R2的端口,通过抓包可以看到路由器已经在周期性发送RA报文,并携带了ICMP扩展信息描述路由器优先级、接口的前缀信息、MTU、接口的MAC地址。

 注意,此时发送的RA报文中并没有包含接口的前缀信息,是因为接口上只生成了链路本地地址,而没有配置一个IPv6的64位前缀地址。因此,主机不知道应该生成什么前缀的IPv6地址,还无法完成无状态自动配置。

进一步添加配置,为接口配置一个全球单播地址:

#
interface GigabitEthernet0/0/0
 ipv6 address 2000::1000/64
#

再次抓包查看:

可以看到,此时RA报文携带了前缀信息2000::

注:当接口配置了IPv6全球单播地址后,同时会自动生成链路本地地址。且与采用ipv6 address auto link-local命令生成的链路本地地址相同。

此外,还需要在R2上通过命令开启无状态自动配置IPv6地址功能:

#
interface GigabitEthernet0/0/0
 ipv6 address auto
#

在R2上查看接口信息,可以看到成功通过无状态自动配置获取到了一个IPv6地址:

可以看到,R2接口上自动配置的地址为2000::901C:4BFF:FEDB:205,是根据通过RA报文获取的前缀信息2000::/64与通过EUI-64生成的接口标识符结合而成。

R2的MAC地址:

 来看一下完整的抓包信息(忽略主机验证链路本地地址的报文)

请求方发送RS路由器请求报文,请求路由信息:

接收方向请求方响应一个RA路由器公告报文,携带路由信息:

请求方根据路由信息,进行无状态自动配置,并对生成的地址进行重复地址检测:

无设备应答,即没有地址冲突,请求方组播发送,声明使用此报文:

总结

         主机发送RS路由器请求报文(或接收到路由器定期发送的RA路由器公告报文),根据RA路由器公告报文中的前缀信息和通过EUI-64规范生成的接口标识符进行无状态自动配置,获得IPv6全球单播地址。

        路由器的接口地址前缀的掩码只能为64位,且要能周期发送RA报文。

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
北邮ipv6状态地址自动配置实验是指通过使用IPv6的无状态地址自动配置技术,使得主机在接入网络时能够自动获得IPv6地址,并且无需进行手动配置。该实验旨在验证该技术在北邮网络环境中的可行性和有效性。 在该实验中,首先需要确保网络设备支持IPv6协议,并且已经正确配置IPv6相关的参数。然后,将一台试验主机连接到北邮的网络中,启用IPv6接口。主机会向网络发送Router Solicitation消息,以获取附近路由器的信息。 当网络中的路由器收到主机的Router Solicitation消息后,会向主机回复Router Advertisement消息,其中包含了网络配置信息,如网关地址、前缀长度等。主机收到Router Advertisement消息后,会根据其中的信息自动配置IPv6地址。 在这个过程中,无状态地址自动配置技术会根据路由器提供的前缀生成全球唯一的IPv6地址。主机会根据网络中的路由器数量,将前缀长度适当拆分,以便分配给不同的子网或者设备。 通过该实验,我们可以验证北邮网络环境下的IPv6状态地址自动配置技术是否正常工作。如果一切正常,试验主机应该能够成功获取到IPv6地址,并且能够正常进行IPv6通信。 该实验的意义在于,IPv6状态地址自动配置技术能够提高网络配置的便利性,减少了手动配置的工作量。同时,这也是IPv6协议的一个重要特性,可以更好地适应大规模的IP地址需求,并提供更加灵活和高效的网络通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值