목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

지원되는 Cisco Nexus 3k 플랫폼

지원되는 서비스 반영 방법

일반 모드 멀티캐스트 NAT

No-rewrite 멀티캐스트 NAT를 통한 Fast-Pass 및 Fast-Pass

구성

토폴로지

설정

스위치 1 컨피그레이션(발신자)

스위치 2 컨피그레이션(변환기)

스위치 3 컨피그레이션(수신기)

다음을 확인합니다.

서비스 반사 기능 확인

스위치 1 확인

스위치 2 확인

스위치 3 확인

문제 해결

요약

관련 정보

소개

이 문서에서는 Cisco Nexus 3000(일반 모드) 시리즈 스위치에서 서비스 반사 기능을 구성하고 확인하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대해 알고 있는 일반적인 권장 사항:

- PIM(Protocol Independent Multicast)

- OSPF(Open Shortest Path First)

- NAT(Network Address Translation)

- IGMP(Internet Group Management Protocol)

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

Sw1#

N9K-C93180YC-FX

NXOS: 버전 9.3(5)

Sw2#

N3K-C3548P-XL

NXOS: 버전 7.0(3)I7(9)

Sw3#

N3K-C3172TQ-10GT

NXOS: 버전 7.0(3)I7(9)

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

지원되는 Cisco Nexus 3k 플랫폼

멀티캐스트 서비스 리플렉션 기능은 Cisco Nexus 3548-X 플랫폼에서 Release 7.0(3)I7(2)에서만 지원됩니다.

지원되는 서비스 반영 방법

일반 모드 멀티캐스트 NAT

일반 모드에서 S1, G1 인터페이스로 들어오는 패킷은 S2, G2 인터페이스로 변환되고 나가는 패킷의 대상 MAC(Media Access Control) 주소는 G2 인터페이스(예: 변환된 그룹)의 멀티캐스트 MAC 주소로 변환됩니다.

No-rewrite 멀티캐스트 NAT를 통한 Fast-Pass 및 Fast-Pass

빠른 패스 모드에서는 S1, G1 인터페이스가 S2, G2 인터페이스로 변환되고 발신 패킷의 목적지 MAC 주소가 G1 인터페이스에 해당하는 멀티캐스트 MAC 주소(예: 미리 변환된 그룹의 MAC 주소)를 갖습니다.

구성

토폴로지

네이티브 그룹: 239.194.169.1(G1)

환산된 그룹: 233.193.40.196 (G2)

원본: 10.11.11.1(S1)

번역 출처: 172.16.0.1. (S2)

설정

스위치 1 컨피그레이션(발신자)

SW1# show run int eth1/47

interface Ethernet1/47

no switchport

ip address 10.11.11.1/24

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

SW1# show run ospf

feature ospf

router ospf 1

router-id 192.168.1.1

interface Ethernet1/47

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

SW1# show run pim

feature pim

ip pim rp-address 10.10.10.10 group-list 239.194.169.1/32

ip pim ssm range 232.0.0.0/8

interface Ethernet1/47

ip pim sparse-mode

스위치 2 컨피그레이션(변환기)

SW2# show run int eth 1/23,eth1/47

interface Ethernet1/23

no switchport

ip address 10.0.0.1/24

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

no shutdown

interface Ethernet1/47

no switchport

ip address 10.11.11.2/24

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

no shutdown

SW2# show run int lo0,lo411

interface loopback0

ip address 10.10.10.10/32

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

interface loopback411

ip address 172.16.0.1/32

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

ip igmp join-group 239.194.169.1

SW2# show run ospf

feature ospf

router ospf 1

router-id 192.168.1.2

interface loopback0

ip router ospf 1 area 0.0.0.0

interface loopback411

ip router ospf 1 area 0.0.0.0

interface Ethernet1/23

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

interface Ethernet1/47

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

SW2# show run pim

feature pim

ip pim rp-address 10.10.10.10 group-list 239.194.169.1/32

ip pim rp-address 172.16.0.1 group-list 233.193.40.196/32

ip pim ssm range 232.0.0.0/8

interface loopback0

ip pim sparse-mode

interface loopback411

ip pim sparse-mode

interface Ethernet1/23

ip pim sparse-mode

interface Ethernet1/47

ip pim sparse-mode

ip service-reflect mode regular

ip service-reflect destination 239.194.169.1 to 233.193.40.196 mask-len 32 source 172.16.0.1

hardware profile multicast service-reflect port 7

스위치 3 컨피그레이션(수신기)

SW3# show run int eth 1/24

interface Ethernet1/24

ip address 10.0.0.2/24

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

ip igmp join-group 233.193.40.196

no shutdown

SW3# show run ospf

feature ospf

router ospf 1

router-id 192.168.1.3

interface Ethernet1/24

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

SW3# show run pim

feature pim

ip pim rp-address 172.16.0.1 group-list 233.193.40.196/32

ip pim ssm range 232.0.0.0/8

interface Ethernet1/24

ip pim sparse-mode

다음을 확인합니다.

구성이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오.

서비스 반사 기능 확인

스위치 1 확인

SW1# show ip mroute

IP Multicast Routing Table for VRF "default"

(*, 232.0.0.0/8), uptime: 3w6d, pim ip

Incoming interface: Null, RPF nbr: 0.0.0.0

Outgoing interface list: (count: 0)

(10.11.11.1/32, 239.194.169.1/32), uptime: 00:06:57, pim ip

Incoming interface: Ethernet1/47, RPF nbr: 10.11.11.1

Outgoing interface list: (count: 1)

Ethernet1/47, uptime: 00:06:57, pim, (RPF)

스위치 2 확인

SW2# show ip mroute

IP Multicast Routing Table for VRF "default"

(*, 232.0.0.0/8), uptime: 00:04:39, pim ip

Incoming interface: Null, RPF nbr: 0.0.0.0

Outgoing interface list: (count: 0)

(*, 233.193.40.196/32), uptime: 00:04:11, pim ip

Incoming interface: loopback411, RPF nbr: 172.16.0.1  <-- Translation (ingress) Loopback interface

Outgoing interface list: (count: 1)

Ethernet1/23, uptime: 00:03:59, pim    <-- Egress interface for S2,G2

(172.16.0.1/32, 233.193.40.196/32), uptime: 00:00:15, ip mrib pim

Incoming interface: loopback411, RPF nbr: 172.16.0.1

Outgoing interface list: (count: 1)

Ethernet1/23, uptime: 00:00:15, pim

(*, 239.194.169.1/32), uptime: 00:04:34, static pim ip  <-- (The NAT router would pull the traffic by using a (*,G) join on loopback )

Incoming interface: loopback0, RPF nbr: 10.10.10.10

Outgoing interface list: (count: 1)

loopback411, uptime: 00:04:34, static    <-- Translation (egress) Loopback interface

(10.11.11.1/32, 239.194.169.1/32), uptime: 00:00:17, ip mrib pim

Incoming interface: Ethernet1/47, RPF nbr: 10.11.11.1, internal     <-- Ingress interface for S1,G1

Outgoing interface list: (count: 1)

loopback411, uptime: 00:00:17, mrib

SW2# show ip mroute sr   <-- (Only SR nat routes)

IP Multicast Routing Table for VRF "default"

(*, 239.194.169.1/32), uptime: 00:09:29, static pim ip

NAT Mode: Ingress

NAT Route Type: Pre

Incoming interface: loopback0, RPF nbr: 10.10.10.10

Translation list: (count: 1)

SR: (172.16.0.1, 233.193.40.196)

(10.11.11.1/32, 239.194.169.1/32), uptime: 00:05:12, ip mrib pim

NAT Mode: Ingress

NAT Route Type: Pre

Incoming interface: Ethernet1/47, RPF nbr: 10.11.11.1, internal

Translation list: (count: 1)

SR: (172.16.0.1, 233.193.40.196)

스위치 3 확인

SW3# show ip mroute

IP Multicast Routing Table for VRF "default"

(*, 232.0.0.0/8), uptime: 02:45:09, pim ip

Incoming interface: Null, RPF nbr: 0.0.0.0

Outgoing interface list: (count: 0)

(*, 233.193.40.196/32), uptime: 01:47:02, ip pim igmp

Incoming interface: Ethernet1/24, RPF nbr: 10.0.0.1

Outgoing interface list: (count: 1)

Ethernet1/24, uptime: 01:43:27, igmp, (RPF)

(172.16.0.1/32, 233.193.40.196/32), uptime: 00:02:59, ip mrib pim

Incoming interface: Ethernet1/24, RPF nbr: 10.0.0.1

Outgoing interface list: (count: 1)

Ethernet1/24, uptime: 00:02:59, mrib, (RPF)

문제 해결

이 섹션에서는 컨피그레이션 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.

S2 및 G2가 생성되지 않거나 사용자가 임의 변환 문제에 직면할 경우 다음 사항을 확인할 수 있습니다.

1. 트래픽이 수신(사전 번역)되면 mcastfwd로 작성된 pkt를 기반으로 사후 번역 엔트리가 생성됩니다.

2. pkt가 mcastfwd로 입력되어 있지 않으면 ACL을 통해 인그레스 인터페이스에서 요청된 트래픽을 수신하는지 확인할 수 있습니다.

3 ACL에서 카운터가 증가한 경우 ethanalyzer를 통해 동일한 트래픽이 CPU에 도달하는지 확인합니다.

4 MRIB 이벤트 기록에서 변환을 확인할 수도 있습니다.

SW2# show system  internal  mfwd ip mroute  --> Packets Punted in Mcast Forwarding.

MCASTFWD Multicast Routing Table for VRF "default"

(0.0.0.0/0, 232.0.0.0/8)

Software switched packets: 0, bytes: 0

RPF fail packets: 0, bytes: 0

(0.0.0.0/0, 233.193.40.196/32)

Software switched packets: 1, bytes: 84

RPF fail packets: 0, bytes: 0

(172.16.0.1/32, 233.193.40.196/32), data-alive

Software switched packets: 1, bytes: 84

RPF fail packets: 8, bytes: 672

(0.0.0.0/0, 239.194.169.1/32)

Software switched packets: 1, bytes: 84

RPF fail packets: 0, bytes: 0

(10.11.11.1/32, 239.194.169.1/32), data-alive

Software switched packets: 10, bytes: 840

RPF fail packets: 0, bytes: 0

SW2# show ip access-lists test

IP access list test

statistics per-entry

10 permit ip any 239.194.169.1/32 [match=105] <-- Intrested traffic hitting ingress interface

20 permit ip any any [match=11]

interface Ethernet1/47

no switchport

ip access-group test in  <-- ACL applied on ingress interface

ip address 10.11.11.2/24

ip ospf network point-to-point

ip router ospf 1 area 0.0.0.0

ip pim sparse-mode

no shutdown

SW2# ethanalyzer loca int inband display-filter "ip.addr == 239.194.169.1" limit-captured-frames 0  --> Confirm (S1,G1) seen on CPU

Capturing on inband

wireshark-cisco-mtc-dissector: ethertype=0xde09, devicetype=0x0

2022-09-18 04:21:37.840227 10.11.11.1 -> 239.194.169.1 ICMP Echo (ping) request

2022-09-18 04:21:37.841275 10.11.11.1 -> 239.194.169.1 ICMP Echo (ping) request

2022-09-18 04:21:37.860153 10.11.11.1 -> 239.194.169.1 ICMP Echo (ping) request

2022-09-18 04:21:37.861199 10.11.11.1 -> 239.194.169.1 ICMP Echo (ping) request

2022-09-18 04:21:37.880072 10.11.11.1 -> 239.194.169.1 ICMP Echo (ping) request

2022-09-18 04:21:37.881113 10.11.11.1 -> 239.194.169.1 ICMP Echo (ping) request

SW2# ethanalyzer local  interface  inband capture-filter  "host 172.16.0.1" limit-captured-frames 0 --> Confirm (S2,G2) seen on CPU

Capturing on inband

wireshark-cisco-mtc-dissector: ethertype=0xde09, devicetype=0x0

2022-09-18 03:12:51.423484 172.16.0.1 -> 233.193.40.196 ICMP Echo (ping) request

2022-09-18 03:12:51.423978 10.0.0.2 -> 172.16.0.1 ICMP Echo (ping) reply

2022-09-18 03:12:53.425754 172.16.0.1 -> 233.193.40.196 ICMP Echo (ping) request

2022-09-18 03:12:53.425761 10.0.0.2 -> 172.16.0.1 ICMP Echo (ping) reply

2022-09-18 03:12:55.426719 172.16.0.1 -> 233.193.40.196 ICMP Echo (ping) request

2022-09-18 03:12:55.426726 10.0.0.2 -> 172.16.0.1 ICMP Echo (ping) reply

2022-09-18 03:12:57.428669 172.16.0.1 -> 233.193.40.196 ICMP Echo (ping) request

2022-09-18 03:12:57.429175 10.0.0.2 -> 172.16.0.1 ICMP Echo (ping) reply

2022-09-18 03:12:59.429890 172.16.0.1 -> 233.193.40.196 ICMP Echo (ping) request

2022-09-18 03:12:59.430386 10.0.0.2 -> 172.16.0.1 ICMP Echo (ping) reply

10 packets captured

SW2# show ip pim event-history  mrib --> Event history to confirm that the translation is being done

2022 Sep 18 04:28:39.970688: E_DEBUG    pim [19433]:  Sending ack: xid: 0xeeee00d2

2022 Sep 18 04:28:39.970255: E_DEBUG    pim [19433]:  MRIB Join notify for (10.11.11.1/32, 239.194.169.1/32)

2022 Sep 18 04:28:39.968875: E_DEBUG    pim [19433]:  MRIB sr route type notif for (10.11.11.1/32, 239.194.169.1/32) : 1

2022 Sep 18 04:28:39.968859: E_DEBUG    pim [19433]:  pim_process_mrib_rpf_notify: MRIB RPF notify for (10.11.11.1/32, 239.194.169.1/32), old RPF info: 10.11.11.1 (Ethernet1/47), new RPF info: 10.11.11.1 (Ethernet1/47). LISP source RLOC address

: 0.0.0.0, route-type 1

2022 Sep 18 04:28:39.968307: E_DEBUG    pim [19433]:  Copied the flags from MRIB for route (10.11.11.1/32, 239.194.169.1/32), (before/after): att F/F, sta F/F, z-oifs T/F, ext F/F, fabric F/F, fabric_src: F/F mofrr F/F

2022 Sep 18 04:28:39.968301: E_DEBUG    pim [19433]:  MRIB Join notify for (10.11.11.1/32, 239.194.169.1/32)

2022 Sep 18 04:28:39.968294: E_DEBUG    pim [19433]: Received a notify message from MRIB xid: 0xeeee00cf for 1 mroutes

2022 Sep 18 04:28:35.904652: E_DEBUG    pim [19433]:  Sending ack: xid: 0xeeee00cc

2022 Sep 18 04:28:35.904625: E_DEBUG    pim [19433]:  pim_process_mrib_rpf_notify: MRIB RPF notify for (172.16.0.1/32, 233.193.40.196/32), old RPF info: 172.16.0.1 (loopback411), new RPF info: 172.16.0.1 (loopback411). LISP sourc

e RLOC address: 0.0.0.0, route-type 0

2022 Sep 18 04:28:35.904484: E_DEBUG    pim [19433]:  pim_process_mrib_rpf_notify: After copying the values for route (0.0.0.0/32, 233.193.40.196/32) we got RPF info: 172.16.0.1 (loopback411). LISP source RLOC address: 0.0.0.0, route-t

ype 0

2022 Sep 18 04:28:35.904476: E_DEBUG    pim [19433]:  pim_process_mrib_rpf_notify: MRIB RPF notify for (0.0.0.0/32, 233.193.40.196/32), old RPF info: 0.0.0.0 ((null)), new RPF info: 172.16.0.1 (loopback411). LISP source RLOC address: 0

.0.0.0, route-type 0

2022 Sep 18 04:28:35.904400: E_DEBUG    pim [19433]:  MRIB Join notify for (172.16.0.1/32, 233.193.40.196/32)

2022 Sep 18 04:28:35.904343: E_DEBUG    pim [19433]:  MRIB Join notify for (0.0.0.0/32, 233.193.40.196/32)

2022 Sep 18 04:27:49.862827: E_DEBUG    pim [19433]:  pim_process_mrib_rpf_notify: After copying the values for route (*, 239.194.169.1/32) we got RPF info: 10.10.10.10 (loopback0). LISP source RLOC address: 0.0.0.0, route-type 0

2022 Sep 18 04:27:49.862812: E_DEBUG    pim [19433]:  pim_process_mrib_rpf_notify: MRIB RPF notify for (*, 239.194.169.1/32), old RPF info: 0.0.0.0 ((null)), new RPF info: 10.10.10.10 (loopback0). LISP source RLOC address: 0.0.0.0, route-

type 0

2022 Sep 18 04:27:49.862798: E_DEBUG    pim [19433]:  MRIB Join notify for (*, 239.194.169.1/32)

2022 Sep 18 04:27:49.862795: E_DEBUG    pim [19433]:  MRIB Join notify for (172.16.0.1/32, 233.193.40.196/32)

2022 Sep 18 04:27:49.862789: E_DEBUG    pim [19433]:  MRIB Join notify for (0.0.0.0/32, 233.193.40.196/32)

2022 Sep 18 04:27:49.861870: E_DEBUG    pim [19433]:  Creating PIM route for (*, 239.194.169.1/32)

2022 Sep 18 04:27:49.861868: E_DEBUG    pim [19433]:  MRIB Join notify for (*, 239.194.169.1/32)

요약

- 일반 모드에서는 트래픽이 첫 번째 패스의 원래 S, G 엔트리에 도달하고 루프백 포트만 있는 OIFL(Outgoing Interface List)로 인해 재순환됩니다. 두 번째 패스에서는 재작성을 위한 목적지 MAC가 파생됩니다.

- 세 번째 패스에서 멀티캐스트 경로 조회는 변환된 S, G에서 이루어지며 패킷은 해당 변환된 그룹 OIFL 포트로 전달됩니다.

- NAT 상자에서 트래픽을 강제로 수신하기 위해 루프백에 고정 조인을 추가했습니다.

- (s1, g1)에 대해 첫 번째 패킷이 수신되면 스위치는 새 SR 플래그(s1, g —> s2, g2)로 (s1, g1)을 프로그래밍합니다.

- 스위치는 이 메타데이터를 사용하여 패킷의 재순환을 수행하고 패킷을 g2에 적용합니다. (S2, G2) 패킷이 sup에 punt되면, FHR(first-hop router) 기능이 s2,g2용 NAT 상자에서 트리거됩니다.

- 트래픽이 수신되면 사전 번역되고 사후 번역된 엔트리가 mcastfwd에서 pkt를 기반으로 생성됩니다.

- 각 그룹에 대해 mcastfwd로 패킷이 펀팅되지 않은 경우, 언급된 문제 해결 프로세스를 사용하여 관심 있는 트래픽이 스위치에 도달하는지 확인할 수 있습니다

관련 정보

- Cisco 기술 지원 및 다운로드

.