본문 바로가기

tech/carrier ethernet

IGMP & IGMP Snooping

반응형



1. 개요

   IGMP는 하나의
라우터와 여러 호스트로 구성되는 서브네트워크(Sub-Network) 상에서 라우터가 자신에 속한 호스트들이 어떤 멀티캐
   스트 그룹에 속하는 가를 파악하기 위한 일종의 신호(Signal) 제어용 프로토콜(Signalling Protocol)을 말한다. 

   유저(단말)과 라우터와의 관계.
   IGMP(Internet Group Management Protocol)은 멀티캐스트 그룹의 멤버쉽을 관리하기 위해 사용되는 Communication 프로토콜이다.
   IGMP는 IP호스트와 바로 근처에 있는 멀티케스트 라우터에 사이에서 멀티캐스트 멤버쉽 그룹을 만드는데 사용된다.
   IGMP는 IP 멀티캐스트에서 없어서는 안될 중요한 요소이며 네트워크 Layer (Layer 3)에서 수행된다. 그리고 unicast connections에

   사용되는 ICMP 와 유사하다. IGMP는 온라인 스트리밍 비디오나 게임에 사용되며 이러한 유형의 응용 서비스에서 대역폭의 좀더 효율
  
적인 사용을 가능하게 한다. IGMP는 몇가지의 외부 공격에 노출되어 있고 firewall 은 유저가 필요하지 않을 때 사용하지 않는것을 허용
  
한다.

 


2. 동작설명

  ㅇ 멀티캐스트 라우터는 주기적으로
Subnet 호스트 그룹들(224.0.0.1)에게 IGMP Query  메시지전송한다.
  ㅇ 호스트는 IGMP Query 메시지에 응답하며, 자신이 가입하고자 하는 그룹주소 정보를 IGMP Report 메시지를 통해 라우터에게 알려준다.
  ㅇ 한편, 호스트는 Query 메시지 없이도 먼저 Report 메시지를 라우터에게 전송할 수 있다.

3. IGMP
패킷 구성
                   20                  8 바이트
   ┌──────────────┲━━━━━━━━┓
   │
IP Header (Protocol ID = 2)    ┃  IGMP 메세지   ┃
   └──────────────┺━━━━━━━━┛
              ┌───┬───┬────┬─────┬──────────────┐
  IGMPv1 │ 버젼  │ 유형  │ Unused │
Checksum     멀티캐스트 그룹 주소           │
              └───┴───┴────┴─────┴──────────────┘
                     4          4            8              16                  32 비트

          ㅇ 버젼 : IGMP 버젼
          ㅇ 유형 : 질의(조회) 및 응답(보고)
             - 질의(조회)  : 1 (
Host Membership Query)  (라우터 -> 호스트)
               . 특정 그룹에 참여를 원하는 호스트 있는지 확인조회
             - 응답(보고)  : 2 (Host Membership Report) (호스트 -> 라우터)
               . 특정 그룹에 참여를 원하거나, Query에 응답
          ㅇ 멀티캐스트 그룹 주소(goupid) :
클래스 D 인 IP 주소  ☞ Multicast

             ┌───────┬────┬─────┬──────────────┐
  IGMPv2 │      유형        │   MRT   │Checksum│    멀티캐스트 그룹 주소         │
             └───────┴────┴─────┴──────────────┘
                          8                  8              16                       32 비트

          ㅇ 유형
             - Membership Query : 0x11
             - Membership Report : 0x16
                                   0x12 (IGMPv1과의 호환)
             - 특정그룹 탈퇴 : Leave Group : 0x17
          ㅇ MRT (Membership Response Time)


4. IGMP 동작 구분

  ㅇ 그룹 가입 (joining) : 그룹에 가입하고자 하는 요청을 라우터에 보고
  ㅇ 그룹 멤버쉽 조사 (monitoring) : 멤버쉽 질의 메시지를 보내서 응답을 기다림
  ㅇ 멤버쉽 연속 (member continuation) : 계속해서 유지하기 원하는 보고 메시지
  ㅇ 그룹 탈퇴 (leavinig) : 탈퇴에 대한 응답메시지를 보내지 않음

5. IGMP
Snooping

IGMP Snooping은 IGMP traffic을 감지하기 위해 사용된다. 이름에서 알 수 있듯이 스위치가 라우터와 클라이언트 사이에서 벌어지는 IGMP 송 수신을 스위치에서 Layer 3 에서 주고 받아지는  멀티캐스트 패킷 프로세싱에 의해 감지하도록 하게한다.
스위치에서 IGMP Snooping이 enable 되었을 때 스위치는 네트웍상에 있는 라우터와 host 사이에서 주고 받는 모든 IGMP 패킷들을 분석한다. 스위치가 호스트로 부터 주어진 멀티캐스트 그룹을 위한 IGMP Report를 감지했을 때 스위치는 멀티캐스트 그룹 리스트에 호스트의 포트 넘버를 추가한다. 그리고 스위치가 IGMP Leave를 감지했을 때 멀티캐스트 그룹 리스트에 그 호스트의 포트를 삭제한다.

6. 관련표준

  ㅇ
RFC 1112 (Host extensions for IP Multicasting, IGMP v1)
  ㅇ RFC 2236 (IGMP v2)
  ㅇ RFC 3376 (IGMP v3)



반응형