对于与IPv6有关的以下2个RFC,我有些困惑:
RFC 4862指出:
本文档中指定的自动配置过程仅适用于主机,不适用于路由器。由于主机自动配置使用路由器通告的信息,因此将需要通过其他某种方式来配置路由器。
RFC 7084列出了其地址分配的WAN端配置要求之一:
WAA-1:IPv6 CE路由器必须支持无状态地址自动配置(SLAAC)[RFC4862]。
这里有矛盾吗?
路由器是否应该能够为其WAN接口自动配置IPv6地址?
RFC 4862为什么说
由于主机自动配置使用路由器通告的信息,因此将需要通过其他某种方式来配置路由器。
例如,如果我使用路由器将LAN连接到ISP,则ISP网络中是否没有与我的路由器通信的路由器?
我本以为将2个(或更多)路由器链接在一起是完全合理的。在那种情况下,为什么不在第二台路由器的WAN接口上使用SLAAC?
也许问题出在主机和路由器之间的人为区分上?根据RFC 4862:
节点-实现IP的设备。
路由器-转发未明确寻址到其自身的IP数据包的节点。
主机-任何不是路由器的节点。
但是,主机(即托管服务器或应用程序的计算机)也不能具有路由表并充当路由器吗?并且我们有效地将2个路由器再次链接在一起。
编辑:我后来发现一些额外的信息...
Linux内核处理SLAAC,并且严格遵循RFC 4862。一直到主机和路由器之间的区别。请参阅ip-sysctl上的内核文档:
- 假定为主机行为。这意味着将发送路由器请求,并将路由器广告用于地址自动配置。
- 仅当启用转发(
/proc/sys/net/ipv6/conf/all/forwarding
)时,该设备才被视为ROUTER。这意味着将不发送任何路由器请求,并且路由器广告将被忽略。
事实证明,这种区别可以追溯到IPv6之前的版本。参见参数/proc/sys/net/ipv4/ip_forward
: