소개
이 문서에서는 멀티캐스트 애플리케이션이 Catalyst 스위치 간에 동일한 VLAN에 구축될 때 장애를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
표기 규칙
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
배경 정보
또한 스위치를 적절하게 구성하지 않으면 클러스터/고가용성 작업에 멀티캐스트 패킷을 사용하는 일부 서버/애플리케이션이 작동하지 않을 수 있습니다. 이 글에서도 다루고 있다.
참고: 이러한 스위치를 식별하는 데 도움이 되는 내용은 Multicast Catalyst Switches Support Matrix 문서의 IGMP 스누핑 기능 Catalyst Switch Support Matrix 섹션을 참조하십시오.
문제
멀티캐스트 트래픽은 동일한 VLAN에서도 Catalyst 스위치를 통과하지 않습니다.그림 1은 이 시나리오를 보여줍니다.
그림 1 - 멀티캐스트 소스 및 수신기가 있는 네트워크 설정
네트워크 다이어그램
멀티캐스트 소스는 Cisco IOS Software를 실행하는 Supervisor Engine 720이 포함된 Catalyst 6500 스위치인 스위치 1에 연결됩니다. 수신기 1은 스위치 1에 연결되어 있고, 수신기 2는 스위치 2에 연결되어 있다. 스위치 2는 Catalyst 3750입니다. 스위치 1과 스위치 2 사이에는 액세스 또는 트렁크 레이어 2 링크가 있습니다.
이 설정에서는 소스와 동일한 스위치에 있는 Receiver 1이 아무런 문제 없이 멀티캐스트 스트림을 가져오는 것을 확인할 수 있습니다. 그러나 수신기 2는 멀티캐스트 트래픽을 수신하지 않습니다. 이 문서는 이 문제를 해결하기 위한 것입니다.
주요 멀티캐스트 개념 재방문
솔루션과 다양한 옵션을 살펴보기 전에 레이어 2 멀티캐스트의 특정 주요 개념을 명확히 해야 합니다. 이 섹션에서는 이러한 개념에 대해 설명합니다.
참고: 이 섹션에서는 이 특정 문제에만 초점을 맞춘 매우 간단하고 직접적인 설명을 제공합니다. 이 약관에 대한 자세한 설명은 이 문서의 끝에 있는 관련 정보 섹션을 참조하십시오.
IGMP
IGMP는 엔드 호스트(수신기)가 특정 멀티캐스트 트래픽을 수신할 최종 호스트 의도를 멀티캐스트 라우터(IGMP 쿼리 발생기)에 알릴 수 있도록 하는 프로토콜입니다. 따라서 이는 라우터와 종단 호스트 간에 실행되는 프로토콜이며 다음을 허용합니다.
IGMP 스누핑
IGMP 스누핑은 멀티캐스트 트래픽을 수신기가 연결된 포트로만 제한하는 메커니즘입니다. 이 메커니즘은 레이어 2 스위치가 필요한 포트에서만 멀티캐스트 패킷을 선택적으로 전송할 수 있게 하므로 효율성을 높입니다. IGMP 스누핑이 없으면 스위치는 모든 포트에서 패킷을 플러딩합니다. 스위치는 라우터 및 엔드 호스트가 IGMP 메시지를 교환하기 위해 "수신 대기"합니다. 이러한 방식으로 스위치는 특정 멀티캐스트 그룹을 요청한 모든 포트의 목록이 포함된 IGMP 스누핑 테이블을 구축합니다.
Mrouter 포트
라우터 포트는 멀티캐스트 라우터에 연결되는 스위치 관점의 포트입니다. IGMP 스누핑 작업이 여러 스위치에서 작동하려면 적어도 하나의 라우터 포트가 반드시 있어야 합니다.
L2에서의 멀티캐스트
목적지 IP가 224.0.0.0~239.255.255.255 범위에 있는 IPv4(IP version 4) 트래픽은 멀티캐스트 스트림입니다. 모든 IPv4 멀티캐스트 패킷은 01.00.5e. xx . xx . xx . xx .
참고: IGMP 스누핑은 멀티캐스트 MAC 주소가 이 IEEE 호환 MAC 범위에 매핑되는 경우에만 작동합니다. 일부 예약된 멀티캐스트 범위는 설계에 의해 스누핑된 범위에서 제외됩니다. 일치하지 않는 멀티캐스트 패킷이 스위치드 네트워크에서 소싱되면 해당 VLAN 전체에 패킷이 플러딩됩니다. 즉, 패킷이 브로드캐스트 트래픽과 같이 처리됩니다.
문제 및 가능한 해결 방법 이해
기본적으로 Catalyst 스위치에는 IGMP 스누핑이 활성화되어 있습니다. IGMP 스누핑을 사용하면 스위치가 모든 포트에서 IGMP 메시지를 스누프(또는 수신 대기)합니다. 이 스위치는 기본적으로 멀티캐스트 그룹을 요청한 모든 스위치 포트에 매핑하는 IGMP 스누핑 테이블을 구축합니다.
이전의 컨피그레이션 없이 수신기 1과 수신기 2가 01.00.5e.6f.ef.ef의 L2 멀티캐스트 MAC 주소에 매핑되는 239.239.239.239에 대한 멀티캐스트 스트림을 수신하겠다는 신호를 보낸 것으로 가정합니다. 스위치 1과 스위치 2는 모두 수신기가 생성하는 IGMP 보고서에 대한 응답으로 이러한 수신기에 대한 스누핑 테이블에 항목을 생성합니다. 스위치 1은 테이블에 포트 기가비트 이더넷 2/48을 입력하고 스위치 2는 테이블에 포트 고속 이더넷 1/0/47을 입력합니다.
참고: 이 시점에서는 멀티캐스트 소스가 트래픽을 시작하지 않았으며, 어떤 스위치도 스위치 mrouter 포트에 대해 알지 못합니다.
스위치 1의 소스가 멀티캐스트 트래픽을 스트리밍하기 시작하면 스위치 1이 수신기 1의 IGMP 보고서를 "확인"했습니다. 따라서 스위치 1은 멀티캐스트 아웃 포트 기가비트 이더넷 2/48을 제공합니다. 그러나 스위치 2가 IGMP 스누핑 프로세스의 일부로 수신기 2의 IGMP 보고서를 "흡수"했기 때문에 스위치 1은 포트 기가비트 이더넷 2/46에서 IGMP 보고서(멀티캐스트 요청)를 볼 수 없습니다. 그 결과, 스위치 1은 스위치 2로 멀티캐스트 트래픽을 전송하지 않습니다. 따라서 수신기 2가 동일한 VLAN에 있지만 멀티캐스트 소스와 다른 스위치에만 있는 경우에도 수신기 2는 멀티캐스트 트래픽을 수신하지 않습니다.
이 문제의 원인은 IGMP 스누핑이 실제로 mrouter가 없는 어떤 Catalyst 플랫폼에서도 지원되지 않기 때문입니다. 라우터 포트가 없는 경우 메커니즘이 "고장"납니다. 이 솔루션의 문제를 해결하려면 스위치에서 라우터 포트를 알고 있거나 알고 있어야 합니다. 절차에 대한 자세한 설명은 이 문서의 솔루션 섹션을 참조하십시오. 스위치에 라우터 포트가 있으면 이 문제가 어떻게 해결되는지 알아내야 합니다.
기본적으로 스위치가 라우터 포트에 대해 학습하거나 정적으로 알게 되면 두 가지 중요한 사항이 발생합니다.
-
스위치는 수신기에서 라우터 포트로 IGMP 보고를 "릴레이"합니다. 즉, IGMP 보고가 멀티캐스트 라우터로 이동합니다. 스위치가 모든 IGMP 보고서를 릴레이하지는 않습니다. 그 대신 스위치는 몇 개의 보고서만 라우터로 전송합니다. 이 논의의 목적상 보고서의 수는 중요하지 않다. 멀티캐스트 라우터는 멀티캐스트 다운스트림에 여전히 관심이 있는 수신기가 하나 이상 있는지 여부만 알면 됩니다. 결정을 내리기 위해 멀티캐스트 라우터는 IGMP 쿼리에 대한 응답으로 주기적인 IGMP 보고서를 수신합니다.
-
수신자가 아직 "참가"하지 않은 소스 전용 멀티캐스트 시나리오에서 스위치는 멀티캐스트 스트림만 라우터 포트 밖으로 전송합니다.
스위치가 라우터 포트를 알고 있으면 스위치 2는 스위치가 수신기 2에서 받은 IGMP 보고서를 해당 라우터 포트로 릴레이합니다. 이 포트는 고속 이더넷 1/0/33입니다. 스위치 1은 스위치 포트 Gigabit Ethernet 2/46에서 이 IGMP 보고서를 가져옵니다. 스위치 1의 관점에서, 스위치는 단지 또 다른 IGMP 보고를 받았다. 스위치는 해당 포트를 IGMP 스누핑 테이블에 추가하고 해당 포트에서 멀티캐스트 트래픽도 전송하기 시작합니다. 이때 두 수신기 모두 요청된 멀티캐스트 트래픽을 수신하며, 애플리케이션은 예상대로 작동합니다.
스위치가 라우터 포트를 식별하여 IGMP 스누핑이 간단한 환경에서 작동할 것으로 예상되는 경우 작동하는 방법을 알아보려면 솔루션 섹션에서 답을 확인하십시오.
솔루션
옵션 1: 레이어 3 라우터/VLAN 인터페이스에서 PIM 활성화
모든 Catalyst 플랫폼에는 라우터 포트에 대해 동적으로 학습하는 기능이 있습니다. 스위치는 멀티캐스트 라우터가 주기적으로 전송하는 PIM(Protocol Independent Multicast) hello 또는 IGMP 쿼리 메시지를 수동적으로 수신합니다.
이 예에서는 Catalyst 6500에서 VLAN 1 SVI(Switched Virtual Interface)를 ip pim sparse-mode
.
Switch1#show run interface vlan 1
!
interface Vlan1
ip address 10.1.1.1 255.255.255.0
ip pim sparse-mode
end
- Switch 1 now reflects itself (Actually the internal router port) as an Mrouter port.
Switch1#show ip igmp snooping mrouter
vlan ports
-----+----------------------------------------
1 Router
- Switch 2 receives the same PIM hellos on its Fa 1/0/33 interface. So it assigns that port as its Mrouter port.
Switch2#show ip igmp snooping mrouter
Vlan ports
---- -----
1 Fa1/0/33(dynamic)
옵션 2: Layer 2 Catalyst 스위치에서 IGMP Querier 기능 활성화
네트워크/VLAN에 멀티캐스트 라우터 역할을 수행하고 스위치에서 라우터 검색을 제공할 수 있는 라우터가 없는 경우 IGMP 쿼리 발생기 기능을 활성화할 수 있습니다. 이 기능을 사용하면 레이어 2 스위치에서 멀티캐스트 라우터를 프록시하고 해당 네트워크에서 주기적인 IGMP 쿼리를 전송할 수 있습니다. 이 작업을 수행하면 스위치가 자신을 라우터 포트로 간주합니다. 네트워크의 나머지 스위치는 단순히 이 IGMP 쿼리를 수신한 인터페이스로 각 라우터 포트를 정의합니다.
Switch2(config)#ip igmp snooping querier
Switch2#show ip igmp snooping querier
Vlan IP Address IGMP Version Port
-------------------------------------------------------------
1 10.1.1.2 v2 Switch
이제 스위치 1은 포트 Gig 2/46이 스위치 2에 연결되는 것을 라우터 포트로 인식합니다.
Switch1#show ip igmp snooping mrouter
vlan ports
-----+----------------------------------------
1 Gi2/46
스위치 1의 소스가 멀티캐스트 트래픽을 스트리밍하기 시작하면 스위치 1은 IGMP 스누핑을 통해 발견된 수신기 1(즉, 출력 포트 Gig 2/48) 및 라우터 포트(즉, 출력 포트 Gig 2/46)로 멀티캐스트 트래픽을 전달합니다.
옵션 3: 스위치에 고정 라우터 포트 구성
스위치에서 라우터 포트가 없기 때문에 동일한 레이어 2 VLAN 내에서 멀티캐스트 트래픽이 실패합니다. 이 항목에서는 문제 이해 및 해결 방법에 대해 다룹니다. 모든 스위치에서 라우터 포트를 정적으로 구성하는 경우 IGMP 보고서가 해당 VLAN에서 모든 스위치로 릴레이될 수 있습니다. 그 결과, 멀티캐스팅이 가능합니다. 따라서 이 예에서는 Catalyst 3750 스위치가 Fast Ethernet 1/0/33을 라우터 포트로 갖도록 정적으로 구성해야 합니다.
이 예에서는 스위치 2에만 고정 라우터 포트가 필요합니다.
Switch2(config)#ip igmp snooping vlan 1 mrouter interface fastethernet 1/0/33
Switch2#show ip igmp snooping mrouter
Vlan ports
---- -----
1 Fa1/0/33(static)
옵션 4: 모든 스위치에서 고정 멀티캐스트 MAC 항목 구성
모든 수신기 포트 및 다운스트림 스위치 포트의 모든 스위치에서 멀티캐스트 MAC 주소에 대한 CAM(Content-Addressable Memory) 항목을 만들 수 있습니다. 모든 스위치는 고정 CAM 항목 규칙을 준수하고 CAM 테이블에 지정된 모든 인터페이스를 통해 패킷을 전송합니다. 이 솔루션은 멀티캐스트 애플리케이션이 많은 환경에서 가장 확장성이 낮은 솔루션입니다.
Switch1(config)#mac-address-table static 0100.5e6f.efef vlan 1 interface gigabitethernet 2/46 gigabitethernet 2/48
Switch1#show mac-address-table multicast vlan 1
vlan mac address type learn qos ports
-----+---------------+--------+-----+---+--------------------------------
1 0100.5e6f.efef static Yes - Gi2/46,Gi2/48
Switch2(config)#mac-address-table static 0100.5e6f.efef vlan 1 interface fastethernet 1/0/47
Switch2#show mac-address-table multicast vlan 1
Vlan Mac Address Type Ports
---- ----------- ---- -----
1 0100.5e6f.efef USER Fa1/0/47
옵션 5: 모든 스위치에서 IGMP 스누핑 비활성화
IGMP 스누핑을 비활성화하면 모든 스위치에서 멀티캐스트 트래픽을 브로드캐스트 트래픽으로 취급합니다. 이렇게 하면 포트에 해당 멀티캐스트 스트림에 대한 관련 수신기가 있는지 여부에 관계없이 해당 VLAN의 모든 포트에 트래픽이 플러딩됩니다.
Switch1(config)#no ip igmp snooping
Switch2(config)#no ip igmp snooping
관련 정보