반응형
1. IGMP 개요
IGMP는 멀티캐스트 그룹 멤버십을 관리하는 데 사용되는 L3 프로토콜로, 멀티캐스트 트래픽의 수신을 요청하거나 그룹에서 탈퇴하는 메시지를 전달하는 역할을 한다. 이는 네트워크에서 멀티캐스트 트래픽을 최적화하고, 불필요한 트래픽이 전송되지 않도록 제어한다.
- 프로토콜 타입: TCP/IP 프로토콜 스택에서 IP 프로토콜(Protocol 번호 2)로 작동.
- 주요 역할:
- 호스트가 멀티캐스트 트래픽을 수신하려고 할 때 그룹 가입 요청.
- 멀티캐스트 그룹에서 탈퇴를 선언.
- 멀티캐스트 트래픽 전송 여부를 확인(Query와 Report 메시지).
2. IGMP의 작동 원리
1) 멀티캐스트 트래픽 흐름
- 멀티캐스트 송신자는 데이터를 멀티캐스트 IP 주소(e.g., 239.1.1.1)로 전송.
- IGMP 쿼리:
- 라우터(Querier)가 네트워크 내에서 멀티캐스트 그룹의 활성 상태를 확인.
- 특정 인터벌로 IGMP Membership Query 메시지 전송.
- IGMP 리포트:
- 호스트는 자신이 가입하고자 하는 그룹에 대한 Membership Report 메시지를 전송.
- 멤버십 유지:
- 라우터는 주기적으로 그룹 상태를 확인하고, 활성 멤버가 없는 경우 트래픽 전달을 중단.
2) IGMP의 주요 메시지
메시지 | 타입설명 |
Membership Query | 라우터가 그룹 상태를 쿼리. (일반 쿼리와 특정 그룹 쿼리 존재) |
Membership Report | 호스트가 멀티캐스트 그룹에 가입 시 전송. |
Leave Group | 호스트가 그룹에서 탈퇴 시 전송. |
Version-Specific Query | 특정 IGMP 버전을 사용하는 쿼리 메시지. |
3. IGMP 버전별 상세 분석
1) IGMPv1
- 특징:
- 가장 기본적인 IGMP 프로토콜.
- 호스트는 Membership Report만 전송.
- 그룹 탈퇴 시 별도의 메시지 없이 타이머 만료에 의존.
- 한계:
- 그룹 멤버십 관리가 비효율적.
- 트래픽 중단까지 시간이 걸림.
- 출발지 주소: 10.1.1.1 (라우터)
- 목적지 주소: 224.0.0.1 (IGMP Query 메시지를 수신해야 하는 모든 멀티캐스트 호스트)
- 출발지 주소: 10.1.1.101 (호스트)
- 목적지 주소: 239.1.1.99 (특정 멀티캐스트 그룹)
IGMPv1 동작 과정 요약
- Query 전송: 라우터가 네트워크의 모든 호스트에게 Membership Query(224.0.0.1)을 보낸다.
- Report 전송: 네트워크에 참여 중인 호스트가 자신이 속한 멀티캐스트 그룹으로 Membership Report를 보낸다.
- 타이머 확인: 라우터는 수신한 Membership Report를 기준으로 활성 멤버십을 유지하며, 타이머가 만료되면 그룹에서 호스트를 제거한다.
2) IGMPv2
- 개선 사항:
- Leave Group 메시지 추가: 호스트가 그룹을 떠날 때 즉시 알림.
- Querier 선출:
- 멀티캐스트 트래픽을 관리하는 Querier 라우터를 동적으로 선출.
- 낮은 IP 주소를 가진 라우터가 Querier로 선택.
- 특정 그룹에 대해 쿼리 가능.
- 작동 절차:
- Querier가 General Query 메시지 전송.
- 호스트는 Membership Report로 응답.
- 그룹 탈퇴 시 Leave Group 메시지 전송.
- 발신자: 10.1.1.1 (라우터)
- 목적지: 224.0.0.1 (모든 멀티캐스트 호스트)
- 내용: 라우터가 네트워크에 존재하는 모든 멀티캐스트 그룹의 상태를 확인하기 위해 Query를 발행한다. 이 Query는 일반적인 멀티캐스트 그룹에 대한 것으로, 네트워크 내 모든 활성 멀티캐스트 그룹에 대한 응답을 유도한다.
- Max Resp Time: 10.0초 (호스트는 이 시간 내에 응답해야 한다).
- 발신자: 10.1.1.1 (호스트)
- 목적지: 224.0.1.40 (특정 멀티캐스트 그룹)
- 내용: 호스트가 특정 멀티캐스트 그룹(224.0.1.40)에 계속 가입하고 있다는 사실을 알린다.
- Max Resp Time: 0초 (즉시 처리).
- IGMP Type: Membership Report (0x16).
- 이 보고서는 라우터가 특정 멀티캐스트 그룹에 대해 활성 상태인지 확인하는 데 사용된다.
- 발신자: 10.1.1.102 (다른 호스트)
- 목적지: 239.1.1.99 (다른 특정 멀티캐스트 그룹)
- 내용: 호스트 10.1.1.102가 멀티캐스트 그룹 239.1.1.99에 계속 멤버로 남아 있음을 보고한다.
- IGMP Type: Membership Report (0x16).
3) IGMPv3
- 주요 기능:
- 소스 기반 멀티캐스트(S,G):
- 특정 소스에서 송신된 멀티캐스트 트래픽만 수신.
- Include/Exclude 모드:
- Exclude Mode: 특정 소스를 "차단"하고 나머지 소스에서 데이터를 수신.
- Include Mode: 특정 소스에서만 데이터를 "허용"하고 나머지 소스의 트래픽은 차단.
- 애플리케이션별 멀티캐스트 트래픽 관리가 용이.
- 소스 기반 멀티캐스트(S,G):
- 작동 방식:
- 호스트는 Group-and-Source Specific Query에 응답.
- 소스 목록에 기반하여 트래픽을 수신하거나 필터링.
- 설명: 라우터가 IGMPv3 General Query 메시지를 전송하여 네트워크에 있는 모든 호스트에게 현재 멀티캐스트 그룹 상태를 요청.
- Multicast Address: 0.0.0.0 (General Query는 특정 그룹이 아닌 전체 그룹에 대해 요청).
- Max Resp Time: 2.5초 (호스트는 이 시간 내에 응답해야 함).
- 의미: 네트워크에 활성 멀티캐스트 그룹이 있는지 확인하기 위한 기본 쿼리.
- 설명: 호스트가 224.0.1.40 그룹에 참여한다고 라우터에 알리는 메시지.
- Type: Membership Report.
- Group Address: 224.0.1.40.
- Mode: Exclude Mode (특정 소스 제외 없이 모든 소스로부터 데이터를 수신).
- 설명: 호스트가 특정 소스만 포함하는 형태로 그룹 멤버십을 업데이트.
- Type: Membership Report.
- Group Address: 224.0.22.
- Mode: Change To Exclude Mode (다른 소스는 제외하고 특정 소스만 포함).
- 의미: 소스 기반 필터링을 통한 트래픽 제어를 수행.
- 설명: 호스트가 239.1.1.150 그룹에 참여하며 특정 소스를 제외.
- Type: Membership Report.
- Group Address: 239.1.1.150.
- Mode: Exclude Mode.
- Num Src: 제외할 소스의 수는 0 (이 경우 모든 소스를 수신).
IGMPv3 Include Mode와 Exclude Mode 비교표
특징 | Include Mode | Exclude Mode |
정의 | 특정 소스에서 오는 트래픽만 선택적으로 수신 |
특정 소스를 제외하고 나머지 모든 소스에서 오는 트래픽을 수신 |
사용 목적 | 제한된 소스에서만 데이터를 수신하고자 할 때 |
특정 소스의 트래픽을 차단하고 나머지는 모두 허용하고자 할 때 |
동작 방식 | 지정된 소스 리스트에 포함된 소스의 트래픽만 수신 | 지정된 소스 리스트에 포함된 소스의 트래픽만 차단하고 나머지는 모두 수신 |
소스 리스트 | Include Source List: 수신할 소스들의 목록 | Exclude Source List: 제외할 소스들의 목록 |
소스 리스트 비어있음 | 모든 트래픽을 차단 | 모든 트래픽을 수신 |
예시 | - 그룹 주소: 224.0.1.40 | - 그룹 주소: 224.0.1.40 |
- Include Source List: 192.168.1.10 | - Exclude Source List: 192.168.1.10 | |
→ 192.168.1.10에서 오는 트래픽만 수신 | → 192.168.1.10에서 오는 트래픽은 제외하고 나머지는 모두 수신 |
정리
- Include Mode: "허용할 소스를 지정"하여 해당 소스에서만 데이터를 수신.
- Exclude Mode: "차단할 소스를 지정"하여 해당 소스를 제외한 나머지 데이터를 수신.
4. IGMP와 관련된 주요 기술
1) IGMP Snooping
- L2 스위치의 멀티캐스트 트래픽 제어 기술:
- 스위치가 IGMP 메시지를 감지하여 트래픽을 멤버가 있는 포트로만 전송.
- 브로드캐스트 플러딩 방지.
- 작동 원리:
- 스위치가 IGMP Report와 Leave Group 메시지를 감지.
- 멀티캐스트 트래픽 전달 경로를 설정.
- 활성 멤버가 없는 경우 플러딩 방지.
2) PIM (Protocol Independent Multicast)와의 연동
- IGMP는 멀티캐스트 그룹 멤버 관리를 담당.
- PIM은 멀티캐스트 트래픽의 최적 경로 설정:
- Sparse Mode(SM) 또는 Dense Mode(DM) 환경에서 활용.
- IGMP가 멀티캐스트 그룹 멤버 상태를 라우터에 전달.
IGMP 버전별 상세 분석 결과 표
특징 | IGMPv1 | IGMPv2 | IGMPv3 |
출시 시기 | 1989년 (RFC 1112) | 1997년 (RFC 2236) | 2002년 (RFC 3376) |
주요 기능 | 기본적인 멀티캐스트 그룹 가입 및 유지 기능 |
Leave Group 메시지 추가 Querier 선출 기능 |
소스 기반 멀티캐스트 (S,G) Include/Exclude 모드 지원 |
메시지 타입 | Membership Query Membership Report |
Membership Query Membership Report Leave Group |
Membership Query Membership Report Group-and-Source Query |
Querier 선출 방식 | 없음 | 낮은 IP 주소를 가진 라우터 선출 | 낮은 IP 주소를 가진 라우터 선출 |
그룹 탈퇴 처리 | 타이머 만료에 의존 | Leave Group 메시지로 즉시 처리 | 소스 기반 그룹 탈퇴 처리 |
소스 기반 필터링 | 지원 안 함 | 지원 안 함 | 지원 (S,G 기반 멀티캐스트) |
호환성 | IPv4 네트워크 | IPv4 네트워크 | IPv4 네트워크 |
주요 한계 | 그룹 상태 관리 비효율적 탈퇴 알림 없음 |
소스 필터링 기능 없음 | 복잡한 구현 및 관리 |
적용 사례 | 초기 멀티캐스트 네트워크 | 대부분의 IPv4 멀티캐스트 네트워크 |
소스 기반 필터링 요구하는 고급 애플리케이션 |
IGMP 메시지 타입 간 비교
메시지 | 타입설명 |
Membership Query | 라우터가 그룹 상태를 확인하기 위해 전송 |
Membership Report | 호스트가 특정 멀티캐스트 그룹에 가입 요청 시 전송 |
Leave Group | 호스트가 그룹에서 탈퇴 시 전송 (IGMPv2 이상) |
Group-and-Source Query | 특정 소스 및 그룹과 관련된 멤버 상태 확인 (IGMPv3) |
반응형
'IT > ㄴ Cisco' 카테고리의 다른 글
[CISCO] IGMP와 PIM의 관계 (0) | 2025.01.14 |
---|---|
[CISCO] Multicast 이론, Routing, 그리고 PIM Modes (0) | 2025.01.13 |
[CISCO] BGP 구성 시 주의사항에 따른 솔루션 (Route Reflector 외) (0) | 2025.01.13 |
[CISCO] EGP / IGP / EBGP / IBGP / BGP 솔루션 정리 (0) | 2025.01.13 |
[CISCO] BGP 기본 (0) | 2025.01.11 |