使用 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 指定前缀,也可以指定 BNG 上的 NDRA 池,从属性中 Framed-Ipv6-Pool 分配前缀。
当 CPE 收到 64 位前缀时,它会将其接口 ID 追加到提供的前缀,以形成一个全局路由的 128 位地址。
CPE 通过发送发往新地址的邻接方请求消息,验证全局地址是否是唯一的。如果有回复,则地址为重复地址。该过程会停止,需要操作员干预。
另请参阅
IPv6 邻接方发现协议概述
邻接方发现是 IPv6 协议套件中的一种协议,允许同一链路上的节点向邻居通告其存在并了解其邻接方的存在。邻接方发现基于 Internet 控制消息协议版本 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
and 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 个路由器通告消息生成 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 消息,将包含终止原因。