1 switch block core video servers host ip multicast application nic card server block core block...
TRANSCRIPT
1
Switch Block
Core
Video Servers
Host
IP Multicast Application
IP Multicast Application
NIC Card
Server Block Core Block
Access Switch
Distribution Switch
Distribution Switch
Planning Multicast
Winsock V1.1 과 V2.0 을 지원하는 TCP/IP Stack 은 Multicast 가 Enable 되어 있다 .Server, Client 는 IP Multicast 를 지원하는 Application 이 있어야 한다 .Switch 가 Multicast 를 인식하여 모든 스위치 Port 에 Multicast Traffic 이 Forwarding 되는 것을 적절히 통제할 수 있어야 한다 . 최근의 대부분의 라우터는 Multicast 를 지원하지만 모든 Vendor 에서 지원하는 표준 Multicast Routing Protocol 은 아직 없다 .
Multicast 를 지원하는IP Protocol Stack
Multicast 를 지원하는IP Protocol Stack
2
Core
VideoServers
Multicast RoutingProtocols (PIM)
Channel 1
Channel 2
Channel 3
CGMP
IGMPMBONE(DVMRP) 1
3
2
IP Multicast 관련 Protocol
Internet Group Management Protocol(IGMP) 은 라우터와 호스트간에 Multicast Group Membership 정보를 교환한다 . IP multicast routing protocol 인 Protocol Independent Multicast (PIM) 은 라우터간에 Multicast Group 정보를 교환한다 .Cisco Group Management Protocol(CGMP) 는 Multicast Group 에 속한 Node 가 있는 Port로만 Multicast Packet 이 Forward 되게 하기 위하여 라우터가 스위치에게 특정 Multicast Group 에 속한 Host 의 Address 를 알려준다 .Cisco IOS 는 PIM-to-DVMRP Interaction 을 지원한다 .
3
Router(config)#ip multicast routing Router#show running-configBuilding configuration...Current configuration:!hostname Router!!ip multicast-routing
ip multicast routing 을 Enable 시키는 것은 Cisco IOS software 가 multicast packet 을 다른 Interface 로 forward 시키는 것을 가능케 한다 .
Default 로 Multicast Routing 은 Disable 되어 있다 . IP multicast routing 을 Enable 시키는 것이 자동으로 Interface 에 Multic
ast 를 Enable 시키지 않는다 . 따라서 Interface 별로 Multicasting 을 설정해 주어야 한다 .
Enabling IP Multicast Routing
4
Router(config)#interface vlan41Router(config-if)# ip pim sparse-dense
Router#show running-confighostname Router!ip multicast-routing(text deleted)interface Vlan101 ip address 172.16.1.41 255.255.0.0 ip pim sparse-dense-mode
Configuring Multicast Interface
라우터는 Interface 별로 Multicast Traffic 을 전달하므로 Multicast Routing Protocol이 Interface 별로 설정되어야 한다 . Interface 에 Multicast Routing Protocol 이 Enable 될 때 , 비로소 Interface 에 IGMP가 Enable 된다 . Interface 는 Dense Mode, Sparse Mode, Sparse-Dense Mode 로 설정할 수 있다 . Dense Mode 는 각각의 Multicast Group 에 대해서 Network 상의 모든 라우터가 Multicast Traffic 을 Distribute 할 때 사용된다 . Sparse Mode 는 각각의 Multicast Group 에 대해서 Network 상의 소수의 라우터가 Multicast Traffic 을 Distribute 할 때 사용된다 .Sparse-Dense Mode 는 Multicast Group 별로 Sparse Mode 와 Dense Mode 를 병행하여 사용한다 .Sparse-Dense Mode 는 rendezvous point 가 Detect 되면 Interface가 Sparse mode 로 취급되고 , rendezvous point 가 Detect 되지 않으면 Interface 는 Dense Mode 로 취급된다 .
5
Source
Dense Mode 로 설정된 Interface 로는 모든 IP Multicast Packet 이 Flooding 된다 . 모든 Multicast Router 는 Outgoing Interface List(OilList) 를 유지하는데 Interface 상에 PIM Neighbor Router 가 Detection 되는 경우 ,Interface 에 연결된 호스트가 Multicast Group 에 Join 하는 경우 및 Interface 를 수동으로 Multicast Group 에 Join 시킨 경우에 Interface 는 OilList 에 포함된다 (즉 Multicast Packet 이 Forwarding 된다 .)
라우터 F에 특정 Multicast Packet 에 해당되는 Group Member 가 없는 경우 , 또는 PIM Neighbor 가 더 Detection 되지 않는 경우에 라우터 F 는 특정 Multicast Packet을 보낸 Source 쪽으로 Prune Message 를 보내고 , Source 쪽의 라우터 D 는 라우터 F 에 연결된 Interface 를 해당 Multicast Group 에 대해서 Pruning 시키고 , 따라서 해당 Multicast Packet 은 라우터로 Flooding 되지 않는다 .
PIM DM 은 DVMRP 와 Interoperability 가 있다 .
Dense Mode
Receiver 1
B
E
A D F
C
Receiver 2
No Receivers
Prune Message
6
• Multicast Packet 에 대한 명시적인 요청 (PIM Join) 이 있는 경우에만 해당 라우터로 Multicast Traffic 이 Forward 된다 .
• Multicast traffic 을 송수신하려는 Router 들은 RP(Rendezvous point) 를 설정하여야 한다 .
• RP 는 Multicast Group Packet 을 보내야 할 Interface 에 대한 oilist 를 관리한다 .
• Multicast Traffic 이 더 이상 필요치 않는 Router 는 RP 를 향해 PIM Prune 을 보내어 RP 가 Multicast Traffic 을 Prune 하도록 한다 .
Receiver 1
B
E
A D F
Source 1
C
Non-Viewer
Non-Viewers
Rendezvous Point
Sparse Mode
B
E
A D F
C
Non-Viewer
Non-Viewers
Rendezvous Point
IGMP Report
PIM Shared Tree Joins
Receiver1 이 Multicast Group 에 Join 하면 , Router C 는 설정된 RP 를 향해 PIM(*,G),(S,G) Join Message 를 보낸다 .
Receiver 1
B
E
A D F
C
Non-Viewer
Non-Viewers
Rendezvous Point
(*,G) Join
PIM Shared Tree Joins
RP 는 (*,G, (S,G) Join 을 받아 , 자신의 Multicast Routing Table 의 (*,G), (S,G) State Entry 를 만들어 Router C 를 Outgoing Interface List 에 추가한다 . 이 시점에서 Multicast Group G 에 대해서 RP – Router C – Receiver 1 의 Shared Tree 가 만들어 진다 .
Receiver 1
B
E
A D F
C
Non-Viewers
Rendezvous Point
IGMP Report
PIM Shared Tree Joins
Receiver2 가 Multicast Group 에 Join 하면 , Router E(Router C 와 Dense Mode로 연결된 경우 ) 는 PIM(*,G), (S,G) Join Message 를 보낸다 .
Receiver 2Receiver 1
B
E
A D F
C
Non-Viewers
Rendezvous Point
(*,G) Join
PIM Shared Tree Joins
Router C 가 PIM(*,G), (S,G) Join Message 를 받게 되면 이미 (*,G) Entry 를 갖고 있으므로 Router E 를 Outgoing List 에 단순히 추가하면 된다 .
Receiver 1 Receiver 2
B
E
A D F
C
Non-Viewers
Rendezvous Point
PIM Shared Tree Joins
이 시점에서 Multicast Group G 에 대해서 RP – Router C – Router E - Receiver 2 의 Shared Tree 가 확장된다 .
Receiver 2Receiver 1
B
E
A D F
C
Non-Viewers
Rendezvous Point
IGMP Leave
PIM Shared Tree Prunes
Receiver 2 가 Multicast Group G 를 떠나면서 IGMP Leave Message 를 보낸다 .
Receiver 1 Receiver 2
B
E
A D F
C
Non-Viewers
Rendezvous Point
(*,G) Prune
PIM Shared Tree Prunes
Router E 는 (*,G) Entry 의 Outgoing Interface List 에서 Ethernet Interface 를 제거한다 . 이 경우 , Outgoing Interface List 는 Null 이 되며 이는 Router E 가 더 이상 Group G 의 Multicast Traffic 을 필요로 하지 않는다는 것을 의미하므로 RP 를 향해 Prune Message 를 보낸다 .
Receiver 1
B
E
A D F
C
Non-Viewers
Rendezvous Point
PIM Shared Tree Prunes
Router C 가 Prune Message 를 받아 (*,G) Entry 의 Outgoing Interface List 에서 Router E 에 대한 Link 를 제거한다 . Router C 의 (*,G) Entry 의 Outgoing Interface List 는 Null 이 아니므로 RP 에 대해 Prune Message 를 보내지 않는다 .
Receiver 1
15
RSM144#show ip pim interface
Address Interface Mode Nbr Query DR Count Intvl172.16.1.143 Vlan1 Sparse-Dense 1 30 172.16.1.144172.16.11.143 Vlan41 Sparse-Dense 1 30 172.16.11.144172.16.12.143 Vlan42 Sparse-Dense 0 30 172.16.12.144172.16.13.143 Vlan43 Sparse-Dense 1 30 172.16.13.144172.16.14.143 Vlan44 Sparse-Dense 1 30 172.16.14.144172.16.51.143 Vlan51 Sparse-Dense 4 30 172.16.51.144172.16.52.143 Vlan52 Sparse-Dense 4 30 172.16.52.144
show ip pim interface 명령은 PIM이 Configuration된 Interface에 대한 정보를 보여 준다 .
Verifying the PIM Interface Configuration
172.16.41.144PIM Router 2
Highest IP AddressElected as DR
PIM Query
172.16.41.143PIM Router 1
PIM Query
Selecting a Designated Router
PIM 은 네트워크 상의 PIM Router 를 찾기 위해서 주기적으로 Query 를 보낸다 . Ethernet 등 Multiaccess Network 에서 PIM Query Message 는 224.0.0.2 번 Multicast Group Address 로 모든 라우터에 보내어 진다 .Multiaccess network 상에서 DR 을 선출하기 위하여 PIM 라우터는 PIM Neighbor 로 부터 오는 PIM query message 를 분석하여 , 자신의 PIM Interface 의 IP Address 와 PIM Neighbor의 IP Address 를 비교하여 가장 높은 IP Address 를 갖는 PIM 라우터가 DR 이 된다 . 일정시간 동안 DR 로 부터의 PIM Query Message 가 없으면 DR 선출과정이 다시 시작된다 .
Designated Router
MultipleAccess Network 에서는 단지 DR 만이 Host Query Message 를 보낼 수 있다 .
Host 로부터의 Reply 는 Subnet 상의 모든 PIM router 들이 받게 된다 .
Host QueryHost Query
Host ReplyHost Reply
PIMRouter
Selecting a Designated Router
RSM145> show ip pim neighborPIM Neighbor TableNeighbor Address Interface Uptime Expires Mode
172.16.51.143 FastEthernet1/0 2d02h 00:01:08 v1 Sparse-Dense172.16.51.144 FastEthernet1/0 3d01h 00:01:24 v1 Sparse-Dense (DR)172.16.52.143 FastEthernet2/0 2d02h 00:01:08 v1 Sparse-Dense172.16.52.144 FastEthernet2/0 3d01h 00:01:24 v1 Sparse-Dense (DR)
Displaying the PIM Neighbor Table
19
Router144(config)# ip pim rp-address 176.16.36.116
172.16.31.116Rendezvous Point
172.16.41.144Leaf Router
CampusNetwork
Router144#show runhostname Router(text deleted)!ip classlessip pim rp-address 176.16.31.116
Leaf Router
IPTV Server
Configuring a Rendezvous Point
Leaf Router(Multicast Group Member 에 연결된 라우터 ) 에서는 rendezvous point 의 IP address 가 반드시 설정되어야 한다 . Leaf Router 는 RP Address 를 사용하여 PIM Join 및 Prune Message 를 RP 에게 보낸다 .하나의 PIM Router 는 여러 Multicast Group 의 RP 로 작동할 수 있으며 , 하나의 Multicast Group 은 여러 개의 RP 를 가질 수 있다 .
CampusNetwork
I would like to be the RP
for Group XYZ.
I would like to be the RP
for Group XYZ.I would like to be the RP
for Group ABC.
I would like to be the RP
for Group ABC.
RP Mapping Agent
Router A
Router B
Router A is theRP for Group ABC and Router B is
is the RP for Group XYZ.
Router A is theRP for Group ABC and Router B is
is the RP for Group XYZ.
Designated Router
Designated Router
Designated Router
Auto-RP
Cisco IOS 11.1 에서 부터 지원하는 기능이다 .
PIM SM Router 들에 수동으로 RP 를 설정하는 것이 가장 기본적인 방법이지만 RP가 되는 라우터의 IP 가 바뀌게 되면 많은 라우터에서 수동적인 작업을 되풀이 해야 하고 , 설정에 있어서 실수가 있을 수도 있다 . 이 경우 Auto-RP 를 사용할 수 있다 .
Candidate RP 가 RP Announcement 를 하면 RP Mapping Agent 가 RP Announcement Message 를 받아 PIM SM Router 에게 Group-RP Mapping 정보를 전달한다 . PIM SM Router 는 자신의 네트워크에 연결된 Multicast Sender 와 Receiver 가 어느 RP를 사용할지를 알아낼 수 있다 .
Candidate RP 는 Auto RP Announcement Message 를 Well-Known Address 인 224.0.1.39 번 (Cisco-RP-Announce) 을 사용하여 RP-Mapping Agent 에게 보낸다 .
RP-Mapping Agent 는 RP-Group Mapping 정보를 224.0.1.40 번 (Cisco-RP-Discovery) 을 사용 PIM Router 들에게 보내면 PIM Router 들은 어떤 RP 를 사용할 지를 결정할 수 있다 .모든 PIM Router 들은 224.0.0.40 번 Multicast Group 에 속해 있다 .
Auto-RP
Well-Known Group224.0.1.39
RP Mapping Agent
RP Candidate
Well-Known Group224.0.1.40
Designated Router
rp-announceMessage
rp-announceMessage
RP Candidate
rp-discoveryMessage
Designated Router
Designated Router
Well-Known Group224.0.1.40
Designated Router
Designated Router
Designated Router
rp-discoveryMessage
Auto-RP Discovery
23
interface loopback0ip address 172.16.1.1 255.255.255.0
ip pim send-rp-announce loopback0 scope 16 group-list 10
Access-list 10 permit 239.254.0.0 0.0.255.255Access-list 10 permit 239.255.0.0 0.0.255.255
Configuring send rp-announce
ip pim send-rp-announce 명령은 라우터를 특정 Multicast Address Range(Default는 모든 Multicast Group 의 RP 가 되며 , Access-List 로 특정 Address Range 를 제한할 수 있다 .) 의 RP 역할을 하는 Candidate RP 가 되게 한다 .Loopback Interface 를 RP Announce Interface 로 설정하면 PIM 가 Enable 된 모든 Interface 로 RP Announce 를 하게 된다 .Auto-RP 는 Default 로 Disabled 되어 있다 .
24
Router#show running-confighostname Router!!ip multicast-routing(text deleted)
interface loopback0ip address 192.168.100.2 255.255.255.0
ip pim send-rp-discovery scope 16
Router(config)#ip pim send-rp-discovery scope 16
Configuring send rp-discovery
특정 라우터를 PIM RP Mapping Agent 로 설정하기 위하여 ip pim send-rp-discovery 명령을 사용하여 설정하여야 한다 . PIM RP Mapping Agent 는 ttl 범위 내의 PIM SM 라우터들에게 Cisco-RP-Discovery 정보를 전달한다.Redundancy 를 위하여 네트워크 상에 여러 개의 Mapping Agent 를 둘 수 있다 .Router ID 가 높은 라우터 (높은 IP Address 를 갖고 있는 라우터 )가 Primary 가 되고 , Primary Fail 시 Secondary 가 작동한다 .
25
interface Vlan101 ip address 172.16.1.113 255.255.255.0 ip pim sparse-dense-mode ip multicast ttl-threshold 16
Router(config)#interface vlan101Router(config-if)#ip multicast ttl-threshold 16
interface TTL threshold 보다 TTL 값이 큰 Multicast Packet 만이 (Multicast 가 Enable 된 Interface 를 넘어 ) Forward 될 수 있다 .
Interface TTL Threshold 의 Default 값은 0 으로 모든 Multicast Packet 이 (Multicast 가 Enable 된 Interface 를 넘어 ) Forward 된다 .
Configuring ttl-threshold
Host Entry
Source Entry
Displaying the Multicast Routing Table
각각의 PIM Router 는 Multicast Routing Table 을 유지한다 .Multicast Routing Table 은 (S,G) Entry 를 유지하는데 S 는 Datagram 의 Source를 G 는 Destination Multicast Group Address 를 의미한다 .Host Entry (*, 224.2.253.119) 는 224.2.253.119 가 Destination 인 Multicast Packet 을 받으면 Forward 시킬 Interface 를 나타내며 , Source Entry (172.16.53.1, 224.2.253.119) 는 172.16.53.1 번 Host 와 224.2.253.119 번 Group Address 와의 상태 (Join 또는 Prune 상태 ) 를 나타낸다 .
(*, 224.2.253.119), 3d03h/00:02:59, RP 172.16.53.3, flags: SJC Incoming interface: null, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet0/0, Forward/Sparse, 1d21h/00:02:13
(172.16.53.1, 224.2.253.119), 00:02:55/00:00:04, flags: PCT Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0 Outgoing interface list: Null
27
Address of the Packet Source
Receiving InterfaceMulticast group address
Bytes in the Packet
Action Taken on the Packet
Router# debug ip mpacketIP multicast packets debugging is onRSM114#3d06h : IP: s=172.16.53.1 (Vlan51) d=224.2.210.17 len 60, mforward3d06h : IP: s=172.16.53.1 (Vlan52) d=224.2.210.17 len 60, mforward3d06h : IP: s=172.16.53.1 (Vlan51) d=224.0.1.24 len 65, mforward3d06h : IP: s=172.16.53.1 (Vlan52) d=224.0.1.24 len 65, mforward
Logging Multicast Packets
I am a member of Group 224.1.2.3. I will answer that ping.
I am a member of Group 224.1.2.3. I will answer that ping.
RSM144(config-if)# ip igmp join-group 224.1.2.3RSM144#show ip igmp int vlan41Vlan41 is up, line protocol is up Internet address is 172.16.41.144/24 IGMP is enabled on interface Current IGMP version is 2 (text deleted) Multicast designated router (DR) is 172.16.41.144 (this system) IGMP querying router is 172.16.41.143 Multicast groups joined: 224.0.1.40 224.0.1.39 224.1.2.3
CampusNetwork
Router# ping 224.1.2.3
Type escape sequence to abort.Sending 1, 100-byte ICMP Echos to 224.1.2.3, timeout is 2 seconds:
Reply to request 0 from 172.16.41.143, 1 ms
List of Group Memberships
IP Address of the
Interface Servicing the Group
172.16.41.143
Joining a Multicast Group
Router의 Interface를 특정 Multicast 그룹에 소속 시키면 그 Interface는 영구적으로 특정 Multicast 그룹에 소속된다 . 해당 Interface는 해당 Multicast 그룹 Address에 대한 Ping에 응답한다 .
Leave to224.0.0.2
224.1.2.3
IGMPv1 Router
IGMPv1 Host1.2.3.11
I am configured as a IGMPv1 Router. I
will ignore any IGMPv2 leave
messages.
I am configured as a IGMPv1 Router. I
will ignore any IGMPv2 leave
messages.
IGMPv1 Host1.2.3.12
IGMPv2 Host1.2.3.13
H3H1 H2
IGMP Version 1 과 2 과 혼재하는 네트워크에서 Cisco Router 는 자동으로 서브넷상의 시스템의 IGMP Version 을 Detect 해서 Version 을 Switch 하는 기능이 없다 .
현재의 대부분의 Host 와 Router 는 IGMP Version 2 를 지원한다 . 구형 시스템이 IGMP Version 1 을 운영하므로써 호환성에 문제가 생기는 경우는 Version 2 의 시스템을 Version 1 으로 조정하여 문제를 해결할 수 있다 .
IGMPv2 and IGMPv1 Devices in the Same Subnet
IGMP V1,V2 Interoperability
•Version 1 의 Router 는 Version 2 Host 가 보내는 IGMP V2 Report 를 무시한다 .
•Version 2 의 Host 는 Version 1 Router 의 Query 에 대해서 , IGMP Version 1 Report 를 할 수 있다 .(IGMP V2 Type 0x12 : Version 1 Membership Report)
•Version 2 의 Host 는 Leave Group Message 를 Suppress 할 수 있다 .
•Version 2 의 Host 는 IGMP V1 Query 를 듣게 되면 해당 Interface 를 IGMP V1 Interface 로 Mark 하고 , IGMP V2 Message Sending 을 중단한다 .
•Version 2 Host 는 IGMP Packet 의 Maximum Response Time Field 를 참조하여 V1 Query 와 V2 Query 를 구별한다 .
•Version 2 의 Host 는 IGMP V1 Query 를 듣게 되면 400-Second Countdown Timer 를 시작한다 .Timeout 이전에 또 IGMP V1 Query 를 듣게 되면 Timer 가 Reset 된다 . Timeout 이전에 IGMP V1 Query 를 듣지 못하면 Interface 는 IGMP V2 Interface 로 복귀된다 .
V2 Host / V1 Router : V2 Host 와 V1 Router 는 Interoperability 가 제공된다 .
IGMP V1,V2 Interoperability
V1 Host / V2 Router : V2 Router 는 Version 1 으로 Version 을 바꾸어야 한다 .
•IGMP V2 Query Message 에 Version 1 Host 가 응답하여 IGMP V1 Report 를 보낸다 .
•IGMP V1 Host 들은 IGMP V2 Report 를 이해하지 못하므로 IGMP V1 Host들은 IGMP V2 Report 에 대해서 Report Suppression 을 하지 않고 , 따라서 IGMP V2 Router 는 IGMP V2 Report 와 V1 Report 를 모두 받게 된다 .
•IGMP V1 Host 들은 IGMP V2 Group Specific Query 를 이해하지 못하여 IGMP Report 를 하지 않으므로 IGMP v1 Host 가 특정 Multicast Group 의 마지막 Member 인 경우는 IGMP V2 Router 가 특정 Multicast Group 을 Timeout 시키는 부적절한 조치를 하게 된다 .
V1 Router / V2 Router : 모든 라우터는 IGMP V1 으로 설정되어야 한다 .
•IGMP V2 Router 가 IGMP V1 Router 를 Auto-Detection 하도록 하는 Implementation 이 불완전하여 , V1 Router 와 V2 Router 가 혼재하는 Subnet 에서는 모든 라우터는 IGMP V1 으로 설정되어야 한다 .
32
Router# show ip igmp interfaceVlan101 is up, line protocol is up Internet address is 172.16.1.113, subnet mask is 255.255.255.0 IGMP is enabled on interface Current IGMP version is 2 CGMP is enabled on interface IGMP query interval is 60 seconds IGMP querier timeout is 120 seconds IGMP max query response time is 10 seconds Inbound IGMP access group is not set Multicast routing is enabled on interface Multicast TTL threshold is 16 Multicast designated router (DR) is 172.16.1.114 IGMP querying router is 172.16.1.113 (this system) Multicast groups joined: 224.0.1.40 224.0.1.39 224.1.2.3
Determining the IGMP Version
33
Router(config-if)# ip igmp version 1
interface Vlan41 ip address 172.16.411.143 255.255.255.0 ip pim sparse-dense-mode ip multicast ttl-threshold 16 ip igmp version 1
Changing the IGMP Version
IGMP Version 은 Default 로 Version 2 이다 . V1 Host 나 V1 Router 가 혼재하는 환경에서 Router 를 Version 1 으로 변경한다 .
I don’t want to receive this video stream, but my CPU still needs to process that 1.5 MB
of data!
1.5 Mb
1.5 Mb 1.5 Mb
1.5 Mb 1.5 Mb 1.5 Mb 1.5 Mb
Receiver Receiver Receiver Not A Receiver
VideoServer
Layer 2 Multicast
IP Multicast Traffic 은 Layer 2 Multicast Address 를 사용하여 전송되므로 Layer 2 스위치의 경우 , 스위치의 모든 포트에 IP Multicast Traffic 이 전송된다 .CGMP 는 IP Multicast Traffic 이 IP Multicast Client 가 있는 Port 로만 전송되도록 한다 .
0000.0c12.3456
IGMP Join Request 0000.0c12.3456 would like to join multicast
group XYZ.
0000.0c12.3456 would like to join multicast
group XYZ.
CGMP는 Cisco-Developed Protocol(Cisco Proprietary Protocol)로 Catalyst Switch가 Cisco Router 및 Layer3 Switch가 주는 정보에 의해 Multicast Client의 존재를 파악하게 한다.
IP Multicast Router가 호스트의 IGMP Join 및 Leave Information을 Catalyst Switch에 전달한다 .
CGMP(Cisco Group Management Protocol)
Device 0000.0c12.3456wants to join
Group 234.10.8.5
Device 0000.0c12.3456wants to join
Group 234.10.8.5
CGMP Message
0000.0c12.3456
CGMP Message
I have no knowledge of
device 0000.0c12.3456
I have no knowledge of
device 0000.0c12.3456
I can reach device0000.0c12.3456
out of Port 1. I will add 234.10.8.5 to my switch
forwarding table.
CGMP
Router 가 Host 로부터 IGMP Information 을 받으면 Router 는 Multicast Group Address, Multicasting Host 의 Actual MAC address 를 포함하는 CGMP packet 을 만든다 .CGMP packet 은 Well-known Multicast Address(0100.0cdd.dddd) 로 라우터에 연결된 모든 스위치에 전달된다 .CGMP Packet 은 스위치에서 해석되어 Forwarding Table 의 한 Entry 가 된다 .Forwarding Table 의 Entry 는 Multicast Group Address 와 Host 의 Mac Address 의 Mapping 으로 구성된다 .
37
Router#show run(text deleted)interface Vlan41 mac-address 4004.0114.0011 ip address 172.16.41.144 255.255.255.0 no ip redirects ip pim sparse-mode ip cgmp
Router(config-if)# ip cgmp
CGMP 는 Default 로 Disabled 되어 있다 . CGMP 는 PIM 이 설정된 Interface 에서만 작동한다 .
Enabling CGMP on the Router
38
Switch (enable) set cgmp enable
Switch (enable) show config (text deleted)#cgmpset cgmp enableset cgmp leave disable
Default 로 Switch 에서 CGMP 는 Disable 되어있다 . CGMP 를 Enable 시키기전에 IGMP Snooping 은 반드시 Disable 되어 있어야 한다 .(set igmp disable 명령을 사용한다 .)
Enabling CGMP on the Switch
39
0000.0c12.3456
I can reach device 000.0c12.3456 out of Port 2. I will add that port to group 224.1.2.3 in my switch forwarding table.
I can reach device 000.0c12.3456 out of Port 2. I will add that port to group 224.1.2.3 in my switch forwarding table.
CGMP Join MAC Address 0000.0c12.3456 to224.1.2.3
0100.0cdd.dddd 0100.0cdd.dddd
I have no knowledge of
device 0000.0c12.3456
I have no knowledge of
device 0000.0c12.3456
I am 0000.0c12.3456. I would like to join
multicast group224.1.2.3
I am 0000.0c12.3456. I would like to join
multicast group224.1.2.3
To 224.0.0.2
CGMP :Joining a Group
0100.0cdd.dddd 는 CGMP Message 가 라우터로 부터 스위치로 보내어 질 때의 Well-Known Mac Address 이다 .
40
0000.0c12.3456
I can reach device0000.0c12.3456out of Port 2. I will remove that port from group 224.1.2.3in my switchforwarding table.
I can reach device0000.0c12.3456out of Port 2. I will remove that port from group 224.1.2.3in my switchforwarding table.
CGMP Remove MAC Address 0000.0c12.3456 from224.1.2.3
0100.0cdd.dddd 0100.0cdd.dddd
I have no knowledge of
device 0000.0c12.3456
I have no knowledge of
device 0000.0c12.3456
IGMPLeave to224.0.0.2
CGMP :Leaving a Group
41
Switch (enable) set cgmp leave enableCGMP leave processing enabled.
(text deleted)!#cgmpset cgmp enableset cgmp leave enable!
기본적으로는 Router 가 특정 Multicast Group 에 더 이상 소속 Member가 없다는 것을 감지하면 Router 는 모든 스위치에 CGMP Remove Message를 낸다 .
추가하여 set cgmp leave enable 명령을 사용하면 ,호스트가 보내는 IGMP Leave Message(IGMP V2 의 경우 )를 라우터가 받아서 스위치에 알려 주면 스위치는 일정시간 대기후 Leave Message 에 있는 Multicast Group에 대해서는 Distribution Tree 에서 Pruning 시킨다 .이를 CGMP fast-leave Function 이라 한다 .
CGMP leave 는 default 로 disabled 되어 있다 .
Enabling CGMP Leave on the Switch
42
Switch (enable) show cgmp statistics 41CGMP enabledCGMP statistics for vlan 41:valid rx pkts received 211915invalid rx pkts received 0valid cgmp joins received 211729valid cgmp leaves received 186valid igmp leaves received 0valid igmp queries received 3122igmp gs queries transmitted 0igmp leaves transmitted 0failures to add DSW144 to RTR144 0topology notifications received 80number of CGMP packets dropped 2032227
Verifying CGMP on the Switch
참고 : IGMP Snooping
1.Catalyst Switch 에서 CGMP 를 Disable 시키고 , IGMP 를 Enable 시킨다 . 이는 CGMP 와 IGMP Snooping 이 동시에 사용될 수 없기 때문이다 .
Switch (enable) set cgmp disableSwitch (enable) set igmp enable
2.Multicast Router 가 Catalyst 의 어느 Port 에 연결되어 있는지를 설정한다 .
Switch (enable) set multicast router mod_num/port_num
CGMP 를 인식하지 못하는 Non-Cicso Router 와 Cisco Catalyst Switch 를 연결하여 사용하는 경우에는 CGMP 를 사용하여 Port 별로 Multicast Packet을 처리할 수 없으므로 별도의 조치가 필요하다 .