我对以下两个与IPv6有关的RFC感到有些困惑:



RFC 4862(IPv6无状态地址自动配置)

RFC 7084(IPv6 CE路由器要求)

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上的内核文档:假定为HOST行为。这意味着将发送路由器请求,并将路由器广告用于地址自动配置。
仅在启用转发(/proc/sys/net/ipv6/conf/all/forwarding)的情况下,该设备才被视为ROUTER。这意味着将不发送任何路由器请求,并且路由器广告将被忽略。

原来,这种区别可以追溯到IPv6之前。请参阅参数/proc/sys/net/ipv4/ip_forward


此变量很特殊,其更改会将所有配置
参数重置为其默认状态(主机为RFC1122,主机为
的RFC1812)


#1 楼

在RFC 7084中,它还指出:W-1:当路由器连接到WAN接口链接时,出于以下目的,它必须
充当IPv6主机:无状态[RFC4862]或有状态[RFC3315]接口地址分配。



总之,是的-路由器应该能够为其WAN接口自动配置IPv6地址。

实际上,大多数ISP都实现了DHCPv6和DHCPv6-PD(RFC3633)来进行下游地址分配以及前缀委派。

这确保您的路由器不仅接收到一个WAN接口上的地址,但它还会收到一个前缀,也可以在其内部LAN接口上使用。

#2 楼

RFC 4862实际上描述了单个管理控件中的路由器。 RFC 7084阐明了客户路由器的行为方式。这使ISP在向客户提供支持IPv6方面有了一些自由。

对于PE路由器,CE路由器是主机。从LAN(第2层域,包括从PE到CE的链接)的角度来看,路由器实际上只是网络上的另一台主机。在大多数情况下,WAN链接地址将通过DHCP或PPP静态定义,而不是实际使用SLAAC。

我认为您错过了RFC 7084中引用的内容:


WAN端要求:

W-1:当路由器连接到WAN接口链接时,它必须
用作一个IPv6主机,用于无状态[RFC4862]或
有状态[RFC3315]接口地址分配。


评论


许多ISP还运行未编号的WAN互连(仅本地链路)。 WAN链路上发生的所有事情都是ISP路由器将数据包发送到CPE,而CPE将数据包发送到默认网关。无论如何,两者通常都使用链接本地地址。

–桑德·斯特凡(Sander Steffann)
16-10-19在13:15

#3 楼


RFC 4862为什么说“由于主机自动配置使用路由器通告的信息,所以路由器将需要通过其他方式进行配置。”


撰写该文档的人(并且它的前身是RFC 2462)几乎可以肯定有两种类型的设备。

在2000年代初期,一直在线的DSL /电缆连接的兴起,以及在家中拥有多台可以利用互联网连接的计算机的人数增加了。由于许多ISP仅向客户提供一个IP地址(至少不收取额外费用),因此我们看到使用带有NAT的“家庭路由器”将多台计算机隐藏在这种连接后的现象大大增加。 NAT允许“家庭路由器”向ISP隐藏其真实性质,就ISP而言,“家庭路由器”就像是一台主机。

这种用法起初只是被ISP所“容忍”的,但最终他们认为这并不是一件坏事,并开始向他们的客户赠送/销售“家用路由器”。结果,我们最终将大量此类设备安装在家庭和小型企业中。

直到最近,IETF才开始适当探索“家用路由器”和ISP的发展方式。服务他们应该在IPv6的上下文中表现。答案是“ WAN侧”接口的行为应像主机,而“ LAN侧”接口的行为应像常规路由器。由于没有NAT,因此需要一些其他详细信息来处理LAN端的地址。


关于Linux内核,默认情况下,确实在启用路由时会忽略RA,但是如果需要,可以忽略此行为。

评论


您没有提及如何覆盖。我的/ etc / network / interfaces文件中的sysctl -w net.ipv6.conf.eth0.accept_ra = 2后有以下内容,我认为这是启用RA的设置。

–tgunr
17年4月1日在15:26



是的,禁用了0,禁用了1是正常模式(为主机启用,但未启用路由器),并启用了2。

– Peter Green
17年9月12日在11:10