示例:配置在特定于源的多播模式下运行的数据 MDT 和提供程序隧道
此示例说明如何为在源特定组播 (SSM) 模式下运行的 draft-rosen 第 3 层组播 VPN 中连接到 VPN 路由和转发 (VRF) 实例的提供商边缘 (PE) 路由器配置数据组播分布树 (MDT)。该示例基于 RFC 4364 的 Junos OS 实施、 BGP/MPLS IP 虚拟专用网络 (VPN) 以及 IETF 互联网草案draft-rosen-vpn-mcast-07.txt的第 7 节: MPLS/BGP IP VPN 中的组播。
要求
准备工作:
确保路由设备支持组播隧道 (mt) 接口。
支持隧道的 PIC 最多支持 512 个组播隧道接口。默认和数据 MDT 都会计入此总数。默认 MDT 使用两个多播隧道接口(一个用于封装,一个用于解封装)。要使 M 系列或 T 系列路由器支持超过 512 个组播隧道接口,需要另一个支持隧道的 PIC。请参阅《组播协议用户指南》中的“隧道服务 PIC 和组播”和“在可用 PIC 之间平衡组播隧道接口的负载”。
确保 PE 路由器已配置为在提供商核心中以 SSM 模式运行的草稿 Rosen 第 3 层组播 VPN。
在这种类型的组播 VPN 中,PE 路由器通过发送 MDT 后续地址族标识符 (MDT-SAFI) BGP 网络层可达性信息 (NLRI) 通告来发现彼此。 表 1 中突出显示了主实例的关键配置语句。 表 2 中突出显示了 PE 路由器所连接的 VRF 实例的关键配置语句。有关完整的配置详细信息,请参阅《组播协议用户指南》中的“示例:为 Draft-Rosen 组播 VPN 配置特定于源的组播”。
概述
通过在 3 层 VPN 中使用数据 MDT,可以防止组播数据包不必要地泛洪到 VPN 组中的指定提供商边缘 (PE) 路由器。此选项主要用于第 3 层 VPN 组播网络中没有接收来自特定源的组播流量的 PE 路由器。
当直接连接到组播源(也称为 源 PE)的 PE 路由器收到超过配置阈值的第 3 层 VPN 组播流量时,将在连接到源站点的 PE 路由器与其远程 PE 路由器邻居之间建立新的数据 MDT 隧道。
只要源 PE 处于活动状态,源 PE 就会播发新数据 MDT 组。定期公告通过 VRF 的默认 MDT 发送。由于数据 MDT 公告是通过默认隧道发送的,因此所有 PE 路由器都会收到通知。
没有组播流量接收器的邻居缓存新数据 MDT 组的播发,但忽略新隧道。具有组播流量接收器的邻居缓存新数据 MDT 组的播发,并为新组发送 PIM 联接消息。
源 PE 使用新的数据 MDT 组封装 VRF 组播流量,并停止通过默认组播树的数据包流。如果组播流量级别回落到阈值以下,则数据 MDT 将自动拆除,流量流回默认组播树。
如果尚未加入新数据 MDT 组的 PE 路由器收到新接收方的 PIM 联接消息,其 (S,G) 流量已流经提供程序核心中的数据 MDT,则该 PE 路由器可以从其缓存中获取新的组地址,并可以立即加入数据 MDT,而无需等待最多 59 秒的下一个数据 MDT 播发。
默认情况下,自动创建数据 MDT 处于禁用状态。
以下各节总结了此示例和此示例的先决条件配置中使用的数据 MDT 配置语句:
在主实例中,PE 路由器的先决条件 draft-rosen PIM-SSM 组播配置包括直接支持您将在此示例中启用的数据 MDT 配置的语句。 表1 突出显示了其中一些陈述†。
表 1:数据 MDTS - 主实例中的关键先决条件 陈述
描述
[edit protocols] pim { interface (Protocols PIM) interface-name <options>; }
在 PE 路由器接口上启用 PIM 协议。
[edit protocols] bgp { group name { type internal; peer-as autonomous-system; neighbor address; family inet-mdt { signaling; } } }
[edit routing-options] autonomous-system autonomous-system;
在 VRF 实例中 PE 路由器之间的内部 BGP 全网状网络中,使 BGP 协议能够在第 3 层 VPN 中为 IPv4 流量传输 MDT-SAFI NLRI 信令消息。
[edit routing-options] multicast { ssm-groups [ ip-addresses ]; }
(可选)除了默认 SSM 组地址范围 232.0.0.0/8 之外,配置一个或多个要在提供商网络内部使用的 SSM 组。
注意:对于此示例,假设您之前指定了额外的 SSM 组地址范围 239.0.0.0/8。
†此表仅包含提供商核心中以 SSM 模式运行的 draft-rosen 组播 VPN 的部分 PE 路由器配置语句列表。有关此先决条件的完整配置信息,请参阅《组播协议用户指南》中的“示例:为 Draft-Rosen 组播 VPN 配置特定于源的组播”。
在 PE 路由器连接到的 VRF 实例(在
[edit routing-instances name]
层次结构级别)中,PE 路由器的先决条件 draft-rosen PIM-SSM 组播配置包括直接支持您将在此示例中启用的数据 MDT 配置的语句。 表2 突出显示了其中一些陈述‡。表 2:数据 MDT — VRF 实例中的关键先决条件 陈述
描述
[edit routing-instances name] instance-type vrf; vrf-target community;
创建一个 VRF 表 (instance-name.mdt.0),其中包含源自第 3 层 VPN 和发往第 3 层 VPN 的路由。
创建自动接受来自 .mdt.0 路由表的instance-name路由的 VRF 导出策略。 确保使用 inet-mdt 地址族进行正确的 PE 自动发现
您还必须为此类型的路由实例配置 接口 和
route-distinguisher
语句。[edit routing-instances name] protocols { pim { mvpn { family { inet | inet6 { autodiscovery { inet-mdt; } } } } } }
将 VPN 中的 PE 路由器配置为使用 MDT-SAFI NLRI 自动发现其他 PE 路由器:
[edit routing-instances name] provider-tunnelfamily inet | inet6{ pim-ssm { group-address (Routing Instances) address; } }
配置 PIM-SSM 提供程序隧道默认 MDT 组地址。
注意:对于此示例,假定您之前为组地址为 239.1.1.1 的 VPN 实例 ce1 配置 PIM-SSM 提供程序隧道默认 MDT。
要验证 PE 路由器连接到的 VRF 实例的默认 MDT 隧道的配置,请使用 show pim mvpn 操作模式命令。
‡此表仅包含提供商核心中以 SSM 模式运行的 draft-rosen 组播 VPN 的部分 PE 路由器配置语句列表。有关此先决条件的完整配置信息,请参阅《组播协议用户指南》中的“示例:为 Draft-Rosen 组播 VPN 配置特定于源的组播”。
对于 rosen 7 MVPN(具有在 SSM 模式下运行的提供商隧道的草稿 Rosen 组播 VPN),您可以通过在与组播组关联的 VRF 实例的 PIM-SSM 提供程序隧道配置下包含语句,为隧道组播组配置数据 MDT 创建。由于数据 MDT 特定于 VPN 和 VRF 路由实例,因此无法在主路由实例中配置 MDT 语句。 表 3 汇总了 PIM-SSM 提供程序隧道的数据 MDT 配置语句。
表 3:Draft-Rosen MVPN 中 PIM-SSM 提供程序隧道的数据 MDT 陈述
描述
[edit routing-instances name] provider-tunnel family inet | inet6{{ mdt { group-range multicast-prefix; } }
配置需要在 PE 路由器上的 VRF 实例中创建新数据 MDT 时使用的 IP 组范围。此地址范围不能与路由器上任何其他 VPN 的默认 MDT 地址重叠。如果配置重叠组范围,则配置提交将失败。
此语句没有默认值。如果未将 设置为 multicast-prefix 有效的非保留组播地址范围,则不会为此 VRF 实例创建任何数据 MDT。
注意:对于此示例,假定您之前将 PE 路由器配置为在需要启动新数据 MDT 时自动从 239.10.10.0/24 范围选择一个地址。
[edit routing-instances name] provider-tunnel family inet | inet6{{ mdt { tunnel-limit limit; } }
配置可以为 VRF 实例创建的最大数据 MDT 数。
默认值为 0。如果未将 配置为 limit 非零值,则不会为此 VRF 实例创建任何数据 MDT。
VRF 实例的有效范围为 0 到 1024。PE 路由器上所有 VRF 实例中的所有数据 MDT 限制为 8000 个隧道。
如果达到配置的最大数据 MDT 隧道数,则不会为 VRF 实例创建新隧道,并且超过配置阈值的流量将在默认 MDT 上发送。
注意:对于此示例,您将 VRF 实例的数据 MDT 数限制为 10。
[edit routing-instances name] provider-tunnel family inet | inet6{{ mdt { threshold { group group-address { source source-address { rate threshold-rate; } } } } }
为默认 MDT 的多播源配置数据速率。当 VRF 实例中的源流量超过配置的数据速率时,将创建一个新隧道。
群 group-address— 与 PE 路由器连接到的 VRF 实例对应的默认 MDT 的组播组地址。显式 group-address (指定地址的所有 32 位)或前缀(指定的网络地址和前缀长度)。这通常是特定类型组播流量的已知地址。
源 source-address— 指定默认 MDT 组中一个或多个多组播源的单播 IP 前缀。
率 threshold-rate— 组播源的数据速率,用于触发数据 MDT 的自动创建。数据速率以千比特每秒 (Kbps) 为单位指定。
默认值 threshold-rate 为每秒 10 千比特 (Kbps)。
注意:对于此示例,您将配置以下数据 MDT 阈值:
应用阈值限制的组播组地址或地址范围 - 224.0.9.0/32
应用阈值限制的组播源地址或地址范围 - 10.1.1.2/32
数据速率 — 10 Kbps
当流量停止或速率降至阈值以下时,源 PE 路由器将切换回默认 MDT。
配置
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 Junos OS CLI 用户指南。
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set routing-instances ce1 provider-tunnel family inet mdt group-range 239.10.10.0/24 set routing-instances ce1 provider-tunnel family inet mdt tunnel-limit 10 set routing-instances ce1 provider-tunnel family inet mdt threshold group 224.0.9.0/32 source 10.1.1.2/32 rate 10 set protocols pim traceoptions file trace-pim-mdt set protocols pim traceoptions file files 5 set protocols pim traceoptions file size 1m set protocols pim traceoptions file world-readable set protocols pim traceoptions flag mdt detail
在连接到 VRF 的本地 PE 路由器上启用数据 MDT 和 PIM-SSM 提供程序隧道
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要在 PIM-SSM 组播 VPN 中配置连接到 VRF 实例 ce1 的本地 PE 路由器,以便为该 VRF 启动新数据 MDT 和提供程序隧道,请执行以下操作:
启用在 SSM 模式下运行的提供程序隧道的配置。
[edit] user@host# edit routing-instances ce1 provider-tunnel
为新数据 MDT 配置组播 IP 地址的范围。
[edit routing-instances ce1 provider-tunnel] user@host# set mdt group-range 239.10.10.0/24
为此 VRF 实例配置数据 MDT 的最大数量。
[edit routing-instances ce1 provider-tunnel] user@host# set mdt tunnel-limit 10
为多播组和源配置数据 MDT 创建阈值。
[edit routing-instances ce1 provider-tunnel] user@host# set mdt threshold group 224.0.9.0/32 source 10.1.1.2/32 rate 10
如果完成设备配置,请提交配置。
[edit] user@host# commit
结果
通过从配置模式输入 show routing-instances
命令,确认为 PIM-SSM 提供程序隧道配置数据 MDT。如果输出未显示预期的配置,请重复此过程中的说明以更正配置。
[edit] user@host# show routing-instances ce1 { instance-type vrf; vrf-target target:100:1; ... provider-tunnel { pim-ssm { group-address 239.1.1.1; } mdt { threshold { group 224.0.9.0/32 { source 10.1.1.2/32 { rate 10; } } } tunnel-limit 10; group-range 239.10.10.0/24; } } protocols { ... pim { mvpn { family { inet { autodiscovery { inet-mdt; } } } } } } } }
show routing-instances
上面的命令输出未显示提供程序核心中以 SSM 模式运行的草稿 Rosen MVPN 中 VRF 实例的完整配置。
(可选)为本地 PE 路由器上的组播隧道接口启用详细跟踪信息的日志记录
分步过程
要为本地 PE 路由器上的所有组播隧道接口启用详细跟踪信息日志记录,请执行以下操作:
启用 PIM 跟踪选项的配置。
[edit] user@host# set protocols pim traceoptions
配置跟踪文件名、跟踪文件的最大数量、每个跟踪文件的最大大小以及文件访问类型。
[edit protocols pim traceoptions] set file trace-pim-mdt set file files 5 set file size 1m set file world-readable
指定记录与组播数据隧道操作相关的消息。
[edit protocols pim traceoptions] set flag mdt detail
如果完成设备配置,请提交配置。
[edit] user@host# commit
结果
通过从配置模式输入 show protocols
命令来确认组播隧道日志记录的配置。如果输出未显示预期的配置,请重复此过程中的说明以更正配置。
[edit] user@host# show protocols pim { traceoptions { file trace-pim-mdt size 1m files 5 world-readable; flag mdt detail; } interface lo0.0; ... }
验证
要验证本地 PE 路由器是否正确管理数据 MDT 和 PIM-SSM 提供程序隧道,请执行以下操作:
监视为多播组启动的数据 MDT
目的
对于 VRF 实例 ce1,请检查本地 PE 路由器建立的默认 MDT 的传入和传出隧道,并监控本地 PE 路由器启动的数据 MDT。
行动
使用 显示 pim mdt 实例 ce1 详细 操作模式命令。
对于默认 MDT,该命令显示有关本地 PE 路由器使用默认 MDT 为组播组中的特定组播源地址建立的传入和传出隧道的详细信息,并将隧道模式标识为 PIM-SSM。
对于由本地 PE 路由器启动的数据 MDT,命令使用数据 MDT、为数据 MDT 隧道设置的组播隧道逻辑接口、配置的阈值速率和当前统计信息来标识组播源。
监视组播组中的所有 PE 路由器缓存的数据 MDT 组地址
目的
对于 VRF 实例 ce1,请检查参与 VRF 的所有 PE 路由器缓存的数据 MDT 组地址。
行动
使用 show pim mdt data-mdt-joins 实例 ce1 操作模式命令。命令输出显示从参与指定 VRF 实例的所有 PE 路由器接收的 MDT 联接 TLV 数据包缓存的信息,包括每个条目的当前超时值。