使用 NDRA 的 IPv6 WAN 链路寻址
使用 NDRA 提供 IPv6 WAN 链路寻址概述
在双栈网络中,NDRA(邻居发现路由器通告)提供了一种轻量级地址分配方法,用于自动配置 CPE WAN 链路上的全局 IPv6 地址。CPE 设备可以通过将 IPv6CP 协商的接口 ID 和通过 NDRA 获取的前缀相结合,构建自己的 IPv6 全局地址。
在NDRA向CPE提供IPv6地址信息之前,您需要先获取CPE WAN链路的链路本地地址。NDRA 分两个阶段提供地址分配:
链路本地地址分配,用于与 BNG 的本地连接
全球连接的全局地址分配
具体流程如下:
在 IPv6CP 协商期间,为了在 BNG 和 CPE 之间建立 PPPoE 链路,系统会为 CPE 协商一个接口标识符。
CPE 通过在接口标识符前附加 IPv6 链路本地前缀 (FE80::/10) 来创建链路本地地址。
注意:当接口 ID 为 0 时(例如对于 Windows 7 客户端),PPP 使用订阅者的会话 ID 代替接口 ID。
CPE 现在与 BNG 具有 IPv6 连接,并且可以使用 NDRA 获取其全局 IPv6 地址。
CPE 向 BNG 发送路由器请求消息。
BNG 响应的是一条路由器播发消息,其中包含长度为 /64 的 IPv6 前缀。
此前缀可以直接来自在 BNG 上配置的本地 NDRA 地址池。
如果使用的是 AAA,则 RADIUS 服务器可以在属性中 Framed-Ipv6-Prefix 指定前缀,也可以在属性中 Framed-Ipv6-Pool 分配前缀的 BNG 上指定 NDRA 池。
当 CPE 收到 64 位前缀时,会将其接口 ID 附加到提供的前缀上,以形成全局可路由的 128 位地址。
CPE 通过向新地址发送发往该地址的邻居请求消息来验证全局地址是否唯一。如果有回复,则地址是重复的。该过程停止,需要操作员干预。
另见
IPv6 邻居发现协议概述
邻居发现是 IPv6 协议套件中的一种协议,它允许同一链路上的节点向邻居通告其存在并了解其邻居的存在。邻接方发现基于互联网控制消息协议版本 6 (ICMPv6) 构建。它可替换以下 IPv4 协议:路由器发现 (RDISC)、地址解析协议 (ARP) 和 ICMPv4 重定向。
邻接方发现使用路由器通告消息来检测邻接方、通告 IPv6 前缀、协助地址调配以及共享链路参数(如 MTU、跳数限制、播发间隔和生存期)。
邻接方发现消息
邻接方发现使用以下消息类型:
路由器通告 (RA) — 为通告路由器的存在、通告前缀、协助地址配置以及共享其他链路信息(如 MTU 大小和跳数限制)而发送的消息。链路上的 IPv6 节点可以使用此信息为自己配置 IPv6 地址和路由信息(如默认网关)。
路由器请求 (RS) — IPv6 节点联机时发送的消息,用于从路由器请求即时路由器通告。从 Junos OS 18.1R1 版开始,非默认路由实例支持著名的 IPv6 全路由器组播地址 FF02::2。如果没有这种支持,IPv6 路由器请求数据包将被丢弃在非默认路由实例中。
邻接方请求 (NS) — 用于重复地址检测和测试邻接方可访问性的消息。
主机可以通过向新地址发送发往邻居请求消息来验证其地址是否唯一。如果主机收到邻居播发作为回复,则地址为重复地址。
邻接方通告 (NA) — 用于重复地址检测和测试邻接方可访问性的消息。发送邻居播发是为了响应邻居请求消息。
您可以指定在路由器播发中发送的信息。
动态路由器通告配置概述
在路由器接口静态配置的网络部署中,您可能只需要在可能运行路由器通告协议的少数接口上配置该协议。但是,在用户接入网络中,路由器通告协议的静态配置变得不切实际,因为可能需要路由器通告协议的接口数量大幅增加。此外,在动态环境中部署服务需要在创建接口时对其进行动态修改。
订阅者访问支持在 [edit dynamic-profiles profile-name protocols]
层次结构级别配置路由器通告协议。通过在动态配置文件中指定路由器通告协议语句,可在用户使用特定接入技术(例如 DHCP)连接到接口时动态应用路由器通告配置,使用户能够访问运营商(组播)网络。
要进行最低配置,路由器通告协议要求您在层次结构级别包含 router-advertisement
语句 [edit dynamic-profiles profile-name protocols]
和 interface
语句以及 $junos-interface-name
动态变量。所有其他语句都是可选的。
用于层[edit dynamic-profiles profile-name protocols]
级路由器通告协议配置的语句在功能上与用于静态路由器通告协议配置的语句相同,但interface
prefix
和语句除外,它们使用动态变量。
另见
配置向 IPv6 邻接方未经请求的路由器播发的间隔范围
RFC 4861,IP 版本 6 的邻居发现 (IPv6) 定义了邻居发现协议,IPv6 节点使用该协议来确定邻居的链路层地址、跟踪邻居的可访问性以及发现可以代表主机转发数据包的路由器。路由器通过发送路由器通告消息来宣传其在网络中的存在状态及其特性。主机通过请求路由器立即响应路由器通告消息来发送路由器请求消息以发现路由器。路由器通告会定期发送(在接口的整个生命周期内),也会响应从主机收到的路由器请求。
路由器将所有路由器通告之间的间隔设置为由发送通告消息的接口的语句指定的 max-advertisement-interval
值。默认间隔为几分钟,即 600 秒,最多可配置为 1800 秒。
前几个播发的时间间隔越短,路由器就越有可能在首次可用时被快速发现。因此,RFC 4861 仅针对前三个未经请求的路由器通告,要求路由器使用不超过 16 秒的时间间隔。如果路由器选择较大的间隔,则对于前三个未经请求的路由器播发,该间隔会自动设置为 16 秒。
在某些客户场景中,16 秒对于初始路由器播发来说过长,可能会导致建立订阅者会话时出现不可接受的延迟。如果您希望路由器更积极地播发以加快发现速度,则可以将发送路由器通告的接口的语句显式配置 max-advertisement-interval
为小于 16 秒。
但是,此语句设置接口上发送的所有播发之间的间隔,而不仅仅是前三个未经请求的播发之间的间隔。这意味着,当您配置较低范围时,所有路由器播发消息都将以较短的时间间隔发送。一些用户可能会觉得这是不可取的,因为他们更喜欢快速发现路由器,但一旦知道路由器,他们希望以较慢的速度发送广告,在接口期间充当激活,而不会产生不必要的流量。
从 Junos OS 18.2R1 版开始,您可以配置全局覆盖选项,以设置路由器从中随机选择仅所有接口的初始三个路由器播发的时间间隔的范围。随机间隔选择可降低来自一个路由器的消息与另一个路由器的消息同步的可能性。发送每个播发后,将选择一个新的随机间隔值,以便间隔在连续消息之间变化。每个动态接口的后续路由器通告消息之间的间隔范围仍使用 max-advertisement-interval
动态配置文件中的语句进行配置。
要在动态配置文件中配置适用于动态接口上的路由器播发消息的时间间隔,请执行以下操作:
配置间隔。
[edit dynamic-profiles protocols router-advertisement interface interface-name] user@host# set max-advertisement-interval seconds
要仅在所有接口上为最初的三条通告消息配置间隔范围:
请考虑以下示例,其中仅为动态接口上的路由器播发消息配置间隔。由于配置的间隔值大于 16,因此前三个未经请求的播发的间隔始终设置为 16 秒。对于所有后续未经请求的通告,路由器通告每隔 60 秒发送一次。
[edit dynamic-profiles protocols router-advertisement interface $junos-interface-name] user@host# set max-advertisement-interval 60
现在考虑以下示例,其中为所有接口上的前三条未经请求的路由器通告消息全局配置间隔。所有后续未经请求的播发均按动态接口进行配置。
[edit system services subscriber-management overrides] user@host# set ra-initial-interval-min 3 user@host# set ra-initial-interval-max 9 [edit dynamic-profiles protocols router-advertisement interface $junos-interface-name] user@host# set max-advertisement-interval 300
在这种情况下,路由器会为所有接口上的前三条路由器通告消息生成一个随机间隔,间隔介于 3 秒到 9 秒(含)之间。路由器以 300 秒的间隔发送所有后续通告。
获取 NDRA IPv6 前缀的方法
您可以通过以下方法之一设置 BNG 以选择用于 NDRA 的 IPv6 前缀:
外部来源,如 AAA RADIUS 服务器。
从在 BNG 上配置的本地 NDRA 前缀池中动态分配
使用 AAA RADIUS 服务器获取 NDRA 的 IPv6 前缀
当 BNG 需要获取 NDRA 的前缀时,它将使用它在从 RADIUS 服务器的 Access-Accept 消息中接收的以下 RADIUS 属性之一中的值:
Framed-IPv6-Prefix—该属性包含 IPv6 前缀,BNG 可在路由器通告消息中将其发送到 CPE。
Framed-IPv6-Pool- 该属性包含在 BNG 上配置的 NDRA 池的名称,BNG 可以从中选择要包含在路由器播发中的前缀。
另见
NDRA 的重复前缀保护
如果您使用 AAA 为 NDRA 提供 IPv6 前缀,则可以为 NDRA 启用重复前缀保护。如果启用,BNG 将检查从外部服务器接收的以下属性:
Framed-IPv6-Prefix
Framed-IPv6-Pool
然后,路由器将执行下列操作之一:
如果前缀与地址池中的前缀重叠,则从池中获取前缀(如果可用)。
如果前缀已在使用中,则会因不可用而被拒绝。
如果从外部服务器请求的前缀长度与池的前缀长度不完全匹配,则身份验证请求将被拒绝。如果配置了,则 Acct-Stop 消息将包含终止原因。
另见
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。