Network/Service Provider

Multicast (6) MSDP

billy0529 2014. 10. 1. 18:55
728x90

<>MSDP



Multicast Source Discovery Protocol


서로 다른 RP 사이에서 소스정보를 주고 받는 용도로 사용되는 프로토콜이다.

멀티캐스트 영역을 MSDP 피어링을 통해 연결하거나, 애니캐스트 설정, 다른 그룹간의 소스정보를 공유한다.


   조건 및 작동방식


   (1) 서버에서 멀티캐스트 패킷(방송)을 발송하여 RP 라우터가 받을경우 인접 MSDP 피어라우터(RP2)에게 SA(source

        active) 메시지를 통해 소스정보를 발송한다.

   (2) 받은 RP2 라우터는 받은 소스정보에 대해 RPF 확인을 한다. RPF 확인은 기본적으로 BGP 혹은 MBGP 로 만 확인한다.

        RPF 확인이 성공하면, SA 캐시에 저장하고, 실패시 유효하지 않은정보로 파악하고 드랍한다.


        다음과같은 경우는 BGP를 구동하지 않아도 SA 메시지에 대해 RPF 확인을 하지 않는다.

        메시그룹 사용, MSDP 풀메시로 모든 RP를 묶음, MSDP 피어가 하나뿐일때, SA를 생성한 피어에서 직접 전달받은경우.


   (3) RP1이 방송하는 패킷에 대해 호스트까지 더 좋은경로가 있을경우 소스트리로 변경하여 패킷을 전달한다.

   (4) MSDP 피어관계를 맺는 라우터는 60초 간격으로 킵얼라이브 메시지를 보내 활성화를 확인하고 홀드타임은 75초이다.



   

   예제조건

    

   (1) 서버와 PC를 제외한 모든 라우터는 스파스 모드로 동작하고, R5, R6은 정적 RP 선정, 나머지 두개의 멀티캐스트 영역은

        BSR 자동 선정방식으로 한다. R3과 R8은 이를 위한 BSR 라우터로 지정

   (2) R2,3,4 와 R5 와 R6 그리고 R6, 7, 8 이렇게 네개의 독립적인 멀티캐스트 네트워크가 되고 RP도 모두 네개 가 존재한다. 

   (3) R4와 R7의 경계 인터페이스에 BSR border 설정을 설정하여 멀티캐스트 네트워크를 분리한다. 

   (4) PC는 IGMP 그룹 [239.1.1.1] 에 Join

   (5) 각 영역경계에서 루프백 RP주소를 통해 MSDP 피어를 맺고, 메시그룹에 참여하거나, Default 피어를 설정하여  RPF 

        확인을 하지 않도록 하고 멀티캐스트 그룹이 모두 방송을 제대로 수신하는지 확인


   정적 RP 설정

   


   RP candidate 설정



   (1) 그룹 [239.1.1.23]에 대해 (2) RP 후보로 등록하였다.

   BSR 라우터를 제외한 모든 RP 후보에 이와 같이 설정한다. 


   R5 BSR router 설정



   설정이 완료되면 다른 그룹의 RP들이 혼재한 상황에서 당연히 서버와 PC는 통신이 불가능하다.

   통신을 위해서는 서로 다른 그룹별 RP 주소가 각자의 소스정보를 공유해야 하므로, MSDP를 통해 통신할수 있다.



1. MSDP Peering


   R4(config)# ip msdp peer 1.1.5.5 connect-source lo0

   R5(config)# ip msdp peer 1.1.4.4 connect-source lo0

   R5(config)# ip msdp peer 1.1.6.6 connect-source lo0

   R6(config)# ip msdp peer 1.1.5.5 connect-source lo0

   R6(config)# ip msdp peer 1.1.7.7 connect-source lo0

   R7(config)# ip msdp peer 1.1.6.6 connect-source lo0


   R4와 R7은 MSDP 피어가 하나뿐이므로 (각각 R5와 R6) SA 메시지의 RPF 확인을 하지 않는다.

   다만 인접하지 않은 RP는 RPF 확인이 실패하여 서로 SA 메시지를 주고받지 못한다.

   이때 인접하지 않은 RP와도 MSDP 피어를 맺는 이른바 풀메시로 연결하면 SA 메시지를 생성한 라우터로부터를 정보를 

   바로 받게 되므로 역시 RPF 확인을 하지 않게 되어 통신이 가능하다. 다만 풀메시로 연결시 SA 메시지로 넘쳐나는

   SA 플러딩이 발생하여 장비에 무리를 주게 된다. (실제 Debug시 SA 요청, 응답, 킵얼라이브 메시지가 쉬지않고 올라옴)


   R4에서 풀메시로 연결한 예

   R4(config)# ip msdp peer 1.1.5.5 connect-source lo0 

   R4(config)# ip msdp peer 1.1.6.6 connect-source lo0

   R4(config)# ip msdp peer 1.1.7.7 connect-source lo0 



2. Mesh-Group 


   메시그룹 설정시 RPF 확인을 하지 않는다. 

   위 예제에서 R4, R7은 피어가 한개이므로 RPF 확인을 하지 않는다. 따라서 R5, R6의 두개의 RP를 메시그룹으로 묶을경우

   [R5 R6]그룹은 R4, R7로부터 그들이 직접 생성한 SA 메시지를 받게 되므로 R5-R6만 메시그룹을 묶어도 통신이 가능하다.


   R5(config)# ip msdp mesh-group R5-R6 1.1.6.6 

   R6(config)# ip msdp mesh-group R5-R6 1.1.5.5


   당연한 말일지만 동일한 그룹에 속할 RP는  동일한 그룹명을 사용해야 한다.

   묶인 메시그룹 은 마치 단일 도메인처럼 인식된다.



3. Default Peer


   default peer 가 설정된 인접 RP 도메인에서 중계하는 SA 에 대해서 RPF 확인을 하지 않는다.

   [R4-R5] 를 메시그룹으로 묶고 R6와 R5를 디폴트 피어로 설정하면, R5가 중계하는 R4 도메인의 SA 정보에 대해 

   R6이 RPF 확인을 하지 않으며 (디폴트피어 설정으로 인해) 자연히 R7로는 SA정보를 넘기기 때문에 통신이 가능하게 된다. 

   원래대로 라면 R6은 두개의 MSDP 피어를 갖고, 바로 인접한 R5가 만드는 SA정보만을 넘겨 받기 때문에 R4의 SA정보를

   받을수 없다.


   R5(config)# ip msdp default-peer 1.1.6.6

   R6(config)# ip msdp default-peer 1.1.5.5



4. BGP


   MSDP 프로토콜은 기본적으로 BGP와 MBGP로만 RPF확인을 수행한다. 따라서 BGP 세션으로 구성된 네트워크는 RPF 확인

   을 위한 몇가지 사항만 충족될경우, 바로 SA 메시지를 교환하고 트래픽을 송수신한다.


   (1) MSDP 피어 주소를 BGP 네트워크에 포함시킨다. 가장 중요하다. (iBGP, eBGP 모두)

   (2) iBGP 세션일경우 iBGP 피어 와 MSDP 피어 주소가 동일해야한다. 이는 보통 실무나 랩환경에서 MSDP 피어와 iBGP

        피어를 대부분 루프백주소를 통해 연결하므로 iBGP 피어링을 외부 인터페이스로 연결시에만 유념한다.

   (3) eBGP 는 (2)의 사항에 해당되지 않는다. 다만 MSDP 피어와 eBGP 피어의 AS 번호가 다르면 RPF 실패 (중요)

 

   위 사항에 어긋나지 않으면 모든 RP는 정상적으로 SA 메시지를 송수신하고 소스정보를 공유한다.

   대부분 문제가 생기는 이유는 위의 사항을 지키지 않았다기보다는 기본적인 BGP 설정의 오류로 인한 이유가 대다수이다. 

    


5. MSDP Compliance with IETF RFC 3618


   MSDP 호환 프로토콜인 RFC 3618은, SA 메시지 루핑을 방지하고, BGP나 MBGP 요구조건없이 IGP로 RPF 체크가 가능하

   도록 지원한다. 위의 예제의 MSDP 피어링 연결을 하는 라우터에서 모두 활성화하면 동작한다.

   IGP로 구성된 네트워크에서는 MSDP 피어주소를 IGP 라우팅 테이블상의 넥스트홉 주소로 설정해야만 동작한다. 

   루프백주소로 MSDP 피어주소를 설정했을시 주의.


   R4(config)# ip msdp rpf rfc3618

   R5(config)# ip msdp rpf rfc3618

   R6(config)# ip msdp rpf rfc3618

   R7(config)# ip msdp rpf rfc3618

   


  




   

   

'Network > Service Provider' 카테고리의 다른 글

Multicast (8) Bidir-Pim  (0) 2014.10.07
Multicast (7) PIM-SSM  (0) 2014.10.03
Multicast (5) PIM-SM (BSR)  (0) 2014.09.30
Multicast (4) PIM-SM (Auto RP)  (0) 2014.09.26
Multicast (3) PIM-SM (static RP)  (0) 2014.09.23