由于IPv6的 Router Advertisement 无状态自动配置 stateless在目前的标准下[1]只能告知客户端此网段的ipv6 prefix和default gateway(网关的linklocal地址),因此,如果要实现更加详细的资讯配置,只能使用RADVD+DHCPv6进行协同工作,即进行DHCPv6的stateful配置。
但是,由于DHCPv6不能告知客户端默认路由,默认路由的广播只能靠RA,这样就必须在RA报文里面,不报告“A”(自动配置),只报告“R”(路由前缀),让客户端通过DHCPv6去获取默认路由。
如下是台湾同胞博客上找到的一张RA报文( Router Advertisement (RFC 4861) )结构图
红色框的地方,叫做 Router Advertisement Option( RFC5175),
M: Managed Address Configuration 這個 bit 如果是 1,代表要請電腦另外再去跟 DHCPv6 要 IPv6 Prefix
O: Other Configuration 這個 bit 如果是 1,代表請電腦去跟 DHCPv6 要 DNS 等等資訊。
这两项在RADVD里面分别对应AdvManagedFlag和AdvOtherConfigFlag。
大家看我的抓包
M | O | 对应意义 | 描述 |
1 | 1 | 地址和DNS什么的都从DHCPv6服务器取得 | Stateful DHCPv6 |
0 | 1 | 地址使用RA广播的prefix+ EUI-64计算出来的接口地址,DNS和其他服务器从DHCPv6取得 | Stateless DHCPv6 |
0 | 0 | 完全的Stateless配置,仅地址使用RA广播的prefix+ EUI-64计算出来的接口地址。 | Stateless AutoConfiguration |
关于上文的注释1,RA广播DNS配置的问题,其实有个 RFC5006描述了这个协议,但是这个还不是标准,据说RADVD支持这个协议,但是不成为标准的东西,很多客户端也不支持,目前谈这个没没有意义。