2012년 새해가 밝았네요.
올해의 첫 번째 블로그 글은 Multicast(멀티캐스트) Part 1 입니다.
몇 번에 걸쳐서 올리게 될지는 모르겠네요. 항상 그렇듯이 배움에는 끝이 없겠지만 조금씩 천천히라도 정리해봅니다.
◎ Multicast 특징
1. 특정 서비스를 받고자 하는 그룹의 사용자들에게 Data를 동시에 전송.
2. IPTV나, 사내방송 등과 같은 Multi-Media 전송 시에 유리함
- Unicast 전송에 비해서 불필요한 대역폭 및 서버 Session 감소.
- Broadcast 전송에 비해서 해당 서비스를 원하지 않는 사용자들의 장비에서의 부하량 감소
3. “Best Effort”로, Data 수신에 대한 신뢰성을 보장하지는 않음.
◎ Multicast 주소
1. D Class : 224.0.0.0 ~ 239.255.255.255
2. Local Network Control용으로 사용되는 대표적인 Multicast 주소
3. Multicast Mac 주소 변환
가) Mac Address 48Bit 중,
앞의 25bit는 01:00:5E(24bit) + 0(1bit), 뒤의 23bit는 IP Address의 32bit중 뒤의 23bit를 결합해서
Multicast용 Mac-Address를 만듬.
나) Multicast IP의 제일 앞의 4bit는 ‘1110’으로 결정되어 있으므로, 32 – 4 – 23 = 5bit에 대해서
서로 다른 Multicast의 IP가 동일 Multicast MAC으로 중복되게 변환 됨. (2^5=32개)
◎ IGMP (Internet Group Management Protocol)
- Router와 Host(Multicast를 서비스 받는) 간에 사용하는 프로토콜
- Client는 IGMP를 이용해서 Router에 자신이 Service 받고자 하는 Multicasting Group Address를 등록 및 해제.
: 목적지 주소를 224.0.0.2로 보냄. (Multicast가 동작하는 모든 라우터를 대상으로 함)
- Router는 IGMP를 이용해서 Multicasting Service를 받으려는 Host가 존재하는지 확인.
: 목적지 주소를 224.0.0.1로 보냄. (Multicast가 동작하는 모두 Host를 대상으로 보냄)
- Router는 60초(Cisco: default / RFC Default : 125초)마다 Host에게 Multicast Group에 참여를 원하는지
Query를 하고, 해당 Multicast Group에 참여하는 Host는 Router에 Report를 하게 된다.
▷ Query : 224.0.0.1로 전송 ▷ Report : 224.0.0.2로 전송
왜냐면, Switch에서는 Unknown Unicast와 Multicast, Broadcast는 모두 Port에 Flooding 되기 때문이다.
하지만, 이 경우에 동일 Network에서의 Multicast 효율성이 떨어지기 때문에 CGMP나, IGMP Snooping을 이용한다.
◎ CGMP (Cisco Group Management Protocol)
- 동일 Network에서의 Multicast 전송을 최적화 하기 위하여 만든 Cisco 전용 프로토콜
- Layer3에서의 Multicast 동작과 동일하게, Multicast Service가 필요한 Host가 연결된 Port로만 데이터 전송.
- 동작 순서
Ⅰ. Router는 Multicast Service를 받고자하는 Host로부터 IGMP를 이용해서 해당 Host의 정보(Mac-Address)를 등록.
Ⅱ. Router를 해당 Host의 Mac-Address와 Host가 Service 받고자하는 Multicast의 Mac-Address를
CGMP를 이용해서 Switch로 전송해서 알려주게 된다.
Ⅲ. Switch에서는 CGMP를 통해서 받은 Mac-Address를 이용해서 CGMP Table을 만든다.
Multicast Mac-Address를 Host Mac-address를 이용해서 얻은 Port정보를 각각 Mapping 하게 되면
특정 포트에서 어떤 Multicast 서비스를 받고자 하는지 알 수 있게 된다.
Ⅳ. 실제 Multicast 데이터를 Router에서 Switch로 전송하게 되면, Switch에서는 목적지 Mac-Address가 0100.5E-로
시작하는 Multicast Mac-Address임을 확인하고 CGMP Address-Table을 검색해서 해당 목적지 포트로 전송한다.
※ Cisco 장비 간에는 CGMP를 이용해서 Router가 Multicast를 Service 받으려는 Host에 대한 정보를 Switch로 전송함.
◎ IGMP Snooping
- Swtich에서 HOST가 Router로 IGMP를 통해 Multicast Group 등록하는 데이터를 읽어서, 해당 Group Mac-Address
와 Swtich Port에 Mapping하여 Multicast 에 대한 Mac-Address Table을 만듬.
▶ show mac-address-table multicast 로 확인
※ 단, Switch에서는 이 기능을 실행하기 위해서 모든 데이터가 IGMP 데이터인지 확인해야 하므로, 장비의 부하 증가.