示例:配置任意源草稿罗森 6 组播 VPN
了解任意源组播
任意源组播 (ASM) 是一种多播形式,在该形式中,同一组中可以有多个发送方,这与指定单个特定源的特定于源的多播相反。原始组播规范 RFC 1112 同时支持 ASM 多对多模型和 SSM 一对多模型。对于 ASM,(S,G) 源组对被指定为 (*,G),这意味着组播组流量可以由多个源提供。
只要有感兴趣的侦听器,ASM 网络都必须能够确定特定组播组的所有源的位置,无论源可能位于网络中的什么位置。在 ASM 中, 源发现 的关键功能是网络本身的必要功能。
在有许多来源来来去去的环境中,例如对于视频会议服务,ASM 是合适的。组播源发现似乎是一个简单的过程,但在稀疏模式下并非如此。
在 PIM 密集模式下,将流量泛洪到网络中的每个路由器非常简单,以便每个路由器学习该组播组的内容的源地址。
但是,在 PIM 稀疏模式量泛洪不是一个可行的选项,因为它会带来与可扩展性和网络资源使用相关的问题。
参见
示例:为草稿罗森 VPN 配置任意源组播
此示例说明如何使用具有客户 RP 和提供商 RP 的双 PIM 配置来配置任意源组播 VPN (MVPN),以及如何映射从客户到提供商的组播路由(称为 draft-rosen)。Junos OS 符合 RFC 4364 和互联网草案 draft-rosen-vpn-mcast-07.txt,MPLS/BGP VPN 中的组播。
要求
准备工作:
配置路由器接口。请参阅 Junos OS 网络接口库了解路由设备。
配置内部网关协议或静态路由。请参阅 Junos OS 路由协议库了解路由设备。
配置 VPN。请参阅 Junos OS VPN 路由设备库。
配置 VPN 导入和 VPN 导出策略。请参阅路由设备 Junos OS VPN 库中的 VPN 中 PE 路由器的 VRF 表配置策略。
确保路由设备支持组播隧道 (mt) 接口,用于将数据包封装和解封装到隧道中。请参阅 隧道服务 PIC 以及可用 PIC 之间的组播 和 负载平衡组播隧道接口。
要使组播在草稿 Rosen 第 3 层 VPN 上正常工作,以下每个路由器都必须具有隧道接口:
每个提供商边缘 (PE) 路由器。
充当 RP 的任何提供程序 (P) 路由器。
充当源灾难恢复或 RP 的任何客户边缘 (CE) 路由器。接收方的指定路由器不需要隧道服务 PIC。
概述
可以将草稿罗森组播虚拟专用网络 (MVPN) 配置为支持在任意源组播 (ASM) 模式或特定于源的组播 (SSM) 模式下运行的服务提供商隧道。
在此示例中,术语组 播第 3 层 VPN 用于指草稿 Rosen MVPN。
此示例包括以下设置。
接口 lo0.1 — 在 PE 路由器的环路接口上配置附加设备。对于 lo0.1 接口,请从 VPN 地址空间分配一个地址。将 lo0.1 接口添加到配置中的以下位置:
VRF 路由实例
VRF 路由实例中的 PIM
用于在 VPN 地址空间中通告接口的 IGP 和 BGP 策略
在组播第 3 层 VPN 中,组播 PE 路由器必须使用主环路地址(或路由器 ID)与其内部 BGP 对等方进行会话。如果 PE 路由器使用路由反射器,并且下一跃点配置为 自身跃点,则基于 VPN 的第 3 层组播将不起作用,因为 PIM 无法将远程 PE 后面的组播源的上游接口信息传输到网络核心。组播第 3 层 VPN 要求 VPN 路由的 BGP 下一跃点地址与环路 VRF 实例地址的 BGP 下一跃点地址匹配。
协议 PIM 接口 — 配置每个提供商路由器与 PE 路由器之间的接口。在所有客户边缘路由器上,将此语句包含在面向作为 RP 的提供商路由器的接口上。
协议 PIM 模式稀疏 — 在所有 PE 路由器的 lo0 接口上启用 PIM 稀疏模式。您可以配置该特定接口,也可以使用该
interface all
语句配置所有接口。在客户边缘路由器上,您可以配置稀疏模式或稀疏密集模式。协议 PIM RP 本地 — 在充当 RP 的所有路由器上,配置本地 lo0 接口的地址。在此示例中,P 路由器充当 RP 路由器。
协议 pim rp 静态 — 在所有 PE 和 客户边缘 路由器上,配置充当 RP 的路由器的地址。
可以将 PE 路由器配置为 VPN 客户 RP (C-RP) 路由器。PE 路由器也可以充当 DR。这种类型的 PE 配置可以简化组播 VPN 的客户 DR 和 VPN C-RP 的配置。此示例不讨论将 PE 用作 VPN C-RP。
图 1 显示了客户边缘的组播连接。在图中,CE2 是 RP 路由器。但是,RP 路由器可以位于客户网络中的任何位置。
图 1:客户边缘路由器 上的组播连接协议 PIM 版本 2 — 在所有 PE 路由器和客户边缘路由器的 lo0 接口上启用 PIM 版本 2。您可以配置该特定接口,也可以使用该
interface all
语句配置所有接口。组地址 — 在路由实例中,为 PE 路由器上的 VPN 配置组播连接。在面向充当 RP 的路由器的接口上配置 VPN 组地址。
PE 路由器上的 VPN 路由和转发 (VRF) 实例中的 PIM 配置需要与客户边缘路由器上的主 PIM 实例匹配。因此,PE 路由器包含一个主 PIM 实例(用于与提供商核心通信)和 VRF 实例(用于与客户边缘路由器通信)。
属于同一 VPN 的 VRF 实例共享相同的 VPN 组地址。例如,包含支持组播的路由实例 VPN-A 的所有 PE 路由器共享相同的 VPN 组地址配置。 在图 2 中,共享 VPN 组地址配置为 239.1.1.1。
图 2:VPN 的组播连接路由实例 instance-name 协议 PIM RIB 组 — 将路由组添加到 VPN 的 VRF 实例。
路由选项 RIB 组 — 配置组播路由组。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
PE1
set interfaces lo0 unit 0 family inet address 192.168.27.13/32 primary set interfaces lo0 unit 0 family inet address 127.0.0.1/32 set interfaces lo0 unit 1 family inet address 10.10.47.101/32 set protocols pim rp static address 10.255.71.47 set protocols pim interface fxp0.0 disable set protocols pim interface all mode sparse set protocols pim interface all version 2 set routing-instances VPN-A instance-type vrf set routing-instances VPN-A interface t1-1/0/0:0.0 set routing-instances VPN-A interface lo0.1 set routing-instances VPN-A route-distinguisher 10.255.71.46:100 set routing-instances VPN-A vrf-import VPNA-import set routing-instances VPN-A vrf-export VPNA-export set routing-instances VPN-A protocols ospf export bgp-to-ospf set routing-instances VPN-A protocols ospf area 0.0.0.0 interface t1-1/0/0:0.0 set routing-instances VPN-A protocols ospf area 0.0.0.0 interface lo0.1 set routing-instances VPN-A protocols pim rib-group inet VPNA-mcast-rib set routing-instances VPN-A protocols pim rp static address 10.255.245.91 set routing-instances VPN-A protocols pim interface t1-1/0/0:0.0 mode sparse set routing-instances VPN-A protocols pim interface t1-1/0/0:0.0 version 2 set routing-instances VPN-A protocols pim interface lo0.1 mode sparse set routing-instances VPN-A protocols pim interface lo0.1 version 2 set routing-instances VPN-A provider-tunnel pim-asm group-address 239.1.1.1 set routing-instances VPN-A protocols pim mvpn set routing-options interface-routes rib-group inet VPNA-mcast-rib set routing-options rib-groups VPNA-mcast-rib export-rib VPN-A.inet.2 set routing-options rib-groups VPNA-mcast-rib import-rib VPN-A.inet.2
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要为草稿 Rosen VPN 配置组播:
在 P 路由器上配置 PIM。
[edit] user@host# edit protocols pim [edit protocols pim] user@host# set dense-groups 224.0.1.39/32 [edit protocols pim] user@host# set dense-groups 224.0.1.40/32 [edit protocols pim] user@host# set rp local address 10.255.71.47 [edit protocols pim] user@host# set interface all mode sparse [edit protocols pim] user@host# set interface all version 2 [edit protocols pim] user@host# set interface fxp0.0 disable
在 PE1 和 PE2 路由器上配置 PIM。指定静态 RP — P 路由器 (10.255.71.47)。
[edit] user@host# edit protocols pim [edit protocols pim] user@host# set rp static address 10.255.71.47 [edit protocols pim] user@host# set interface interface all mode sparse [edit protocols pim] user@host# set interface interface all version 2 [edit protocols pim] user@host# set interface fxp0.0 disable [edit protocols pim] user@host# exit
在 CE1 上配置 PIM。指定 VPN RP — 路由器 CE2 (10.255.245.91) 的 RP 地址。
[edit] user@host# edit protocols pim [edit protocols pim] user@host# set rp static address 10.255.245.91 [edit protocols pim] user@host# set interface all mode sparse [edit protocols pim] user@host# set interface all version 2 [edit protocols pim] user@host# set interface fxp0.0 disable [edit protocols pim] user@host# exit
在 CE2 上配置 PIM,它充当 VPN RP。指定 CE2 的地址 (10.255.245.91)。
[edit] user@host# edit protocols pim [edit protocols pim] user@host# set rp local address 10.255.245.91 [edit protocols pim] user@host# set interface all mode sparse [edit protocols pim] user@host# set interface all version 2 [edit protocols pim] user@host# set interface fxp0.0 disable [edit protocols pim] user@host# exit
在 PE1 上,为第 3 层 VPN 配置路由实例 (VPN-A)。
[edit] user@host# edit routing-instances VPN-A [edit routing-instances VPN-A] user@host# set instance-type vrf [edit routing-instances VPN-A] user@host# set interface t1-1/0/0:0.0 [edit routing-instances VPN-A] user@host# set interface lo0.1 [edit routing-instances VPN-A] user@host# set route-distinguisher 10.255.71.46:100 [edit routing-instances VPN-A] user@host# set vrf-import VPNA-import [edit routing-instances VPN-A] user@host# set vrf-export VPNA-export
在 PE1 上,配置 IGP 策略以通告 VPN 地址空间中的接口。
[edit routing-instances VPN-A] user@host# set protocols ospf export bgp-to-ospf [edit routing-instances VPN-A] user@host# set protocols ospf area 0.0.0.0 interface t1-1/0/0:0.0 [edit routing-instances VPN-A] user@host# set protocols ospf area 0.0.0.0 interface lo0.1
在 PE1 上,设置 VRF 实例的 RP 配置。VRF 实例中的 RP 配置提供 RP 地址的显式知识,以便可以转发 (*,G) 状态。
[edit routing-instances VPN-A] user@host# set protocols pim mvpn [edit routing-instances VPN-A] user@host# set protocols provider-tunnel pim-asm group-address 239.1.1.1 [edit routing-instances VPN-A] user@host# set protocols pim rp static address 10.255.245.91 [edit routing-instances VPN-A] user@host# set protocols pim interface t1-1/0/0:0.0 mode sparse [edit routing-instances VPN-A] user@host# set protocols pim interface t1-1/0/0:0.0 version 2 [edit routing-instances VPN-A] user@host# set protocols pim interface lo0.1 mode sparse [edit routing-instances VPN-A] user@host# set protocols pim interface lo0.1 version 2 [edit routing-instances VPN-A] user@host# exit
在 PE1 上,配置环路接口。
[edit] user@host# edit interface lo0 [edit interface lo0] user@host# set unit 0 family inet address 192.168.27.13/32 primary [edit interface lo0] user@host# set unit 0 family inet address 127.0.0.1/32 [edit interface lo0] user@host# set unit 1 family inet address 10.10.47.101/32 [edit interface lo0] user@host# exit
与对 PE1 路由器执行的操作一样,配置 PE2 路由器。
[edit] user@host# edit routing-instances VPN-A [edit routing-instances VPN-A] user@host# set instance-type vrf [edit routing-instances VPN-A] user@host# set interface t1-2/0/0:0.0 [edit routing-instances VPN-A] user@host# set interface lo0.1 [edit routing-instances VPN-A] user@host# set route-distinguisher 10.255.71.51:100 [edit routing-instances VPN-A] user@host# set vrf-import VPNA-import [edit routing-instances VPN-A] user@host# set vrf-export VPNA-export [edit routing-instances VPN-A] user@host# set protocols ospf export bgp-to-ospf [edit routing-instances VPN-A] user@host# set protocols ospf area 0.0.0.0 interface t1-2/0/0:0.0 [edit routing-instances VPN-A] user@host# set protocols ospf area 0.0.0.0 interface lo0.1 [edit routing-instances VPN-A] user@host# set protocols pim rp static address 10.255.245.91 [edit routing-instances VPN-A] user@host# set protocols pim mvpn [edit routing-instances VPN-A] user@host# set protocols pim interface t1-2/0/0:0.0 mode sparse [edit routing-instances VPN-A] user@host# set protocols pim interface lo0.1 mode sparse [edit routing-instances VPN-A] user@host# set protocols pim interface lo0.1 version 2 [edit routing-instances VPN-A] user@host# set provider-tunnel pim-asm group-address 239.1.1.1 user@host# exit [edit] user@host# edit interface lo0 [edit interface lo0] user@host# set unit 0 family inet address 192.168.27.14/32 primary [edit interface lo0] user@host# set unit 0 family inet address 127.0.0.1/32 [edit interface lo0] user@host# set unit 1 family inet address 10.10.47.102/32
当其中一个 PE 路由器运行 Cisco Systems IOS 软件时,您必须配置瞻博网络 PE 路由器以支持此组播互操作性要求。瞻博网络 PE 路由器必须在主路由实例中具有 lo0.0 接口,并将 lo0.1 接口分配给 VPN 路由实例。您必须使用 lo0.0 接口用于主路由实例中提供商核心中的 BGP 对等互连的相同 IP 地址配置 lo0.1 接口。
在层次结构级别上
[edit interfaces lo0]
配置瞻博网络 PE 路由器的 lo0.0 和 lo0.1 环路接口上的相同 IP 地址,并在主路由实例的提供商核心中分配用于 BGP 对等互连的地址。在此备用示例中,针对 Cisco IOS 互操作性配置了单元 0 和单元 1。[edit interface lo0] user@host# set unit 0 family inet address 192.168.27.14/32 primary [edit interface lo0] user@host# set unit 0 family inet address 127.0.0.1/32 [edit interface lo0] user@host# set unit 1 family inet address 192.168.27.14/32 [edit interface lo0] user@host# exit
配置组播路由表组。此组在执行 RPF 检查时访问 inet.2 。但是,如果使用 inet.0 进行组播 RPF 检查,此步骤将阻止组播配置正常工作。
[edit] user@host# edit routing-options [edit routing-options] user@host# set interface-routes rib-group inet VPNA-mcast-rib [edit routing-options] user@host# set rib-groups VPNA-mcast-rib export-rib VPN-A.inet.2 [edit routing-options] user@host# set rib-groups VPNA-mcast-rib import-rib VPN-A.inet.2 [edit routing-options] user@host# exit
在 VPN 的 VRF 实例中激活组播路由表组。
[edit] user@host# edit routing-instances VPN-A [edit routing-instances VPN-A] user@host# set protocols pim rib-group inet VPNA-mcast-rib
如果完成设备配置,请提交配置。
[edit routing-instances VPN-A] user@host# commit
结果
通过从配置模式输入 show interfaces
、 show protocols
、 show routing-instances
和 show routing-options
命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。此输出显示 PE1 上的配置。
user@host# show interfaces lo0 { unit 0 { family inet { address 192.168.27.13/32 { primary; } address 127.0.0.1/32; } } unit 1 { family inet { address 10.10.47.101/32; } } }
user@host# show protocols pim { rp { static { address 10.255.71.47; } } interface fxp0.0 { disable; } interface all { mode sparse; version 2; } }
user@host# show routing-instances VPN-A { instance-type vrf; interface t1-1/0/0:0.0; interface lo0.1; route-distinguisher 10.255.71.46:100; vrf-import VPNA-import; vrf-export VPNA-export; provider-tunnel { pim-asm { group-address 239.1.1.1; } } protocols { ospf { export bgp-to-ospf; area 0.0.0.0 { interface t1-1/0/0:0.0; interface lo0.1; } } pim { mvpn; rib-group inet VPNA-mcast-rib; rp { static { address 10.255.245.91; } } interface t1-1/0/0:0.0 { mode sparse; version 2; } interface lo0.1 { mode sparse; version 2; } } } }
user@host# show routing-options interface-routes { rib-group inet VPNA-mcast-rib; } rib-groups { VPNA-mcast-rib { export-rib VPN-A.inet.2; import-rib VPN-A.inet.2; } }
验证
要验证配置,请运行以下命令:
使用 PE1 或 PE2 路由器中的命令显示
show pim interfaces instance instance-name
组播隧道信息和邻居数。从 PE1 路由器发出时,输出显示为:user@host> show pim interfaces instance VPN-A Instance: PIM.VPN-A Name Stat Mode IP V State Count DR address lo0.1 Up Sparse 4 2 DR 0 10.10.47.101 mt-1/1/0.32769 Up Sparse 4 2 DR 1 mt-1/1/0.1081346 Up Sparse 4 2 DR 0 pe-1/1/0.32769 Up Sparse 4 1 P2P 0 t1-2/1/0:0.0 Up Sparse 4 2 P2P 1
您还可以使用充当 RP 的提供商路由器中的命令显示
show pim join
所有 PE 隧道接口。使用任一 PE 路由器中的命令,
show pim neighbors instance instance-name
显示 PE1 和 PE2 路由器上的 VRF 实例之间的组播隧道接口信息、DR 信息和 PIM 邻居状态。从 PE1 路由器发出时,输出如下:user@host> show pim neighbors instance VPN-A Instance: PIM.VPN-A Interface IP V Mode Option Uptime Neighbor addr mt-1/1/0.32769 4 2 HPL 01:40:46 10.10.47.102 t1-1/0/0:0.0 4 2 HPL 01:41:41 192.168.196.178
在可用 PIC 之间平衡组播隧道接口的负载
在草稿 Rosen 第 3 层 VPN 上配置组播时,系统会自动生成组播隧道接口,以封装和解封装控制和数据流量。
要生成组播隧道接口,路由设备必须具有以下一个或多个支持隧道的 PIC:
自适应服务 PIC
多服务 PIC 或多服务 DPC
隧道服务 PIC
在 MX 系列路由器上,使用语句在
tunnel-services
层次结构级别创建的[edit chassis fpc slot-number pic number]
PIC。
路由设备是充当路由器的路由器或 EX 系列交换机。
如果路由设备具有多个此类 PIC,则在实施中,在可用的支持隧道的 PIC 之间对隧道接口进行负载平衡可能很重要。
用于封装 mt-[xxxxx]
的组播隧道接口的范围是从 32,768 到 49,151。用于解封装的接口 mt-[yyyyy]
在 1,081,344 到 1,107,827 之间。PIM 仅在封装接口上运行。解封装接口填充下游接口信息。对于默认 MDT,实例的解封装和封装接口始终在同一 PIC 上创建。
对于每个 VPN,PE 路由器在服务提供商核心网络中构建组播分布树。创建树后,每个 PE 路由器封装来自连接的 VPN 的所有组播流量(数据和控制消息),并将封装的流量发送到 VPN 组地址。由于所有 PE 路由器都是 VPN 组地址组播分发树中传出接口列表的成员,因此它们都会接收封装的流量。当 PE 路由器收到封装的流量时,它们会解封装消息,并将数据和控制消息发送到客户边缘路由器。
如果路由设备具有多个支持隧道的 PIC(例如,两个隧道服务 PIC),则路由设备会在可用 PIC 之间平衡创建隧道接口的负载。但是,在某些情况下(例如,重新启动后),可能会为所有隧道接口选择单个 PIC。这会导致一个 PIC 负载过重,而其他可用的 PIC 则未得到充分利用。若要防止出现这种情况,可以手动配置负载平衡。因此,您可以在可用 PIC 之间统一配置和分配负载。
平衡状态的定义由您和第 3 层 VPN 实施的要求决定。您可能希望所有实例在可用 PIC 或配置的 PIC 列表中均匀分布。您可能希望所有实例中的所有封装接口均匀分布在可用 PIC 或配置的 PIC 列表中。如果考虑每个隧道封装接口的带宽,则可以选择不同的分布。您可以基于每个实例或每个路由设备设计负载平衡配置。
在第 3 层 VPN 中,以下每台路由设备必须至少有一个支持隧道的 PIC:
每个提供商边缘 (PE) 路由器。
充当 RP 的任何提供程序 (P) 路由器。
充当源灾难恢复或 RP 的任何客户边缘 (CE) 路由器。接收方的指定路由器不需要支持隧道的 PIC。
要配置负载平衡: