본문 바로가기

네트워크

IGMP Snooping 설명 개념 동작 설정 pcap

조건

시청자 1~4 PC에서 NAVER_축구중계서버를 통해 영상을 보고자 한다.

SW1, SW2는 L3 스위치 또는 라우터에 해당 되고 SW3은 L2 스위치에 해당 된다.

NAVER_축구중계서버 방송 서버 주소는 udp://239.0.0.100:5004 이며 멀티캐스트를 이용하여 보낸다.

 

기본 동작

1) NAVER_축구중계서버에서 239.0.0.100:5004 주소를 통해 방송한다고 알림 (쿼리)

2) 방송을 보고자 하는 시청자는 239.0.0.100:5004인 패킷을 보내라고 응답을 함 (리포트)

3) SW3 이 없다면 모든 사용자에게 쿼리, 즉 멀티캐스트 패킷이 모든 시청자에게 간다.

 

IGMP Snooping 이 필요한 이유?

SW1, SW2 와 같은 L3 또는 라우터로부터 멀티캐스트 패킷을 수신한 SW3인 L2 스위치가

해당 패킷을 요청하는 PC에게만 패킷을 보내어 멀티캐스트 패킷이 모든 포트로 플러딩 되는 것을 방지할 수 있다.

(Layer2에서는 IGMP Snooping, Layer3에서는 PIM 이 사용 됨)

 

 설정 및 패킷 캡쳐

IGMP Snooping 을 사용하는 VLAN에 위와 같은 설정을 한다.

ip igmp snooping - IGMP Snooping 활성화
ip igmp querier - 라우터 대신 연결 된 호스트들에게 주기적으로 맴버쉽 쿼리 요청
ip igmp snooping mrouter - 라우터가 연결 된 포트를 지정
(동일 LAN에 IGMP Snooping 기능을 제공하는 SW의 쿼리를 멀티캐스트 역할의 라우터로 보내지 않게 하기 위함)

ip igmp groups - 쿼리 요청에 응답한 PC (ge1에서 239.0.0.100 이라는 멀티캐스트 주소로 패킷을 요청하고 있음)

시청자 PC (192.168.212.131)에서 Membership Report group을 통해 응답하고 있다.

방송 서버 역할을 하는 192.168.212.119에서 멀티캐스트 패킷이 발생 되는 것을 확인할 수 있다.

SW에서 보면 ge3(방송 서버)에서 수신하여 ge1(시청자 PC)로 패킷이 송신 되는 것을 확인할 수 있다.

SW IGMP Snooping 옵션에 따라서 모든 포트로 전송, 그룹에 가입 된 호스트만 전송하는 옵션을 설정할 수 있다.

multicast-flood-all : 멀티캐스트 그룹 가입 여부와 상관없이 모든 포트로 멀티캐스트 트래픽 전송
multicast-flood-none : 멀티캐스트 그룹에 가입 된 호스트 포트로만 전송, 호스트 존재하지 않으면 전송하지 않음
multicast-flood-unknown : 멀티캐스트 그룹에 가입 된 호스트 포트로만 전송
마치며

IGMP Snooping은 많이 사용 되는 기능은 아니지만 Layer2 스위치에서 종종 언급 되는 기능이다. 본문에서 사용한 설정, 명령어는 기본적으로 동작을 하기 위함이고 그 외 IGMP Snooping을 위한 세부 설정도 존재하니 시간이 나면 찾아보는 것도 좋겠다. 다음에 시간이 나면 PIM에 대해서도 작성을 하고 싶다. 끝.