본문 바로가기

About../Network

각종 cast

CCNP(BSCI)

Multi Caste

1. Multicast 정의

   

Multicast는 Multicast Group에 소속된 특정 다수에게 데이터를 전송하는 기법이다.

   

다수에게 데이터를 보낼 때 Unicast 처럼 각 Host마다 데이터를 만들어 보내지 않고 하나의 데이터로만 전송을 한다.

   

그리고 하나의 데이터만을 전송하나 Broadcast 처럼 모든 Host에게 데이터를 전송하지 않고 그룹 멤버들에게만 전송을 한다.

   

한마디로 Multicast는 Unicast의 장점과 Broadcast 장점을 결합하여 만들어진 기술이라 할 수 있겠다.

   

그러면 Unicast, Broadcast, Multicast 데이터 전달 방식을 그림을 통해 비교하여 알아보자.

   

   

1) Unicast 방식

   

   

※ 하나의 트래픽을 발송 하더라도 다수의 Host에게 전달한다면 그 트래픽을 Host 수 만큼 복사하여 각 Host에게 전달한다.

   

    신뢰성 있게 전송을 할 수 있으나 트래픽의 수 증가로 회선에 많은 부담을 갖는다. 다수의 Host에게 데이터 전달에 문제가 있다.

   

   

2) Broadcast 방식

   

   

※ 하나의 트래픽이 다수의 Host에게 발송할 때 하나의 트래픽으로 보낸다. 그리하여 회선의 부담을 주지 않는다.

   

    그러나 네트워크 영역에서 다수의 Host들은 원하든 안원하든 모두 다 트래픽을 전달 받게 된다.

   

    No Receiver 입장에서는 그 트래픽이 불필요할 것이다.

   

   

3) Multicast 방식

   

   

※ 원하는 Host에게만 데이터를 보내는 Unicast의 장점과 트래픽을 하나로 보내는 Broadcast 장점을 결합한 방식이 Multicast이다.

   

   

2. Multicast 특징

   

① Multicast Group 단위로 묶어 그 그룹의 Host들은 동시에 데이터를 받을 수 있다.

   

UDP를 사용하여 전송함으로 신뢰성을 보장 받지는 못한다.

   

③ Client에서 Multicast 사용하는 Application을 시작하면 Multicast IP 주소와 Multicast MAC 주소를 라우터에 등록함으로 Multicast Group에 등록된다.

   

하나의 Client에서 여러 Multicast 주소를 수용할 수 있다. 즉 여러 가지 Multicast 데이터를 동시에 받을 수 있다.

   

⑤ Server가 Multicast 주소로 데이터를 전송 중에 있을 때 중간에 Client가 끼어 들어도 처음부터 데이터를 받을 수 없고 중간 부터 데이터를 받게 된다.

   

   

3. Multicast 주소 체계

   

1) Multicast IP 주소 체계

   

224.0.0.0 ~ 239.255.255.255 범위를 갖는 Class D IP 주소를 사용한다.

   

   

 224.0.0.0 ~ 224.0.0.255

 IETF에서 관리용으로 사용되는 대역

 (RIP, EIGRP, OSPF 등)

 224.0.1.0 ~ 238.255.255.255

 실제 인터넷에서 Multicast를 사용한 기관이나

 기업에게 할당하는 대역

 232.0.0.0 ~ 232.255.255.255

 PIM 기술을 위해 사용하는 대역

  

 233.0.0.0 ~ 233.255.255.255

 하나의 AS 내에 전파를 원할 때 사용하는 대역

  

 239.0.0.0 ~ 239.255.255.255

 기관이나 기업 내부에서 사용할 수 있는

 사설 Multicast 주소

   

※ 다음과 같이 Multicast 주소를 갖는다. Multicast를 할 시 주요 IP 두 개는 다음과 같은 역할을 한다.

   

    224.0.0.1 : 현재 서브넷에 존재하는 Multicast가 가능한 모든 호스트를 지칭한다.

   

    224.0.0.2 : 현재 서브넷에 존재하는 Multicast가 가능한 모든 라우터를 지칭한다.

   

   

2) Multicast MAC 주소 체계

   

Multicast MAC 주소는 앞에 0100.5Exx.xxxx 가 붙고 뒤에 xxx들은 IP 주소에 일부분을 참조하여 이루어 진다.

   

예를 들어 227.35.189.34 의 Multicast MAC 주소를 보면

   

   227      .     35       .     189      .     34         를 이진수로 표현하면 아래와 같다.

   

1110 0011 . 0010 0011 . 1011 1101 . 0010 0010   빨간색은 참조하지 않고 파란 부분만 참조를 한다.

   

   

초록색 부분인 Multicast MAC 기본 앞부분을 제외하고 나머지는 위 파란색 부분과 매치 시킨다.

   

0000 0001 - 0000 0000 - 0101 1110 - 0010 0011 - 1011 1101 - 0010 0010   으로 표현된다.

   

    01       -     00       -     5E       -      23     -     BD      -      22

   

Multicast IP 주소 227.35.189.34의 Multicast MAC 주소는 0100.5E23.BD22 이다.

   

※ 글로 표현할려니 약간 헛갈리게 되어 있으나 법칙만 알아 두고 Window에 계산기를 이용하여 천천히 풀어보면 쉽게 될 것이다.

   

   

4. Multicast Protocol

   

어떤 장비와 Multicast 정보를 교환하느냐에 따라 세가지 프로토콜로 나눌 수 있다.

   

1) IGMP : 호스트와 라우터 간 Multicast 정보를 교환하는 프로토콜

   

2) CGMP , IGMP Snooping : 라우터와 스위치 간 Multicast 정보를 교환하는 프로토콜

   

3) Multicasting Routing Protocol : 라우터와 라우터 간 Multicast 정보를 교환하는 프로토콜

   

   

   

   

※ 어떤 장비에서 어떤 장비로 Multicast 정보를 보내느냐에 따라 사용하는 Protocol이 다르다. 다음 포스트부터 하나씩 자세히 알아보도록 하자. 

1. IGMP

   

IGMP는 Client와 Router(L3 장비) 간의 Multicast 정보를 교환할 때 사용하는 Protocol

   

Multicast Group에 대해 가입과 탈퇴를 유지하기 위하여 사용된다.

   

IGMP를 통하여 Multicast Group에 join을 할 거면 Client에서 데이터를 받기 원하는 Multicast 주소를 라우터 에게 알

   

려 Multicast Group에 가입시키고 더 이상 Multicast 데이터를 받기를 원치 않으면 그룹에서 탈퇴하겠다는 메시지를

   

라우터에게 알린다.

   

또한 IGMP는 계속하여 Multicast 데이터를 받을 지를 묻는 Query 역할도 한다.

   

   

 2. IGMP Message

   

IGMP Message는 Query Message와 Report Message와 Leave Message 가 있다. 각 각에 대해 알아보면...

   

0x11   Membership Query : 라우터가 호스트에게 Multicast Group으로 발송하는 데이터를 받기 원하는지 묻는다.

   

0x12   IGMP version 1 Membership Report : Query에 대한 답변으로 IGMP version 1으로 받기를 원할 때 사용한다.

   

0x16   IGMP version 2 Membership Report : Query에 대한 답변으로 IGMP version 2로 받기를 원할 때 사용한다.

   

0x17   Leave Report : IGMP version 2에만 사용하는 Message로 데이터를 그만 받기를 원할 때 사용한다.

   

※ 각 Message에 대해 다음 Topology를 통해 알아보자.

   

   

1) Topology

   

   

※ R1을 가상으로 서버로 만들고 P1, P2, P3는 가상의 Client로 한다.

   

    P1에 이더넷 포트 중 하나는 VM-Ware Lan Card와 연결 시켜 IGMP Message에 대한 Capture를 한다.

   

   

2) Config

   

   

1> Basic Config

   

   

※ 각 라우터마다 공통적으로 설정한다. Multicasting Routing Protocol은 나중에 포스트로 다루어 보도록 한다.

   

   

2> Multicast Group 가입

   

   

※ Clinet 쪽인 P1에서 임시적인 방법으로 Join을 하여 IGMP v2 Membership Report를 보낸다.

   

    그리고 계속하여 Multicast Group에 Join 할 것인지 묻는 Membership Query를 받는다.

   

   

3> Multicast Group 탈퇴

   

   

※ Multicast Group에서 탈퇴함으로 Leave Report를 보낸다.

   

   

3) Analyze

   

   

1> Membership Query Message

   

※ Multicast Server가 Multicast가 가능한 Host에게 Query를 한다.(224.0.0.1)

   

   

2> IGMP version 2 Membership Report Message

   

   

※ Multicast Group에 Join 함으로 Membership Report 메시지를 보낸다. ip igmp version 1으로 하면 IGMP v1 Report 메시지가 올 것이다.

   

   

3> Leave Report

   

※ 그룹에서 탈퇴하면 Leave 메시지를 Multicast가 가능한 라우터에게 보낸다.(224.0.0.2)

   

   

>>> 이와 같이 IGMP를 통하여 Multicast Group에 가입할 지 탈퇴할 지 정보를 주고 받는다.

   

1. CGMP

   

CGMP는 스위치가 라우터로 부터 Multicast Client 들의 존재를 배울 수 있게 하는 Protocol

   

스위치에서 Multicast 주소에 대해 Flooding이 아닌 원하는 Client에게 Forward 시킬 수 있는 기법이다.

   

참고로 CGMP는 Cisco 전용 프로토콜이다.

   

   

그러면 그림을 통하여 CGMP를 통하여 원하는 Client로 Forwarding 하는 과정을 알아보면 다음과 같다.

   

   

1) Client가 스위치에게 CGMP Mesage 보내기

   

   

※ Host A가 Multicast Group 224.1.1.1에 Join을 하기를 원하면 CGMP 기능이 가능한 스위치에게

   

"Host A가 Multicast 주소 224.1.1.1로 Join 한다" 라는 CGMP Message를 보낸다.

   

   

2) CGMP Table에 매핑

   

   

   

※ Host A로 부터 CGMP Message를 받은 스위치는 정보를 받은 포트와 MAC을 보고

   

    Multicast 주소 224.1.1.1에 대한 CGMP Table을 생성하여 Host A 정보를 등록한다.

   

   

3) Multicast 데이터 전송 시 CGMP Table을 참조하여 Forward

   

   

※ Multicast 데이터를 전송할 때 라우터를 거쳐 스위치에서 Multicast 주소에 대한 CGMP Table에 의해 Host A로만 데이터를 전달한다.

   

   

>> 만약 CGMP가 구동되지 않았다고 생각해보자.

   

     그러면 스위치는 Multicast MAC 인 0100.5exx.xxxx는 Broadcast MAC과 같이 전체로 Flooding한다.

   

     Multicast 제 기능을 제대로 발휘할 수 없으니 CGMP를 통하여 원하는 Client에게만 보낼 수 있다.

   

>> CGMP는 Dynamips에서 기능을 지원하지 않아 실행을 할 수 없다.

   

     실제 장비로 실습을 해보았으나 스크린샷 해 놓은 자료를 날려먹었다;;

   

   

2. IGMP Snooping

   

IGMP Snooping은 단순히 스위치 자체에서 IGMP Join과 Leave를 모니터링하여 저장해 둠으로 해당 Port로만 전송할 수 있다.

   

이로 인해 스위치에 부하가 많이 생겨 스위치 CPU의 자원이 소모 될 수 있어 비효율적이다.

   

그런데 IGMP Snooping은 Cisco 전용이 아니라서 다른 밴더 장비 끼리에서는 IGMP Snooping을 사용해야 한다.

   

월등히 CGMP가 우수함에도 Cisco 전용이라는 문제점을 안고 있다.

   

   

   

>>> 이상으로 스위치와 라우터간 Multicast 특징에 맞게 정보를 교환하기 위해 사용하는 CGMP와 IGMP Snooping에 대해 알아보았다.

   

       해당 기능을 사용함으로 Flooding이 아닌 원하는 Client만 Forwarding이 가능하게 되었으니 상황에 따라 둘 중 하나를 적절히 사용해야 할 것이다.

1. Multicast Routing

   

Multicast Routing은 Distribute Tree를 만드는 목적으로 하여 라우터와 라우터 간 이루어지는 Protocol이다.

   

여기서 Distribute Tree 란 Multicast Server로 부터 Host까지 Loop가 없도록 최적 경로를 갖는 Tree를 말한다.

   

이렇게 Distribute Tree를 생성하기 위하여 Multicast Routing은 최적 경로를 갖기 위해 수행한다.

   

Multicast Routing이 어떻게 최적 경로를 갖기 위해 수행하는지 다음에서 알아 보도록하자.

   

   

2. Multicast Routing 최적 경로 찾기

   

최적 경로를 찾기 위해 Unicast Routing은 Destination을 기반으로 최적의 경로를 찾는 반면

   

Multicast Routing은 Source를 기반으로 최적 경로를 찾는다.

   

최적 경로를 찾은 후 최적 경로로 제대로 들어왔는지 확인하여 최적 경로가 아닌 곳으로 들어왔다면

   

폐기 시키는 특징이 있다. 이러한 확인 절차를 RPF라 하는데 Unicast Routing Table을 참조하여 성공과 실패 여부를 정한다.

   

다음 Topology를 통해 RPF 검사와 Multicast Routing 최적 경로를 찾는 방법에 대해 알아보자.

   

   

   

※ Client 1.1.1.1에서 Multicast Server 1.1.4.4로 부터 224.1.1.1로 데이터를 받길 원한다면 두 방향의 경로가 있을 것이다.

   

   

   

   

※ Unicast Routing Protocol을 참조하여 Server 1.1.4.0에 대한 Next Hop은 s1/0.12 쪽이다. 

   

    RPF Check 결과 올바른 인터페이스로 들어온 초록색 경로는 RPF 성공하고 노란색 경로는 올바른 경로로 들어오지 않아서

   

   RPF는 실패한다. RPF 실패한 경로는 이 인터페이스로 들어오는 패킷은 폐기하고 다른 라우터들에게도 전달하지 않는다.

   

   

   

※ RPF 검사를 통하여 224.1.1.1에 대한 Multicast Routing 최적 경로를 찾았다.

   

   

이론적인 면은 위와 같고 실제로 Config 한 후 Multicast Routing Table을 보면 다음과 같다.

   

   

   

※ R1을 보면 RPF에 의해 최적 경로가 정해짐에 최적 인터페이스로만 Multicast 데이터를 받아 들인다.

   

   

   

※ R4(Multicast Server) 에서 R1(Client) 에게 Multicast 정보를 보낼 때 최적 경로로만 정보를 보낸다. 다른 곳은 Prune...

   

   

>>> 이상으로 Multicast Routing의 정의와 최적 경로 선택 방법에 대해 알아보았다.

   

       다음 포스트에서는 Multicast Routing Protocol 종류와 그에 대한 설명을 하도록 하겠다.

1. Multicast Routing Protocol

   

Multicast Routing Protocol은 Distribute Tree를 만들기 위해 라우터 간에 이루어지는 ProtocolRoot Router를

   

어떤 방식으로 선정 하는냐에 따라 Source Distribute Tree 방식과 Shared Distribute Tree 방식으로 나뉜다.

   

여기서 Root Router는 IGMP 등록 정보에 따라 Multicast Server의 Data를 수신하는 라우터이다.

   

   

1) Source Distribute Tree

   

Multicast Source(Server)마다 하나의 Root Router를 갖는 방식이다.

   

Source Distribute Tree 방식의 종류로는 pim-dence mode, MOSPF, DVMRP가 있다.

   

Source Distribute Tree 방식에서 대표적으로 사용하는 pim-dence mode로 다음 Topology를 구성해 보자.

   

1> Topology

   

   

※ R1에 Loopback 인터페이스를 두 개 두어 각 각을 Client로 하고 R2와 R4 Multicast Server에 Join한다.

   

    각 라인은 pim-dence-mode로 모두 설정한다.

   

   

2> Multicast Table

   

Multicast Server 224.1.1.1에 대한 Root Router는 R2가 되고 224.2.2.2에 대한 Root Router는 R4가 되어서

   

Root Router에서 최적 경로를 정하여 Forward 시킨다.

   

   

※ Multicast 224.1.1.1에 대한 Root Router는 R2가 된다.

   

   

   

※ Multicast 224.2.2.2에 대한 Root Router는 R4가 된다.

   

   

그림을 통하여 보면은 다음과 같이 표현할 수 있겠다.

   

   

※ 이렇게 Source Distribute Tree 방식은 각 Multicast Server 마다 Root Router를 생성하여 Multicast Data를 전송한다.

   

    비교적 설정이 간단하다는 장점이 있고 전체적으로 대역폭이 풍부할 경우 사용하는 것이 좋다.

   

   

2) Shared Distribute Tree

   

Multicast Source(Server)마다 Root Router를 공유하여 하나의 Root Router를 사용한다.

   

Shared Distribute Tree 방식의 종류는 pim-sparse mode, CBT 등이 있는데

   

Shared Distribute Tree 방식에서 대표적으로 사용하는 pim-sparse mode를 다음 Topology를 통해 알아 보자.

   

1> Topology

   

   

※ R1과 R3는 Multicast Client로 하고 R2와 R4는 Multicast Server로 한다. 각 라인은 pim-sparse mode로 하고 RP는 R5로 한다.

   

인터페이스에서 설정은 R1(config-if)# ip pim sparse-mode 로 하고 RP 설정은 R1(config)# ip pim rp-address 1.1.5.5로 하면 된다.

   

2> Multicast Table

   

각 라우터마다 설정한 Root Router(RP) R5의 Multicast Routing Table을 보자.

   

   

※ 각 Multicast Source(Server)는 Root Router(RP) 인 R5를 거쳐서 최적 경로를 통해 Forward한다.

   

   

그림을 통하여 보면은 다음과 같이 표현할 수 있겠다.

   

   

※ 그림과 같이 각 Server에서 Multicast Data를 보낼 시 RP인 R5를 거쳐 최적 경로를 향해 Forward한다.

   

    대역폭이 부족한 WAN 구간에서 주로 사용하고 Server와 Client가 분산 되어 있을 때 주로 사용한다.

   

   

>>> 지금까지 Multicast Routing Protocol에서 Source Distribute Tree 방식과 Shared Distribute Tree 방식을 알아 보았다.

   

        Network의 상황에 맞추어 알맞은 방식의 Multicast Routing Protocol을 설정해야 할 것이다.

Pim 명령어

   

ip pim dense-mode 설정은 단순합니다.

모든 Router 모든 interface 다음을 설정

(config)#ip multicast-routing

(config-if)#ip pim dense-mode

   

-----------------------------------------------------------

ip pim sparse-mode dense-mode 보다 설정명령이 1 많습니다.

모든 Router 모든 inteface 다음을 설정

  (config)#ip multicast-routing

  (config)#ip pim rp-address xxxx.xxxx.xxxx.xxxx   => RP 지정할 Router Loopback IP Address

  (config-if)#ip pim sparse-mode

   

----------------------------------------------------------

ip pim sparse-dense-mode 설정은 조금 달라집니다.

모든 Router 모든 interface 다음을 설정 (loopback 제외)

  (config)#ip multicast-routing

  (config-if)#ip pim sparse-dense-mode

Candidate RP RP Mapping Agent Router Loopback0 interface 다음을 설정

  (config-if)#ip pim sparse-mode

Candidate RP Router 다음을 설정

  (config)#ip pim send-rp-announce lo0 scope [숫자]

RP Mapping Agent Router 다음을 설정

  (config)#ip pim send-rp-discovery lo0 scope [위에 설정한 숫자]

   

원본 위치 <http://cafe.naver.com/ArticleRead.nhn?articleid=31833&clubid=10344409>

   

   

Microsoft Office OneNote 2007을 사용하여 작성했습니다.
모든 노트 및 정보를 한 곳에서 볼 수 있습니다.