핵심 인사이트 (3줄 요약)
- 본질: IGMP Snooping(스누핑)은 L3 라우터가 아닌 L2 스위치(Switch)가, 단말과 라우터 사이에서 오고 가는 IGMP(가입/탈퇴) 메시지를 중간에서 몰래 엿듣고(Snooping) 훔쳐보아 자기만의 멀티캐스트 지도를 그리는 똑똑한 필터링 기술이다.
- 필요성 (스위치의 한계): 스위치는 원래 멍청해서 목적지가 멀티캐스트 MAC 주소(
01:00:5E...)인 프레임이 들어오면 "어? 브로드캐스트랑 똑같네? 전부 다 뿌려!(Flooding)"라고 냅다 복사해 버려 회사 네트워크가 뻗는 대참사를 유발한다.- 해결책: 스누핑을 켜면 스위치가 "아, 3번 포트 PC가 방금 멀티캐스트 가입(Join) 엽서를 썼네?"라고 눈치채고 기록해 두었다가, 위에서 영상이 내려오면 오직 3번 포트로만 조용히 영상을 전달(Forwarding)하여 동네 전체가 방송에 휩싸이는 것을 막아낸다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 2계층 장비(스위치)가 3계층 패킷인 IGMP 메시지 내용물을 분석하여, 포트별로 멀티캐스트 그룹의 MAC 테이블을 동적으로 구성하고 불필요한 플러딩(Flooding)을 억제하는 스위치 최적화 기능.
-
필요성: 라우터는 IGMP를 알아들으니 가입한 포트로만 영상을 깔끔하게 쏴줬다. 그런데 그 라우터 밑에 달린 24포트 스위치가 문제였다. 라우터가 스위치로 영상을 던지면, 2계층 스위치는 "멀티캐스트 MAC 주소? 나 이거 어딘지 모름! 걍 모든 포트로 다 복사해!!"라며 24개 포트 전체에 기가바이트급 영상을 쏴버린다(L2 멀티캐스트의 기본 동작 = Flooding). 결국 1명만 IPTV를 켜도 나머지 23명의 직원이 핑이 1000ms가 넘어가는 지옥을 맛보게 되자, L2 스위치에 뇌를 달아주는 스누핑 기능이 필수적으로 개발되었다.
-
💡 비유: 라우터가 배달 기사님이라면 스위치는 아파트 경비실입니다.
- 스누핑이 없을 때: 기사님이 멀티캐스트 우편물을 경비실(스위치)에 던지면, 멍청한 경비 아저씨가 그걸 복사해서 101호부터 124호까지 전 세대 우편함에 전부 꽂아버려 우편함이 터져버립니다.
- 스누핑을 켰을 때: 경비 아저씨가 평소에 입주민들이 배달 기사님에게 내는 "구독 신청서(IGMP Join)"를 중간에서 몰래 훔쳐 읽고(Snooping), "아, 103호만 우유를 신청했군"이라고 수첩에 적어둡니다. 내일 우유가 오면 103호에만 조용히 꽂아줍니다.
📢 섹션 요약 비유: IGMP 스누핑은 눈치 없는 동네 확성기(스위치)를, 주민들의 취향을 몰래 파악하여 필요한 집에만 조용히 전단지를 밀어 넣는 **"눈치 빠른 타겟 마케터"**로 진화시키는 마법의 스위치 설정입니다.
Ⅱ. IGMP 스누핑의 동작 알고리즘과 포트 역할 (Deep Dive)
1. 스누핑의 동작 메커니즘 (엿듣기와 맵핑)
스위치에서 ip igmp snooping 명령어를 켜는 순간, 스위치 칩셋(ASIC)은 평소엔 거들떠보지도 않던 IGMP 패킷(Type 0x22 등)을 일일이 까보기 시작한다.
- Join 메시지 엿듣기: PC(2번 포트)가 라우터를 향해 "나 239.1.1.1 채널 볼래!"라고
IGMP Report를 쏜다. - 테이블 갱신: 스위치는 이 패킷을 라우터로 통과시켜 주는 동시에 속으로 **"오케이, 2번 포트는 239.1.1.1 번 멀티캐스트 멤버!"**라고 자기 내부의 MAC 주소 테이블에 특별하게 매핑(MAC:
01:00:5E:01:01:01-> Port 2)해 둔다. - 영상 전달 (포워딩): 라우터에서 239.1.1.1 영상 패킷이 엄청난 기세로 쏟아져 내려온다. 스위치는 아까 만든 테이블을 보고 "이건 2번 포트로만 던진다!" 하고 깔끔하게 유니캐스트처럼 처리해 버린다.
┌─────────────────────────────────────────────────────────────┐
│ IGMP 스누핑 유무에 따른 L2 망의 차이 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ 라우터 ] ──── (영상 1Gbps 트래픽 내려옴) ──▶ │
│ │
│ 상황 A) 스위치가 멍청할 때 (Snooping OFF) │
│ [ 스위치 ] ──▶ Port 1 (영상 안봄: 강제 수신, PC 버벅댐) │
│ / \ ──▶ Port 2 (영상 봄: 정상 수신) │
│ ──▶ Port 3 (영상 안봄: 강제 수신, PC 버벅댐) │
│ ▶ 결과: 동네 대역폭 전체가 박살 나고 네트워크 마비(Broadcast Storm 유사)│
│ │
│ 상황 B) 스위치가 똑똑할 때 (Snooping ON) │
│ [ 스위치 ] ── 차단 ── Port 1 (쾌적) │
│ / ── 전달 ──▶ Port 2 (영상만 쏙 골라 받음) │
│ ── 차단 ── Port 3 (쾌적) │
│ ▶ 결과: 스위치가 중간에서 Join 편지를 훔쳐본 덕분에 평화가 찾아옴. │
└─────────────────────────────────────────────────────────────┘
2. Mrouter Port (멀티캐스트 라우터 포트)의 자동 감지
스위치는 "어느 포트에 멀티캐스트 라우터(윗선)가 연결되어 있는지"도 알아야 한다. 그래야 PC가 쓴 Join 엽서를 라우터 쪽으로 던져줄 수 있다.
- 스위치는 라우터가 125초마다 아래로 뿌리는 "생존 확인 방송(IGMP General Query)" 패킷을 엿듣고, "아! 24번 포트에서 라우터 목소리가 들리네! 24번이 라우터와 연결된 포트(Mrouter Port)구나!"라고 스스로 학습한다.
- 이 덕분에 스위치들끼리 연결된 복잡한 망에서도 상위 라우터 쪽으로만 똑똑하게 요청을 올려보낼 수 있다.
📢 섹션 요약 비유: IGMP 스누핑은 스위치가 단순히 짐을 나르던 지게꾼에서 벗어나, 상자 속에 든 편지 내용(가입/탈퇴)을 몰래 읽어보고 지점별 배송 장부를 스스로 업데이트하는 "월권행위(오지랖)를 통한 극강의 최적화" 기술입니다.