이 문서에서는 스패닝 트리 토폴로지가 변경된 후 CGMP에 대한 멀티캐스트 항목 재구축과 관련하여 Cisco Catalyst 스위치 및 Cisco IOS® 라우터에서 CGMP(Cisco Group Management Protocol)가 작동하는 방식에 대해 설명합니다.
Cisco에서는 다음 주제에 대해 알고 있는 것이 좋습니다.
스위치, 라우터 및 멀티캐스팅 기본 작동
스패닝 트리, CGMP 및 IGMP(Internet Group Management Protocol)의 기본 작동
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
Catalyst 3550 버전 12.1(9)EA1c
Catalyst 2900/3500XL 버전 12.0(5)WC3b
Catalyst 4000 Supervisor Engine III 버전 12.1(11b)EW
Catalyst 4000 Supervisor Engine I/II 버전 7.2(2)
Catalyst 6500 Supervisor Engine Cisco IOS Software 릴리스 12.1(11b)EX
Catalyst 6500 Catalyst OS(CatOS) 버전 7.2(2)
Catalyst 5500 CatOS 버전 4.5(13a)
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
이 섹션에서는 모든 포트에서 멀티캐스트 트래픽이 플러딩되는 것을 방지하기 위해 CGMP를 사용하는 VLAN에서 스패닝 트리 토폴로지 변경이 탐지될 때 발생할 수 있는 문제 및 단계별 상황에 대해 설명합니다.이 예제에서 설명한 네트워크는 라우터 1대, 스위치 1대, PC 4대로 구성됩니다.
포트 1 - 수신기 PC 1
포트 2 - 수신기 PC 2
포트 3 - 수신기 PC 3
포트 4 - 수신기 PC 4가 아님
port 5 - 기타 스위치(이 스위치에 수신기 또는 라우터 없음)
포트 48 - IGMP 및 CGMP를 실행하는 Cisco IOS 라우터
이 문서에서는 수신기 PC가 IGMP를 사용하고 스위치가 CGMP를 실행하는 것으로 가정합니다.Cisco IOS 라우터는 다른 인터페이스의 비디오 서버에서 멀티캐스트 스트림을 수신하는 IGMP 및 CGMP를 실행합니다.이 인터페이스는 IP 멀티캐스트 그룹 239.100.100.100으로 전송됩니다.
모든 디바이스가 부팅되고 수신기 PC가 그룹 239.100.100.100에 대한 IGMP 가입 메시지를 전송하면 CGMP가 모두 MAC 주소 01-00-5e-64-64-64로 표시되는 해당 레이어 2 그룹에 추가됩니다.
이 목록에는 Cisco IOS 라우터를 통해 들어오는 멀티캐스트 스트림을 스위치에서 굵게 강조 표시된 포트가 표시됩니다.
포트 1 - 수신기 PC 1
포트 2 - 수신기 PC 2
포트 3 - 수신기 PC 3
포트 4 - 수신기 PC 4가 아님
port 5 - 기타 스위치(이 스위치에 수신기 또는 라우터 없음)
port 48 - IGMP 및 CGMP를 실행하는 Cisco IOS 라우터
참고: Cisco IOS 라우터는 멀티캐스트 그룹에도 추가되지만 소스가 아니므로 자체 패킷을 수신하지 않습니다.
쿼리 간격마다 Cisco IOS 라우터는 IGMP 일반 쿼리를 전송합니다. 이 쿼리는 멀티캐스트 그룹 224.0.0.1으로 전송되어 다른 모든 구성 요소로 플러딩됩니다. 이 경우 모든 수신자는 239.100.100.100 그룹에 대한 IGMP 보고서를 작성하기 시작합니다.수신자는 레이어 2 MAC 주소가 01-00-5E-64-64-64인 IP 멀티캐스트 그룹 239.100.100.100으로 이 보고서를 다시 보냅니다. 이 경우 그룹 주소로 전송되므로 모든 수신자는 다른 수신자가 보낸 보고서와 첫 번째 수신자가 다시 보낸 보고서를 받습니다.이렇게 하면 다른 수신자 PC가 이 그룹에 대한 보고서를 취소하도록 트리거됩니다.즉, 첫 번째로 응답한 PC의 소스 MAC 주소를 사용하여 이 그룹에 대해 하나의 CGMP 가입 메시지만 전송됩니다.이 작업은 오랜 기간 계속되며 모든 수신기 PC가 비디오 브로드캐스트를 수신합니다.
이 시점에서 다른 스위치는 네트워크의 토폴로지 변경을 트리거합니다.토폴로지 변경 수신 시 CGMP 사양에 따라 스위치는 CGMP를 통해 학습한 모든 멀티캐스트 항목을 지웁니다.라우터의 멀티캐스트 트래픽이 스위치의 모든 포트로 플러딩됩니다.
이 목록은 Cisco IOS 라우터를 통해 들어오는 멀티캐스트 스트림을 스위치에서 굵게 강조 표시한 포트를 보여줍니다.
포트 1 - 수신기 PC 1
포트 2 - 수신기 PC 2
포트 3 - 수신기 PC 3
포트 4 - 수신기 PC 4가 아님
port 5 - 기타 스위치(이 스위치에 수신기 또는 라우터 없음)
port 48 - IGMP 및 CGMP를 실행하는 Cisco IOS 라우터
모든 포트로 트래픽이 가득 차면 수신기 PC는 어떠한 차이도 감지하지 못하고 비디오 브로드캐스트를 계속 수신합니다.그러나 트래픽이 모든 포트로 플러딩되므로 수신기가 아닌 PC 4와 다른 스위치도 멀티캐스트 스트림을 수신합니다. 그러나 아직 요청하지 않았습니다.이는 Cisco IOS 라우터가 정기 IGMP 일반 쿼리를 다시 전송할 때까지 계속됩니다.이 값의 기본값은 Cisco IOS 라우터에서 60초입니다(IP IGMP 쿼리 간격으로 구성).
Cisco IOS 라우터가 첫 번째 IGMP 일반 쿼리를 전송하면 모든 수신기 PC가 239.100.100.100 그룹에 대한 IGMP 보고서 작성을 시작합니다.이 중 하나가(이 문서에서 PC 3임) IGMP 보고서를 처음으로 다시 보낸 것입니다.스위치에 아직 멀티캐스트 항목이 구축되어 있지 않으므로 모든 PC에서 수신하고 다른 수신기 PC는 IGMP 보고서를 취소합니다.Cisco IOS 라우터는 보고서를 수신하고 수신자 PC 3의 소스 주소와 함께 후속 CGMP 가입 메시지를 전송합니다.
이 스위치는 그룹 01-00-5e-64-64-64에 대한 멀티캐스트 엔트리를 다시 만들고 포트 3을 추가합니다. 이는 CGMP 가입 패킷의 소스 주소입니다.포트 5는 멀티캐스트 라우터 포트이므로 멀티캐스트 그룹에도 추가됩니다.따라서 수신기 PC3만 비디오 스트림을 수신하고 PC 1과 PC 2의 비디오 스트림은 그대로 유지됩니다.
이 목록은 Cisco IOS 라우터를 통해 들어오는 멀티캐스트 스트림을 스위치에서 굵게 강조 표시한 포트를 보여줍니다.
포트 1 - 수신기 PC 1
포트 2 - 수신기 PC 2
포트 3 - 수신기 PC 3
포트 4 - 수신기 PC 4가 아님
port 5 - 기타 스위치(이 스위치에 수신기 또는 라우터 없음)
포트 48 - IGMP 및 CGMP를 실행하는 Cisco IOS 라우터
IGMP 쿼리 간격이 끝나면 Cisco IOS 라우터는 다른 IGMP 일반 쿼리를 전송합니다.쿼리를 받으면 모든 수신기 PC가 239.100.100.100 그룹에 대한 보고서를 작성합니다.그러나 이번에는 수신자 PC 3 및 Cisco IOS 라우터에서만 다른 PC의 보고서를 수신합니다.(라우터 포트는 모든 멀티캐스트 그룹에 자동으로 추가됩니다.)
수신기는 PC 1과 PC 2에 다른 수신자의 보고서가 없기 때문에 두 사람 모두 보고서를 보낸다.그 후 Cisco IOS 라우터는 각 PC의 소스 MAC 주소와 함께 CGMP 가입 메시지를 전송하므로 해당 PC가 추가되고 Cisco IOS 라우터를 통해 멀티캐스트 스트림을 다시 수신하기 시작합니다.
이 목록은 Cisco IOS 라우터를 통해 들어오는 멀티캐스트 스트림을 스위치에서 굵게 강조 표시한 포트를 보여줍니다.
포트 1 - 수신기 PC 1
포트 2 - 수신기 PC 2
포트 3 - 수신기 PC 3
포트 4 - 수신기 PC 4가 아님
port 5 - 기타 스위치(이 스위치에 수신기 또는 라우터 없음)
포트 48 - IGMP 및 CGMP를 실행하는 Cisco IOS 라우터
컨피그레이션이 원래 안정된 상태로 돌아왔고 모든 것이 다시 정상적으로 작동합니다.이것은 일어난 것의 분석입니다.
토폴로지 변경이 발생합니다.
팁: 호스트 포트에서 portfast가 활성화되지 않거나 호스트가 재부팅되거나 포트에 연결/연결이 끊어질 때마다 링크 상태가 변경되면 VLAN에서 토폴로지 변경 알림이 트리거됩니다.토폴로지 변경 시 CGMP 디버깅이 활성화된 경우 다음 디버그 메시지가 표시됩니다.
CGMP SHIM: got short age timer
플러딩은 모든 포트에서 시작됩니다.
첫 번째 IGMP 일반 쿼리가 전송됩니다.
홍수는 멈춥니다.
모든 수신기가 멀티캐스트 스트림을 수신하는 것은 아닙니다.
두 번째 IGMP 일반 쿼리가 전송됩니다.
모든 수신기가 추가되고 멀티캐스트 스트림을 다시 수신합니다.
PC에 대한 멀티캐스트 스트림의 1분(기본 IGMP 쿼리 간격)이 항상 손실되는 것은 허용되지 않으므로, CGMP를 실행하는 라우터와 스위치 모두에 대해 몇 가지 향상된 기능이 있습니다.
라우터는 레이어 3 디바이스이므로 일반적으로 스패닝 트리 및 토폴로지 변경에 대해 알지 못하기 때문에 네트워크의 스위치가 이 토폴로지 변경 사항을 라우터에 알릴 필요가 있습니다.이를 처리하기 위해 IGMP 글로벌 휴가 메시지가 정의됩니다.
이 IGMP 글로벌 탈퇴 메시지는 스위치가 전송할 수 있는 IGMP leave(IGMP leave)로, 0.0.0.0 그룹에서 나가도록 요청합니다.
라우터가 IGMP 글로벌 leave 메시지로 오버로드되지 않도록 하려면, 토폴로지 변경이 끝날 때 스패닝 트리 도메인의 루트 스위치만 이 IGMP 글로벌 leave 메시지를 전송합니다.
라우터가 Cisco IOS Software를 실행하는 인터페이스에서 이 IGMP 전역 leave 메시지를 수신하면 해당 인터페이스에서 스패닝 트리 토폴로지 변경이 발생했음을 인식하고 다음 작업을 수행하여 멀티캐스트 수신기에 대한 멀티캐스트 트래픽 손실을 제한합니다.
IGMP 글로벌 탈퇴 메시지를 받은 후 CGMP 일괄 가입 메시지를 보냅니다.라우터는 자체 MAC 주소가 있는 CGMP 가입 메시지를 해당 인터페이스에 대한 IGMP 캐시에 있는 모든 멀티캐스트 그룹의 사용자 소스 주소로 전송합니다.이러한 CGMP 셀프 조인 메시지를 전송하면 CGMP 스위치는 해당 그룹에 라우터 포트만 포함된 각 그룹에 대한 엔트리를 자동으로 생성합니다.
이 목록에는 CGMP 배치 조인 후 이 문서에서 사용된 네트워크가 표시됩니다.굵게 표시된 대로 Cisco IOS 라우터만 멀티캐스트 그룹에 추가되었습니다.
참고: 이 문서의 이전 예에서 멀티캐스트 라우터에서 트래픽을 수신하는 포트는 굵은 글꼴로 표시되었지만 이 예에서는 스위치에 추가된 모든 포트를 멀티캐스트 그룹에 표시합니다.
포트 1 - 수신기 PC 1
포트 2 - 수신기 PC 2
포트 3 - 수신기 PC 3
포트 4 - 수신기 PC 4가 아님
port 5 - 기타 스위치(이 스위치에 수신기 또는 라우터 없음)
포트 48 - IGMP 및 CGMP를 실행하는 Cisco IOS 라우터
IGMP 일반 쿼리를 보냅니다.모든 수신자는 이 IGMP 일반 쿼리를 받고 가입한 모든 그룹에 대해 보고서를 작성합니다.CGMP 스위치는 라우터만 수신자로 하는 각 그룹에 대해 멀티캐스트 항목을 이미 구축했으므로 모든 보고서는 라우터에만 전송됩니다.라우터는 모든 수신기를 해당 그룹에 추가하기 위해 후속 CGMP 가입 메시지를 전송합니다.
모든 수신기가 IGMP 보고서를 다시 전송하고 라우터가 해당 CGMP 가입 메시지를 전송하면 모든 수신기가 멀티캐스트 그룹에 다시 추가되어야 합니다.
10초(기본 IGMP max-response-time) 후에 모든 수신기가 추가되었는지 확인하기 위해 다른 IGMP 일반 쿼리가 전송됩니다.이 단계는 모든 수신기가 멀티캐스트 그룹에 다시 참가하도록 하기 위해 몇 번 반복됩니다.
다음 예에서 굵은 글꼴로 표시된 것처럼 멀티캐스트 그룹에 추가되어야 하는 모든 포트가 있습니다.
포트 1 - 수신기 PC 1
포트 2 - 수신기 PC 2
포트 3 - 수신기 PC 3
포트 4 - 수신기 PC 4가 아님
port 5 - 기타 스위치(이 스위치에 수신기 또는 라우터 없음)
포트 48 - IGMP 및 CGMP를 실행하는 Cisco IOS 라우터
Catalyst 스위치 범위 내에서는 이러한 스위치의 동작에 몇 가지 차이가 있습니다.CGMP를 지원하는 모든 스위치는 이 문서의 CGMP 및 Topology Changes 섹션에 설명된 대로 작동합니다.그러나 CGMP의 향상된 기능은 일부 플랫폼에서 구현되지 않습니다.이 표에는 Catalyst 스위치 목록과 CGMP에 어떻게 대응하는지 나와 있습니다.
CGMP 스위치 | CGMP 라우터 | STP(Spanning Tree Protocol) 루트에 대한 전역 leave 전송 | |
---|---|---|---|
Cisco IOS Software를 실행하는 Catalyst 6500 | N | Y | Y |
CatOS를 실행하는 Catalyst 6500 | N | N | N |
Catalyst 5500, Catalyst 2926/2926G | Y | N | Y |
Catalyst 4000 Supervisor Engine I/II, Catalyst 2948G/2980G, Catalyst 4912G | Y | N | Y |
Catalyst 4000/4500 Supervisor Engine III/IV | N | Y | Y |
Catalyst 2900XL/3500XL | Y | N | Y |
Catalyst 2940 | N | N | N |
Catalyst 2950 | N | N | N |
Catalyst 2970 | N | N | N |
Catalyst 3550 | N | Y | Y |
Catalyst 3750 | N | Y | Y |
참고: Supervisor Engine III/IV가 있는 Catalyst 4000/4500에서는 토폴로지 변경 및 CGMP와 관련된 동작을 구성할 수 있습니다.스패닝 트리 루트가 아닌 경우 IGMP 글로벌 탈퇴 메시지를 전송하거나 전송하지 않도록 Catalyst 4000을 구성하려면 다음 명령을 실행합니다.
ip igmp 스누핑 cn 쿼리 요청
참고: 비활성화하려면 이 명령의 "no" 형식을 실행합니다.
ip igmp 스누핑 cn 쿼리 요청 없음