在此页面上
交换 C 组播路由
本节介绍 信令提供者隧道和数据平面设置中讨论的 7 类路由的 PE-PE 分布。
在仅源树模式下,接收方提供商边缘 (PE) 路由器在收到来自本地接收方的 (C-*, C-G) 消息后,会在其 <routing-instance-name>.mvpn.0
表中生成并安装 6 类路由,但不通过 BGP 将此路由播发至其他 PE 路由器。接收方 PE 路由器等待与 C 接口对应的 5 类路由。
5 类路由携带有关活动源的信息,可由任何 PE 路由器播发。在 Junos OS 中,如果发生以下情况之一,PE 路由器将发起 5 类路由:
PE 路由器开始直接从 VPN 组播源接收组播数据。
PE 路由器是候选集合点(路由器)(候选 RP),并开始接收 C-PIM 寄存器消息。
PE 路由器与候选 RP 具有组播源发现协议 (MSDP) 会话,并开始接收 MSDP 源活动路由。
在表中同时安装 <routing-instance-name>.mvpn.0
6 类和 5 类路由后,接收方 PE 路由器即可发起 7 类路由
使用 BGP 通告 C 组播路由
如果通过 VPN 接口接收的 C 联接是源树联接(C-S、C-G),则接收方 PE 路由器只需发起 7 类路由(以下过程中的步骤 7)。如果 C 联接是共享树联接 (C-*, C-G),则接收方 PE 路由器需要执行几个步骤(步骤 1-7),然后才能发起 7 类路由。
请注意,路由器 PE1 是候选 RP,与发送方 PE 路由器位于同一路由器中,非常方便。如果发送方 PE 路由器和充当候选 RP(或与候选 RP 对等互连)的 PE 路由器不同,则首先需要将 VPN 组播寄存器消息传递到充当负责发起 5 类路由的候选 RP 的 PE 路由器。 了解新一代 MVPN 网络拓扑中显示了本主题中引用的路由器。
接收 (C-*, C-G) 加入消息的 PE 路由器使用正常的 C-PIM 过程处理消息,并相应地更新其 C-PIM 数据库。
在路由器 PE3 上输入命令,
show pim join extensive instance vpna 224.1.1.1
以验证路由器 PE3 在从路由器 CE3 收到 (*, 224.1.1.1) C 联接消息后是否创建了 C-PIM 数据库:user@PE3> show pim join extensive instance vpna 224.1.1.1 Instance: PIM.vpna Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 224.1.1.1 Source: * RP: 10.12.53.1 Flags: sparse,rptree,wildcard Upstream protocol: BGP Upstream interface: Through BGP Upstream neighbor: Through MVPN Upstream state: Join to RP Downstream neighbors: Interface: so-0/2/0.0 10.12.87.1 State: Join Flags: SRW Timeout: Infinity
C-PIM 数据库中的 (C-*, C-G) 条目触发 Type 6 路由的生成,然后由 C-PIM 将其安装在
<routing-instance-name>.mvpn.0
表中。类型 6 路由使用候选 RP IP 地址作为源。show route table vpna.mvpn.0 detail | find 6:10.1.1.1
在路由器 PE3 上输入命令,以验证路由器 PE3 是否在表中安装了以下类型 6 路由vpna.mvpn.0
:user@PE3> show route table vpna.mvpn.0 detail | find 6:10.1.1.1 6:10.1.1.1:1:65000:32:10.12.53.1:32:224.1.1.1/240 (1 entry, 1 announced) *PIM Preference: 105 Next hop type: Multicast (IPv4), Next hop index: 262144 Next-hop reference count: 11 State: <Active Int> Age: 1d 1:32:58 Task: PIM.vpna Announcement bits (2): 0-PIM.vpna 1-mvpn global task AS path: I Communities: no-advertise target:10.1.1.1:64
附加到 Type 6 路由的路由识别符和路由目标是从候选 RP 的 IP 地址表中的路由查找
<routing-instance-name>.inet.0
中获知的。show route table vpna.inet.0 10.12.53.1 detail
在路由器 PE3 上输入命令,以验证路由器 PE3 在vpna.inet.0
表中是否具有以下条目C-RP 10.12.53.1
:user@PE3> show route table vpna.inet.0 10.12.53.1 detail vpna.inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden) 10.12.53.1/32 (1 entry, 1 announced) *BGP Preference: 170/-101 Route Distinguisher: 10.1.1.1:1 Next hop type: Indirect Next-hop reference count: 6 Source: 10.1.1.1 Next hop type: Router, Next hop index: 588 Next hop: via so-0/0/3.0, selected Label operation: Push 16, Push 299808(top) Protocol next hop: 10.1.1.1 Push 16 Indirect next hop: 8da91f8 262143 State: <Secondary Active Int Ext> Local AS: 65000 Peer AS: 65000 Age: 4:49:25 Metric2: 1 Task: BGP_65000.10.1.1.1+179 Announcement bits (1): 0-KRT AS path: I Communities: target:10:1 src-as:65000:0 rt-import:10.1.1.1:64 Import Accepted VPN Label: 16 Localpref: 100 Router ID: 10.1.1.1 Primary Routing Table bgp.l3vpn.0
VPN 源开始传输数据后,第一个知道活动源(通过接收寄存器消息或 MSDP 源-活动路由)的 PE 路由器将在其
VRF mvpn
表中安装 5 类路由。show route table vpna.mvpn.0 detail | find 5:10.1.1.1
在路由器 PE1 上输入命令,以验证路由器 PE1 是否已在vpna.mvpn.0
表中安装了以下条目并开始从路由器 CE1 接收 C-PIM 寄存器消息:user@PE1> show route table vpna.mvpn.0 detail | find 5:10.1.1.1 5:10.1.1.1:1:32:192.168.1.2:32:224.1.1.1/240 (1 entry, 1 announced) *PIM Preference: 105 Next hop type: Multicast (IPv4) Next-hop reference count: 30 State: <Active Int> Age: 1d 1:36:33 Task: PIM.vpna Announcement bits (3): 0-PIM.vpna 1-mvpn global task 2-BGP RT Background AS path: I
表中安装
<routing-instance-name>.mvpn.0
的第 5 类路由由 BGP 拾取并播发至远程 PE 路由器。show route advertising-protocol bgp 10.1.1.3 detail table vpna.mvpn.0 | find 5:
在路由器 PE1 上输入命令,以验证路由器 PE1 是否将以下 5 类路由播发至远程 PE 路由器:user@PE1> show route advertising-protocol bgp 10.1.1.3 detail table vpna.mvpn.0 | find 5: * 5:10.1.1.1:1:32:192.168.1.2:32:224.1.1.1/240 (1 entry, 1 announced) BGP group int type Internal Route Distinguisher: 10.1.1.1:1 Nexthop: Self Flags: Nexthop Change Localpref: 100 AS path: [65000] I Communities: target:10:1
同时具有 5 类和 6 类路由(C-*、C-G)的接收方 PE 路由器现在已准备好发起 7 类路由。
show route table vpna.mvpn.0 detail
在路由器 PE3 上输入命令,以验证路由器 PE3 在vpna.mvpn.0
表中是否具有以下类型 5、6 和 7 路由。类型 6 路由由 C-PIM 在步骤 2 中安装。在步骤 5 中通过 BGP 获知 5 类路由。类型 7 路由由 MVPN 模块发起,以响应相同(C-*、C-G)具有类型 5 和类型 6 路由的情况。类型 7 路由的路由目标与类型 6 路由的路由目标相同,因为两个路由(候选 RP 的 IP 地址 [10.12.53.1] 和 VPN 组播源的地址 [192.168.1.2])均可通过同一路由器 [PE1]) 访问。因此,
10.12.53.1
并192.168.1.2
携带相同的路由目标导入(10.1.1.1:64
)社区user@PE3> show route table vpna.mvpn.0 detail 5:10.1.1.1:1:32:192.168.1.2:32:224.1.1.1/240 (1 entry, 1 announced) *BGP Preference: 170/-101 Next hop type: Indirect Next-hop reference count: 4 Source: 10.1.1.1 Protocol next hop: 10.1.1.1 Indirect next hop: 2 no-forward State: <Secondary Active Int Ext> Local AS: 65000 Peer AS: 65000 Age: 1d 1:43:13 Metric2: 1 Task: BGP_65000.10.1.1.1+55384 Announcement bits (2): 0-PIM.vpna 1-mvpn global task AS path: I Communities: target:10:1 Import Accepted Localpref: 100 Router ID: 10.1.1.1 Primary Routing Table bgp.mvpn.0 6:10.1.1.1:1:65000:32:10.12.53.1:32:224.1.1.1/240 (1 entry, 1 announced) *PIM Preference: 105 Next hop type: Multicast (IPv4), Next hop index: 262144 Next-hop reference count: 11 State: <Active Int> Age: 1d 1:44:09 Task: PIM.vpna Announcement bits (2): 0-PIM.vpna 1-mvpn global task AS path: I Communities: no-advertise target:10.1.1.1:64 7:10.1.1.1:1:65000:32:192.168.1.2:32:224.1.1.1/240 (1 entry, 1 announced) *MVPN Preference: 70 Next hop type: Multicast (IPv4), Next hop index: 262144 Next-hop reference count: 11 State: <Active Int Ext> Age: 1d 1:44:09 Metric2: 1 Task: mvpn global task Announcement bits (3): 0-PIM.vpna 1-mvpn global task 2-BGP RT Background AS path: I Communities: target:10.1.1.1:64
安装在 VRF MVPN 表中的第 7 类路由由 BGP 拾取并播发至远程 PE 路由器。
show route advertising-protocol bgp 10.1.1.1 detail table vpna.mvpn.0 | find 7:10.1.1.1
在路由器 PE3 上输入命令,以验证路由器 PE3 是否播发以下 7 类路由:user@PE3> show route advertising-protocol bgp 10.1.1.1 detail table vpna.mvpn.0 | find 7:10.1.1.1 * 7:10.1.1.1:1:65000:32:192.168.1.2:32:224.1.1.1/240 (1 entry, 1 announced) BGP group int type Internal Route Distinguisher: 10.1.1.3:1 Nexthop: Self Flags: Nexthop Change Localpref: 100 AS path: [65000] I Communities: target:10.1.1.1:64
如果 C 连接是源树连接,则类型 7 路由将立即发出(无需等待类型 5 路由)。
show route table vpna.mvpn.0 detail | find 7:10.1.1.1
在路由器 PE2 上输入命令,以验证路由器 PE2 是否在收到 (192.168.1.2, 232.1.1.1
) C 联接时发起以下类型 7 路由:user@PE2> show route table vpna.mvpn.0 detail | find 7:10.1.1.1 7:10.1.1.1:1:65000:32:192.168.1.2:32:232.1.1.1/240 (1 entry, 1 announced) *PIM Preference: 105 Next hop type: Multicast (IPv4), Next hop index: 262146 Next-hop reference count: 4 State: <Active Int> Age: 2d 18:59:56 Task: PIM.vpna Announcement bits (3): 0-PIM.vpna 1-mvpn global task 2-BGP RT Background AS path: I Communities: target:10.1.1.1:64
接收 C 组播路由
如果路由携带的路由目标与本地发起的路由目标导入社区匹配,则发送方 PE 路由器会导入 Type 7 路由。所有类型 7 路由都必须通过策略 __vrf-mvpn-import-cmcast-<routing-instance-name>-internal__
才能安装在 <routing-instance-name>.mvpn.0
表中。
当发送方 PE 路由器通过 BGP 接收 7 类路由时,此路由将安装在 <routing-instance-name>.mvpn.0
表中。然后,BGP 路由将转换回 VRF 表中的正常 C 连接,并且 C 连接将安装在接收方 PE 路由器的本地 C-PIM 数据库中。添加到 C-PIM 数据库的新 C 联接会触发 C-PIM 发起类型 6 或类型 7 路由。发送方 PE 路由器上的 C-PIM 会创建自己的版本 7 类路由,该路由是通过 BGP 接收的相同 Type 7 路由。
使用命令验证show route table vpna.mvpn.0 detail | find 7:10.1.1.1
路由器 PE1 是否包含与 (192.168.1.2, 224.1.1.1
) 加入消息对应的表中类型 vpna.mvpn.0
7 路由的以下条目。有两个条目;一个条目由 PIM 安装,另一个条目由 BGP 安装。此示例还显示了与 (192.168.1.2, 232.1.1.1
) 连接对应的类型 7 路由。
user@PE1> show route table vpna.mvpn.0 detail | find 7:10.1.1.1 7:10.1.1.1:1:65000:32:192.168.1.2:32:224.1.1.1/240 (2 entries, 2 announced) *PIM Preference: 105 Next hop type: Multicast (IPv4) Next-hop reference count: 30 State: <Active Int> Age: 1d 2:19:04 Task: PIM.vpna Announcement bits (2): 0-PIM.vpna 1-mvpn global task AS path: I Communities: no-advertise target:10.1.1.1:64 BGP Preference: 170/-101 Next hop type: Indirect Next-hop reference count: 4 Source: 10.1.1.3 Protocol next hop: 10.1.1.3 Indirect next hop: 2 no-forward State: <Secondary Int Ext> Inactive reason: Route Preference Local AS: 65000 Peer AS: 65000 Age: 53:27 Metric2: 1 Task: BGP_65000.10.1.1.3+179 Announcement bits (2): 0-PIM.vpna 1-mvpn global task AS path: I Communities: target:10.1.1.1:64 Import Accepted Localpref: 100 Router ID: 10.1.1.3 Primary Routing Table bgp.mvpn.0 7:10.1.1.1:1:65000:32:192.168.1.2:32:232.1.1.1/240 (2 entries, 2 announced) *PIM Preference: 105 Next hop type: Multicast (IPv4) Next-hop reference count: 30 State: <Active Int> Age: 2d 19:21:17 Task: PIM.vpna Announcement bits (2): 0-PIM.vpna 1-mvpn global task AS path: I Communities: no-advertise target:10.1.1.1:64 BGP Preference: 170/-101 Next hop type: Indirect Next-hop reference count: 4 Source: 10.1.1.2 Protocol next hop: 10.1.1.2 Indirect next hop: 2 no-forward State: <Secondary Int Ext> Inactive reason: Route Preference Local AS: 65000 Peer AS: 65000 Age: 53:27 Metric2: 1 Task: BGP_65000.10.1.1.2+49165 Announcement bits (2): 0-PIM.vpna 1-mvpn global task AS path: I Communities: target:10.1.1.1:64 Import Accepted Localpref: 100 Router ID: 10.1.1.2 Primary Routing Table bgp.mvpn.0
远程 C 联接(通过 BGP 获知的 7 类路由转换回普通 C 联接)安装在发送方 PE 路由器上的 VRF C-PIM 数据库中,并根据常规 C-PIM 过程进行处理。此过程完成端到端 C 组播路由交换。
使用命令验证 show pim join extensive instance vpna
路由器 PE1 是否已在 C-PIM 数据库中安装以下条目:
user@PE1> show pim join extensive instance vpna Instance: PIM.vpna Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 224.1.1.1 Source: 192.168.1.2 Flags: sparse,spt Upstream interface: fe-0/2/0.0 Upstream neighbor: 10.12.97.2 Upstream state: Local RP, Join to Source Keepalive timeout: 201 Downstream neighbors: Interface: Pseudo-MVPN Group: 232.1.1.1 Source: 192.168.1.2 Flags: sparse,spt Upstream interface: fe-0/2/0.0 Upstream neighbor: 10.12.97.2 Upstream state: Local RP, Join to Source Keepalive timeout: Downstream neighbors: Interface: Pseudo-MVPN Instance: PIM.vpna Family: INET6 R = Rendezvous Point Tree, S = Sparse, W = Wildcard