목차

소개

설명

결론

핵심 요점

관련 정보

소개

이 문서에서는 HSRP(Hot Standby Router Protocol) 인식 PIM(Protocol Independent Multicast) 기능 및 이 기능을 사용할 수 있는 시나리오를 해결하는 방법에 대해 설명합니다.

설명

이중화가 필요한 환경에서는 HSRP가 정상적으로 실행됩니다. HSRP는 검증된 프로토콜이며 작동하지만 멀티캐스트가 필요한 클라이언트가 있는 경우 어떻게 처리합니까? AR(Active Router)이 다운될 때 멀티캐스트가 통합되도록 트리거하는 요인은 무엇입니까? 이 경우 토폴로지 1이 사용됩니다.

토폴로지 1

여기서 주목할 점은 R2가 HSRP AR이지만 R3은 PIM DR(Designated Router)입니다. 네트워크가 OSPF(Open Shortest Path First)로 설정되었으며, PIM 및 R1은 10.1.1.1 IP 주소가 있는 RP(Rendezvous Point)입니다. R2와 R3 모두 IGMP(Internet Group Management Protocol) 보고서를 수신하지만 PIM DR이므로 R3만 PIM Join을 전송합니다. R3는 RP를 위해 '*,G'를 구축합니다.

R3#sh ip mroute 239.0.0.1

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

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

Timers: Uptime/Expires

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

(*, 239.0.0.1), 02:54:15/00:02:20, RP 10.1.1.1, flags: SJC

Incoming interface: Ethernet0/0, RPF nbr 172.16.1.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:25:59/00:02:20

그런 다음 멀티캐스트 소스에서 239.0.0.1을 ping하여 S,G를 구축합니다.

Sender#ping 239.0.0.1 re 3

Type escape sequence to abort.

Sending 3, 100-byte ICMP Echos to 239.0.0.1, timeout is 2 seconds:

Reply to request 0 from 10.0.0.10, 35 ms

Reply to request 1 from 10.0.0.10, 1 ms

Reply to request 2 from 10.0.0.10, 2 ms

S,G는 다음과 같이 구축되었습니다.

R3#sh ip mroute 239.0.0.1

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

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

Timers: Uptime/Expires

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

(*, 239.0.0.1), 02:57:14/stopped, RP 10.1.1.1, flags: SJC

Incoming interface: Ethernet0/0, RPF nbr 172.16.1.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:28:58/00:02:50

(192.168.1.10, 239.0.0.1), 00:02:03/00:00:56, flags: JT

Incoming interface: Ethernet0/0, RPF nbr 172.16.1.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:02:03/00:02:50

유니캐스트 및 멀티캐스트 토폴로지가 현재 일치하지 않습니다. 이는 중요하거나 중요하지 않을 수 있습니다. R3에 장애가 발생하면 어떻게 됩니까?

R3(config)#int e0/2

R3(config-if)#sh

R3(config-if)#

R2의 PIM이 R3이 없어졌음을 감지하고 DR 역할을 인계할 때까지 ping에 대한 응답이 수신되지 않습니다. 이 작업은 기본 타이머가 사용 중인 상태에서 60~90초 정도 걸립니다.

Sender#ping 239.0.0.1 re 100 ti 1

Type escape sequence to abort.

Sending 100, 100-byte ICMP Echos to 239.0.0.1, timeout is 1 seconds:

Reply to request 0 from 10.0.0.10, 18 ms

Reply to request 1 from 10.0.0.10, 2 ms....................................................................

.......

Reply to request 77 from 10.0.0.10, 10 ms

Reply to request 78 from 10.0.0.10, 1 ms

Reply to request 79 from 10.0.0.10, 1 ms

Reply to request 80 from 10.0.0.10, 1 ms

R2의 DR 우선 순위를 높여 DR이 될 수 있습니다.

R2(config-if)#ip pim dr-priority 50

*May 30 12:42:45.900: %PIM-5-DRCHG: DR change from neighbor 10.0.0.3 to 10.0.0.2 on interface Ethernet0/2

HSRP 인식 PIM은 HSRP를 PIM DR로 만드는 기능입니다. 또한 가상 IP에서 PIM 메시지를 전송합니다. 이는 라우터가 가상 IP(VIP)로 향하는 고정 경로가 있는 경우에 유용합니다. Cisco는 다음과 같이 이 기능을 설명합니다.

HSRP Aware PIM은 HSRP AR을 통해 멀티캐스트 트래픽을 전달할 수 있게 하며, PIM이 HSRP 이중화를 활용하고, 잠재적인 중복 트래픽을 방지하며, 디바이스의 HSRP 상태에 따라 페일오버를 활성화합니다. PIM-DR은 HSRP AR과 동일한 게이트웨이에서 실행되며 mroute 상태를 유지합니다.

토폴로지 1에서 HSRP는 클라이언트에 대해 실행되므로 이 기능이 완벽하게 적합한 것처럼 들리더라도 멀티캐스트 컨버전스에 도움이 되지 않습니다. R2에서 이 기능을 구성합니다.

R2(config-if)#ip pim redundancy HSRP1 hsrp dr-priority 100

R2(config-if)#

*May 30 12:48:20.024: %PIM-5-DRCHG: DR change from neighbor 10.0.0.3 to 10.0.0.2 on interface Ethernet0/2

이제 R2가 PIM DR이 되었으며 R3은 인터페이스 E0/2에서 두 개의 PIM 인접 디바이스를 보게 되었습니다.

R3#sh ip pim nei e0/2

PIM Neighbor Table

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

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

Neighbor          Interface                Uptime/Expires    Ver   DR

Address                                                            Prio/Mode

10.0.0.1          Ethernet0/2              00:00:51/00:01:23 v2    0 / S P G

10.0.0.2          Ethernet0/2              00:07:24/00:01:23 v2    100/ DR S P G

이제 R2에 S,G가 있으며, 이전에는 R3가 LAN 세그먼트에 대한 멀티캐스트 전달자였기 때문에 Assert를 수상한 것으로 확인할 수 있습니다.

R2#sh ip mroute 239.0.0.1

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

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

Timers: Uptime/Expires

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

(*, 239.0.0.1), 00:20:31/stopped, RP 10.1.1.1, flags: SJC

Incoming interface: Ethernet0/0, RPF nbr 192.0.2.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:16:21/00:02:35

(192.168.1.10, 239.0.0.1), 00:00:19/00:02:40, flags: JT

Incoming interface: Ethernet0/0, RPF nbr 192.0.2.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:00:19/00:02:40, A

R2s LAN 인터페이스가 다운되면 어떻게 됩니까? R3가 DR이 될 수 있습니까? 얼마나 빠르게 통합할 수 있을까요?

R2(config)#int e0/2

R2(config-if)#sh

HSRP가 R3에서 활성으로 변경되지만 PIM DR 역할은 PIM 쿼리 간격이 만료될 때까지 수렴되지 않습니다(3x hello).

*May 30 12:51:44.204: HSRP: Et0/2 Grp 1 Redundancy "hsrp-Et0/2-1" state Standby -> Active

R3#sh ip pim nei e0/2

PIM Neighbor Table

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

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

Neighbor          Interface                Uptime/Expires    Ver   DR

Address                                                            Prio/Mode

10.0.0.1          Ethernet0/2              00:04:05/00:00:36 v2    0 / S P G

10.0.0.2          Ethernet0/2              00:10:39/00:00:36 v2    100/ DR S P G

R3#

*May 30 12:53:02.013: %PIM-5-NBRCHG: neighbor 10.0.0.2 DOWN on interface Ethernet0/2 DR

*May 30 12:53:02.013: %PIM-5-DRCHG: DR change from neighbor 10.0.0.2 to 10.0.0.3 on interface Ethernet0/2

*May 30 12:53:02.013: %PIM-5-NBRCHG: neighbor 10.0.0.1 DOWN on interface Ethernet0/2 non DR

PIM 컨버전스가 발생하는 동안 많은 패킷이 손실됩니다.

Sender#ping 239.0.0.1 re 100 time 1

Type escape sequence to abort.

Sending 100, 100-byte ICMP Echos to 239.0.0.1, timeout is 1 seconds:

Reply to request 0 from 10.0.0.10, 5 ms

Reply to request 0 from 10.0.0.10, 14 ms...................................................................

Reply to request 68 from 10.0.0.10, 10 ms

Reply to request 69 from 10.0.0.10, 2 ms

Reply to request 70 from 10.0.0.10, 1 ms

HSRP는 PIM이 여기서 실제로 도움이 되지 않았음을 알고 있습니다. 대신 Topology 2를 사용할 경우 유용합니다.

토폴로지 2

라우터 R5가 추가되었고 수신기가 R5 뒤에 있습니다. R5는 R2 및 R3과 함께 라우팅을 실행하지 않으며 RP 및 멀티캐스트 소스의 고정 경로 포인트만 사용합니다.

R5(config)#ip route 10.1.1.1 255.255.255.255 10.0.0.1

R5(config)#ip route 192.168.1.0 255.255.255.0 10.0.0.1

HSRP 인식 PIM이 없으면 RPF(Reverse Path Forwarding) 확인이 실패합니다. PIM 피어가 물리적 주소를 가지지만 R5는 세그먼트에서 3개의 인접 디바이스를 인식하는데, 여기서 하나는 VIP입니다.

R5#sh ip pim nei

PIM Neighbor Table

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

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

Neighbor          Interface                Uptime/Expires    Ver   DR

Address                                                            Prio/Mode

10.0.0.2          Ethernet0/0              00:03:00/00:01:41 v2    100/ DR S P G

10.0.0.1          Ethernet0/0              00:03:00/00:01:41 v2    0 / S P G

10.0.0.3          Ethernet0/0              00:03:00/00:01:41 v2    1 / S P G

R2는 활성 라우터의 HSRP 상태를 통한 PIM DR이므로 정상적인 상황에서 멀티캐스트를 전달하는 것입니다.

R2#sh ip mroute 239.0.0.1

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

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

Timers: Uptime/Expires

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

(*, 239.0.0.1), 00:02:12/00:02:39, RP 10.1.1.1, flags: S

Incoming interface: Ethernet0/0, RPF nbr 192.0.2.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:02:12/00:02:39

소스에서 ping을 시도합니다.

Sender#ping 239.0.0.1 re 3

Type escape sequence to abort.

Sending 3, 100-byte ICMP Echos to 239.0.0.1, timeout is 2 seconds:

Reply to request 0 from 198.51.100.10, 1 ms

Reply to request 1 from 198.51.100.10, 2 ms

Reply to request 2 from 198.51.100.10, 2 ms

Ping이 작동하고 R2에는 S,G가 있습니다.

R2#sh ip mroute 239.0.0.1

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

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

Timers: Uptime/Expires

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

(*, 239.0.0.1), 00:04:18/00:03:29, RP 10.1.1.1, flags: S

Incoming interface: Ethernet0/0, RPF nbr 192.0.2.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:04:18/00:03:29

(192.168.1.10, 239.0.0.1), 00:01:35/00:01:24, flags: T

Incoming interface: Ethernet0/0, RPF nbr 192.0.2.1

Outgoing interface list:

Ethernet0/2, Forward/Sparse, 00:01:35/00:03:29

R2에 장애가 발생하면 어떻게 됩니까?

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#int e0/2

R2(config-if)#sh

R2(config-if)#

Sender#ping 239.0.0.1 re 200 ti 1

Type escape sequence to abort.

Sending 200, 100-byte ICMP Echos to 239.0.0.1, timeout is 1 seconds:

Reply to request 0 from 198.51.100.10, 9 ms

Reply to request 1 from 198.51.100.10, 2 ms

Reply to request 1 from 198.51.100.10, 11 ms....................................................................

......................................................................

............................................................

R5에서 PIM Join이 들어올 때 R3는 Join을 처리해야 한다는 사실을 인식하지 못하므로 ping 시간이 초과되었습니다.

*May 30 13:20:13.236: PIM(0): Received v2 Join/Prune on Ethernet0/2 from 10.0.0.5, not to us

*May 30 13:20:32.183: PIM(0): Generation ID changed from neighbor 10.0.0.2

PIM 리던던시 명령도 보조 라우터에 구성해야 VIP에 대한 PIM 조인을 처리할 수 있습니다.

R3(config-if)#ip pim redundancy HSRP1 hsrp dr-priority 10

이 구성이 완료되면 수신 조인이 처리됩니다. GenID가 PIM hello에 새 값으로 설정되어 있으므로 R3은 R5에서 새 조인을 보내도록 트리거합니다.

*May 30 13:59:19.333: PIM(0): Matched redundancy group VIP 10.0.0.1 on Ethernet0/2 Active, processing the Join/Prune, to us

*May 30 13:40:34.043: PIM(0): Generation ID changed from neighbor 10.0.0.1

이 컨피그레이션 후에는 PIM DR 역할이 HSRP에서 허용하는 만큼 빠르게 변환됩니다. 이 시나리오에서는 BFD(Bidirectional Forwarding Detection)가 사용됩니다.

결론

HSRP 인식 PIM을 이해하는 핵심 개념은 다음과 같습니다.

- 처음에는 AR의 PIM 이중화 컨피그레이션으로 DR이 됩니다.

- 보조 라우터에서도 PIM 이중화를 구성해야 합니다. 그렇지 않으면 VIP에 대한 PIM 조인을 처리할 수 없습니다.

- PIM 도우미 시간이 초과될 때까지 PIM DR 역할이 수렴되지 않습니다. 보조 라우터가 Join을 처리하므로 멀티캐스트가 통합됩니다.

핵심 요점

HSRP LAN에 수신자가 있는 경우 DR 역할은 PIM 인접성이 만료될 때까지 이동되지 않으므로 이 기능은 작동하지 않습니다.

관련 정보

- https://www.cisco.com/en/US/docs/ios-xml/ios/ipmulti_pim/configuration/15-2s/imc_hsrp_aware.html#GUID-1294B212-466A-4D8D-AB20-D8DE0B3645CD

- 기술 지원 및 문서 − Cisco Systems