PIM   Protocol Independent Multicast  

(2016-08-30)

PIM-DM, PIM Dense Mode, Dense-mode Multicast Routing Protocol, PIM-SM, PIM Sparse Mode, Sparse-mode Multicast Routing Protocol, Pruning, 가지치기

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


[멀티캐스트 라우팅] 1. 멀티캐스트 라우팅 프로토콜 2. 멀티캐스트 트리 3. DVMRP 4. MOSPF 5. PIM 6. CBT 7. MSDP 8. RP(랑데뷰포인트) 9. 역경로

 
        최근수정     요약목록     참고문헌