IP Multicast q IP Multicast l Internet Group

  • Slides: 45
Download presentation
IP Multicast 소개

IP Multicast 소개

q IP Multicast 서비스 모델 l Internet Group Management Protocol (IGMP : RFC 1112)

q IP Multicast 서비스 모델 l Internet Group Management Protocol (IGMP : RFC 1112) – Multicast Packet을 수신할 수 있는 Host Group 지정 – Multicast Application를 통해 사용자들의 동적인 등록 지원(Join/Leave multicast group) l Addressing – D Class IP Address를 통해 각각의 multicast group을 정의 – Class D IP address(224 ~ 239) 범위에서 동적으로 할당되어 사용됨 – Multicast IP address는 각각의 수신자를 지정하는 것이 아니라 수신자 Group을 지정 l Group Membership – Internet 상에서 수신자들은 밀집되어 있거나 분산되어 있을 수 있음 – 수신자들은 Router들 사이에서 group membership 관리를 위해 사용되는 IGMP를 통해 자유롭게 특정 multicast session에 가입하거나 탈퇴할 수 있음 – 송신자는 자신이 전송하고자 하는 multicast group에 가입할 필요가 없음 l Multicast Routing – 네트워크상의 multicast-enabled router들간 multicast traffic의 효율적인 전송을 위해 사용되는 Routing Protocol – Packet distribution tree를 생성하여 다수의 수신자에게 multicast data를 효율적으로 전송 3

l IP group address – Class D address—high-order 3 bits가 1로 설정됨(224. 0. 0.

l IP group address – Class D address—high-order 3 bits가 1로 설정됨(224. 0. 0. 0) – 범위 : 224. 0. 0. 0 ~ 239. 255 l Well known addresses(IANA - Internet Assigned Numbers Authority 에서 지정) – Reserved use: 224. 0. 0. 0 through 224. 0. 0. 255 – 224. 0. 0. 1 : all multicast systems on subnet – 224. 0. 0. 2 : all routers on subnet – 224. 0. 0. 3 : all DVMRP routers – 224. 0. 0. 5 : all OSPF Routers – 224. 0. 0. 6 : all OSPF DR l Global/Limited Scope – Global scope: 224. 0. 1. 0 -238. 255 – Limited Scope: 239. 0. 0. 0 -239. 255 4

q Multicast Protocol 개요 l Multicast Distribution Tree – 송신자에서부터 수신자로의 하위 Traffic 경로

q Multicast Protocol 개요 l Multicast Distribution Tree – 송신자에서부터 수신자로의 하위 Traffic 경로 정의 l Multicast 전송 – Unicast 전송 Protocol들이 목적지 Address를 통해 전송 경로를 결정하는데 비해, Multicast 전송은 송신 지 Address를 통해 전송경로를 결정 l Multicast Protocol의 종류 – Dense Mode Protocol – Sparse Mode Protocol 5

q Multicast Distribution Tree l Shortest Path 또는 Source Distribution Tree Source 1 Notation

q Multicast Distribution Tree l Shortest Path 또는 Source Distribution Tree Source 1 Notation : (S, G) S = Source G = Group Source 2 A B C Receiver 1 D E Receiver 2 F Source 2 A B C Receiver 1 D F E Receiver 2 6

l Shared Distribution Tree Source 1 Notation : (*, G) * = All Sources

l Shared Distribution Tree Source 1 Notation : (*, G) * = All Sources G = Group Source 2 A B C D (RP) E F (RP) PIM Rendezvous Point Shared Tree Receiver 1 Receiver 2 7

q Multicast 전송 l Multicast routing은 unicast routing의 반대 개념으로 동작 – Unicast routing은

q Multicast 전송 l Multicast routing은 unicast routing의 반대 개념으로 동작 – Unicast routing은 packet을 어디로 전송할 것인가에 대해 관여 – Multicast routing은 packet이 어디에서부터 올 것인가에 대해 관여 l Multicast routing은 전송기법으로 Reverse Path Forwarding(RPF)을 사용 – Router는 송신자 방향의 upstream interface를 통해 수신된 Multicast datagram만을 전송 – Router는 자신의 multicast routing table을 통해 수신된 multicast datagram의 송신자 IP address를 검사 (RPF check) : 지정된 interface를 통해 수신된 multicast datagram 인지를 확인 – RPF check가 성공하면 datagram을 전송 – RPF check가 실패하면 datagram을 폐기 – Datagram 전송 시 Outgoing interface list(oilist)에 지정된 각각의 interface로 전송 – RPF interface로 packet이 다시 전송될 수 없음 9

l RFP Check 예 Multicast Distribution tree Multicast Packets Source 151. 10. 3. 21

l RFP Check 예 Multicast Distribution tree Multicast Packets Source 151. 10. 3. 21 RFP Checks Fail Packets arrived on wrong interface Multicast Packet from Source 151. 10. 3. 21 S 0 S 1 S 2 Packet arrived on wrong interface ! Discard packet ! E 0 Unicast Routing Table Network Interface 151. 10. 0. 0/16 198. 14. 32. 0/24 204. 1. 16. 0/24 S 1 S 0 E 0 10

l TTL Threshold – Multicast router의 interface에 설정되며 multicast packet 전송 범위를 지정하기 위해

l TTL Threshold – Multicast router의 interface에 설정되며 multicast packet 전송 범위를 지정하기 위해 사용 – Threshold 값보다 큰 TTL(Time To Live) 값을 가진 multicast packet만을 전송 – TTL Threshold Check w 수신되는 모든 IP packet들은 TTL 값이 1씩 감소되며 이 값이 0보다 작거나 같으면 폐기됨 w Multicast packet이 0이 아닌 TTL threshold 값이 설정된 interface로 전송된다면 TTL Threshold 값을 비교 w 만약 packet의 TTL 값이 interface에 지정된 threshold 값보다 적다면 interface를 통해 전송되지 못함 11

IP Multicast Protocol q Multicast Protocol 분류 l Dense-mode multicast protocol – Push Model

IP Multicast Protocol q Multicast Protocol 분류 l Dense-mode multicast protocol – Push Model 사용 – 초기에 Multicast data들이 전체 네트워크 상으로 전송되며, 수신자가 존재하지 않는 path는 Prune 시킴 – DVMRPv 2(Internet-draft), MOSPF(RFC 1584), PIM-DM(Internet-draft) 등 l Sparse-mode multicast protocol – Pull Model 사용 – Packet을 요청하기 전까지는 packet 수신을 요청하는 수신자가 없다고 가정 – CBT(Internet-draft), PIM-SM (RFC 2362) 등 12

q Multicast Routing Protocol 소개 l DVMRP(Distance Vector Multicast Routing Protocol) – Distance Vector

q Multicast Routing Protocol 소개 l DVMRP(Distance Vector Multicast Routing Protocol) – Distance Vector 기반의 Multicast routing protocol w RIP과 유사하게 동작 w Infinity = 32 hops w 경로 전달 시 Subnet mask 정보 포함 – DVMRP Route는 다음과 같은 용도로 이용됨 w RPF Check 용 w Truncated Broadcast Trees (TBTs) 생성용(특별한 Poison-Reverse 기법 이용) – Flood and Prune operation 이용 w 초기에는 Traffic이 TBT상으로 모두 전송됨 w Traffic 수신을 원하지 않는 TBT branch는 prune시킴 13

– DVMRP Source Tree 생성 • Source Network로의 최적 DVMRP metric을 이용하여 Truncated Broadcast

– DVMRP Source Tree 생성 • Source Network로의 최적 DVMRP metric을 이용하여 Truncated Broadcast Tree를 생성 • Metric이 갖은 경우 낮은 IP address를 가지는 쪽으로 경로를 생성 (Note : IP address of D < C < B < A) Source Network “S 1” A B Mrouted X 1 33 Mrouted 1 1 3 33 2 Mrouted C Mrouted 2 D 35 Mrouted 34 E 3 35 2 n m Y Mrouted Metric “n”을 가지는 source network으로의 경로 상위 경로의 “Parent” router로 전송되는 Poison Reverse (metric + infinity) 메시지 Source network에 대해 생성된 Truncated Broadcast Tree 14

– DVMRP Flood & Prune Source “S” A Mrouted B Mrouted Prune X Mrouted

– DVMRP Flood & Prune Source “S” A Mrouted B Mrouted Prune X Mrouted Prune Mrouted C D Mrouted Prune E Y Mrouted Receiver 1 (Group “G”) DVMRP route metric을 기반으로 한 Truncated Broadcast Tree (S, G) Multicast Packet Flow 16

l MOSPF(Multicast Open Shortest Path First) – OSPF unicast routing protocol의 확장 버전 w

l MOSPF(Multicast Open Shortest Path First) – OSPF unicast routing protocol의 확장 버전 w OSPF : Router들은 네트워크 상의 모든 사용 가능한 link를 파악하기 위해 link state advertisement를 사용 w MOSPF : Multicast distribution tree 생성을 위해 OSPF link state advertisement에 multicasting 정보 를 포함 – Group membership LSA들이 OSPF routing domain을 통해 전송되므로 MOSPF router가 outgoing interface list들을 생성할 수 있음 – Shortest-path tree 생성을 위해 Dijkstra algorithm 사용 w 각각의 (Snet , G) 쌍에 대해 분리된 연산 필요 – MOSPF의 특징 및 문제점 w LSA 및 link-state database를 이용하기 때문에 생성 State에 있는 모든 곳에 multicast traffic을 전송 하지 않음 w 특정 protocol에 제한되어 사용됨 - OSPF 기반의 네트워크에서만 운용가능 w 각각의 multicast (Snet , G) 쌍 별로 Dijkstra algorithm 수행이 필요하고, shared tree를 지원하지 않기 때문에 확장성이 부족 w 송신자 수가 아주 많은 Multicast 환경에서는 사용하기에 적합하지 않음 18

l PIM-DM(Protocol Independent Multicast - Dense Mode) – Protocol에 무관하게 동작 w 모든 하부

l PIM-DM(Protocol Independent Multicast - Dense Mode) – Protocol에 무관하게 동작 w 모든 하부 unicast routing protocol들을 지원(Static, RIP, IGRP, EIGRP, IS-IS, BGP, OSPF 등) – Reverse path forwarding 사용 w Multicast group membership을 기반으로 Flood & Prune을 수행 – 소규모의 Multicast 네트워크 또는 pilot 네트워크에서 사용하기에 알맞은 Protocol – 초기Flooding – 원하지 않는 Traffic Prune Source 151. 10. 3. 21 (S, G) State created in every router in the network Multicast Packet Receiver Multicast Packet Prune Messages (S, G) State still exists in every router in the network Receiver 19

– Pruning 후 결과 Source 151. 10. 3. 21 Multicast Packet Flood & Prune

– Pruning 후 결과 Source 151. 10. 3. 21 Multicast Packet Flood & Prune process repeats every 3 minutes Receiver 20

– PIM-DM Assert Mechanism Incoming Multicast Packet (Successful RPF Check) S 0 2 Assert

– PIM-DM Assert Mechanism Incoming Multicast Packet (Successful RPF Check) S 0 2 Assert <Distance, metric> S 0 E 0 1 2 Assert <Distance, metric> 1 w Router는 자신의 oilist상에 명시된 interface를 통해 packet을 수신 F중복된 Packet 생성을 방지하기위해 하나의 router만 송신을 수행 FRouter에서 PIM Assert message를 송신 w 2 두 router의 distance 및 metric 값을 비교 F만약 두 router의 distance 및 metric 값이 동일하면, 높은 IP address를 가지는 Router가 우선 F우선 순위가 낮은 router는 packet 전송을 중단(prunes interface) 21

– PIM-SM Shared tree 참가 RP (*, G) Joins (*, G) State created only

– PIM-SM Shared tree 참가 RP (*, G) Joins (*, G) State created only along the Shared Tree Receiver – PIM-SM 송신자 등록 Source (S, G) Register RP (unicast) (S, G) Joins (S, G) State created only along the Shared Tree Source Tree Receiver 24

– PIM-SM 송신자 등록(계속) Source RP (unicast) (S, G) Joins Shared Tree Source Tree

– PIM-SM 송신자 등록(계속) Source RP (unicast) (S, G) Joins Shared Tree Source Tree (S, G) Register. Stop – PIM-SM 송신자 등록(계속) Receiver (unicast) RP sends Register-Stop back to first-hop router Source RP Source traffic flows natively along SPT to RP. (S, G) Joins Shared Tree Source Tree Receiver From RP, traffic flows down the Shared Tree to Receivers 25

– PIM-SM SPT Switchover Source Last-hop router joins the SPT. Shared Tree (S, G)RP-bit

– PIM-SM SPT Switchover Source Last-hop router joins the SPT. Shared Tree (S, G)RP-bit Prunes Source RP (S, G) Joins Source Tree – PIM-SM SPT Switchover(계속) Receiver Additional (S, G) State is created along new part of the Source Tree. RP (S, G) Joins Shared Tree Source Tree Receiver (S, G) Traffic flow is now pruned off of the Shared Tree and is flowing to the Receiver via the SPT. Additional (S, G) State is created along the Shared Tree to prune off (S, G) traffic. 26

Layer 2 IP Multicasting 기법 소개 q Layer 2 Multicast 개요 l IP Multicast

Layer 2 IP Multicasting 기법 소개 q Layer 2 Multicast 개요 l IP Multicast MAC Address Mapping(FDDI & Ethernet) – 첫번째 octet의 low order bit(0 x 01)으로 이 packet이 layer 2 multicast packet이라는 것을 나타냄 – “ 0 x 01005 e” prefix는 L 3 IP multicast address들을 L 2 MAC address들로 mapping 하기위해 reserved 됨 – L 3를 L 2 Address로 mapping 할 때 L 3 IP multicast address의 low order 23 bit를 IEEE MAC Address에 mapping(5 bit는 폐기됨) 32 Bits 1110 28 Bits 239. 255. 0. 1 5 Bits Lost 01 -00 -5 e-7 f-00 -01 25 Bits 23 Bits 48 Bits 30

– 32: 1 Address overlap 주의 필요 w L 3와 L 2 MAC address시

– 32: 1 Address overlap 주의 필요 w L 3와 L 2 MAC address시 5 bit가 폐기되는 문제로 인해 32개(2*5)의 L 3 multicast address들이 하나의 L 2 multicast address에 mapping 됨 32 - IP Multicast Addresses 224. 1. 1. 1 224. 129. 1. 1 225. 129. 1. 1 1 - Multicast MAC Address (FDDI and Ethernet) . . . 0 x 0100. 5 E 01. 0101 238. 1. 1. 1 238. 129. 1. 1 239. 129. 1. 1 31

l IP Multicast MAC Address Mapping(Token Ring) – 하나의 layer 3 IP Multicast Address를

l IP Multicast MAC Address Mapping(Token Ring) – 하나의 layer 3 IP Multicast Address를 하나의 Token Ring functional address 또는 Broadcast address에 mapping 224. x. x. x e 0 -00 -00 -7 f-00 -01 ff-ff-ff-ff 32

– 268, 435, 200: 1 Address overlap 주의 필요 w Token Ring NIC 상에서

– 268, 435, 200: 1 Address overlap 주의 필요 w Token Ring NIC 상에서 Multicast packet을 감지하는 기능이 없을 시 host CPU 성능의 저하 현상 발 생 가능 w Multicast 환경 구현 시에는 Token-Ring 보다는 Ethernet으로 네트워크를 구축하는 것을 권고 All 268, 435, 200 - IP Multicast Addresses 224. 0. 1. 0 224. 0. 1. 1 224. 0. 1. 2 224. 0. 1. 3. . . 239. 255. 252 239. 255. 253 239. 255. 254 239. 255 1 - Multicast MAC Address (Token Ring) 0 x. FFFF 33

q IGMP(Internet Group Multicast Protocol) l IGMP 개요 – Host가 router와 Multicast membership 정보를

q IGMP(Internet Group Multicast Protocol) l IGMP 개요 – Host가 router와 Multicast membership 정보를 주고받는데 사용하는 Protocol – Router는 직접 연결된 host들을 통해 group membership 정보를 얻음. – IGMP의 첫번째 버전은 RFC 1112에서 정의됨(IGMP v 1) – IGMP의 현재 버전은 RFC 2236에서 정의됨(IGMP v 2) – IGMP v 3는 현재 규격화 진행 중 – Unix system 및 PC, MAC에서 지원 Are there any members for group XYZ? Host A I’m a member so I will respond. Host B Host C I’m not a member so I won’t respond. I’m a member so I will respond. 34

l IGMPv 1 – RFC 1112 -”Host Extensions for IP Multicasting” – Membership 요청(Queries)

l IGMPv 1 – RFC 1112 -”Host Extensions for IP Multicasting” – Membership 요청(Queries) w 요청자는 IGMP query 메시지를 224. 0. 0. 1(ttl = 1)로 전송 w 하나의 LAN 당 하나의 router가 query를 보내도록 지명(designated)/선출됨 w Query interval은 60 ~ 120 초 – Membership 보고(Reports) w IGMP report는 하나의 host에서만 이루어지며, 다른 host들은 report를 보내지 못하게 함 w LAN 상의 group당 하나의 report로 제한됨 – IGMPv 1 Packet Format w Version Code version = 1 w Type : 1 = Host Membership Query, 2 = Host Membership Report w Group Address : Multicast Group Address 35

– IGMPv 1 - General Queries – IGMPv 1 - Joining a Group H

– IGMPv 1 - General Queries – IGMPv 1 - Joining a Group H 1 Report H 2 H 3 H 1 H 2 H 3 224. 1. 1. 1 General Query to 224. 0. 0. 1 IGMPv 1 - Multicast Group에 참가하고자 하는 member는 참가하는 즉시 224. 1. 1. 1로 Report를 전송 IGMPv 1 - Router는 주기적으로 General query를 224. 0. 0. 1로 전송(Default 60 sec) 36

– IGMPv 1 - Leaving a Group – IGMPv 1 - Maintaining a Group

– IGMPv 1 - Leaving a Group – IGMPv 1 - Maintaining a Group H 1 224. 1. 1. 1 Report #2 H 2 224. 1. 1. 1 H 3 H 1 H 2 H 3 Suppressed #3 Query to 224. 0. 0. 1 #1 IGMPv 1 - #1 : Router는 주기적으로 query를 전송 - #2 : Subnet상의 Group 당 하나의 Member만 report를 전송 - #3 : 다른 Member들은 Report 전송불가 IGMPv 1 - #1 : Router는 주기적으로 query를 전송 - #2 : Host는 Group에서 탈퇴(별도 Message 전송 없음) - #3 : Router는 계속해서 주기적으로 query를 전송 - #4 : Router에 수신되는 Report가 없는 경우 Group 삭제 37

l IGMPv 2 – RFC 2236 – Group 지정 요청(Queries) w 네트워크 상에 모든

l IGMPv 2 – RFC 2236 – Group 지정 요청(Queries) w 네트워크 상에 모든 Group이 아니라 특정 Group을 지정하여 Query를 전송 w 네트워크 탈퇴 정보를 보다 빨리 알아낼 수 있음 – Leave Group Message w End System이 직접 Leave Report를 전송할 수 있도록 함 w Leave Latency를 최소화 할 수 있음 – IGMPv 1과 호환 – IGMPv 2 Packet Format w Type: 0 x 11 = Membership Query, 0 x 12 = Version 1 Membership Report, 0 x 16 = Version 2 Membership Report, 0 x 17 = Leave Group w Max. Resp. Time : max. time before sending a responding report in 1/10 secs. (Default = 10 secs) w Group Address: Multicast Group Address(0. 0 for General Queries) 38

– IGMPv 2 - Query Election – IGMPv 2 - Joining a Group 1.

– IGMPv 2 - Query Election – IGMPv 2 - Joining a Group 1. 10 1. 11 1. 12 H 1 H 2 H 3 224. 1. 1. 1 Report 1. 1 IGMPv 2 - Multicast Group에 참가하고자 하는 member는 참가하는 즉시 224. 1. 1. 1로 Report를 전송 (IGMPv 1과 동일) Query IGMP Non-Querier 1. 1. 1. 2 1. 1 IGMPv 2 Query IGMP Querier - 초기에는 모든 Router가 Query를 전송 - 가장 낮은 IP address를 가지는 Router가 Querier로 선출됨 - 다른 Router는 Non-Querier가 됨 39

– IGMPv 2 - Leaving a Group – IGMPv 2 - Maintaining a Group

– IGMPv 2 - Leaving a Group – IGMPv 2 - Maintaining a Group 1. 10 H 1 1. 11 H 2 224. 1. 1. 1 Suppressed 1. 1 224. 1. 1. 1 Report 1. 12 H 3 224. 1. 10 1. 11 H 2 Suppressed Query IGMPv 2 - Router는 주기적으로 query를 전송 - Subnet상의 Group 당 하나의 Member만 report를 전송 - 다른 Member들은 Report 전송불가 224. 1. 1. 1 #1 1. 1 IGMPv 2 1. 12 Leave to 224. 0. 0. 2 H 3 #3 224. 1. 1. 1 Report to 224. 1. 1. 1 Group Specific Query to 224. 0. 0. 1 #2 - #1 : H 2는 Group을 탈퇴하며 Leave Message 전송 - #2 : Router는 특정 Group Query를 전송 - #3 : 남은 Member Host들은 Report를 전송 - #4 : Group은 동작상태로 존속 40

l IGMPv 1 -v 2 상호 호환성 IGMPv 1 H 1 IGMPv 2 H

l IGMPv 1 -v 2 상호 호환성 IGMPv 1 H 1 IGMPv 2 H 2 IGMPv 1 H 3 IGMPv 2 H 1 IGMPv 1 H 2 IGMPv 1 #2 Report 1. 1 IGMPv 1 #1 Query IGMPv 1 Host 2 - 반드시 IGMPv 1 Report를 전송해야 함 - IGMPv 2 Leave는 제거될 수 있음 IGMPv 2 H 3 224. 1. 1. 1 Report 1. 1 IGMPv 2 Router A Host A - 224. 1. 1. 1에 IGMPv 1 member가 있을 경우 Timer 값을 설정 - Group 224. 1. 1. 1에 대한 v 2 Leave 는 무시 (timer가 expire될 때 까지) 41

l IGMPv 1 -v 2 상호 호환성(계속) H 1 H 2 1. 1 IGMPv

l IGMPv 1 -v 2 상호 호환성(계속) H 1 H 2 1. 1 IGMPv 2 H 3 1. 1. 1. 2 IGMPv 1 Router A Router B Router A - 연결된 Interface에 대해 IGMPv 1을 수행하도록 수동으로 설정 되어야 함. 42

q CGMP(Cisco Group Management Protocol) IGMP Join Report 0000. 0 c 12. 3456 would

q CGMP(Cisco Group Management Protocol) IGMP Join Report 0000. 0 c 12. 3456 would like to join multicast group XYZ 0000. 0 c 12. 3456 l Cisco에서 개발된 Protocol – Cisco Router를 통해 Catalyst Switch가 Multicast Client 존재 여부를 알 수 있게 함. 43

l CGMP 동작 구조 Device 0000. 0 c 12. 3456 wants to join Group

l CGMP 동작 구조 Device 0000. 0 c 12. 3456 wants to join Group 234. 10. 8. 5 I can reach device 0000. 0 c 12. 3456 out of Port 1. I will add 234. 10. 8. 5 to my switch forwarding table. IGMP Join Report 0000. 0 c 12. 3456 44