路由器是否应该使用SLAAC进行IPv6地址分配?


11

对于与IPv6有关的以下2个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上的内核文档:

  • 假定为主机行为。这意味着将发送路由器请求,并将路由器广告用于地址自动配置。
  • 仅当启用转发/proc/sys/net/ipv6/conf/all/forwarding)时,该设备才被视为ROUTER。这意味着将不发送任何路由器请求,并且路由器广告将被忽略。

事实证明,这种区别可以追溯到IPv6之前的版本。参见参数/proc/sys/net/ipv4/ip_forward

这个变量是特殊的,它的变化重置所有配置参数设置为默认状态(RFC1122主机,RFC1812的路由器)

Answers:


7

在RFC 7084中,它还声明:

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

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

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

这样可以确保您的路由器不仅在其WAN接口上接收地址,而且还接收在其内部LAN接口上也可以使用的前缀。


6

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

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

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

WAN端要求:

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


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

5

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

是的,禁用了0,禁用了1是正常模式(为主机启用,但未启用路由器),并启用了2。
彼得·格林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.