1. PIM (Protocol Independent Multicast)
ㅇ 대규모 네트워크 상에서 프로토콜에 의존하지 않고, 멀티캐스트 라우팅 트리를 구성할 수
있게하는 멀티캐스트 라우팅 프로토콜
ㅇ [용어 의미] Protocol Independent (프로토콜 비의존적)
- 각 라우팅 프로토콜 마다 저마다 Topology를 구축하지 않아도,
타 라우팅 프로토콜이 구축한 Topology 정보를 그대로 활용
2. PIM 구분
ㅇ Dense Mode 멀티캐스트 라우팅 프로토콜
- 그룹 구성원이 도처에 반드시 1 이상씩 있고, 충분한 대역폭이 있는 환경에 적절
. 각 라우터들이 멀티캐스팅에 참여할 가능성이 높을 때 사용
.. 밀집된 소규모 지역에 유리
. 설정이나 동작 방식이 비교적 간단함
- Dense Mode 특징
. 발신자 기반의 트리 방식(Source-based Tree)
.. 그룹내 각 발신자를 루트로 하는 별개의 트리들이 구성
. 데이터 기반(Data-driven) 방식
. Flood-and-Prune 메커니즘
.. 우선 모든 호스트가 멀티캐스팅을 원하고 있다고 가정하며,
.. 입력 멀티캐스트 패킷을 다른 모든 인터페이스에 Flooding 함을 원칙으로 함
.. 멀티캐스팅이 불필요한 곳 마다 Prune으로 가지치기 차단 (PIM Prune 메시지)
- Dense Mode Multicast Routing Protocol 例
. 프로토콜 비의존적 : PIM-DM (RFC 3973)
. 프로토콜 의존적 : DVMRP, MOSPF 등
ㅇ Sparse Mode 멀티캐스트 라우팅 프로토콜
- 그룹 구성원이 여러 곳에 분산되어 있고, 충분하지 않은 대역폭이 있을 때에 적절
. 각 라우터들이 멀티캐스팅에 참여할 가능성이 낮을 때 사용
- Sparse Mode 특징
. 수신자 기반(Receiver-initiated)의 그룹 공유 트리 기반(Group-shared Tree) 방식
.. RP(Rendezvous Point)를 루트로 하는 그룹 공유 트리를 통해 멀티캐스팅
. Explicit Group-Join 메커니즘
.. 우선 모든 호스트가 멀티캐스팅을 원하지 않다고 가정하며,
.. 입력 멀티캐스트 패킷을 어떠한 인터페이스에도 포워딩하지 않음을 원칙으로 함
.. 원할 때 마다 그룹 공유 트리에 각 수신자들이 Join 하는 방식 (PIM Join 메세지)
- Sparse Mode Multicast Routing Protocol 例
. 프로토콜 비의존적 : PIM-SM (RFC 2362) 등
3. PIM 관련 프로토콜 메시지
ㅇ PIMv2 특징
- Protocol Number : 103
- 목적지 주소 : All PIM Routers (IPv4 224.0.0.13, IPv6 FF02::D)
또는 특정 유니캐스트 주소
- PIM-SMv2 메시지 타입 : 0 (Hello), 1 (Register), 2 (Register-Stop), 3 (Join/Prune),
4 (Bootstrap), 5 (Assert), 8 (Candidate RP advertisement)
ㅇ PIM Hello 메세지 (PIMv2 부터 사용됨, PIMv1에서는 사용 안함)
- PIM으로 구동된 멀티캐스트 라우터는,
. 맨 먼저 모든 인터페이스에 PIM Hello 메세지를 발송하게 됨
- 목적지 주소 : All PIM Routers (IPv4 224.0.0.13, IPv6 FF02::D)
- 발송 주기 : 30 초
- 발송 목적 : 이웃 멀티캐스트 라우터와 Neighbor 관계(PIM Neighbor Adjacency)를 맺음
- 주요 항목
. Hello Holdtime : 정보 유지에 필요한 시간
.. 만일, 이 기간 동안 이웃에서 Hello 메세지 미 수신이면, 상대 이웃이 죽음 간주
.. 통상, Hello 메세지 발송측에서 제시한 Hello Interval의 3배
- 참고사항
. 이웃 간에 Hello 메시지를 통해 Adjacency 맺은 경우에 만, 타 메시지도 송수신 가능
4. LAN에 관련된 PIM-DM,PIM-SM 동작들
ㅇ Prune Override (Prune/Pruning : 가지치기)
- 바로 상위 라우터에게 해당 멀티캐스트 수신 그룹에 멀티캐스트 트래픽을 보내지 말도록
알리는 메세지
- 멀티캐스트 트래픽이 필요 없으면,
. Prune(가지치기) 된 상태를 유지하기 위해, 3분 마다 Prune 메세지 전송해야 함
. 따라서, Flood-and-Prune 반복될 수도 있음
- Prune 메세지 전달 경우
. RPF CHeck
. 라우터 자신이 말단(leaf) 노드이고, 그룹 구성원이 없을 때
. 모든 하위 라우터들로부터 Prune 메세지를 수신한 경우
ㅇ Assert messages
ㅇ Designated routers