IGMP 스누핑 개요
IGMP(Internet Group Management Protocol) 스누핑은 디바이스의 VLAN에서 IPv4 멀티캐스트 트래픽 플러딩을 제한합니다. IGMP 스누핑이 활성화된 상태에서 디바이스는 네트워크에서 IGMP 트래픽을 모니터링하고 학습한 내용을 사용하여 관심 있는 수신기에 연결된 다운스트림 인터페이스로만 멀티캐스트 트래픽을 전달합니다. 디바이스는 트래픽을 VLAN의 모든 다운스트림 인터페이스로 플러딩하는 대신 트래픽을 수신하려는 디바이스에 연결된 인터페이스에만 멀티캐스트 트래픽을 전송하여 대역폭을 절약합니다.
IGMP 스누핑의 이점
Optimized bandwidth utilization—IGMP 스누핑의 주요 이점은 패킷 플러딩을 줄이는 것입니다. 디바이스는 IPv4 멀티캐스트 데이터를 VLAN의 모든 포트로 플러딩하는 대신 데이터를 수신하려는 포트 목록으로 선택적으로 전달합니다.
Improved security- 알 수 없는 소스의 서비스 거부 공격을 방지합니다.
IGMP 스누핑 작동 방식
디바이스는 일반적으로 수신하는 프레임의 소스 주소 필드를 확인하여 유니캐스트 MAC 주소를 학습한 다음 해당 유니캐스트 주소에 대한 트래픽을 적절한 인터페이스로만 보냅니다. 그러나 멀티캐스트 MAC 주소는 패킷의 소스 주소가 될 수 없습니다. 그 결과, 디바이스가 멀티캐스트 대상 주소에 대한 트래픽을 수신하면 관련 VLAN의 트래픽을 플러딩하여 관심 있는 수신자가 없을 수도 있는 상당한 양의 트래픽을 전송합니다.
IGMP 스누핑은 이러한 플러딩을 방지합니다. IGMP 스누핑을 활성화하면 디바이스는 수신기와 멀티캐스트 라우터 간의 IGMP 패킷을 모니터링하고 패킷 내용을 사용하여 멀티캐스트 포워딩 테이블(멀티캐스트 그룹 데이터베이스 및 그룹 멤버에 연결된 인터페이스)을 구축합니다. 디바이스가 멀티캐스트 패킷을 수신하면 멀티캐스트 포워딩 테이블을 사용하여 적절한 멀티캐스트 그룹의 멤버에 연결된 인터페이스로만 트래픽을 선택적으로 전달합니다.
ELS(Enhanced Layer 2 Software) 구성 스타일을 지원하지 않는 EX 시리즈 및 QFX 시리즈 스위치에서 IGMP 스누핑은 기본적으로 모든 VLAN(또는 일부 디바이스의 기본 VLAN에서만)에서 활성화되며 하나 이상의 VLAN에서 선택적으로 비활성화할 수 있습니다. 다른 모든 디바이스에서는 VLAN 또는 브리지 도메인에서 IGMP 스누핑을 명시적으로 구성하여 활성화해야 합니다.
보조(프라이빗) VLAN(PVLAN)에서는 IGMP 스누핑을 구성할 수 없습니다. 그러나 EX4300 스위치 및 EX4300 Virtual Chassis의 Junos OS 릴리스 18.3R1과 EX4300 멀티기가비트 스위치의 Junos OS 릴리스 19.2R1부터는 기본 VLAN에서 IGMP 스누핑을 활성화하면 해당 기본 VLAN에 대해 정의된 모든 보조 VLAN에서도 암시적으로 활성화합니다. 자세한 내용은 프라이빗 VLAN(PVLAN)의 IGMP 스누핑 을 참조하십시오.
라우팅된 VLAN 인터페이스에서 IGMP 스누핑의 작동 방식
디바이스는 라우팅된 VLAN 인터페이스(RVI)를 사용하여 구성의 VLAN 간에 트래픽을 전달할 수 있습니다. IGMP 스누핑은 레이어 2 인터페이스 및 RVI와 함께 작동하여 스위치드 네트워크에서 멀티캐스트 트래픽을 전달합니다.
디바이스가 멀티캐스트 패킷을 수신하면 패킷 전달 엔진은 패킷에 대해 멀티캐스트 조회를 수행하여 패킷을 로컬 인터페이스로 전달하는 방법을 결정합니다. 조회 결과에서 각 패킷 전달 엔진은 패킷 전달 엔진에 로컬 포트가 있는 레이어 3 인터페이스 목록을 추출합니다. 목록에 RVI가 포함된 경우 디바이스는 패킷 전달 엔진에 RVI에 대한 브리지 멀티캐스트 그룹 ID를 제공합니다.
멀티캐스트 수신기를 포함하는 VLAN의 경우, 브리지 멀티캐스트 ID에는 멀티캐스트 스트림 수신에 관심이 있는 VLAN의 레이어 2 인터페이스를 식별하는 하위 다음 홉 ID가 포함됩니다. 그런 다음 패킷 전달 엔진은 멀티캐스트 트래픽을 전달하여 지정된 멀티캐스트 그룹에 대한 멀티캐스트 수신기가 있는 멀티캐스트 ID를 연결합니다.
IGMP 메시지 유형
멀티캐스트 라우터는 IGMP를 사용하여 연결된 물리적 네트워크 각각에 대해 관심 있는 리스너가 있는 그룹을 파악합니다. 지정된 서브넷에서 하나의 멀티캐스트 라우터가 IGMP 쿼리 발생기 역할을 합니다. IGMP 쿼리 발생기는 호스트에 다음과 같은 유형의 쿼리를 보냅니다.
일반 쿼리 - 호스트가 어떤 그룹을 수신하고 있는지 묻습니다.
Group-specific query—(IGMPv2 및 IGMPv3만 해당) 호스트가 특정 멀티캐스트 그룹을 수신하고 있는지 묻습니다. 이 쿼리는 멀티캐스트 그룹을 떠나는 호스트에 대한 응답으로 전송되며 라우터가 나머지 호스트가 그룹에 관심이 있는지 신속하게 확인할 수 있도록 합니다.
Group-and-source-specific query—(IGMPv3 전용) 호스트가 특정 멀티캐스트 소스에서 그룹 멀티캐스트 트래픽을 수신하고 있는지 묻습니다. 이 쿼리는 멀티캐스트 소스에서 그룹 멀티캐스트 트래픽을 수신하는 데 더 이상 관심이 없음을 나타내는 호스트에 대한 응답으로 전송되며, 라우터가 나머지 호스트가 해당 소스에서 그룹 멀티캐스트 트래픽을 수신하는 데 관심이 있는지 신속하게 확인할 수 있도록 합니다.
멀티캐스트 리스너인 호스트는 다음과 같은 종류의 메시지를 보냅니다.
Membership report(멤버십 보고서) - 호스트가 특정 멀티캐스트 그룹에 가입하기를 원함을 나타냅니다.
Leave report(나가기 보고서) - (IGMPv2 및 IGMPv3만 해당) 호스트가 특정 멀티캐스트 그룹에서 나가기를 원함을 나타냅니다.
호스트가 멀티캐스트 그룹에 가입하고 탈퇴하는 방법
호스트는 다음 두 가지 방법으로 멀티캐스트 그룹에 가입할 수 있습니다.
호스트가 가입하려는 IP 멀티캐스트 그룹을 지정하는 멀티캐스트 라우터에 원치 않는 IGMP 가입 메시지를 보냅니다.
멀티캐스트 라우터의 일반 쿼리에 대한 응답으로 IGMP 가입 메시지를 보냅니다.
멀티캐스트 라우터는 VLAN에 있는 하나 이상의 호스트가 주기적인 일반 IGMP 쿼리에 응답하는 경우 해당 VLAN으로 멀티캐스트 트래픽을 계속 전달합니다. 호스트가 멀티캐스트 그룹의 구성원으로 유지되려면 주기적인 일반 IGMP 쿼리에 계속 응답해야 합니다.
호스트는 다음 두 가지 방법 중 하나로 멀티캐스트 그룹을 탈퇴할 수 있습니다.
특정 시간 간격 내에 주기적인 쿼리에 응답하지 않음으로써, 이를 "자동 휴가"로 간주합니다. IGMPv1 호스트에 대한 유일한 leave 방법입니다.
휴가 보고서를 보냅니다. 이 메서드는 IGMPv2 및 IGMPv3 호스트에서 사용할 수 있습니다.
IGMPv3 멀티캐스트 소스 지원
IGMPv3에서 호스트는 소스 주소 목록이 포함된 멤버십 보고서를 보낼 수 있습니다. 호스트가 INCLUDE 모드에서 멤버십 보고서를 보낼 때 호스트는 소스 주소 목록에 있는 소스의 그룹 멀티캐스트 트래픽에만 관심이 있습니다. 호스트가 EXCLUDE 모드에서 멤버 자격 보고서를 보내는 경우 호스트는 소스 주소 목록의 소스를 제외한 모든 소스의 그룹 멀티캐스트 트래픽에 관심이 있습니다. 호스트는 source-list 매개변수가 비어 있는 EXCLUDE 보고서(EXCLUDE NULL 보고서라고 함)를 보낼 수도 있습니다. EXCLUDE NULL 보고서는 호스트가 멀티캐스트 그룹에 가입하고 모든 소스에서 패킷을 수신하기를 원함을 나타냅니다.
IGMPv3를 지원하는 디바이스는 INCLUDE 및 EXCLUDE 멤버십 보고서를 처리하며, 대부분의 디바이스는 요청된 소스의 SSM(Source-Specific Multicast) 트래픽만 구독 수신자에게 전달합니다. 그러나 다음과 같은 일부 구성에서는 디바이스가 소스별로 멀티캐스트 트래픽을 엄격하게 전달하지 않는 것을 볼 수 있습니다.
ELS(Enhanced Layer 2 Software) 구성 스타일을 사용하지 않는 EX 시리즈 및 QFX 시리즈 스위치
18.1R2 이전의 Junos OS 릴리스를 실행하는 EX2300 및 EX3400 스위치
18.2R1, 18.1R2, 17.4R2, 17.3R3, 17.2R3 및 14.1X53-D47 이전의 Junos OS 릴리스를 실행하는 EX4300 스위치
SRX 시리즈 서비스 게이트웨이
이러한 경우 디바이스는 지정된 그룹의 VLAN에서 수신하는 모든 INCLUDE 및 EXCLUDE 모드 보고서를 해당 그룹에 대한 모든 멀티캐스트 소스를 포함하는 단일 경로로 통합할 수 있으며, 다음 홉은 그룹에 관심 있는 수신자가 있는 모든 인터페이스를 나타냅니다. 그 결과, VLAN의 관심 있는 수신자는 INCLUDE 보고서에 포함되지 않은 소스 또는 EXCLUDE 보고서에서 제외된 소스에서 트래픽을 수신할 수 있습니다. 예를 들어, 호스트 1이 소스 A의 G에 대한 트래픽을 원하고 호스트 2가 소스 B의 그룹 G에 대한 트래픽을 원하는 경우, A 또는 B가 트래픽을 전송하는지 여부에 관계없이 둘 다 그룹 G에 대한 트래픽을 수신합니다.
IGMP 스누핑 및 포워딩 인터페이스
멀티캐스트 트래픽 포워딩 방법을 결정하기 위해 IGMP 스누핑이 활성화된 디바이스는 멀티캐스트 포워딩 테이블에서 다음 인터페이스에 대한 정보를 유지합니다.
멀티캐스트 라우터 인터페이스 - 이러한 인터페이스는 멀티캐스트 라우터 또는 IGMP 쿼리어로 연결됩니다.
Group-member interfaces(그룹 멤버 인터페이스) - 이러한 인터페이스는 멀티캐스트 그룹의 멤버인 호스트로 연결됩니다.
디바이스는 IGMP 트래픽을 모니터링하여 이러한 인터페이스에 대해 학습합니다. 인터페이스가 IGMP 쿼리 또는 PIM(Protocol Independent Multicast) 업데이트를 수신하면 디바이스는 멀티캐스트 포워딩 테이블에 인터페이스를 멀티캐스트 라우터 인터페이스로 추가합니다. 인터페이스가 멀티캐스트 그룹에 대한 멤버십 보고서를 수신하는 경우, 디바이스는 멀티캐스트 포워딩 테이블에 인터페이스를 그룹 멤버 인터페이스로 추가합니다.
학습된 인터페이스 테이블 항목은 일정 기간이 지나면 만료됩니다. 예를 들어, 학습된 멀티캐스트 라우터 인터페이스가 특정 간격 내에 IGMP 쿼리 또는 PIM Hello를 수신하지 않으면 디바이스는 멀티캐스트 포워딩 테이블에서 해당 인터페이스에 대한 항목을 제거합니다.
디바이스가 멀티캐스트 라우터 인터페이스 및 그룹 멤버 인터페이스를 학습하려면 네트워크에 IGMP 쿼리 발생기가 포함되어야 합니다. 멀티캐스트 라우터에서 사용되는 경우가 많지만, 로컬 네트워크에 멀티캐스트 라우터가 없는 경우 디바이스 자체를 IGMP 쿼리 발생기로 구성할 수 있습니다.
인터페이스를 멀티캐스트 라우터 인터페이스 또는 그룹 멤버 인터페이스로 정적으로 구성할 수 있습니다. 디바이스는 인터페이스에 대해 학습할 필요 없이 멀티캐스트 포워딩 테이블에 정적 인터페이스를 추가하며, 테이블의 항목은 에이징되지 않습니다. 디바이스에는 정적으로 구성된 인터페이스와 동적으로 학습된 인터페이스가 혼합되어 있을 수 있습니다.
일반 전달 규칙
IGMP 스누핑이 활성화된 VLAN의 인터페이스는 멀티캐스트 트래픽을 수신하고 다음 규칙에 따라 전달합니다.
IGMP 트래픽:
멀티캐스트 라우터 인터페이스에서 수신된 IGMP 일반 쿼리를 VLAN의 다른 모든 인터페이스로 전달합니다.
멀티캐스트 라우터 인터페이스에서 수신된 IGMP 그룹별 쿼리를 그룹의 멤버인 VLAN의 인터페이스로만 전달합니다.
호스트 인터페이스에서 수신된 IGMP 보고서를 동일한 VLAN의 멀티캐스트 라우터 인터페이스로 전달하지만 VLAN의 다른 호스트 인터페이스로는 전달하지 않습니다.
IGMP 트래픽이 아닌 멀티캐스트 트래픽:
대상 주소가 233.252.0.0/24인 멀티캐스트 패킷을 VLAN의 다른 모든 인터페이스로 플러딩합니다.
등록되지 않은 멀티캐스트 패킷(현재 멤버가 없는 그룹의 패킷)을 VLAN의 모든 멀티캐스트 라우터 인터페이스로 전달합니다.
등록된 멀티캐스트 패킷을 멀티캐스트 그룹의 멤버인 VLAN의 호스트 인터페이스와 VLAN의 모든 멀티캐스트 라우터 인터페이스로 전달합니다.
디바이스를 IGMP 쿼리 발생기로 사용
순수 레이어 2 로컬 네트워크(즉, 네트워크에서 레이어 3이 활성화되지 않음)에서 IGMP 스누핑을 사용하는 경우 네트워크에 멀티캐스트 라우터가 포함되어 있지 않으면 멀티캐스트 트래픽이 네트워크를 통해 제대로 전달되지 않을 수 있습니다. 멀티캐스트 수신기에 도달하기 위해 디바이스 간에 멀티캐스트 트래픽을 전달해야 하도록 로컬 네트워크가 구성된 경우 이 문제가 발생할 수 있습니다. 이 경우 다운스트림 디바이스는 IGMP 보고서를 업스트림 디바이스로 전달하지 않기 때문에 업스트림 디바이스는 멀티캐스트 트래픽을 다운스트림 디바이스로(따라서 다운스트림 디바이스에 연결된 멀티캐스트 수신기로) 전달하지 않습니다. 디바이스 중 하나를 IGMP 쿼리 발생기로 구성하여 이 문제를 해결할 수 있습니다. IGMP 쿼리 발생기 디바이스는 네트워크의 모든 디바이스에 주기적인 일반 쿼리 패킷을 전송하여 스누핑 멤버십 테이블이 업데이트되고 멀티캐스트 트래픽 손실을 방지합니다.
여러 디바이스를 IGMP 쿼리어로 구성하는 경우, 가장 낮은(가장 작은) IGMP 쿼리 발생기 소스 주소를 가진 디바이스가 우선하며 쿼리 발생기 역할을 합니다. IGMP 쿼리 발생기 소스 주소가 더 높은 디바이스는 255초 동안 IGMP 쿼리를 수신하지 않는 한 IGMP 쿼리 전송을 중지합니다. IGMP 쿼리 발생기 소스 주소가 더 높은 디바이스가 해당 기간 동안 IGMP 쿼리를 수신하지 않으면 쿼리를 다시 보내기 시작합니다.
Junos OS 릴리스 14.1X53-D15의 QFabric 시스템은 명령문을 지원 igmp-querier
하지만, Junos OS 15.1에서는 이 명령문을 지원하지 않습니다.
디바이스를 IGMP 쿼리 발생기로 구성하려면 다음을 입력합니다.
[edit protocols] user@host# set igmp-snooping vlan vlan-name l2-querier source-address source address
QFabric 노드 디바이스 스위치가 IGMP 쿼리 발생기 역할을 하도록 구성하려면 다음을 입력합니다.
[edit protocols] user@host# set igmp-snooping vlan vlan-name igmp-querier source-address source address
프라이빗 VLAN(PVLAN)의 IGMP 스누핑
PVLAN은 기본 VLAN 내에 구성된 보조 격리 및 커뮤니티 VLAN으로 구성됩니다. 보조 VLAN에서 IGMP 스누핑을 지원하지 않으면 기본 VLAN에서 수신된 멀티캐스트 스트림이 보조 VLAN으로 플러딩됩니다.
Junos OS 릴리스 18.3R1부터 EX4300 스위치와 EX4300 Virtual Chassis는 PVLAN을 통한 IGMP 스누핑을 지원합니다. Junos OS 릴리스 19.2R1부터 EX4300 멀티기가비트 모델 스위치는 PVLAN을 통한 IGMP 스누핑을 지원합니다. 기본 VLAN에서 IGMP 스누핑을 활성화하면 모든 보조 VLAN에서도 암시적으로 활성화하게 됩니다. 디바이스는 기본 VLAN에서 멀티캐스트 그룹 정보를 학습하고 저장하며, 기본 VLAN의 컨텍스트에서 보조 VLAN의 멀티캐스트 그룹 정보도 학습합니다. 그 결과, 디바이스는 모든 보조 VLAN에서 트래픽을 플러딩하지 않고 보조 VLAN의 관심 있는 수신기로만 멀티캐스트 스트림을 추가로 제한합니다.
CLI는 2차 격리 또는 커뮤니티 VLAN에서 IGMP 스누핑을 명시적으로 구성할 수 없도록 합니다. 보조 VLAN이 정의된 기본 VLAN에서만 IGMP 스누핑을 구성하면 됩니다. 예를 들어, 2차 격리 VLAN vlan-iso 및 2차 커뮤니티 VLAN vlan-comm이 있는 기본 VLAN vlan-pri의 경우:
set vlans vlan-pri vlan-id 100 set vlans vlan-pri isolated-vlan vlan-iso set vlans vlan-pri community-vlans vlan-comm set vlans vlan-iso vlan-id 300 set vlans vlan-iso private-vlan isolated set vlans vlan-comm vlan-id 200 set vlans vlan-comm private-vlan community set protocols igmp-snooping vlan vlan-pri
보조 VLAN 포트에서 수신된 IGMP 보고서 및 leave 메시지는 기본 VLAN의 컨텍스트에서 학습됩니다. PVLAN의 멀티캐스트 라우터 인터페이스 역할을 하는 무차별 트렁크 포트 또는 스위치 간 링크는 멀티캐스트 소스에서 들어오는 멀티캐스트 데이터 스트림을 수신하고 학습된 멀티캐스트 그룹 항목이 있는 보조 VLAN 포트로만 전달합니다.
이 기능은 보조 VLAN 포트를 멀티캐스트 라우터 인터페이스로 지원하지 않습니다. CLI는 커뮤니티 VLAN의 인터페이스를 멀티캐스트 라우터 포트로 정적으로 구성하는 것을 엄격하게 금지하지는 않지만, IGMP 스누핑은 이 구성의 PVLAN에서 제대로 작동하지 않습니다. IGMP 스누핑이 PVLAN에 구성된 경우, 스위치는 격리된 VLAN 인터페이스 또는 커뮤니티 VLAN 인터페이스에서 동적 멀티캐스트 라우터 포트 학습도 자동으로 비활성화합니다. PVLAN을 사용한 IGMP 스누핑은 격리된 VLAN 인터페이스 또는 커뮤니티 VLAN 인터페이스에서 IGMP 쿼리 발생기를 사용한 구성도 지원하지 않습니다.
PVLAN 구성에 대한 자세한 내용은 프라이빗 VLAN 이해 및 ELS 지원을 통해 여러 EX 시리즈 스위치에 걸친 프라이빗 VLAN 생성(CLI 절차) 을 참조하십시오.
변경 내역 테이블
기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.
igmp-querier
하지만, Junos OS 15.1에서는 이 명령문을 지원하지 않습니다.