08멀티캐스트 라우팅 — IGMP·PIM멀티캐스트 라우팅 — IGMP·PIM
멀티캐스트 는 한 출발지가 여러 수신자에게 동시에 같은 데이터를 보내는 방식입니다(영상 스트리밍·금융 시세 등). 유니캐스트 라우팅과는 다른 한 묶음의 프로토콜이 함께 움직여야 멀티캐스트가 흐릅니다 — 호스트의 가입을 관리하는 IGMP, 출발지에서 수신자까지의 분배 트리를 만드는 PIM, 그리고 RPF 검사 경로를 수동으로 바꾸는 Static Multicast Route, 전달 결정을 캐시하는 MFC 입니다. 이 장은 네 가지를 원문의 모든 절차·파라미터·명령·표·주의사항까지 빠짐없이 풀어 정리합니다.
큰 그림은 이렇습니다. IGMP로 "내 인터페이스 너머에 어떤 그룹의 수신자가 있는지"를 알고, PIM으로 "출발지 → 수신자 경로(분배 트리)"를 만들 어 멀티캐스트를 라우팅합니다. 수신자 분포에 따라 PIM의 Sparse·Dense·SSM 모드를 고르고, 필요하면 Static Multicast Route로 멀티캐스트 RPF 경로를 유니캐스트와 분리하며, 동적 프로토콜 없이 정적으로만 전달할 때는 MFC Static Entry를 씁니다.
IGMP — 누가 어떤 그룹을 원하는가
IGMP가 하는 일
IGMP(Internet Group Management Protocol) 는 멀티액세스 네트워크의 호스트가 자신의 그룹 멤버십 정보를 가까이 붙어 있는 라우터에 알리는 프로토콜입니다. 호스트는 자신이 어떤 멀티캐스트 그룹에 속하는지를 IGMP host membership report를 멀티캐스트 해서 공유하고, 멀티캐스트 라우터는 이 report를 들으면서 그 정보를 다른 멀티캐스트 라우터와 교환합니다.
그룹 멤버십을 보고하는 이 프로토콜에는 두 종류의 메시지가 있습니다 — host membership query 와 host membership report 입니다. IGMP 메시지는 IP 프로토콜 번호 2번 으로 IP 데이터그램에 실려 다닙니다. 동작하려면 각 서브넷마다 지정 querier(designated querier) 라우터가 선출 되어, 그 querier가 주기적으로 all-hosts 그룹에 host membership query를 멀티캐스트해야 합니다.
호스트는 query를 받으면 자신이 속한 각 멀티캐스트 그룹에 대해 host membership report를 만들어 응답합니다. 이 report는 보고 대상 그룹 자체로 전송 되는데, 그러면 같은 서브넷의 다른 활성 멤버가 자기 report를 취소할 수 있습니다. 덕분에 서브넷의 활성 그룹 하나당 report가 한 개 로 제한됩니다. 이 주고받음을 통해 멀티캐스트 라우터는 자기에게 붙은 각 서브넷의 모든 활성 호스트 그룹 데이터베이스를 유지합니다. 어떤 그룹은 여러 query interval 동안 report가 한 번도 오지 않으면 비활성(만료, expired) 으로 선언됩니다.
IGMPv2 는 여기에 leave group 메시지 를 추가하고, IGMPv1 host membership query의 쓰지 않던 필드를 활용해 최대 응답 시간을 지정합니다. leave group 메시지는 호스트가 어떤 멀티캐스트 그룹에서 멤버십이 끝났음을 알릴 수 있게 해 줍니다. 그러면 IGMP querier 라우터는 최대 응답 시간을 아주 짧게 잡은 group-directed query 를 보내 남은 활성 멤버가 있는지 조사합니다. 이 가속 leave(accelerated leave) 확장 덕분에 그룹 만료와 분배 트리의 pruning(가지치기)에 걸리던 시간이 수 분에서 수 초 로 줄어듭니다.
Gaia는 IGMPv1, IGMPv2(기본값으로 동작), IGMPv3 를 모두 지원합니다.
IGMPv3와 SSM
Gaia는 IGMP version 3 source filtering(출발지 필터링) 을 제공해 Source-Specific Multicast(SSM) 를 지원합니다. 이 기능 덕분에 Gaia 시스템은 Rendezvous Point(RP) 없이도 PIM join/prune 메시지로 특정 출발지의 트래픽을 요청 할 수 있고, 결과적으로 수신자가 실제로 요청한 출발지의 트래픽만 전달하게 됩니다. IGMPv3는 받고 싶은 출발지를 애플리케이션이 명시적으로 신호 하는 방식을 뒷받침합니다.
IGMPv3에서 수신자(호스트)는 다음 두 가지 모드로 그룹 멤버십을 알립니다.
- Include mode — 그룹에 가입한다고 알리면서 트래픽을 받고 싶은 IP 주소 목록(include list) 을 함께 제공합니다.
- Exclude mode — 그룹에 가입한다고 알리면서 트래픽을 받고 싶지 않은 IP 주소 목록(exclude list) 을 함께 제공합니다. 모든 출발지에서 트래픽을 받고 싶으면 빈 exclude list 를 보냅니다.
멀티캐스트 그룹 주소 범위 232/8(232.0.0.0 ~ 232.255.255.255) 은 SSM 프로토콜·애플리케이션 전용으로 예약되어 있습니다. SSM 그룹 범위에서는 sender의 DR이 어떤 RP에도 register 패킷을 보내지 않 습니다. SSM이 켜져 있을 때 그 밖의 모든 멀티캐스트 그룹은 일반 sparse-mode 처럼 처리됩니다.
로컬 그룹과 정적 그룹
IGMP local group(로컬 그룹) 과 static group(정적 그룹) 을 만들면 멀티캐스트 라우팅을 더 수월하게 할 수 있습니다. 이 그룹들은 인터페이스 단위로 만들 며, 각 그룹마다 멀티캐스트 그룹 주소를 하나 지정합니다. 그러면 Gaia가 그 멀티캐스트 그룹의 수신자처럼 행동 하면서, 다운스트림 LAN에 실제로 그 그룹 트래픽을 받고 싶어 하는 호스트가 있든 없든 출발지까지의 라우팅 트리를 미리 구축 합니다. 나중에 호스트가 그 그룹에 가입하면 트리가 이미 만들어져 있으므로 더 빨리 트래픽을 받기 시작합니다.
이 기능은 멀티캐스트 수신자가 다운스트림 LAN에 항상 붙어 있지는 않은 상황에서 특히 유용합니다. 예를 들어 노트북 사용자가 평소에는 LAN에서 떨어졌다가 출근하면 다시 붙는데, 연결되어 있는 동안 알려진 출발지의 멀티캐스트 트래픽을 받고 싶어 한다면, 그 알려진 출발지의 멀티캐스트 주소로 로컬 그룹이나 정적 그룹을 만들어 둘 수 있습니다. 그러면 Gaia가 노트북의 요청을 기다리지 않고도 reverse path forwarding 트리를 미리 유지 합니다.
로컬 그룹과 정적 그룹의 차이는 다음과 같습니다.
| 구분 | 동작 |
|---|---|
| Local Group | IGMP가 해당 인터페이스로 membership report를 내보냅니다. 시스템이 상위(parent) 멀티캐스트 라우팅 프로토콜을 돌리고 있으면, IGMP가 그 상위 프로토콜에 시뮬레이션된 로컬 수신자의 존재를 알립니다. |
| Static Group | IGMP가 그 그룹에 대해 membership report를 내보내지 않습니다. 다른 장치가 내 Gaia 시스템에서 오는 IGMP membership report를 받지 않게 하고 싶을 때 정적 그룹을 씁니다. 마찬가지로 상위 멀티캐스트 라우팅 프로토콜이 돌고 있으면 IGMP가 그 상위 프로토콜에 시뮬레이션된 로컬 수신자의 존재를 알립니다. |
Gaia Portal에서 IGMP 구성하기
- PIM 같은 멀티캐스트 라우팅 프로토콜을 먼저 구성 합니다. IGMP는 분배 트리를 계산할 멀티캐스트 라우팅 프로토콜과 함께일 때만 동작하며, 네트워크의 IP 멀티캐스트 그룹을 지원합니다.
- 왼쪽 탐색 트리에서 Advanced Routing > IGMP 를 클릭합니다.
- 멀티캐스트 라우팅 프로토콜을 켠 각 인터페이스마다:
- 인터페이스를 선택하고 Edit 를 클릭합니다.
- IGMP 인터페이스 파라미터를 구성합니다. 모든 파라미터는 선택사항 입니다.
IGMP 인터페이스 파라미터
| 파라미터 | 설명 | 범위 / 기본값 |
|---|---|---|
| Version | IGMP 프로토콜의 버전. IGMPv2는 v1과 호환되고, IGMPv3는 v2·v1과 호환됩니다. Static IGMP Group의 SSM source를 구성하려면 먼저 version 3을 선택하고 Save 해야 합니다. | 범위 1–3 / 기본값 2 |
| Loss Robustness | 서브넷에서 예상되는 패킷 손실을 감안해 튜닝합니다. 서브넷이 손실이 심할 것 같으면 값을 키웁니다. IGMP 동작은 (loss robustness − 1) 만큼의 패킷 손실에 견딥니다. | 범위 1–255 / 기본값 2 |
| Query Interval | querier 라우터가 보내는 IGMP general query 사이의 간격(초). IGMP 메시지 오버헤드를 튜닝하는 데 쓰며, 유휴 IP 멀티캐스트 그룹의 타임아웃에도 부수적으로 영향을 줍니다. | 범위 1–3600 / 기본값 125 |
| Query Response Interval | 주기적 IGMP general query에 넣는 최대 응답 시간(초). 값을 키우면 호스트의 IGMP report가 더 넓은 간격에 퍼져 burst(몰림)가 줄 어듭니다. 반드시 Query Interval보다 작아야 합니다. | 범위 1–25 / 기본값 10 |
| Last Member Query Interval | IGMP group-specific query에 넣는 최대 응답 시간(초). leave latency(탈퇴 지연) 를 튜닝하며, 값이 작을수록 그룹 마지막 멤버의 이탈을 더 빨리 감지합니다. 반드시 Query Interval보다 작아야 합니다. | 범위 1–25 / 기본값 1 |
| Router Alert | 인터페이스로 보내는 모든 IGMP 메시지에서 IP router alert 옵션 삽입을 비활성화할 수 있습니다. 이 옵션 때문에 패킷을 버리는 결함 있는 IP 구현과 호환 할 때 유용합니다. | Enabled / Disabled — 기본값 Enabled |
이어서 Multicast Group 을 선택적으로 추가합니다.
- Static Groups 섹션에서 정적 멀티캐스트 그룹을 추가하고 OK 를 클릭합니다.
- Local Groups 섹션에서 로컬 네트워크 멀티캐스트 그룹을 추가하고 OK 를 클릭합니다.
Multicast Group 파라미터
| 파라미터 | 설명 |
|---|---|
| Multicast Address | 그룹의 멀티캐스트 주소. |
| Group Count | Group Type 에서 Static Group 을 골랐을 때만 나타납니다. 구독할 인접 그룹의 개수를 지정합니다. 범위 1–512, 기본값 1. |
| Add SSM Source | 허용할 SSM source를 추가합니다. 해당 IGMP 그룹은 이 source의 트래픽만 받 습니다. Source Address 에 멀티캐스트 source IPv4 주소를, Source Count 에 인접 source 개수(1–512)를, Source increment 에 증가분을 입력합니다(Source Count가 기본값 1이 아닐 때만 나타남). |
| Group Type | Static Group — 인터페이스에 로컬 수신자가 있는 것처럼 시뮬레이션합니다. 상위 멀티캐스트 프로토콜(예: PIM)이 같은 인터페이스에서 돌고 있으면 IGMP가 상위에 로컬 수신자의 존재를 알립니다. 일반 IGMP와 달리 해당 인터페이스로 membership report를 보내지 않 습니다. Local Group — 특정 그룹에 대해 로컬 수신자가 있는 것처럼 시뮬레이션합니다. 인터페이스에 멀티캐스트 그룹을 추가하면 IGMP가 그 인터페이스로 membership report를 보냅니다. |
마지막으로 Save 를 클릭합니다.
Gaia Clish에서 IGMP 구성하기
쓸 수 있는 명령을 둘러보려면 Gaia Clish에서 다음을 칩니다.
set igmp[Esc][Esc] # 사용 가능한 set 명령 보기
show igmp[Esc][Esc] # 사용 가능한 show 명령 보기전체 구문은 다음과 같습니다.
set igmp interface <Name of Interface>
default
last-member-query-interval {<1-25> | default}
local-group <Multicast Group IP Address> {off | on}
loss-robustness {<1-255> | default}
query-interval {<1-3600> | default}
query-response-interval {<1-25> | default}
router-alert {off | on}
static-group <Multicast Group IP Address>
group-count <1-512> group-increment {<Set of 4 Octets> | default} {off | on}
source <SSM Source IP Address> {off | on}
[source-count <1-512> source-increment {<Set of 4 Octets> | default} {off | on}]
source-all-off
{off | on}
version {1 | 2 | 3}IGMP Clish 파라미터
| 파라미터 | 설명 | ||
|---|---|---|---|
interface <Name of Interface> | IGMP를 구성할 인터페이스. | ||
| default | 지정한 인터페이스의 IGMP 설정을 기본값으로 되돌립니다. | ||
**last-member-query-interval {<1-25> \ | default}** | IGMP v2 이상에만 적용됩니다. 라우터가 "Leave Group" 메시지를 받으면, 아직 그 그룹의 멀티캐스트 데이터를 원하는 호스트가 남았는지 확인하려고 membership query를 보냅니다. 이 query는 이 파라미터가 정한 간격(초)으로 여러 번 반복 되며, 응답이 없으면 그 그룹의 멀티캐스트 라우팅이 멈춥니다. 즉 group-specific query에 넣는 최대 응답 시간으로, 값이 작을수록 마지막 멤버 이탈을 빨리 감지합니다. 반드시 Query Interval보다 작아야 합니다. 기본값 1. | |
**local-group <Multicast Group IP Address> {off \ | on}** | 멀티캐스트 그룹 주소. 로컬 그룹은 특정 그룹에 대해 로컬 수신자가 있는 것처럼 시뮬레이션하며, 인터페이스에 추가되면 IGMP가 그 인터페이스로 membership report를 보냅니다. | |
**loss-robustness {<1-255> \ | default}** | 서브넷에서 예상되는 패킷 손실. 손실이 심할 것 같으면 값을 키웁니다. IGMP는 (loss robustness − 1)만큼의 손실에 견딥니다. 기본값 2. | |
**query-interval {<1-3600> \ | default}** | querier 라우터가 보내는 IGMP general query 사이의 간격(초). IGMP 메시지 오버헤드 튜닝에 쓰며 유휴 그룹 타임아웃에도 영향을 줍니다. 기본값 125. | |
**query-response-interval {<1-25> \ | default}** | 주기적 general query에 넣는 최대 응답 시간(초). 값을 키우면 IGMP report가 넓게 퍼져 burst가 줄어듭니다. 반드시 Query Interval보다 작아야 합니다. 기본값 10. | |
| **router-alert {off \ | on}** | 인터페이스로 보내는 모든 IGMP 메시지의 IP router alert 삽입을 비활성화할 수 있습니다. 결함 있는 IP 구현과의 호환에 유용합니다. 기본값 off. | |
**static-group address {off \ | on}** | 멀티캐스트 그룹 주소. 정적 그룹은 인터페이스에 로컬 수신자가 있는 것처럼 시뮬레이션합니다. 같은 인터페이스에서 상위 멀티캐스트 프로토콜(예: PIM)이 돌면 IGMP가 상위에 로컬 수신자를 알리되, 일반 IGMP와 달리 membership report는 보내지 않 습니다. (로컬·정적 동시 구성 시 로컬 우선) | |
group-count <1-512> | 이 인터페이스가 구독하는 인접 그룹의 개수. | ||
**group-increment {<Set of 4 Octets> \ | default}** | 그룹 사이의 증가분을 제어합니다. 정적 그룹은 로컬 수신자를 시뮬레이션하며, 구성 시 상위 프로토콜(예: PIM)에 로컬 수신자를 알립니다. 로컬·정적 그룹은 동작이 비슷하지만 정적 그룹은 membership report를 보내지 않 는다는 점만 다릅니다. 같은 그룹이 로컬·정적 양쪽이면 로컬이 우선해, 그 그룹에 대해 인터페이스로 report가 나갑니다(정적 구성과 무관). | |
**source <SSM Source IP Address> {off \ | on}** | 허용할 SSM source를 지정합니다. 그 IGMP 그룹은 이 source의 트래픽만 받습니다. 멀티캐스트 그룹의 IPv4 주소는 반드시 SSM 범위 232.X.X.X 여야 합니다. | |
**source-count <1-512> source-increment {<Set of 4 Octets> \ | default} {off \ | on}** | 인접 IGMP source의 개수와, 인접 source 사이의 증가분을 지정합니다. |
| source-all-off | 이 IGMP 그룹의 source-specific 동작을 모두 끕니다. 그룹이 모든 IGMP source의 트래픽을 받 게 됩니다. | ||
| **version {1 \ | 2 \ | 3}** | IGMP 버전. v2는 v1과, v3은 v2·v1과 호환됩니다. |
IGMP 모니터링·문제 해결
Gaia Portal에서
- Advanced Routing > IGMP 를 클릭합니다.
- 오른쪽 위 모서리의 Monitoring 을 클릭합니다.
- IGMP Monitor 섹션에서 Information 범주를 클릭합니다.
Gaia Clish에서 — 사용 가능한 show 명령을 보려면 show igmp[Esc][Esc] 를 칩니다. 문제 해결은 Trace Options 절을 참고하세요.
PIM — 멀티캐스트 경로(분배 트리) 만들기
PIM 개요
PIM(Protocol-Independent Multicast) 은 유니캐스트 프로토콜을 활용해 멀티캐스트 패킷을 전달 합니다. 광역(그리고 도메인 간) 네트워크를 가로지르는 그룹의 멀티캐스트 트래픽을 효율적으로 라우팅하며, 기존의 모든 유니캐스트 라우팅 프로토콜과 함께 동작합니다(그래서 이름이 "Protocol-Independent"입니다).
PIM은 세 가지 모드를 지원합니다.
- Dense Mode(PIM DM)
- Sparse Mode(PIM SM)
- Source-Specific Multicast Mode(PIM SSM)
PIM Dense Mode (DM)
Dense Mode는 다음 상황에서 가장 유용합니다.
- sender와 receiver가 서로 가까이 있을 때.
- sender는 적고 receiver는 많 을 때.
- 멀티캐스트 트래픽의 양이 많 을 때.
- 멀티캐스트 트래픽 스트림이 끊임없이 일정 할 때.
PIM Dense Mode는 flood-and-prune(일단 흘리고 가지치기) 원리로 동작하는 출발지 기반(source-based) 분배 트리 를 만듭니다. 출발지의 멀티캐스트 패킷이 PIM dense mode 네트워크 전체에 flood 되고, 패킷을 받았지만 직접 연결된 멀티캐스트 그룹 멤버도 PIM 이웃도 없는 라우터는 출발지 방향으로 prune 메시지를 거슬러 올려 보냅니다. 그러면 이후 멀티캐스트 패킷은 prune된 가지로는 가지 않습니다. 그런데 pruned 상태는 대략 3분마다 타임아웃 되어, 그때마다 dense mode 네트워크 전체가 다시 멀티캐스트 패킷과 prune 메시지로 reflood 됩니다. 이 원치 않는 트래픽의 reflooding이 네트워크 대역폭을 불필요하게 소모 합니다.
이를 막는 것이 PIM Dense Mode State Refresh 옵션입니다. dense mode와 함께 쓰며, 활성 수신자가 없는 멀티캐스트 데이터의 주기적 flood-and-prune을 없 앱니다. 분배 트리 아래로 주기적으로 제어 메시지를 흘려 보내 각 라우터 outgoing 인터페이스의 prune 상태를 갱신(refresh) 함으로써, pruned 상태가 타임아웃되지 않게 유지합니다. 그 결과 prune된 가지로의 reflooding이 크게 줄어 대역폭을 절약 합니다.
PIM Sparse Mode (SM)
Sparse Mode는 다음 상황에서 가장 유용합니다.
- 한 그룹에 receiver가 적 을 때.
- sender와 receiver가 WAN 링크로 떨어져 있을 때.
- 트래픽이 간헐적 일 때.
Sparse Mode는 수신자가 명시적으로 가입할 때만 트리를 만드는 방식이라, 수신자가 드문드문할 때 효율적입니다. shared tree와 Rendezvous Point(RP)를 통해 동작하며, 자세한 RP·Bootstrap 구성은 아래 절에서 다룹니다.
PIM Source-Specific Multicast (SSM) Mode
SSM Mode는 다음 상황에서 가장 유용합니다.
- 대부분의 멀티캐스트 트래픽이 잘 알려진 출발지(well-known source) 에서 올 때.
- sparse mode에 따라오는 shared tree와 RP 처리 오버헤드를 피하고 싶 을 때.
SSM은 PIM Sparse Mode의 한 버전 입니다. IGMP v3와 함께 써서 특정 출발지의 멀티캐스트 트래픽을 요청하거나 차단합니다. 예를 들어 호스트가 특정 출발지에서 오는 멀티캐스트 그룹 트래픽을 요청하면, SSM은 그 출발지 방향으로 PIM join/prune 메시지를 보냅니다.
멀티캐스트 그룹 범위 232.0.0.0/8 은 SSM 전용 으로 예약됩니다. SSM이 켜지면 Sparse Mode는 이 범위에 드는 그룹에 대해 IGMP v3 report만 받 고, 이 범위의 IGMP v1·v2 report는 무시 합니다. 또한 이 그룹들에 대해서는 이웃 라우터로부터 shortest-path-tree(SPT) join/prune 메시지만 받습니다. 그 밖의 모든 멀티캐스트 그룹은 일반 Sparse Mode처럼 처리됩니다.
SSM은 Rendezvous Point(RP)가 필요 없 습니다. SSM 그룹 중 어느 것에 RP가 있더라도 join/prune 처리에 아무 영향을 주지 않습니다.
Gaia Portal에서 PIM 모드 구성하기
PIM Sparse Mode(SM) 구성
- 왼쪽 탐색 트리에서 Advanced Routing > PIM 을 클릭합니다.
- PIM Global Settings 섹션에서 Sparse Mode (SM) 를 선택하고 Apply 를 클릭합니다.
- PIM Interfaces 섹션에서 해당 인터페이스를 추가합니다(아래 "인터페이스에 PIM 구성하기" 참조).
- 선택: Advanced Options 섹션에서 설정을 구성합니다(아래 "PIM 고급 옵션" 참조).
- 선택: Bootstrap and Rendezvous Point Settings 섹션에서 설정을 구성합니다(아래 "Bootstrap·RP 설정" 참조).
- Static Multicast Routes 를 구성합니다(이 장의 정적 멀티캐스트 라우트 절 참조).
PIM Dense Mode(DM) 구성
- Advanced Routing > PIM 을 클릭합니다.
- PIM Global Settings 섹션에서:
- Dense Mode (DM) 를 선택합니다.
- State Refresh 를 선택하면, 활성 수신자가 없는 멀티캐스트 트래픽의 prune 상태가 타임아웃되는 것을 지연 시키는 state refresh 메시지를 씁니다. Dense Mode 고유의 flood-and-prune 주기를 억제합니다.
- Apply 를 클릭합니다.
- PIM Interfaces 섹션에서 인터페이스를 추가합니다.
- Add 를 클릭합니다.
- Interface 필드에서 PIM을 돌릴 인터페이스를 고릅니다.
- 선택: 이 인터페이스에 VRRP Virtual IP 주소를 쓰려면 Use Virtual address 를 선택합니다.
- 선택: DR Priority(Designated Router priority)에 0~4294967295 사이 값을 입력합니다.
- Save 를 클릭합니다.
- 선택: Advanced Options 에서 설정을 구성합니다.
- Static Multicast Routes 를 구성합니다.
PIM Source-Specific Multicast(SSM) 구성
- Advanced Routing > PIM 을 클릭합니다.
- PIM Global Settings 섹션에서 Source-Specific Multicast (SSM) 를 선택하고 Apply 를 클릭합니다.
- PIM Interfaces 섹션에서 인터페이스를 추가합니다.
- 선택: Advanced Options 를 구성합니다.
- 선택: Bootstrap and Rendezvous Point Settings 를 구성합니다.
- Static Multicast Routes 를 구성합니다.
Gaia Portal에서 인터페이스에 PIM 구성하기
- Advanced Routing > PIM 을 클릭합니다.
- PIM Mode를 선택합니다(위 "PIM 모드 구성" 참조).
- PIM Interfaces 섹션에서 Add 를 클릭하거나, 구성된 인터페이스를 선택하고 Edit 를 클릭합니다.
- 해당 설정을 구성합니다.
| 파라미터 | 설명 |
|---|---|
| Interface | PIM을 켤 인터페이스를 지정합니다. |
| Use Virtual Address | 이 인터페이스에 VRRP Virtual IP 주소를 씁니다. failover 후 라우터가 VRRP Master가 된 다음에야 이 인터페이스에서 PIM이 돕니다. 라우터가 VRRP Master이면 Virtual IP로 이웃 관계를 맺습니다. VRRP 쌍의 Master가 Virtual IP를 출발지 주소로 한 Hello 메시지를 보내고, VRRP 쌍과 이웃하는 라우터의 PIM 제어 메시지를 처리합니다. ClusterXL이 켜져 있으면 이 옵션을 구성할 수 없습니다. 범위 Enabled/Cleared, 기본값 Cleared. |
| DR Priority | 인터페이스로 보내는 PIM Hello 메시지에 광고되는 Designated Router 우선순위. LAN에서 DR을 뽑을 때 씁니다. 우선순위가 가장 높은 라우터가 DR 이 되고, 동점이면 IP 주소가 가장 높은 쪽이 됩니다. 단 한 대라도 DR priority를 광고하지 않으면 DR 선출은 IP 주소 기준 으로 이뤄집니다. 범위 0–4294967295, 기본값 1. |
- Save 를 클릭합니다.
인터페이스에서 PIM 끄기 — PIM Interfaces 섹션에서 인터페이스를 선택하고 Delete 를 클릭합니다(확인 프롬프트 없음). 모든 인터페이스에서 PIM 끄기 — Delete All 을 클릭하고 OK 로 확인합니다. 모든 인터페이스에서 PIM 재시작 — Restart All 을 클릭하고 OK 로 확인합니다.
Gaia Portal에서 PIM 고급 옵션 구성하기
이 설정은 모두 선택사항입니다. Advanced Routing > PIM > Advanced Options 섹션에서 Edit Settings 를 클릭해 구성합니다.
General Timers(일반 타이머)
| 파라미터 | 설명 | 범위 / 기본값 |
|---|---|---|
| Hello Interval | multicast-capable 인터페이스로 보내는 PIM Hello 메시지 사이의 간격. Hello는 All-PIM-Routers 멀티캐스트 그룹 224.0.0.13 으로 보내져, PIM 라우터가 멀티액세스 네트워크에서 이웃을 발견하게 합니다. | 1–21845초 / 기본값 30초 |
| Data Interval | 새 PIM forwarding entry의 수명. 이후 라우터의 네트워크 내 위치에 따라 수명이 다른 방식으로 연장됩니다(예: PIM 제어 메시지(주기적 join/prune) 수신, 로컬 멀티캐스트 sender 존재 등). | 11–3600초 / 기본값 210초 |
| Assert Interval | upstream 인터페이스의 assert battle 결과로, 데이터 출발지 방향의 유니캐스트 RPF 이웃이 아닌 다른 PIM 이웃이 그 인터페이스의 designated forwarder로 선택되면, 그 승자를 이후 모든 join/prune 메시지의 upstream 이웃으로 씁니다. 이 변경은 assert interval이 지나면 타임아웃됩니다. | 1–3600초 / 기본값 180초 |
| Join Prune Interval | Join/Prune 메시지를 보내는 간격. | 1–3600초 / 기본값 60초 |
| Join Prune Delay Interval | 출발지(또는 RP) 방향의 유니캐스트 RPF 이웃이 바뀐 시점부터 triggered Join/Prune 메시지가 나갈 때까지의 최대 간격. | 1–3600초 / 기본값 5초 |
Assert Ranks(assert 순위)
| 파라미터 | 설명 |
|---|---|
| Direct / OSPF / Kernel / Static / RIP / BGP | 멀티액세스 LAN에서 어느 라우터가 멀티캐스트 데이터를 전달할지 정하기 위해 프로토콜의 cost를 비교 합니다. 라우터가 출발지 방향 incoming 인터페이스가 아닌 다른 인터페이스에서 데이터 패킷을 감지했을 때 LAN으로 보내는 assert 메시지에 이 값이 쓰입니다. 같은 프로토콜을 돌리는 같은 LAN의 모든 라우터에서 이 값이 같아야 하므로, 기본값은 다른 구현과 맞도록 특별히 정해졌습니다. 범위 0–255, 기본값 — BGP 170 / Direct 0 / Kernel 40 / OSPF 10 / RIP 100 / Static 60. |
State Refresh Parameters(Dense Mode용)
| 파라미터 | 설명 | 범위 / 기본값 |
|---|---|---|
| State Refresh Interval | Dense Mode에서, 직접 연결된 출발지가 발생시킨 멀티캐스트 트래픽에 대해 state refresh 메시지를 보내는 간격. | 1–255초 / 기본값 60초 |
| State Refresh TTL | Dense Mode에서, 직접 연결된 출발지의 멀티캐스트 트래픽용 state refresh 메시지에 넣는 TTL. 이 값으로 네트워크 내 state refresh 메시지의 전달 범위를 제한할 수 있습니다. 사용자가 지정하지 않으면 멀티캐스트 데이터에서 유도됩니다. | 1–255 / 기본값 None |
Sparse Mode Timers
| 파라미터 | 설명 | 범위 / 기본값 |
|---|---|---|
| Register Suppression Interval | register-stop을 받은 시점부터 다시 register를 보낼 수 있을 때까지의 평균 간격. 값이 작을수록 RP에서 register burst가 잦아지고, 클수록 새 수신자의 join latency가 길어집니다. | 60–3600초 / 기본값 60 |
| CRP Advertise Interval | candidate-RP 라우터가 선출된 bootstrap 라우터에 candidate-RP advertisement를 보내는 간격. | 1–3600초 / 기본값 60초 |
구성을 마치면 Save 를 클릭합니다.
Gaia Portal에서 Bootstrap·Rendezvous Point 설정하기
이 설정은 모두 선택사항이며, PIM Protocol 이 Sparse Mode(SM) 또는 SSM 일 때 씁니다.
- Advanced Routing > PIM 을 클릭합니다.
- PIM Global Settings 의 PIM Protocol 에서 Sparse Mode (SM) 또는 Source Specific Multicast (SSM) 를 선택합니다.
- Bootstrap and Rendezvous Point Settings 섹션에서 Edit Settings 를 클릭합니다.
Bootstrap Router로 켜기 — Enable Bootstrap Router 를 선택합니다.
- 켜면 이 라우터가 candidate bootstrap router(C-BSR) 가 됩니다. 모든 candidate RP(C-RP)는 선출된 BSR에 C-RP-Advertisement를 보내고, BSR은 이 정보를 bootstrap 메시지로 PIM 도메인 전체에 퍼뜨 립니다. 단일 장애점을 막으려면 도메인에 두 대 이상을 candidate BSR 로 구성하세요. 기본값 Cleared.
- 선택 Local Address — C-BSR 상태 머신과 bootstrap 메시지에 쓰는 주소. IPv4 주소가 높을수록 우선순위가 높 습니다.
Candidate Rendezvous Point로 켜기 — Enable Candidate RP 를 선택해 Gaia를 candidate RP 라우터로 구성합니다.
- 선택 Local Address — C-RP 상태 머신과, 선출된 BSR에 보내는 C-RP-Advertisement에 쓰는 주소. IPv4 주소가 높을수록 우선순위가 높습니다(Local Address의 중요 주의사항은 위 C-BSR과 동일).
- 선택 Priority — 이 C-RP의 우선순위. 모든 PIM 라우터는 선출된 BSR의 bootstrap 메시지로 받은 C-RP 목록에서 한 멀티캐스트 그룹 주소에 대해 같은 RP를 고릅니다. 값이 낮을수록 우선순위가 높 습니다. 범위 0–255, 기본값 0(가장 높은 우선순위).
- 선택 Add — 이 라우터가 candidate RP를 맡을 Multicast Group 과 Subnet mask 를 구성합니다. Multicast Group은 이 RP가 책임지는 그룹의 멀티캐스트 IP 주소(범위 [224-239].[0-255].[0-255].[0-255], 기본값 224.0.0.0/4)이고, Subnet mask는 마스크 길이(범위 1–32, 기본값 None)입니다.
Static Rendezvous Point로 켜기 — Enable Static RP 를 선택합니다.
- 선택 Add — Static RP의 IP 주소를 입력합니다. 연관 멀티캐스트 그룹·prefix를 구성하지 않으면, 이 Static RP가 모든 멀티캐스트 그룹(224.0.0.0/4)을 책임 지는 것으로 간주됩니다. 이 값은 RP 전파 메커니즘(bootstrap이든 autoRP든)과 무관하게 도메인 내 다른 라우터의 RP 정보와 일치 해야 합니다.
구성을 마치면 Save 를 클릭합니다.
Gaia Clish에서 PIM 구성하기
사용 가능한 명령을 둘러보려면 다음을 칩니다.
set pim[Esc][Esc] # 사용 가능한 set 명령 보기
show pim[Esc][Esc] # 사용 가능한 show 명령 보기
restart pim[Esc][Esc] # 사용 가능한 restart 명령 보기전체 구문은 다음과 같습니다.
set pim
assert-interval {<1-3600> | default}
assert-rank protocol <Protocol> rank {<0-255> | default}
bootstrap-candidate
local-address {<IPv4 address> | default} {off | on}
priority {<0-255> | default}
candidate-rp
advertise-interval {<1-3600> | default}
local-address {<IPv4 address> | default}
multicast-group <IPv4 address>/<Subnet mask> {off | on} {off | on}
priority {<0-255> | default}
data-interval {<11-3600> | default}
hello-interval {<1-21845> | default}
interface <Name of Interface>
dr-priority {<0-4294967295> | default} {off | on}
virtual-address {off | on}
interface-all-off
jp-delay-interval {<1-3600> | default}
jp-interval {<1-3600> | default}
mode {dense | sparse | ssm}
register-suppress-interval {<60-3600> | default}
state-refresh {off | on}
state-refresh-interval {<1-255> | default}
state-refresh-ttl {<1-255> | default}
static-rp {off | on}
rp-address <IPv4 address>
multicast-group <IPv4 address>/<Subnet mask> {off | on} {off | on}필수(Mandatory) 파라미터는 표에 표시 했고 나머지는 모두 선택입니다.
PIM Clish 파라미터
| 파라미터 | 설명 | ||
|---|---|---|---|
**assert-interval {<1-3600> \ | default}** | assert interval을 구성합니다. upstream 인터페이스의 assert battle 결과로 RPF 이웃이 아닌 다른 PIM 이웃이 designated forwarder가 되면, 그 승자를 이후 모든 join/prune의 upstream 이웃으로 쓰며, 이 변경은 assert interval 후 타임아웃됩니다. 1–3600초, 기본값 180초. | |
assert-rank protocol <Protocol> | assert rank를 구성할 프로토콜을 지정합니다 — bgp(BGP 학습 경로), direct(인터페이스 직접 연결), kernel(커널 경로), ospf(OSPF 학습 경로), ospfase(OSPF 외부 경로), rip(RIP 학습 경로), static(정적 경로). | ||
**rank {<0-255> \ | default}** | 멀티액세스 LAN에서 어느 라우터가 멀티캐스트 데이터를 전달할지 정하려고 프로토콜 cost를 비교하는 순위. 같은 LAN에서 같은 프로토콜을 돌리는 모든 라우터에서 같아야 합니다. 0–255, 기본값 — BGP 170 / Direct 0 / Kernel 40 / OSPF 10 / RIP 100 / Static 60. | |
**bootstrap-candidate local-address {<IPv4 address> \ | default}** | C-BSR 상태 머신·bootstrap 메시지에 쓰는 Bootstrap Candidate Local Address. (단일 GW는 PIM/loopback 주소 사용 가능하되 127/8 제외, Cluster Member는 Cluster Virtual IP 사용 — 위 Portal 주의사항과 동일.) | |
| **bootstrap-candidate {off \ | on}** | Bootstrap Candidate를 끄거나(off) 켭니다(on). | |
**bootstrap-candidate priority {<0-255> \ | default}** | C-BSR 메시지에 광고하는 우선순위. 값이 가장 높은 candidate BSR가 도메인 BSR로 선출됩니다. 0–255, 기본값 0. | |
**candidate-rp advertise-interval {<1-3600> \ | default}** | candidate RP Advertisement Interval을 구성합니다. | |
**candidate-rp local-address {<IPv4 address> \ | default}** | C-RP 상태 머신·C-RP-Advertisement에 쓰는 Candidate RP 라우터 주소. (단일 GW/Cluster Member 주의사항은 위와 동일.) | |
**candidate-rp multicast-group <IPv4 address>/<Subnet mask> {off \ | on}** | 이 라우터가 candidate RP를 맡을 Multicast Group을 구성합니다. <IPv4 address> 는 CIDR 표기의 그룹 멀티캐스트 IP(범위 [224-239].[0-255].[0-255].[0-255], 기본값 224.0.0.0/4), <Subnet mask> 는 마스크 길이(1–32, 기본값 None). | |
| **candidate-rp {off \ | on}** | Gaia를 candidate RP 라우터로 끄거나 켭니다. | |
**candidate-rp priority {<0-255> \ | default}** | 이 C-RP의 우선순위. 모든 PIM 라우터는 BSR에서 받은 C-RP 목록에서 한 그룹 주소에 같은 RP를 고릅니다. C-RP의 Local Preference가 낮을수록 우선순위가 높 습니다. 0–255, 기본값 0. | |
**data-interval {<11-3600> \ | default}** | 새 PIM forwarding entry의 수명. 이후 라우터 위치에 따라 다양하게 연장됩니다. 11–3600초, 기본값 210초. | |
**hello-interval {<1-21845> \ | default}** | PIM Hello 메시지 간격. Hello는 All-PIM-Routers 그룹 224.0.0.13 으로 보내집니다. 1–21845초, 기본값 30초. | |
interface <Name of Interface> | (필수) PIM을 켤 인터페이스를 지정합니다. | ||
**interface <Name of Interface> dr-priority {<0-4294967295> \ | default}** | 인터페이스로 보내는 Hello에 광고되는 DR 우선순위. LAN의 DR 선출에 쓰며, 가장 높은 쪽이 DR, 동점 시 IP 주소가 높은 쪽. 한 대라도 광고하지 않으면 IP 주소 기준. (이웃 지원 확인: show pim neighbor <IP Address of Neighbor> → DRPriorityCapable Yes.) 0–4294967295, 기본값 1. | |
**interface <Name of Interface> {off \ | on}** | 지정 인터페이스의 PIM을 끄거나 켭니다. | |
**interface <Name of Interface> virtual-address {off \ | on}** | 이 인터페이스에서 VRRP Virtual IP 주소 사용을 끄거나 켭니다. failover 후 VRRP Master가 된 다음에야 PIM이 돕니다. ClusterXL이 켜져 있으면 구성할 수 없습니다. 기본값 off. | |
| interface-all-off | 모든 인터페이스에서 PIM을 끕니다. | ||
**jp-delay-interval {<1-3600> \ | default}** | 출발지(또는 RP) 방향 유니캐스트 RPF 이웃이 바뀐 시점부터 triggered Join/Prune이 나갈 때까지의 최대 간격. 1–3600초, 기본값 5초. | |
**jp-interval {<1-3600> \ | default}** | Join/Prune 메시지 전송 간격. 1–3600초, 기본값 60초. | |
| **mode {dense \ | sparse \ | ssm}** | (필수) PIM 모드 — dense(Dense Mode), sparse(Sparse Mode), ssm(Source-Specific Multicast). |
**register-suppress-interval {<60-3600> \ | default}** | register-stop 수신과 다시 register를 보낼 수 있는 때 사이의 평균 간격. 작을수록 RP에서 register burst가 잦고, 클수록 새 수신자의 join latency가 깁니다. 60–3600초, 기본값 60. | |
| **state-refresh {off \ | on}** | 활성 수신자가 없는 멀티캐스트 트래픽의 prune 상태 타임아웃을 지연시키는 state refresh 메시지 사용을 끄거나 켭니다. Dense Mode의 flood-and-prune 주기를 억제합니다. | |
**state-refresh-interval {<1-255> \ | default}** | Dense Mode에서, 직접 연결된 출발지의 멀티캐스트 트래픽에 대해 state refresh 메시지를 보내는 간격. 1–255초, 기본값 60초. | |
**state-refresh-ttl {<1-255> \ | default}** | Dense Mode에서 state refresh 메시지에 넣는 TTL. 전달 범위 제한에 쓰며, 미지정 시 멀티캐스트 데이터에서 유도됩니다. 1–255, 기본값 None. | |
| **static-rp {off \ | on}** | 라우터를 Static Rendezvous Point로 끄거나 켭니다. | |
static-rp rp-address <IPv4 address> | Static RP IP 주소를 구성합니다. 연관 그룹·prefix 미구성 시 모든 그룹(224.0.0.0/4)을 책임지는 것으로 간주됩니다. RP 전파 메커니즘과 무관하게 도메인 내 다른 라우터의 RP 정보와 일치해야 합니다. Static RP는 bootstrap 등 다른 메커니즘에서 받은 RP 정보를 덮어씁니다. 기본값 None. | ||
**static-rp rp-address <IPv4 address> multicast-group <IPv4 address>/<Subnet mask> {off \ | on}** | 이 라우터가 static RP를 맡을 Multicast Group을 구성합니다. <IPv4 address> 는 CIDR 그룹 IP(기본값 224.0.0.0/4), <Subnet mask> 는 마스크 길이(1–32, 기본값 None). | |
**static-rp rp-address <IPv4 address> {off \ | on}** | 지정한 static RP를 끄거나 켭니다. |
PIM 모니터링·문제 해결
Gaia Portal에서
- Advanced Routing > PIM 을 클릭합니다.
- 오른쪽 위 모서리의 Monitoring 을 클릭합니다.
- PIM Monitor 섹션에서 Information 범주를 클릭합니다.
Gaia Clish에서 — 사용 가능한 show 명령을 보려면 show pim[Esc][Esc] 를 칩니다. 문제 해결은 Trace Options 절을 참고하세요.
정적 멀티캐스트 라우트 (Static Multicast Routes)
Static Multicast Route(정적 멀티캐스트 라우트) 는 PIM 같은 상위 멀티캐스트 프로토콜에 RPF(reverse-path-forwarding) 검사용으로 쓸 다른 nexthop 집합 을 제공합니다. RPF 검사를 할 때 이 라우트를 먼저 살피고, nexthop을 못 찾으면 유니캐스트 라우팅 테이블 을 봅니다.
PIM은 멀티캐스트 데이터의 출발지에 도달하는 인터페이스, 즉 RPF 인터페이스로 패킷이 들어오기를 기대 하며, join/prune 메시지를 어느 인터페이스로 보낼지도 RPF로 판단 합니다. 기본적으로 PIM은 유니캐스트 라우팅 테이블에서 RPF 인터페이스를 찾 습니다. Static Multicast Route는 이 RPF 검사에 쓸 대체 라우트 테이블 을 제공합니다.
특정 목적지에 정적 멀티캐스트 라우트와 유니캐스트 라우트가 둘 다 있으면, PIM은 정적 멀티캐스트 라우트를 씁니다. 덕분에 PIM이 유니캐스트 라우팅에 독립적이 되어, 멀티캐스트와 유니캐스트 트래픽이 서로 다른 경로로 흐르는 토폴로지를 만들 수 있습니다. 예를 들어 부하 분산을 위해 HTTP 트래픽과 시세(stock quotes) 트래픽을 분리하고 싶다면, 출발지 네트워크로 가는 정적 멀티캐스트 라우트를 만들되 유니캐스트 테이블의 nexthop과 다른 nexthop 게이트웨이 주소 를 지정하면 됩니다.
Gaia Portal에서 정적 멀티캐스트 라우트 구성하기
추가하기
- Advanced Routing > Static Multicast Routes 를 클릭합니다.
- Static Multicast Routes 섹션에서 Add 를 클릭합니다.
- 멀티캐스트 목적지 파라미터를 구성합니다 — Destination 에 IPv4 주소를, Subnet mask 에 IPv4 네트워크 마스크를 입력합니다.
- Add Gateway 섹션에서 멀티캐스트 라우트의 nexthop 게이트웨이를 구성합니다.
- Add Gateway 를 클릭합니다.
- IPv4 Address 에 nexthop 게이트웨이의 IPv4 유니캐스트 주소를 입력합니다.
- 선택: Priority 에 이 nexthop 게이트웨이의 우선순위를 입력합니다.
같은 정적 멀티캐스트 라우트에 nexthop 게이트웨이가 여러 개일 때 어느 것을 nexthop으로 고를지 를 우선순위 값으로 정합니다. 값이 낮을수록 더 선호 되고, 같은 우선순위면 IPv4 주소가 낮은 쪽 (예: 192.168.10.2 대신 192.168.10.1)이 선택됩니다. 우선순위를 아예 지정하지 않은 게이트웨이가, 우선순위 값을 지정한 게이트웨이보다 더 선호 됩니다. 범위 None 또는 1–8, 기본값 None(기본값으로 되돌리려면 현재 1–8 값을 지웁니다). - OK 를 클릭합니다. 5. Save 를 클릭합니다.
편집하기 — Static Multicast Routes 섹션에서 라우트를 선택하고 Edit → 설정 구성 → OK → Save. 삭제하기 — 라우트를 선택하고 Delete.
Gaia Clish에서 정적 멀티캐스트 라우트 구성하기
사용 가능한 명령을 둘러보려면 다음을 칩니다.
set static-mroute[Esc][Esc] # 사용 가능한 set 명령 보기
show static-mroute[Esc][Esc] # 사용 가능한 show 명령 보기전체 구문은 다음과 같습니다.
set static-mroute {<IPv4 Network Address>/<Subnet mask> | default}
nexthop gateway address <IPv4 Address> {off | on}
[priority {<1-8> | default} on]
offStatic Multicast Route 파라미터
| 파라미터 | 설명 | |
|---|---|---|
static-mroute <IPv4 Network Address>/<Subnet mask> | 목적지 IPv4 멀티캐스트 주소로 가는 라우트를 구성합니다. <IPv4 Network Address> 는 CIDR 표기의 멀티캐스트 네트워크 주소(범위 [224-239].[0-255].[0-255].[0-255], 기본값 None), <Subnet mask> 는 마스크 길이(1–32, 기본값 None). | |
| static-mroute default | 이 라우트를 default route로 구성합니다. | |
**nexthop gateway address <IPv4 Address> {off \ | on}** | on — 멀티캐스트 라우트의 nexthop 게이트웨이 IPv4 유니캐스트 주소를 구성·활성화합니다. off — 그 nexthop 게이트웨이 주소를 비활성화합니다. |
**priority {<1-8> \ | default} on** | 선택. 이 nexthop 게이트웨이의 우선순위. 여러 게이트웨이가 있을 때 어느 것을 nexthop으로 쓸지 정합니다. 값이 낮을수록 선호, 같은 값이면 IPv4 주소가 낮은 쪽, 우선순위 미지정 게이트웨이가 지정된 것보다 더 선호. 범위 1–8 또는 default, 기본값 None. |
**static-mroute {<IPv4 Network Address>/<Subnet mask> \ | default} off** | 구성된 정적 멀티캐스트 라우트를 비활성화합니다. |
라우트 추가·편집 — Gaia Clish에 로그인한 뒤 다음을 실행하고 저장합니다.
set static-mroute {<IPv4 Network Address>/<Subnet mask> | default}
nexthop gateway address <IPv4 Address>
on
[priority {<1-8> | default} on]
save confignexthop 게이트웨이 하나만 삭제
set static-mroute {<IPv4 Network Address>/<Subnet mask> | default} nexthop gateway address <IPv4 Address> off
save config정적 멀티캐스트 라우트 통째로 삭제
set static-mroute {<IPv4 Network Address>/<Subnet mask> | default} off
save config정적 멀티캐스트 라우트 모니터링
Gaia Portal에서 — Advanced Routing > Static Multicast Routes 를 클릭하고 오른쪽 위의 Monitoring 을 클릭합니다.
Gaia Clish에서
show static-mroute문제 해결은 Trace Options 절을 참고하세요.
MFC — 멀티캐스트 전달 캐시 (Multicast Forwarding Cache)
개요와 알려진 제약
여러 정적·동적 멀티캐스트 라우팅 프로토콜이 멀티캐스트 라우트와 일치하는 패킷을 전달하기 위해 MFC 를 씁니다. MFC는 멀티캐스트 전달 결정을 (S,G) 항목으로 캐시 해 두는 메커니즘으로, 운영 중 멀티캐스트가 의도대로 흐르는지 점검할 때도 여기를 봅니다.
Gaia Portal에서 MFC 구성하기
새 MFC Static Entry 추가
- 웹 브라우저로 Gaia Portal에 접속해 로그인합니다.
- Advanced Routing > MFC Static Entries 를 클릭합니다.
- Source 섹션에서:
- Source 에 멀티캐스트 트래픽의 출발지 IPv4 또는 IPv6 주소를 구성합니다.
편집 — MFC Static Entries 에서 해당 항목을 선택해 수정한 뒤 Save. 삭제 — 항목을 선택하고 Delete.
Gaia Clish에서 MFC 구성하기
MFC 항목을 구성하는 구문은 다음과 같습니다.
set mfc-static source <Source IP Address> group <Destination Group IP Address>
group-count <1-512> group-increment <Group Increment IP Address> {on | off}
iif <Name of Incoming Interface> on
off
oif <Name of Outgoing Interface> {on | off}
source-count <1-512> source-increment <Source Increment IP Address> {on | off}MFC Clish 파라미터
| 파라미터 | 설명 | |
|---|---|---|
source <Source IP Address> | MFC에 (S,G) 항목을 구성합니다. 멀티캐스트 트래픽의 출발지 IPv4/IPv6 주소를 지정합니다. Source와 Group은 같은 주소 패밀리여야 합니다. 기본값 none. | |
group <Destination Group IP Address> | 멀티캐스트 목적지 그룹 IPv4/IPv6 주소를 지정합니다. Source와 같은 패밀리여야 하며, IPv4 224.x.x.0/24 와 IPv6 FF02::/16 은 로컬 전용 으로 외부로 전달되지 않습니다. IPv4 범위 224.0.0.0/4, IPv6 범위 FF00::/8, 기본값 none. | |
group-count <1-512> | 추가할 인접 그룹 개수. 모든 (S, G+jinc) 항목을 구성합니다(j는 0 ~ n−1, inc는 group-increment가 결정). source-count도 함께면 모든 쌍 (S+isinc, G+j*ginc) 추가. 범위 1–512, 기본값 1. | |
group-increment <Group Increment IP Address> | 인접 그룹 사이의 증가분. 형식은 그룹과 같은 IPv4/IPv6 주소이며 비트 단위로 더해집니다. IPv4 기본 0.0.0.1, IPv6 기본 ::1. | |
**iif <Name of Incoming Interface> {on \ | off}** | 해당 (S,G) 항목의 트래픽 incoming 인터페이스 를 구성합니다. on은 활성화, off는 비활성화. 인터페이스를 먼저 구성해야 합니다. |
| off | 이 (S,G) 항목을 MFC에서 제거합니다. | |
**oif <Name of Outgoing Interface> {on \ | off}** | 해당 (S,G) 항목의 트래픽 outgoing 인터페이스(전달하는 인터페이스) 를 구성합니다. on은 활성화, off는 비활성화. 인터페이스를 먼저 구성해야 하며, 한 (S,G) 항목에 outgoing 인터페이스를 여러 개 둘 수 있습니다. |
source-count <1-512> | 추가할 인접 source 개수. 모든 (S+iinc, G) 항목을 구성합니다(i는 0 ~ n−1, inc는 source-increment가 결정). group-count도 함께면 모든 쌍 (S+isinc, G+j*ginc) 추가. 범위 1–512, 기본값 1. | |
source-increment <Source Increment IP Address> | 인접 source 사이의 증가분. 형식은 source와 같은 IPv4/IPv6 주소이며 비트 단위로 더해집니다. IPv4 기본 0.0.0.1, IPv6 기본 ::1. |
MFC 항목·구성을 보는 구문은 다음과 같습니다.
show mfc
cache [static]
interface
orphans
stats
summary| 파라미터 | 설명 |
|---|---|
| cache [static] | MFC 캐시 상태를 보여 줍니다. |
| interface | MFC가 활성화된 모든 인터페이스의 상태 정보를 보여 줍니다. |
| orphans | 멀티캐스트 라우팅이 해소하지 못한(출발지 IP에 도달할 수 없어서) MFC <S,G> 라우트를 보여 줍니다. 왜 orphan이 되었는지는 "MFC Cache" trace 옵션을 켜서 확인합니다(Trace Options 절 참조). |
| stats | MFC 통계를 보여 줍니다. |
| summary | MFC 구성 요약 정보를 보여 줍니다. |
예시 1 — MFC 통계 (show mfc stats)
MyGW> show mfc stats
Multicast Forwarding Cache Stats
Resolve Task MyGW
Total: 0
Errors:
Truncated: 0
Unsupported Version: 0
Multicast Disabled: 0
Unsupported Type: 0
Resolve Requests
Normal: 0
PIM: 0
Errors:
Unsupported Operation: 0
Truncated: 0
Unsupported Type: 0
RPF Failure Notifications
Normal: 0
PIM Register: 0
SPT Switchover: 0
Errors:
Truncated: 0
Unsupported Type: 0
No MFC Active: 0
Interface Not Activ: 0
MFC Maintenance
Packet Count Request: 0
Packet Count Response: 0
Xresolve Request: 0
Mcast Forward Request: 0
Errors:
Packet Count Request: 0
Packet Count Response: 0
Xresolve Request: 0
Mcast Forwarding Request: 0
MyGW>예시 2 — MFC 구성 요약 (show mfc)
MyGW> show mfc
Multicast Forwarding Cache State
Number of interfaces enabled: 0
Number of cache entries: 0
Kernel forwarding entry limit: unlimited
Number of kernel forwarding entries: 0
Cache entry average lifetime: 300 seconds
Prune average lifetime: 7200 seconds
Cache age cycle: 10 seconds
Datarate update interval: 10 seconds
Multicast Protocol(Instance): Any(0)
Multicast Forwarding Cache Static Entry State
Number of interfaces enabled: 0
Number of cache entries: 0
Number of kernel forwarding entries: 0
Multicast Protocol(Instance): MFC Static(N/A)
MyGW>MFC 항목 모니터링
Gaia Clish에서 — IPv4·IPv6 멀티캐스트 항목을 보려면 다음을 칩니다.
show mfc cache예시:
MyGW> show mfc cache
Multicast Forwarding Cache State
Prefix Type Age Expire RPF
2.2.2.2,224.10.10.10/64 Static N/A N/A eth1.10
Forwarding: eth1.20 eth1.30
80::1,ff0e::101/256 Static N/A N/A eth1.10
Forwarding: eth1.20
MyGW>Expert mode에서 — IPv4 멀티캐스트 항목은 ip mroute, IPv6 멀티캐스트 항목은 ip -6 mroute 로 봅니다.
[Expert@MyGW:0]# ip mroute
(2.2.2.2, 224.10.10.10)
Iif: eth1.10
Oifs: eth1.20 eth1.30
[Expert@MyGW:0]#[Expert@MyGW:0]# ip -6 mroute
(80::1, ff0e::101)
Iif: eth1.10
Oifs: eth1.20
[Expert@MyGW:0]#이렇게 IGMP·PIM·Static Multicast Route·MFC가 맞물려 동작합니다. IGMP로 수신자의 가입을 파악 하고, PIM(SM·DM·SSM)으로 분배 트리를 세 우며, 필요하면 Static Multicast Route로 RPF 경로를 유니캐스트와 분리 하고, 동적 프로토콜 없이 정적 전달만 할 때는 MFC Static Entry 를 씁니다(단 MFC static entry와 PIM은 동시에 켜지 마세요).