正文共:1024 字 15 图,预估阅读时间:3 分钟
我们现在已经熟悉了IPv6的地址架构(IPv6地址架构一本通),掌握了IPv6地址的手工配置方式(IPv6从入门到精通)和DHCPv6有状态地址配置(有状态DHCPv6配置)。
书接上文,上次的DHCPv6交互报文为4个,属于标准的交互4个消息的分配过程。
和IPv4的DHCP过程几乎一致。
除此之外,DHCPv6还有一种交互2个消息的快速分配过程。报文交互过程如下:
这种快速分配过程需要客户端和服务器同时支持,在客户端向服务器发送的第1个Solicit消息中,需要携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配IPv6地址/前缀和其他网络配置参数。配置命令为:
#
interface GigabitEthernet0/0
ipv6 address dhcp-alloc rapid-commit
如果服务器也支持快速分配过程,则直接返回Reply消息,直接为客户端分配IPv6地址/前缀和其他网络配置参数。配置命令为:
#
interface GigabitEthernet0/0
ipv6 dhcp select server
ipv6 dhcp server rapid-commit
ipv6 address 1::1/64
ipv6 nd autoconfig managed-address-flag
ipv6 nd autoconfig other-flag
undo ipv6 nd ra halt
#
ipv6 dhcp pool 6
network 1::/64
dns-server 2::2
domain-name guotiejun.com
gateway-list 1::1
查看报文交互过程,可以发现交互报文从4个变成了2个。第1个是客户端发送的Solicit消息,和标准过程不一样的是,报文中多了一个Option 14(Rapid Commit)选项。
对应的,我们在服务器上也使用命令ipv6 dhcp server rapid-commit使能了快速分配功能,所以在第2个报文中,服务器直接回复了Reply消息,直接为客户端分配IPv6地址1::2和其他网络配置参数。
查看DHCP客户端信息。
其实我们前面也发现了路由器的一个问题,那就是ping链路本地地址是不支持的。FE80::2C81:50FF:FE98:105是网关的链路本地地址,也就是服务器的接口地址。
FE80::2C81:54FF:FE5D:205是客户端的链路本地地址,同时接口还有一个全球单播地址1::2。
FE80::2C81:54FF:FE5D:205这个链路本地地址是怎么来的我们前面也介绍过了(IPv6地址架构一本通),验证一下。首先查看接口的MAC地址为2e81-545d-0205。
[EUI64]定义了一种从48位MAC地址创建IEEE EUI-64标识符的方法。就是在48位MAC中间插入两个八位字节,十六进制值为0xFF和0xFE,插入之后就是2E81:54FF:FE5D:0205。现在的差别就是在2E81和2C81之间,还原成2进制就是:0010111010000001和0010110010000001,现在差别在第7位,这一位在IEEE规范中被称为“通用/本地位”,在MAC地址中这一位为1,标识其可用性和唯一性属性;当在链路本地地址中使用时,要反转通用/本地位的值,也就是将这一位设置为0,标识其仅本地可用的属性。
综合整个过程,就是用EUI-64的方法将接口MAC地址为2e81-545d-0205转换成了64位接口标识符2C81:54FF:FE5D:0205。该方法适用于所有IEEE 802接口类型,例如以太网接口、VLAN接口等。
用这几个地址ping测试一下。
我们可以看到告警信息,如果直接ping链路本地地址,提示需要指定出接口;如果带源地址进行测试,使用链路本地地址,则提示需要使用全球单播地址;如果带全球单播地址的源地址进行测试,则又提示需要指定出接口。那就指定出接口测试一下。
可以看到,在指定出接口之后,自动调用了接口的链路本地地址,测试也通了,但是直接使用接口的链路本地地址却是不行的。
可以看到,ping测试要指定出接口,这时会直接调用了接口的链路本地地址,如果要指定源地址,则要使用全球单播地址。好麻烦啊!
测试直接访问网关1::1和DNS服务器2::2,可以看到源地址使用的是1::2。抓包记录如下:
如此看来,Windows的ping操作就简单多了。
长按二维码
关注我们吧
软路由是啥?OpenWrt又是啥?长啥样?在VMware装一个瞅瞅