목차

소개

문제

기본 MDT의 어설션 메커니즘

결론

데이터 MDT를 사용한 어설션 메커니즘

결론

소개

이 문서에서는 듀얼 홈 소스 및 데이터 MDT(Multicast Distribution Tree)가 있는 mVPN(Multicast Virtual Provider Network)에 대해 설명합니다. Cisco IOS®의 예는 동작을 설명하기 위해 사용됩니다.

문제

mVPN 세계의 소스가 2개의 PE(Ingress Provider Edge) 라우터에 듀얼 홈(dual-homed)된 경우 2개의 Ingress PE 라우터가 1개의(S,G)에 대한 트래픽을 MPLS(Multiprotocol Label Switching) 클라우드로 모두 전달할 수 있습니다.예를 들어, 이그레스 PE 라우터가 2개 있고 각 RPF(Reverse Path Forwarding)가 다른 인그레스 PE 라우터에 있는 경우 이 문제가 발생할 수 있습니다.두 Ingress PE 라우터가 모두 Default MDT로 포워딩할 경우 어설션 메커니즘이 작동되고 한 Ingress PE가 어설션 메커니즘을 통과하며 다른 하나는 손실되므로 한 Ingress PE가 고객(C-)(S,G)을 MDT로 계속 전달하게 됩니다.그러나 어떤 이유로든 어설션 메커니즘이 Default MDT에서 시작되지 않은 경우 두 Ingress PE 라우터가 C-(S,G) 멀티캐스트 트래픽을 시작하는 하나의 Data-MDT로 전송하기 시작할 수 있습니다.트래픽은 더 이상 기본 MDT에 있지 않고 데이터 MDT에서는 Ingress PE 라우터가 모두 MDT/터널 인터페이스의 C-(S,G) 트래픽을 수신하지 않습니다.이로 인해 지속적인 중복 트래픽이 다운스트림에 발생할 수 있습니다.이 문서에서는 이 문제의 해결책을 설명합니다.

기본 MDT의 어설션 메커니즘

이 섹션의 정보는 코어 트리 프로토콜에 관계없이 기본 MDT에 대해 true를 유지합니다.선택한 코어 트리 프로토콜은 PIM(Protocol Independent Multicast)입니다.

Cisco IOS는 예제에 사용되지만, 언급된 모든 내용은 Cisco IOS-XR에 동일하게 적용됩니다.사용된 모든 멀티캐스트 그룹은 SSM(Source Specific Multicast) 그룹입니다.

그림 1. Dual-Homed-Source-1. 2개의 Ingress PE 라우터(PE1 및 PE2)와 2개의 Egress PE 라우터(PE3 및 PE4)가 있습니다. 소스는 CE1에 있으며 IP 주소가 10.100.1.6. CE1은 PE1 및 PE2에 듀얼 홈(dual-homed)입니다.

그림 1. 듀얼 홈 소스-1

모든 PE 라우터의 컨피그레이션(RD(Route Distinguisher)은 PE 라우터에서 다를 수 있음)은 다음과 같습니다.

vrf definition one

rd 1:1

!

address-family ipv4

mdt default 232.10.10.10

route-target export 1:1

route-target import 1:1

exit-address-family

!

두 Ingress PE 라우터가 모두 멀티캐스트 스트림(10.100.1.6,232.1.1.1)을 기본 MDT로 전달하도록 하려면 둘 다 이그레스 PE에서 Join을 받아야 합니다.그림 1. Dual-Homed-Source-1의 토폴로지를 살펴보십시오. 기본적으로 에지 링크의 모든 비용이 동일하고 코어 링크의 모든 비용이 동일하면 PE3은 PE1에 RPF를, PE4는 PE2에 RPF를 적용합니다(10.100.1.6,232.1.1.1). 두 RPF 모두 가장 가까운 인그레스 PE에 연결됩니다.이 출력은 다음을 확인합니다.

PE3#show ip rpf vrf one 10.100.1.6

RPF information for ? (10.100.1.6)

RPF interface: Tunnel0

RPF neighbor: ? (10.100.1.1)

RPF route/mask: 10.100.1.6/32

RPF type: unicast (bgp 1)

Doing distance-preferred lookups across tables

BGP originator: 10.100.1.1

RPF topology: ipv4 multicast base, originated from ipv4 unicast base

PE3에는 PE1에 대한 RPF가 있습니다.

PE4#show ip rpf vrf one 10.100.1.6

RPF information for ? (10.100.1.6)

RPF interface: Tunnel0

RPF neighbor: ? (10.100.1.2)

RPF route/mask: 10.100.1.6/32

RPF type: unicast (bgp 1)

Doing distance-preferred lookups across tables

BGP originator: 10.100.1.2

RPF topology: ipv4 multicast base, originated from ipv4 unicast base

PE4에는 PE2에 대한 RPF가 있습니다. PE3이 RPF 인접 디바이스로 PE1을 선택하는 이유는 VRF(Virtual Routing/Forwarding) 1에서 10.100.1.6/32으로 향하는 유니캐스트 경로가 PE1을 통해 가장 적합하기 때문입니다. PE3은 실제로 PE1과 PE2 모두에서 10.100.1.6/32 경로를 수신합니다. BGP(Border Gateway Protocol) 프로토콜의 모든 기준은 동일합니다. 최상의 경로 계산 알고리즘은 최상의 경로 계산 알고리즘이 동일합니다. BGP next-hop 주소에 대한 비용을 제외하고.

PE3#show bgp vpnv4 unicast vrf one  10.100.1.6/32

BGP routing table entry for 1:3:10.100.1.6/32, version 333

Paths: (2 available, best #1, table one)

Advertised to update-groups:

21

Refresh Epoch 1

Local, imported path from 1:1:10.100.1.6/32 (global)

10.100.1.1 (metric 11) (via default) from 10.100.1.5 (10.100.1.5)

Origin incomplete, metric 11, localpref 100, valid, internal,best

Extended Community: RT:1:1 OSPF DOMAIN ID:0x0005:0x000000640200

OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.2.4.1:0

Originator: 10.100.1.1, Cluster list: 10.100.1.5

Connector Attribute: count=1

type 1 len 12 value 1:1:10.100.1.1

mpls labels in/out nolabel/32

rx pathid: 0, tx pathid: 0x0

Refresh Epoch 1

Local, imported path from 1:2:10.100.1.6/32 (global)

10.100.1.2 (metric 21) (via default) from 10.100.1.5 (10.100.1.5)

Origin incomplete, metric 11, localpref 100, valid, internal

Extended Community: RT:1:1 OSPF DOMAIN ID:0x0005:0x000000640200

OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.2.2.2:0

Originator: 10.100.1.2, Cluster list: 10.100.1.5

Connector Attribute: count=1

type 1 len 12 value 1:2:10.100.1.2

mpls labels in/out nolabel/29

rx pathid: 0, tx pathid: 0

PE4#show bgp vpnv4 unicast vrf one  10.100.1.6/32

BGP routing table entry for 1:4:10.100.1.6/32, version 1050

Paths: (2 available, best #2, table one)

Advertised to update-groups:

2

Refresh Epoch 1

Local, imported path from 1:1:10.100.1.6/32 (global)

10.100.1.1 (metric 21) (via default) from 10.100.1.5 (10.100.1.5)

Origin incomplete, metric 11, localpref 100, valid, internal

Extended Community: RT:1:1 OSPF DOMAIN ID:0x0005:0x000000640200

OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.2.4.1:0

Originator: 10.100.1.1, Cluster list: 10.100.1.5

Connector Attribute: count=1

type 1 len 12 value 1:1:10.100.1.1

mpls labels in/out nolabel/32

rx pathid: 0, tx pathid: 0

Refresh Epoch 1

Local, imported path from 1:2:10.100.1.6/32 (global)

10.100.1.2 (metric 11) (via default) from 10.100.1.5 (10.100.1.5)

Origin incomplete, metric 11, localpref 100, valid, internal, best

Extended Community: RT:1:1 OSPF DOMAIN ID:0x0005:0x000000640200

OSPF RT:0.0.0.0:2:0 OSPF ROUTER ID:10.2.2.2:0

Originator: 10.100.1.2, Cluster list: 10.100.1.5

Connector Attribute: count=1

type 1 len 12 value 1:2:10.100.1.2

mpls labels in/out nolabel/29

rx pathid: 0, tx pathid: 0x0

PE3에서 선택하는 최상의 경로는 PE2에 대한 IGP(Interior Gateway Protocol) 비용(11)과 IGP 비용(21)이 가장 낮기 때문에 PE1에서 광고하는 경로입니다. PE4의 경우 이 경로는 반대로 표시됩니다.토폴로지에 따르면 PE3에서 PE1까지 홉은 하나만 있고 PE3에서 PE2까지 홉은 2개입니다.모든 링크의 IGP 비용이 동일하므로 PE3은 PE1의 경로를 가장 잘 선택합니다.

(10.100.1.6,232.1.1.1)에 대한 MRIB(Multicast Routing Information Base)는 아직 멀티캐스트 트래픽이 없는 경우 PE1 및 PE2에서 다음과 같이 표시됩니다.

PE1#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:00:12/00:03:17, flags: sT

Incoming interface: Ethernet0/0, RPF nbr 10.2.1.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:00:12/00:03:17

PE2#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:00:47/00:02:55, flags: sT

Incoming interface: Ethernet1/0, RPF nbr 10.2.2.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:00:47/00:02:55

PE1 및 PE2 모두 (10.100.1.6,232.1.1.1)에 대한 PIM 조인을 받았습니다. Tunnel0 인터페이스는 두 라우터의 멀티캐스트 항목에 대한 OIL(Outgoing Interface List)에 있습니다.

멀티캐스트 트래픽이 (10.100.1.6,232.1.1.1)에 대해 플로우되기 시작합니다. "Debug ip pim vrf one 232.1.1.1" 및 "debug ip mrouting vrf one 232.1.1.1"은 멀티캐스트 트래픽이 두 Ingress PE 라우터의 Tunnel0(OIL)에 도달하면 어설션 메커니즘이 실행됨을 보여줍니다.

PE1

PIM(1): Send v2 Assert on Tunnel0 for 232.1.1.1, source 10.100.1.6, metric [110/11]

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

MRT(1): not RPF interface, source address 10.100.1.6, group address 232.1.1.1

PIM(1): Received v2 Assert on Tunnel0 from 10.100.1.2

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

PIM(1): We lose, our metric [110/11]

PIM(1): Prune Tunnel0/232.10.10.10 from (10.100.1.6/32, 232.1.1.1)

MRT(1): Delete Tunnel0/232.10.10.10 from the olist of (10.100.1.6, 232.1.1.1)

MRT(1): Reset the PIM interest flag for (10.100.1.6, 232.1.1.1)

MRT(1): set min mtu for (10.100.1.6, 232.1.1.1) 1500->18010 - deleted

PIM(1): Received v2 Join/Prune on Tunnel0 from 10.100.1.3, not to us

PIM(1): Join-list: (10.100.1.6/32, 232.1.1.1), S-bit set

PE2

PIM(1): Received v2 Assert on Tunnel0 from 10.100.1.1

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

PIM(1): We win, our metric [110/11]

PIM(1): (10.100.1.6/32, 232.1.1.1) oif Tunnel0 in Forward state

PIM(1): Send v2 Assert on Tunnel0 for 232.1.1.1, source 10.100.1.6, metric [110/11]

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

PIM(1): Received v2 Join/Prune on Tunnel0 from 10.100.1.3, to us

PIM(1): Join-list: (10.100.1.6/32, 232.1.1.1), S-bit set

PIM(1): Update Tunnel0/10.100.1.3 to (10.100.1.6, 232.1.1.1), Forward state, by PIM SG Join

메트릭 및 거리가 소스 10.100.1.6에 대한 두 라우터와 동일할 경우 어설션 승자를 결정하기 위해 타이브레이커가 있습니다.타이브레이커는 Tunnel0(기본 MDT)에서 PIM 인접 디바이스의 가장 높은 IP 주소입니다. 이 경우 PE2입니다.

PE1#show ip pim vrf one neighbor

PIM Neighbor Table

Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,

P - Proxy Capable, S - State Refresh Capable, G - GenID Capable,

L - DR Load-balancing Capable

Neighbor          Interface                Uptime/Expires    Ver   DR

Address                                                            Prio/Mode

10.100.1.4        Tunnel0                  06:27:57/00:01:29 v2    1 / DR S P G

10.100.1.3        Tunnel0                  06:28:56/00:01:24 v2    1 / S P G

10.100.1.2        Tunnel0                  06:29:00/00:01:41 v2    1 / S P G

PE1#show ip pim vrf one interface

Address          Interface                Ver/   Nbr    Query  DR         DR

Mode   Count  Intvl  Prior

10.2.1.1         Ethernet0/0              v2/S   0      30     1          10.2.1.1

10.2.4.1         Ethernet1/0              v2/S   0      30     1          10.2.4.1

10.100.1.1       Lspvif1                  v2/S   0      30     1          10.100.1.1

10.100.1.1       Tunnel0                  v2/S   3      30     1          10.100.1.4

PE1은 어설션 때문에 멀티캐스트 항목의 OIL에서 Tunnel0을 제거했습니다.OIL이 비어 있으므로 멀티캐스트 항목이 정리됩니다.

PE1#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:17:24/00:00:01, flags: sPT

Incoming interface: Ethernet0/0, RPF nbr 10.2.1.6

Outgoing interface list: Null

PE2는 어설션 승자이므로 인터페이스 Tunnel0에 A-flag가 설정되어 있습니다.

PE2#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:17:20/00:02:54, flags: sT

Incoming interface: Ethernet1/0, RPF nbr 10.2.2.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:17:20/00:02:54, A

PE2는 어설션 타이머가 만료되기 바로 전에 Tunnel0(기본 MDT)에서 주기적으로 어설션을 전송합니다.이러한 PE2는 어설션 승자가 됩니다.

PE2#

PIM(1): Send v2 Assert on Tunnel0 for 232.1.1.1, source 10.100.1.6, metric [110/11]

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

결론

어설션 메커니즘은 OIL의 터널 인터페이스도 작동합니다.Ingress PE 라우터가 OIL에 있는 연결된 터널 인터페이스에서 C-(S,G) 멀티캐스트 트래픽을 수신할 때 Default MDT를 통해 어설션이 교환됩니다.

데이터 MDT를 사용한 어설션 메커니즘

데이터 MDT가 구성된 대부분의 경우, C-(S,G) 트래픽은 3초 후에 기본 MDT에서 데이터 MDT로 전환되므로 어설션 메커니즘은 여전히 기본 MDT에서 실행됩니다.그런 다음 이전에 설명한 것과 동일한 현상이 발생합니다.멀티캐스트 지원 VRF당 터널 인터페이스는 하나만 있습니다.기본 MDT 및 모든 데이터 MDT는 하나의 터널 인터페이스만 사용합니다.이 터널 인터페이스는 인그레스 PE 라우터의 OIL에서 또는 이그레스 PE 라우터의 RPF 인터페이스로 사용됩니다.

경우에 따라 데이터 MDT가 신호를 받기 전에 어설션 메커니즘이 트리거되지 않을 수 있습니다.그런 다음 C-(S,G) 멀티캐스트 트래픽이 인그레스 PE 라우터 PE1 및 PE2 모두에서 데이터 MDT에서 전달되기 시작할 수 있습니다. 이 경우 MPLS 코어 네트워크 전체에서 영구 중복 C-(S,G) 멀티캐스트 트래픽이 발생할 수 있습니다.이를 방지하기 위해 이 솔루션은 다음과 같이 구현되었습니다.Ingress PE 라우터에서 다른 Ingress PE 라우터가 PE 라우터가 Ingress PE 라우터이기도 한 Data MDT를 발표할 경우 해당 Data MDT에 조인합니다.원칙적으로, 이그레스 PE 라우터(다운스트림 수신기가 있는 라우터)만 데이터 MDT에 조인합니다.Ingress PE 라우터는 다른 Ingress PE 라우터에서 발표한 Data MDT에 연결되므로 OIL에 있는 터널 인터페이스에서 멀티캐스트 트래픽을 수신하는 Ingress PE 라우터로 이어지므로 어설션 메커니즘을 트리거하여 Ingress PE 라우터 중 하나로 이어지므로 C-(S,G) 멀티캐스트 트래픽을 Data MDT(터널 사용)로 전달하는 것을 중지하고 다른 Ingress PE(Winner)는 계속 PE로 메시지를 전달할 수 있습니다. C-(S,G) 멀티캐스트 트래픽을 데이터 MDT로 전달합니다.

다음 예에서는 Ingress PE 라우터 PE1 및 PE2가 Default MDT에서 서로 C-(S,G) 멀티캐스트 트래픽을 보지 못했다고 가정합니다.트래픽은 Default MDT에 단 3초만 있으며, 코어 네트워크에 일시적인 트래픽 손실이 있을 경우 이러한 문제가 발생할 수 있음을 이해하는 것은 어렵지 않습니다.

데이터 MDT의 컨피그레이션이 모든 PE 라우터에 추가됩니다.모든 PE 라우터의 컨피그레이션(RD는 PE 라우터에서 다를 수 있음)은 다음과 같습니다.

vrf definition one

rd 1:1

!

address-family ipv4

mdt default 232.10.10.10

mdt data 232.11.11.0 0.0.0.0

route-target export 1:1

route-target import 1:1

exit-address-family

!

PE1 및 PE2에서 소스의 트래픽을 확인하면 C-(S,G) 항목이 생성됩니다.두 Ingress PE 라우터 모두 C-(S,G) 멀티캐스트 트래픽을 기본 MDT로 전달합니다.이그레스 PE 라우터 PE3 및 PE4는 멀티캐스트 트래픽을 수신하여 전달합니다.일시적인 문제로 인해 PE2는 기본 MDT에서 PE1의 트래픽을 보거나 그 반대로 볼 수 없습니다.둘 다 기본 MDT에서 TLV(Data MDT Join Type Length Value)를 보냅니다.

C-(S,G) 트래픽이 없는 경우 Ingress PE 라우터에서 다음과 같은 멀티캐스트 상태가 표시됩니다.

PE1#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:00:45/00:02:44, flags: sT

Incoming interface: Ethernet0/0, RPF nbr 10.2.1.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:00:45/00:02:42

PE2#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:02:18/00:03:28, flags: sT

Incoming interface: Ethernet1/0, RPF nbr 10.2.2.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:02:18/00:03:28

y 플래그가 아직 설정되지 않았습니다.두 Ingress PE 라우터에는 모두 OIL에 Tunnel0 인터페이스가 있습니다.이는 PE3에 PE1을 향하는 RPF가 있고 PE4에 C-(S,G)의 PE2를 향하는 RPF가 있기 때문입니다.

C-(S,G)에 대한 멀티캐스트 트래픽이 흐르기 시작하면 PE1과 PE2 모두 트래픽을 전달합니다.Data MDT의 임계값은 Ingress PE 라우터에서 모두 초과되며, 둘 다 Data MDT Join TLV를 보내고 3초 후에 Data MDT로 포워딩을 시작합니다.PE1은 PE2에서 소싱한 데이터 MDT와 PE2는 PE1에서 소싱한 데이터 MDT에 조인합니다.

PE1#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:01:26/00:03:02, flags: sTy

Incoming interface: Ethernet0/0, RPF nbr 10.2.1.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:01:26/00:03:02

PE2#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:00:41/00:02:48, flags: sTy

Incoming interface: Ethernet1/0, RPF nbr 10.2.2.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:00:41/00:02:48

PE1과 PE 모두 Tunnel0 인터페이스의 C-(S,G)에 대한 트래픽을 수신하며(하지만 지금은 기본 MDT가 아닌 데이터 MDT에서) 어설션 메커니즘이 시작됩니다.PE2만 데이터 MDT의 C-(S,G) 트래픽을 계속 전달:

PE1#

PIM(1): Send v2 Assert on Tunnel0 for 232.1.1.1, source 10.100.1.6, metric [110/11]

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

MRT(1): not RPF interface, source address 10.100.1.6, group address 232.1.1.1

PIM(1): Received v2 Assert on Tunnel0 from 10.100.1.2

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

PIM(1): We lose, our metric [110/11]

PIM(1): Prune Tunnel0/232.11.11.0 from (10.100.1.6/32, 232.1.1.1)

MRT(1): Delete Tunnel0/232.11.11.0 from the olist of (10.100.1.6, 232.1.1.1)

MRT(1): Reset the PIM interest flag for (10.100.1.6, 232.1.1.1)

PIM(1): MDT Tunnel0 removed from (10.100.1.6,232.1.1.1)

MRT(1): Reset the y-flag for (10.100.1.6,232.1.1.1)

PIM(1): MDT next_hop change from: 232.11.11.0 to 232.10.10.10 for (10.100.1.6, 232.1.1.1) Tunnel0

MRT(1): set min mtu for (10.100.1.6, 232.1.1.1) 1500->18010 - deleted

PIM(1): MDT threshold dropped for (10.100.1.6,232.1.1.1)

PIM(1): Receive MDT Packet (9889) from 10.100.1.2 (Tunnel0), length (ip: 44, udp: 24), ttl: 1

PIM(1): TLV type: 1 length: 16 MDT Packet length: 16

PE2#

PIM(1): Received v2 Assert on Tunnel0 from 10.100.1.1

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

PIM(1): We win, our metric [110/11]

PIM(1): (10.100.1.6/32, 232.1.1.1) oif Tunnel0 in Forward state

PIM(1): Send v2 Assert on Tunnel0 for 232.1.1.1, source 10.100.1.6, metric [110/11]

PIM(1): Assert metric to source 10.100.1.6 is [110/11]

PE2#

PIM(1): Received v2 Join/Prune on Tunnel0 from 10.100.1.3, to us

PIM(1): Join-list: (10.100.1.6/32, 232.1.1.1), S-bit set

PIM(1): Update Tunnel0/10.100.1.3 to (10.100.1.6, 232.1.1.1), Forward state, by PIM SG Join

MRT(1): Update Tunnel0/232.10.10.10 in the olist of (10.100.1.6, 232.1.1.1), Forward state - MAC built

MRT(1): Set the y-flag for (10.100.1.6,232.1.1.1)

PIM(1): MDT next_hop change from: 232.10.10.10 to 232.11.11.0 for (10.100.1.6, 232.1.1.1) Tunnel0

PE1에는 더 이상 OIL에 터널 인터페이스가 없습니다.

PE1#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:10:23/00:00:04, flags: sPT

Incoming interface: Ethernet0/0, RPF nbr 10.2.1.6

Outgoing interface list: Null

PE2는 Tunnel0 인터페이스에 A-flag가 설정되어 있습니다.

PE2#show ip mroute vrf one 232.1.1.1 10.100.1.6

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

L - Local, P - Pruned, R - RP-bit set, F - Register flag,

T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,

X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

U - URD, I - Received Source Specific Host Report,

Z - Multicast Tunnel, z - MDT-data group sender,

Y - Joined MDT-data group, y - Sending to MDT-data group,

G - Received BGP C-Mroute, g - Sent BGP C-Mroute,

N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector, p - PIM Joins on route,

x - VxLAN group

Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(10.100.1.6, 232.1.1.1), 00:10:00/00:02:48, flags: sTy

Incoming interface: Ethernet1/0, RPF nbr 10.2.2.6

Outgoing interface list:

Tunnel0, Forward/Sparse, 00:08:40/00:02:48, A

결론

어설션 메커니즘은 데이터 MDT를 사용할 때도 작동합니다.Ingress PE 라우터가 OIL에 있는 연결된 터널 인터페이스에서 C-(S,G) 멀티캐스트 트래픽을 수신할 때 Default MDT를 통해 어설션이 교환됩니다.