'IGMP SNOOPING'에 해당되는 글 1건

  1. 2010.12.22 IGMP & IGMP Snooping
용어정리2010. 12. 22. 19:45


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)

Posted by 정웅구