Transcript
Netmanias 기술문서: IGMP Snooping상세동작원리
IGMP Snooping상세동작원리
2005년6월3일
NMC Consulting Group(tech@netmanias.com)
2
Review: Ethernet의frame 수신방법
.원래CSMA/CD 방식의Ethernet은, LAN segment 내에서하나의frame(packet)이발생하면모든단말이동시에수싞함.
.각단말은수싞된Ethernet frame의DestinationMAC 주소가자기자싞의것이면상위Layer(TCP/IP)로올려처리함. 그렇지않으면수싞버퍼에서frame을버림.
3
왜multicast가필요한가?
.단말BB와CC에게보내 데이터가항상동일하 면?
.50개의단말들에게동일한데이터를보내려면?
.각각별개의목적지주소(Destination MAC)로프레임을보내주 것은LAN의대역폭을낭비하 행위가된 .
.“한번보내서동시에여럿이 으면좋겠 !”
똑같은내용이더라도Destination MAC 주소를한번은BB로, 한번은CC로적어서따로따로보내주 상황
4
Multicast
.Multicast란, Source 단말에서젂송된하나의frame을동시에여러단말이수싞하도록만들어짂송수싞방법
Destination MAC =GG수싞단말이그룹GG의멤버이면이frame을 들여상위Layer(TCP/IP)에올린 .
5
Multicast MAC address
.MAC주소의최상위Byte의lsb(최하위bit)가“1”이면Multicast
.Canonical format에서가장먼저젂송되 비트
.Broadcast MAC(ff:ff:ff:ff:ff:ff)은Multicast의특별한형태임.
Example0100.0C00.0000 .0000 0001: Multicast0005.7200.AF78 .0000 0000: Unicast0300.00AA.AA00 .0000 0011: Multicast
6
Multicast의응용범위
실시갂으로동시에복수의End station(단말)이frame을수싞할필요가있을경우에Multicast를사용한 .
.Sender 하나, Receiver 여럿인경우
.IP 기반의디지털유선TV 방송
.실시갂인터넷음악방송
.Sender, Receiver가여럿인경우
.복수의지점을연결하 화상회의
.PC와LAN을이용한디지털수업
7
IGMP
.Internet Group Management Protocol
.RFC1112(IGMP), RFC2236(IGMPv2), RFC3376(IGMPv3)
.LAN 홖경에서Router와Host갂의프로토콜로서, Router IP Multicast Group Membership 정보를물어보고, Host 이에응답하 방식.
8
IP Multicast Addresses
.Class D 주소: 224.0.0.1 ~ 239.255.255.255
.Some Well-known IP multicast Addresses
.224.0.0.1All Host Group
.224.0.0.2All Router Group
.224.0.0.5All OSPF Router Group
.224.0.0.6All OSPF DR Group
.224.0.0.9All RIP Router Group
.224.0.0.13All PIM Router Group(IPv4)
9
IGMP Messages
.IGMP Message Types
.Membership Query (0x11)
.General Query
.Group-Specific Query
.Version 2 Membership Report (0x16)
.Leave Group (0x17)
.Version 1 Membership Report (0x12)
10
IGMP Operation
.Router LAN 상에Host들에게주기적으로Query 메시지를보내Group Membership을물어본 .
.Query Interval = 125초
.Query Message 안에 Max Response Time값이있 데, Query를 은Host들은이시갂내에Report를해야한 (Default = 10초).
.Host들은자싞의Group Membership을Router에게대답해준 (Report).
11
IGMP Operation
.Host가Router로부터Query를 았을때, 자싞이가입되어있 그룹이있으면응답을한 .
.이때, 즉시응답하 것이 라, 0 ~ MaxRespTime 사이의랜덤한시갂동안기 렸 가Report를한 (Report Timer 가동).
.만약Query를 음과동시에Report를한 면, 여러Host가동시에Report를시도하면서Collision이발생하여packet loss가발생할것이 .
12
IGMP Operation
.Host가Report를하려고기 리고있 동안, 자싞과같은그룹에속해있 른Host의Report를수싞하면Report를하기위해가동중인Timer를멈추고Report를하지않 .
.Router의입장에서 LAN segment 상에그룹멤버가있 지없 지만이중요하며, 몇개의멤버가있 지 중요하지않 .
.특정Multicast Group을향한traffic을Forwarding하느냐마느냐만을판단하면되기때문이 .
13
IGMP Operation
.Host가더이상해당그룹의Multicast traffic을원치않으면Leave 메시지를젂송해그룹에서탈퇴한 (그림1번).
.이때, Router 해당LAN 상에그그룹의멤버가더이상남 있 것이없 지Group-Specific Query 메시지를이용해확인한 (그림2번). 이메시지의Max Resp Time 값은1초. Group-Specific Query 2번까지젂송된 .
.2번의Query에모두응답이없으면Router 해당그룹을자싞의Multicast Forwarding Table 상에서삭제한 .
.멤버가남 있으면Report 메시지를라우터로젂송한 (그림3번).
14
Member Timeout
.RFC2236에Group Membership Interval 이라고정의됨.
.(Query Interval) x 2 + (Query Response Interval) = 260초
.Router가Membership Report(Join) 메시지를수싞하여Group state가생기면, 그timeout 값을이값으로설정한 .
.이timeout 시갂동안Membership Report가 시수싞되지않으면Membership을삭제함.
15
Multicast Designated Router
.LAN에둘이상의Multicast Router가있으면곤란.
.Multicast의경우, Source에서발생된하나의패킷이여러경로를거쳐들어올수있기때문에, LAN에Multicast Forwarding을해주 Router가둘이상이어서 안된 .
.Router들갂에하나의Designated Router가선출되어야한 .
.IGMP 및PIM 기술규격에Designated Router 선정방법이기술되어있 .
16
Designated Router : IGMP vs PIM
.IGMP Querier , 자싞이Querier 역할을하고있 LAN 상에서또 른Router의Query 메시지를 을경우에, 상대방라우터의IP 주소가자싞보 작으면Querier 역할을중단한 ..즉, 라우터중가장IP 주소가작은것이Querier가된 .
.PIM Router , LAN 상에PIM Hello를주기적으로젂송한 .
.PIM Router가둘이상이면서로의Hello메시지를 보게된 .
.PIM Router 중우선순위가가장높은것이DR이된 . 우선순위가같으면IP 주소가가장큰것이DR이된 .
.PIM DR만이Multicast 패킷을젂달한 .
17
IGMP in the Ethernet Switch
Host가지원하 Multicast protocol인IGMP를, Layer2 switch 상에서구현해야할필요성이강하게대두되었음.그러나, ……
IGMP 표준
Ethernet Switch 홖경
매체공유(Shared media)형의LAN을젂제로한 .
Port 갂의대역폭침해가없고, 하나의Host를향한packet이타Host에게 보이지않 .
Layer 3IP 기반의프로토콜
Layer 2
Repeater 등지능이없 젂기적매체를기반으로한 .
ASIC 기반의고속스위칭과더불어, Processor를이용한지능형기능구현이가능하 .
18
IGMP Snooping
.IGMP (RFC2236) Shared media 기반의Ethernet을젂제로만들어짂Multicast router와Host 갂의프로토콜이자, 3계층의IP Layer 기반의프로토콜.
.GMRP 메시지를주고 으며Bridge 장비가포트별Multicast member 정보를수집/교홖하듯이, Layer2 switch가IGMP 메시지를해석하여포트별Group membership을알수있도록한기능
.IGMP Snooping
.Best current practice of industry
.“Considerations for IGMP and MLD snooping switches”
(draft-ietf-magma-snoop-04.txt)
19
IGMP Snooping Method 1
.Passive Snooping with no Query
.라우터와호스트갂에주고 IGMP 메시지를그대로flooding 시키면서그복사본을CPU에올려보내Multicast Router와Host의Group membership 정보를“훔쳐보게”한 .
20
IGMP Snooping Method 2
.Passive Snooping with active query
.위방식과같으나, 상황에따라IGMP query 메시지를스스로내보내Host로부터의Membership Report를유도해내 기능이첨가함.
.Spanning Tree Algorithm에의해Active topology가변화한경우에, 기존의포트별Group Membership 정보를갱싞해야할필요가있 데, 이때스스로IGMP Query를발생시킴으로써빠르게Membership Report를재수집할수있 .
21
IGMP Snooping Method 3
.IGMP proxy mode
.Router에게 Shared Hub처럼동작해주고, 각Host에게 Multicast Router가직접연결된것처럼동작해준 .
.Host가연결된포트에 스스로주기적인IGMP query를보내포트별Group Membership 정보를수집한 .
.Router가IGMP query를보내오면, 수집되어있 Group Membership 정보를모두Router에게알려준 .
.IGMP Proxy mode의스위치 Router가연결된Port 상에서 IGMP Query를내보내지않 게좋 . Switch 장비의IP 주소가Router의IP 주소보 작은값일경우에Router가Querier의역할을포기할위험이있기때문이 .
.Router Port 또 Multicast Upstream Port의설정이요구됨.
22
IGMP Proxying in Layer2 environment
23
Passive Snooping의Optimization: Report Suppression
24
Immediate-Leave & Fast-Leave
.Shared media가 닌Switched Ethernet 홖경에서 , 하나의physical port에하나의단말만연결되어있 경우가많음.
.한포트에오직하나의단말만연결된것이틀림없 경우에Leave를수싞하면, Group-specific Query에대한응답을기 릴필요없이곧바로Membership을삭제해도된 .“Immediate Leave” [그림1]
.그래도혹시멤버가있을지도모르 Group-specific Query (Vendor들의구현에서“Last-Member-Query-Interval”이라고도표현)에대한응답을기 리되, 주작은Max-Response-Time을적용한 .(예, 500ms) .“Fast Leave” [그림2]
25
Mapping of multicast MAC address
.IP Multicast에해당하 Ethernet Multicast MAC주소
.01-00-5E-… 로시작
.IP Group 주소의하위23-bit가multicast MAC의하위23-bit에그대로사용됨
26
Multicast FDB Entry
.IGMP Report를통해알게된IP group 주소를Multicast MAC주소로변홖하고, Report가수싞된Port들을기록해두면, 해당Group의Multicast packet이왔을때정확하게Forwarding 해줄수있 .
Multicast Router가연결되어있 Port 6으로 모든Multicast Packet이젂달되어야한 . 이LAN 내부에Multicast Server가있고그룹멤버가인터넷곳곳에있을수있기때문이 . 따라서Port 6도Multicast FDB의Forwarding Port List에포함된 .
27
IGMP Snooping Example
28
Switch_02#show ip igmp snoopingvlan 1----------IGMP snooping is globally enabledIGMP snooping is enabled on this VlanIGMP snooping immediate-leave is disabled on this VlanIGMP snooping mrouter learn mode is pim-dvmrp on this VlanIGMP snooping is running in IGMP_ONLY mode on this VlanSwitch_02#
기본설정상태
.Cisco Catalyst3550에서 기본적으로IGMP snooping이홗성화되어있 .
29
Switch_02#sh ip igmp snoop mrouterVlan ports---------1 Fa0/8(dynamic)Switch_02#
스위치2에서IGMP query가 지되었 .
Multicast Router와의연결
.Ethernet Switch 1에서Multicast routing 기능을홗성화시켜IGMP querier가되게한 .
.Ethernet Switch 2에 IGMP snooping 기능이홗성화되어있 .
.두Switch를연결하면, “Switch 1”이보내 IGMP Query 메시지에의해“Switch 2”에dynamic multicast router port가 지된 .
30
IGMP snooping 동작확인
.Switch 2에Group member를연결하여Switch 1, Switch 2에그룹정보가등록되 지확인한 .
31
[SM3024 /]# igmp show membership
IGMP Group membership on vlan1 :
239.255.255.250 on port 1(192.168.1.143)
Total 3 multicast groups exist in vlan1.
[SM3024 /]#
Switch_02#sh mac-addr multicastVlan Mac Address Type Ports------------------------1 0100.5e7f.fffaIGMP Fa0/1, Fa0/8 Switch_02#
IGMP snooping 동작확인
.Switch 1에등록된IGMP Group
.Switch 2에서Multicast MAC주소를검색해본결과
Fa0/8이포함된이유 ? (26 page 참조)
32
End of Document
5 페이지 CRC 2B로 되어 있네요. 4B
문서가 없네요