示例:配置管理范围
了解多播管理范围
您可以使用组播范围,通过将组播流量配置为管理定义的拓扑区域来限制组播流量。组播范围控制组播消息的传播,包括上游发送到源的组播组联接消息和数据转发下游。范围可以缓解稀缺资源(如带宽)的压力,并改善隐私或缩放属性。
IP 组播实施可以通过使用 IP 报头中的生存时间 (TTL) 字段来实现某种程度的作用域。然而,TTL 范围已被证明难以可靠地实现,并且生成的方案通常很复杂且难以理解。
管理作用域 IP 组播为组播范围提供了更清晰、更简单的语义。寻址到管理范围的组播地址的数据包不会跨越配置的管理边界。管理范围的多播地址是本地分配的,因此不需要跨管理边界是唯一的。
管理作用域 IP 版本 4 (IPv4) 组播地址空间的范围是从 239.0.0.0 到 239.255.255.255。
IPv4 管理作用域组播空间的结构松散地基于 RFC 1884 IP 版本 6 寻址体系结构中所述的 IP 版本 6 (IPv6) 寻址体系结构。
有两个众所周知的作用域:
IPv4 本地作用域 — 此作用域包括 239.255.0.0/16 范围内的地址。局部作用域是最小封闭作用域,不可进一步分割。尽管本地范围的确切范围取决于站点,但本地范围区域不得跨越任何其他范围边界,并且必须完全包含在任何更大的范围内或等于任何更大的范围。如果作用域区域在某个区域中重叠,则重叠区域必须在本地作用域内。
IPv4 组织本地作用域 — 此作用域包括 239.192.0.0/14。它是组织在定义供私人使用的范围时分配子范围的空间。
范围 239.0.0.0/10、239.64.0.0/10 和 239.128.0.0/10 未分配,可用于扩展此空间。
IPv4 组播空间中已存在另外两个作用域类:静态分配的链路本地作用域 (224.0.0.0/24) 和静态全局作用域分配(包含各种地址)。
所有作用域本质上都是双向的,因为加入消息和数据转发在作用域接口上双向控制。
您可以通过创建与一组路由设备接口和一个地址范围关联的命名作用域,或者通过引用指定接口并将地址范围配置为一系列筛选器的作用域策略来配置组播作用域。不能将这两种方法组合使用(对于包含这两种方法的配置,提交操作将失败)。这些方法的要求略有不同,并导致命令的 show multicast scope
输出不同。
IP 组播网络中必须避免路由环路。由于组播路由器必须为每个下游分支复制数据包,因此环路数据包不仅无法到达目的地,而且环路的每次传递都会增加环路数据包的数量,最终使网络不堪重负。
范围限制可用于转发组播数据包的路由器和接口。范围可以使用 IP 数据包标头中的 TTL 字段,但 TTL 范围取决于管理员是否全面了解网络拓扑。此拓扑可能会随着链路故障和恢复而更改,从而使 TTL 范围成为组播的糟糕解决方案。
如 RFC 2365 中所述,组播范围是管理性的,因为组播地址范围是为确定范围而保留的。边界处的路由器必须能够过滤组播数据包,并确保数据包不会偏离既定限制。
管理作用域比 TTL 作用域好得多,但在许多情况下,管理作用域数据包的丢弃仍由网络管理员决定。例如,组播地址范围 239/8 在 RFC 2365 中定义为管理范围,使用此范围的数据包不得转发到网络“边界”(通常是路由域)之外。但只有网络管理员知道边界路由器的位置,并且可以正确实现范围界定。
单播路由协议使用的组播组(如所有 OSPF 路由器的 224.0.0.5)仅在管理范围内针对该 LAN。此范围允许在运行 OSPF 的每个 LAN 上使用相同的组播地址而不会发生冲突。
参见
示例:为多播范围创建命名作用域
此示例演示如何使用四个范围配置多播范围: 本地、 组织、 工程和 市场营销。
要求
准备工作:
配置隧道接口。请参阅 Junos OS 网络接口库了解路由设备。
配置内部网关协议或静态路由。请参阅 Junos OS 路由协议库了解路由设备。
概述
本地作用域在 GRE 隧道接口上配置。组织范围在 GRE 隧道接口和 SONET/SDH 接口上配置。工程范围配置在一个 IP-IP 隧道接口和两个 SONET/SDH 接口上。营销范围配置在一个 GRE 隧道接口和两个 SONET/SDH 接口上。Junos OS 可以限定任何用户可配置的 IPv6 或 IPv4 组的范围。
若要通过定义命名作用域来配置组播作用域,必须指定作用域的名称、要在其上配置作用域的路由设备接口集以及作用域的地址范围。
语句指定的 prefix
前缀对于每个 scope
语句必须是唯一的。如果多个作用域包含相同的前缀,则只有最后一个作用域适用于接口。如果需要在多个接口上限定同一前缀的作用域,请在语句中 interface
为单个 scope
语句列出所有前缀。
使用命名作用域配置多播作用域时,所有作用域边界都必须包括 本地 作用域。如果未配置此作用域,则会自动将其添加到所有作用域接口上。 本地 范围将组播组 239.255.0.0/16 的使用限制为连接的 LAN。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
set routing-options multicast scope local prefix fe00::239.255.0.0/128 set routing-options multicast scope local interface gr-2/1/0.0 set routing-options multicast scope organization prefix 239.192.0.0/14 set routing-options multicast scope organization interface gr-2/1/0.0 set routing-options multicast scope organization interface so-0/0/0.0 set routing-options multicast scope engineering prefix 239.255.255.0/24 set routing-options multicast scope engineering interface ip-2/1/0.0 set routing-options multicast scope engineering interface so-0/0/1.0 set routing-options multicast scope engineering interface so-0/0/2.0 set routing-options multicast scope marketing prefix 239.255.254.0/24 set routing-options multicast scope marketing interface gr-2/1/0.0 set routing-options multicast scope marketing interface so-0/0/2.0 set routing-options multicast scope marketing interface so-1/0/0.0
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
配置本地范围。
[edit routing-options multicast] user@host# set scope local interface gr-2/1/0 user@host# set scope localprefix fe00::239.255.0.0/128
配置组织范围。
[edit routing-options multicast] user@host# set scope organization interface [ gr-2/1/0 so-0/0/0 ] user@host# set scope organization prefix 239.192.0.0/14
配置工程范围。
[edit routing-options multicast] user@host# set scope engineering interface [ ip-2/1/0 so-0/0/1 so-0/0/2 ] user@host# set scope engineering prefix 239.255.255.0/24
配置营销范围。
[edit routing-options multicast] user@host# set scope marketing interface [ gr-2/1/0 so-0/0/2 so-1/0/0 ] user@host# set scope marketing prefix 239.255.254.0/24
如果完成设备配置,请提交配置。
user@host# commit
结果
输入命令确认 show routing-options
您的配置。
user@host# show routing-options multicast { scope local { interface gr-2/1/0; prefix fe00::239.255.0.0/128; } scope organization { interface [ gr-2/1/0 so-0/0/0 ]; prefix 239.192.0.0/14; } scope engineering { interface [ ip-2/1/0 so-0/0/1 so-0/0/2 ]; prefix 239.255.255.0/24; } scope marketing { interface [ gr-2/1/0 so-0/0/2 so-1/0/0 ]; prefix 239.255.254.0/24; }
验证
要验证组范围是否有效,请发出 show multicast scope
以下命令:
user@host> show multicast scope Resolve Scope name Group prefix Interface Rejects local fe00::239.255.0.0/128 gr-2/1/00 organization 239.192.0.0/14 gr-2/1/0 so-0/0/00 engineering 239.255.255.0/24 ip-2/1/0 so-0/0/1 so-0/0/20 marketing 239.255.254.0/24 gr-2/1/0 so-0/0/2 so-1/0/00
使用命名作用域配置作用域时, show multicast scope
操作模式命令将显示已定义作用域、前缀和接口的名称。
示例:使用范围策略进行多播范围
此示例说明如何配置名为 allow-auto-rp-on-backbone 的组播作用域策略,允许面向主干的接口上自动 RP 组 224.0.1.39/32 和 224.0.1.40/32 的数据包,并拒绝 224.0.1.0/24 和 239.0.0.0/8 地址范围中的所有其他地址。
要求
准备工作:
配置内部网关协议或静态路由。请参阅 Junos OS 路由协议库了解路由设备。
概述
必须在层次结构级别正确 [edit policy-options]
配置每个引用的策略,指定要在其上配置范围的路由设备接口集,并将范围的地址范围定义为一系列路由过滤器。组播作用域策略仅支持 接口、 路由过滤器和 前缀列表 匹配条件。所有其他配置的匹配条件都将被忽略。支持的唯一操作包括 接受、 拒绝以及策略流操作 下一任期 和 下一个策略。 拒绝 操作意味着在配置的接口上双向抑制加入和组播转发。 接受 操作允许在接口上进行双向联接和组播转发。默认情况下,作用域策略适用于所有接口。默认操作为 “接受”。
使用作用域策略配置的组播作用域在某些方面不同于使用命名作用域(使用语句) scope
配置的作用域:
不能将作用域策略应用于特定路由实例,因为所有作用域策略都适用于所有路由实例。相比之下,命名作用域确实单独应用于特定的路由实例。
与使用命名作用域限定作用域相反,使用作用域策略限定作用域不会自动在作用域边界添加 本地 作用域。必须显式配置本地作用域边界。 本地 范围将组播组 239.255.0.0/16 的使用限制为连接的 LAN。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
set policy-options policy-statement allow-auto-rp-on-backbone term allow-auto-rp from interface so-0/0/0.0 set policy-options policy-statement allow-auto-rp-on-backbone term allow-auto-rp from interface so-0/0/1.0 set policy-options policy-statement allow-auto-rp-on-backbone term allow-auto-rp from route-filter 224.0.1.39/32 exact set policy-options policy-statement allow-auto-rp-on-backbone term allow-auto-rp from route-filter 224.0.1.40/32 exact set policy-options policy-statement allow-auto-rp-on-backbone term allow-auto-rp then accept set policy-options policy-statement allow-auto-rp-on-backbone term reject-these from route-filter 224.0.1.0/24 orlonger set policy-options policy-statement allow-auto-rp-on-backbone term reject-these from route-filter 239.0.0.0/8 orlonger set policy-options policy-statement allow-auto-rp-on-backbone term reject-these then reject set routing-options multicast scope-policy allow-auto-rp-on-backbone
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
定义允许哪些数据包。
[edit policy-options policy-statement allow-auto-rp-on-backbone] user@host# set term allow-auto-rp from interface so-0/0/0.0 user@host# set term allow-auto-rp from interface so-0/0/1.0 user@host# set term allow-auto-rp from route-filter 224.0.1.39/32 exact user@host# set term allow-auto-rp from route-filter 224.0.1.40/32 exact user@host# set term allow-auto-rp then accept
定义不允许哪些数据包。
[edit policy-options policy-statement allow-auto-rp-on-backbone] user@host# set term reject-these from route-filter 224.0.1.0/24 orlonger user@host# set term reject-these from route-filter 239.0.0.0/8 orlonger user@host# set term reject-these then reject
应用策略。
[edit routing-options multicast] user@host# set scope-policy allow-auto-rp-on-backbone
如果完成设备配置,请提交配置。
user@host# commit
结果
输入show policy-options
show routing-options
和命令确认您的配置。
user@host# show policy-options policy-statement allow-auto-rp-on-backbone { term allow-auto-rp { from { /* backbone-facing interfaces */ interface [ so-0/0/0.0 so-0/0/1.0 ]; route-filter 224.0.1.39/32 exact; route-filter 224.0.1.40/32 exact; } then { accept; } } term reject-these { from { route-filter 224.0.1.0/24 orlonger; route-filter 239.0.0.0/8 orlonger; } then reject; } }
user@host# show routing-options multicast { scope-policy allow-auto-rp-on-backbone; }
验证
要验证作用域策略是否有效,请发出 show multicast scope
配置模式命令:
user@host> show multicast scope Scope policy: [ allow-auto-rp-on-backbone ]
使用作用域策略配置多播范围时, show multicast scope
操作模式命令仅显示作用域策略的名称。
示例:配置面向外部的 PIM 边界路由器
在此示例中,您将在 [编辑路由选项组播] 层次结构级别添加 scope 语句,以防止自动 RP 流量“泄漏”到 PIM 域或流出 PIM 域。下面定义的两个作用域(自动 rp-39 和自动 rp-40)用于特定地址。作用域范围语句定义组范围,从而防止组流量泄漏。
routing-options { multicast { scope auto-rp-39 { prefix 224.0.1.39/32; interface t1-0/0/0.0; } scope auto-rp-40 { prefix 224.0.1.40/32; interface t1-0/0/0.0; } scope scoped-range { prefix 239.0.0.0/8; interface t1-0/0/0.0; } } }