Understanding IPv6 第8章——地址自动配置
参考
IPv6一个有用的方面就是能够进行自动配置,即使是在没有DHCP协议情况下也可以。IPv6协议可以为每个接口自动配置一个链路本地地址。通过路由发现协议,能够知道路由器的地址,无状态地址(不理解),链路上的前缀以及其他设置参数。
自动配置的类型
-
stateless
由Router Advertisement messages 来进行配置,并且Managed Address Confguration 和Other Stateful Confguration flags 这两个标志位都被置为0
-
stateful
由地址配置协议(如DHCPv6来进行配置)。Managed Address Confguration 或Other Stateful Confguration flags 被置为1
-
both
Managed Address Confguration 或Other Stateful Confguration flags 被置为1,并且选项中的Autonomous flag set to 1 。
不理解为什么由Router Advertisement messages设置的就是无状态的,由由地址配置协议设置的就是有状态的。
自动配置地址的状态
Autoconfiguration Process
链路本地地址的自动配置过程
- 由fe80::00/64前缀和EUI-64 接口标识生成链路本地地址
- 用重复地址探测(邻居请求消息)确认此地址是否被使用
- 如果收到了对应的Neighbor Advertisement message,则认为此地址已经被使用,必须手工介入进行配置。
- 如果没有收到对应的Neighbor Advertisement message,则认为此地址可以使用,为接口配置此地址,并向网络适配器注册此地址对应的组播地址
对于IPv6主机,会继续进行如下步骤
DHCPv6
路由广播消息里面有两个关键的标志:
- Managed Address Confguration flag。 This is also known as the M flag. When set to 1, this flag instructs the host to use a confguration protocol to obtain stateful addresses.
- Other Stateful Confguration flag 。This is also known as the O flag. When set to 1, this flag instructs the host to use a confguration protocol to obtain other confguration settings.
DHCPv6与v4重要的区别在于,IPv6主机不会为自己被分配地址的64位前缀添加直连路由,而是当路由广播消息的前缀选项的on-link标志位为1时才会添加直连路由。而且如果前缀选项的Autonomous flag 没有被置为0的话,并且同时运行DHCPv6,那么IPv6主机会得到两个IP地址。为了避免这种情况的发生,路由器一定要将Autonomous flag 置为0。
DhCPv6 Messages
DHCPv6和V4一样都是基于UDP协议,但是v6的结构要简单很多,因为v4基于历史的原因,要支持无盘系统。
消息结构:
选项是典型的:type-length-value结构
中继定义了独立的结构: