본문 바로가기

OSI Model

11. IGMP (3계층 Network Layer 네크워크 계층)

(3계층 Network Layer 네크워크 계층)


IGMP(Internet Group Management Protocol)

 

특정 그룹에 속하는 모든 호스트에 메시지를 전송하는 방식을 멀티캐스팅(Multicasting)이라고 한다.

 

그리고 이때 필요한 라우팅 알고리즘을 멀티캐스트 라우팅(Multicast Routing)이라고 한다.

 

IGMP 프로토콜은 여러 호스트(수신자)에게 채널이 효과적으로 전송되게 하기 위해, 멀티캐스트 네트워크를 기반으로 구성되는 IPTV 서비스에 많이 사용되고 있다.

 

IGMP 동작 과정

자신이 IGMP 메시지에 표시된 멀티캐스트 주소의 멤버임을 다른 호스트와 라우터에 알리기 위한 용도로 IGMP를 사용한다.

 

즉 A 그룹에 가입하려면 해당 멀티캐스트 주소를 표기한 IGMP 보고 메시지를 전송해야 하는데, IGMP 헤더의 Group Address 필드에 가입을 원하는 멀티캐스트 주소를 기록한다.

 

 

멀티캐스트 라우터가 그룹에 속한 멤버 목록을 유효하게 관리하려면 IGMP 질의 메시지를 사용해 주기적으로 확인하는 과정이 필요하다.

 

개별 호스트가 자신의 그룹 멤버를 유지하려면 B 처럼 IGMP 보고 메시지를 사용해 IGMP 질의에 응답해야 한다.

 

C 처럼 라우터의 질의 메시지에 대해 호스트의 보고 메시지 응답이 이루어지지 않으면 그룹에서 탈퇴한 것으로 간주된다.

 

호스트 측면에서 이용한다.

멀티캐스트 데이터의 수신을 원하는 호스트들이 IGMP를 사용하여 라우터에게 요청하거나

더 이상 수신을 원하지 않으면 그만 전송하라 중지 요청을 한다.

 

즉, 호스트들은 멀티캐스트 그룹에 가입/탈퇴한다고 라우터에게 요청하는 용도입니다.

 

라우터 측면에서 사용

라우터는 IGMP를 통하여 멀티캐스트 그룹에 가입한 호스트들을 감시하게 된다

 

따라서 주기적으로 멀티캐스트 그룹에 가입한 호스트들에게 IGMP 패킷을 사용하여 질의하는 용도. 이러한 멀티캐스트 그룹 멤버들은 SHOW IP IGMP GROUP를 통하여 확인할 수 있다

 

Expires 시간내에 호스트로부터 IGMP 패킷을 수신하지 못한다면 아래내용은 삭제된다.

 

만일 라우터가 이를 감시하지 않을 시 다음과 같은 일이 발생할 수 있다.

 

한 호스트가 멀티캐스트를 이용하여 파일을 다운로드 하는중에 전력이 차단되서 PC 전원이 차단된다면 이 호스트는 멀티캐스트 그룹의 탈퇴 메시지를 전송하지 못하게 된다.

 

라우터는 이러한 사실을 모르고 계속 가입되어 있는줄 착각하고 멀티캐스트 패킷을 지속하여 전송할 것이다.

 

이런다면 쓸데없이 대역폭 낭비와 라우터 자원의 낭비를 발생시킨다. 따라서, 라우터는 IGMP를 통하여 멀티캐스트 그룹에 가입한 호스트들을 감시하는 역활을 수행한다.

 

 

IGMP 메시지의 전송

IGMP는 IP 프로토콜과 동등한 계층의 기능을 수행한다.

 

그러나 바로 데이터링크계층으로 보내지지 않고, IP 패킷에 캡슐화되어 보내진다.

 

IGMP 메시지는 IP 프로토콜의 데이터로 처리되기 때문에 IP 패킷의 헤더에 실려서 계층 2 프로토콜로 전달된다.

 

 

IGMP 취약점

IGMP 프로토콜의 구조는 매우 단순하며 별도의 인증 과정을 거쳐 가입(Join) 하는 기능을 제공하지 않기 때문에, 보안 면에서 매우 취약하다는 단점을 가지고 있다.

 

공격자는 정상적인 사용자가 발신하는 IGMP 메시지처럼 보이도록 위조하여 IPTV서비스 상의 프리미엄 채널을 가로채어 시청하거나, 현재 시청하고 있지 않는 여러 개의 채널을 요청해서 네트워크 내에 있는 모든 채널의 품질을 저하시키는 등의 공격을 할 수 있다.

 

ICMP와 마찬가지로 디도스 공격에 이용될수 있다