• 호스트(컴퓨터)가 멀티캐스트 그룹 구성원을 인접한 라우터로에게 알리는 프로토콜
  • IGMP는 TCP/IP 프로토콜 집합이 동적 멀티캐스팅을 수행하기 위해 사용하는 표준 프로토콜
  • 특정 그룹에 속하는 모든 호스트에 메시지를 전송하는 방식을 멀티캐스팅(Multicasting) → 필요한 라우팅 알고리즘을 멀티캐스트 라우팅(Multicast Routing)
  • IGMP 프로토콜은 여러 호스트(수신자)에게 채널이 효과적으로 전송되게 하기 위해, 멀티캐스트 네트워크를 기반으로 구성되는 IPTV 서비스에 많이 사용

IGMP의 위치

  • IGMP 프로토콜과 ICMP 프로토콜 등은 데이터 전송용 프로토콜이 아니고 이벤트 또는 변화를 알리는데 사용되는 프로토콜

IGMP 동작 과정

  1. 그룹 멤버쉽 조사 (monitoring)
    • 멤버쉽 질의 메시지를 보내서 응답을 기다림
    • 일정 횟수 이상 응답 없으면 라우터는 해당 호스트를 그룹에서 탈퇴 시킴
  1. 그룹 가입 (Joining)
    • 그룹에 가입하고자 하는 요청을 라우터에 보고
  1. 멤버쉽 연속 (member continuation)
    • 계속해서 유지하기 원하는 보고 메시지
  1. 그룹 탈퇴 (Leaving)
    • 호스트가 해당 그룹의 멀티캐스트 트래픽을 원치 않으면 leave 메시지 전송

IGMP 패킷 구성


호스트 측면에서 IGMP 프로토콜 사용

  • 멀티캐스트 데이터의 수신을 원하는 호스트들이 IGMP를 사용하여 라우터에게 요청
  • 멀티캐스트 데이터를 더 이상 수신을 원하지 않으면 그만 전송하라 중지 요청
  • 호스트들은 멀티캐스트 그룹에 가입/탈퇴한다고 라우터에게 요청하는 용도

라우터 측면에서 IGMP 프로토콜 사용

  • 라우터는 IGMP를 통하여 멀티캐스트 그룹에 가입한 호스트들을 감시하게 됨 → 주기적으로 멀티캐스트 그룹에 가입한 호스트들에게 IGMP 패킷을 사용하여 질의하는 용도.
  • 멀티캐스트 그룹 멤버들은 SHOW IP IGMP GROUP를 통하여 확인 가능
  • Expires 시간내에 호스트로부터 IGMP 패킷을 수신하지 못한다면 삭제됨
  • 라우터가 감시하지 않을 시 아래와 같은 일이 발생 가능
    1. 한 호스트가 멀티캐스트를 이용하여 파일을 다운로드 하는 중에 전력이 차단되서 PC 전원이 차단된다면 호스트는 멀티캐스트 그룹의 탈퇴 메시지를 전송 X
    2. 라우터는 위 내용을 모르고 계속 가입되어 있는줄 착각하고 멀티캐스트 패킷을 지속하여 전송
    3. 쓸데없이 대역폭 낭비와 라우터 자원의 낭비를 발생
    4. 라우터는 IGMP를 통하여 멀티캐스트 그룹에 가입한 호스트들을 감시하는 역활을 수행해야함

IGMP 메시지의 전송

  • IGMP는 IP 프로토콜과 동등한 계층의 기능을 수행
  • 데이터링크계층으로 보내지지 않고, IP 패킷에 캡슐화되어 보내짐
  • IGMP 메시지는 IP 프로토콜의 데이터로 처리되기 때문에 IP 패킷의 헤더에 실려서 계층 2 프로토콜로 전달됨

IGMP 취약점

  • IGMP 프로토콜의 구조는 매우 단순하며 별도의 인증 과정을 거쳐 가입(Join) 하는 기능을 제공 X → 보안 면에서 매우 취약하다는 단점 有
  • 공격자가 정상적인 사용자인 것처럼 IGMP 메시지를 위조하여 IGMP 전송
    1. IPTV 서비스 상의 프리미엄 채널을 가로채어 시청
    2. 현재 시청하고 있지 않는 여러 개의 채널을 요청해서 네트워크 내에 있는 모든 채널의 품질을 저하
  • ICMP와 마찬가지로 디도스 공격에 이용될 수 있음

IGMP 기타 기능

  1. IGMP Snooping
    • 라우터와 호스트 사이에 있는 스위치가 IGMP 메시지들을 들을 수 있게 하는 기능
  1. IGMP Querier Election
    • 동일 LAN에 여러 멀티캐스트 라우터가 있으면, IPv4 주소 중 가장 낮은 주소를 갖는 라우터가 Querier 역할 집중

  • ARP 프로토콜은 한국어로 주소 결정 프로토콜이라고 함
  • IP 주소를 MAC 주소와 매칭 시키기 위한 프로토콜
  • MAC 주소 → 물리적 네트워크 주소는 이더넷 또는 토큰링의 48 비트 네트워크 카드(NIC) 주소
  • ARP를 사용 이유는 로컬 네트워크(LAN, Local Area Network)에서 단말과 단말 간 통신을 하기 위해 IP 주소와 함께 MAC 주소를 이용
  • IP 주소를 MAC Address와 매칭하여 목적지 IP의 단말이 소유한 MAC 주소를 향해 제대로 찾아가기 위함
  • IP 주소를 MAC 주소로 매칭해야하는 이유를 알기위해서는 LAN(Local Address Network)과 MAC 주소에 대해 이해 필요

 

LAN(Local Address Network)

  • 근거리 통신망, 로컬 영역 네트워크(영어: local area network, LAN),
  • 네트워크 매체를 이용하여 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크
  • 아무리 큰 규모의 네트워크일지라도 같은 IP 대역을 공유한다면 근거리 네트워크임
  • LAN은 ARP Request가 미치는 영역 → APR Request Packet이 전달되기만 한다면 LAN이라봄
  • 같은 IP 대역을 공유하는 LAN에서 단말간 통신을 하기 위해선 사용자는 IP 주소를 목적지로 지정하지만 실제로는 MAC 주소를 이용해 목적지를 찾음. → IP 주소와 MAC 주소를 매칭하기 위해 ARP가 사용
  • 아래 그림) 중앙에 하나의 L2 Switch를 두고 컴퓨터들을 연결하여 LAN(192.168.1.0/24)을 구성
    1. PC0(192.168.1.1)이 PC1(192.168.1.2)와 통신을 하기 위해서 사용자는 목적지를 192.168.1.2로 지정
    2. LAN 구성에서 통신을 하는 경우 실제 목적지는 PC1의 IP 주소와 함께 MAC 주소를 목적지로 지정하고 전달

MAC 주소

  • 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자로 Network Interface Card(NIC)를 가진 단말이라면 공장에서 출고될 때 부여되고 평생 사용하는 고유한 주소를 의미
  • LAN(Local Address Network)에서 목적지와 통신하기 위한 실질적인 주소 → MAC 주소
  • 네트워크 장비 혹은 컴퓨터가 갖는 Network Interface Card마다 MAC 주소를 가짐
  • LAN(Local Address Network, Layer 2)에서는 IP 주소를 MAC 주소에 매칭하여 통신
  • MAC Address 확인 (ipconfig /all 명령어)

 

MAC 주소가 필요 이유

1. 주소 이동 예시 → 논리적 주소인 IP 주소와 물리적 주소인 MAC주소의 관계가 행정적 주소와 물리적 주소와 같음

  1. '서울특별시 광진구 화양동 43'에서 '성남시 분당구 야탑동 24'으로 이동한다고 가정
  2. 화양동을 출발하여 남쪽으로 내려감
  3. 성남으로 가기 위해 잠실대교를 건너 송파구의 석촌동, 문정동을 지나면 복정동으로 향하는 도로를 지나감
  4. 성남시 수정구 복정동에 도착한 후에 분당구 야탑동으로 이동하려면 중원구 성남동을 지나가야함
  5. 성남동을 지나 드디어 야탑동에 도착
  6. 야탑동에 도착하니 야탑동 24가 어디인지 써있는 표시 없어, 주변의 지형지물을 통해 야탑동 24의 위치 찾아냄
  7. 야탑동 24이 친구 집이라면 친구에게 전화해 "한국전자부품연구원 위에 보면 야탑천이 시작되는 곳에 있어"라는 질문으로 위치 정보를 얻을 수 있음
  8. 야탑동 24라는 행정적 주소는 제도에 따라 변할 수 있지만 야탑천이 시작되는 곳이라는 물리적인 주소는 결코 변하지 않음

 

2. LAN(192.168.1.0/24)의 구성 예시 → IP는 변경, MAC은 불변하는 틍징을 가지고 통신

  • IP 주소는 끊임없이 변화함
  • MAC 주소 체계가 없는 상황을 가정하고 IP 주소만 있는 상황에서 PC0 사용자가 자신의 IP를 192.168.1.2로 바꾼다면 PC0와 PC1 모두 192.168.1.2 IP를 갖게 될 것이고 원래 IP 192.168.1.2 주인이 누군지 알수 없음
  • 고유한 정보인 MAC 주소는 웬만해서는 변경되지 않음 → MAC 주소를 사용하여 전달하는 것이 확실
  • 인터넷 상에서 IP 주소 없이 변화하지 않는 고유한 주소인 MAC 주소를 사용하여 라우팅을 한다면, 각 고유한 주소를 라우팅 테이블에 일일이 입력하다간 라우터가 다운됨 → 라우팅 테이블에 등록될 숫자가 매우 많아짐
  • IP 주소는 연속성을 갖기 때문에 IP 주소 다수를 한 줄로 지정해줄 수 있으니 편리

 

ARP에 대한 설명

  • 단말간 통신에서 양쪽 단말은 IP를 이용하여 목적지를 지정하지만 실제 데이터 이동을 위해 MAC 주소를 함께 이용
  • 통신을 위해 필요한 것이 Address Resolution Protocol(ARP) → IP 주소와 MAC 주소를 일대일 매칭하여 LAN(Layer 2)에서 목적지를 제대로 찾아갈 수 있도록 함
  • ARP 테이블(ARP Table)은 IP 주소와 MAC 주소를 일대일 대응하여 테이블로 정리하고 목적지 IP에 맞는 목적지 MAC 주소로 전달 → IP 주소와 MAC 주소를 일대일 매칭시킨 정보를 정리해둔 Table

1. PC0의 ARP Table

  • PC0의 ARP Table에 다른 PC들의 IP 주소와 함께 MAC 주소가 일대일 매칭되어 관리
  • 사용자가 데이터를 보내기 위해 목적지 IP 주소를 지정한다면 PC0은 ARP Table에 있는 MAC 주소를 보고 해당 MAC 주소의 소유 PC로 전달

2. 스위치의 MAC 주소 Table

  • 중간에서 데이터를 전달하는 스위치 또한 자신의 Port에 연결된 PC들의 MAC 주소 정보를 가짐
  • 어느 Port에서 어느 PC의 MAC 주소가 올라오는지 알아야 PC에게서 전달받은 데이터를 전달할 때 목적지 MAC 주소를 올바르게 지정 가능
  • 스위치의 MAC Table은 PC0에서 PC 1,2,3으로 Ping 명령을 실시한 후의 결과 → LAN에서의 통신은 MAC 주소를 이용

 

ARP Table 생성 과정

  • IP 주소와 MAC 주소가 구비되어있다 하더라도 다른 PC의 IP 주소와 MAC 주소를 모르면 데이터를 전달 X
  • ARP Table을 생성하여 다른 PC들에 대한 주소 정보를 확보하는 것이 필요
  • ARP는 이더넷 통신에 없어서는 안 될 매우 중요한 요소이며 네트워크 트러블 슈팅의 기본
  • PC 0,1,2,3뿐만 아니라 모든 단말들은 자신만의 Routing Table이 있어 자신이 보내려는 패킷의 목적지 IP가 자신이 소속된 IP 대역인지 아닌지 알 수 있음
  • ARP Table 순차적으로 설명
    1. PC0(192.168.1.1)은 PC 2(192.168.1.3)에게 데이터를 전달하려고 함 → Routing table을 보니 자신(PC0)과 PC2가 같은 LAN에 속한다는 것을 암
    2. PC0는 Broadcast(FF:FF:FF:FF:FF:FF)인 ARP Request(Who has 192.168.1.3? Tell 192.168.1.1)를 전송 → PC1,PC2,PC3에 전달
    3. ARP Request의 목표인 PC2가 반응하여 ARP Response(PC2의 MAC 주소)를 응답
    4. PC0(192.168.1.1)은 PC2가 보낸 ARP Reponse를 받고 ARP Table에 PC2의 IP와 MAC 주소를 기록
    5. PC0가 PC2에 데이터를 보내려 목적지 IP를 192.168.1.3으로 지정하면 자연스레 ARP Table을 보고 PC2의 MAC 주소를 목표로 전달

 

참고 URL : https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

+ Recent posts