Ik heb me een beetje zitten verdiepen in multicast en dan voornamelijk hoe het werkt in lokale ethernet omgevingen. Aangezien de stof best wel ingewikkeld is en ik de info die ik vergaard heb hier en daar vandaan geplukt heb, wilde ik dit voor mijzelf even op een rijtje zetten, maar ik twijfel nog over de juistheid van de informatie. Wellicht zijn er mensen hier bereid onderstaand stukje even na te lopen en waar nodig te corrigeren/aanvullen?
LINK LOCAL MULTICAST
Om multicast subscriptions te beheren, wordt in link local netwerken gebruik gemaakt van het IGMP protocol. Dit is een Layer 3 (netwerk) protocol en wordt ge-encapsuleerd in IP datagrammen. Wanneer een host d.m.v. IGMP een multicast group wil joinen, stuurt deze een request/membership report met daarin de multicast group die hij wil joinen. Dit is het ipadres van de multicast groep, bijv: 239.255.255.250. In de IGMP headers staan dus de waarden:
Om forwarding over ethernet mogelijk te maken, moet een layer 3 IP adres omgezet worden naar een layer 2 MAC adres. Een multicast enabled kernel zal het IP adres in een MAC adres encoden m.b.v. de 01:00:5e:x:x:x prefix. Deze prefix is voor multicast doeleinden door IANA gereserveerd . Dus als een host een membership report wil sturen naar IP adres 239.255.255.250, zal dit door de kernel omgezet worden naar MAC adres 01:00:5e:7f:ff:fa
Dit MAC adres zal nooit als source adres opgegeven worden, aangezien dit gereserveerd is voor multicast adressen en altijd een destination adres is. Aangezien een switch entries in de MAC table maakt a.d.h.v. source MAC adressen, zal de switch de ethernet frames naar deze multicast MAC adressen dus ook altijd flooden naar alle poorten. Het is dus eigenlijk een soort broadcast en zal ook bij elke host in het broadcast domain aankomen.
Een willekeurige host (de kernel) zal standaard alle frames/IP datagrammen die deze ontvangt met als destination een bepaalde multicast groep negeren, tenzij deze host zich ook bij deze multicast groep heeft aangesloten. Wanneer een host zich op een muiticast groep wil subscriben dient deze aan de volgende vereisten te voldoen:
1. Multicast onderteuning in de kernel
2. Ondersteuning voor IGMP protocol
De designated router is verantwoordelijk voor het managen van de mulitcast group subscriptions in het onderliggende broadcast domain. Als een host een join request (membership report) naar een bepaalde multicast groep stuurt, is het de taak van de designated router om deze subscriptions vast te leggen en m.b.v. bijv. het IGRP protocol zal de router de naast/hoger liggende routers hierover informeren.
Multicast routing m.b.v. het PIM protocol
PIM dens-mode: Wanneer een source server vervolgens een datastream naar de desbetreffende multicast groep stuurt (of eigenlijk van zichzelf afvloeit), zal deze m.b.v. het PIM dens-mode protocol het verkeer naar alle tussenliggende routers propageren. Standaard zijn alle tussenliggende multicast enabled routers lid van alle multicast groepen, maar kunnen zichzelf vervolgens afmelden (prunen) tot een bepaalde time-out en dan begint de cyclus weer opnieuw.
PIM sparse-mode: Wanneer een source server vervolgens een datastream naar de desbetreffende multicast groep stuurt (of eigenlijk van zichzelf afvloeit), zal deze m.b.v. het PIM sparse-mode protocol het verkeer naar een zogenaamde rendezvous point router sturen. Alle achterliggende multicast enabled routers kunnen zichzelf vervolgens aanmelden op de gewenste multicast groepen en het verkeer "ophalen" van de rendezvous point.
En uiteindelijk weer terug in het link local network
Een designated router die minimaal 1 client host heeft dat lid is van de desbetreffende multicast groep, zal het multicast verkeer dat van de source afvloeit binnen het gehele broadcast domain propageren (wederom d.m.v. MAC address die bij de multicast groep hoort, bijv: 01:00:5e:7f:ff:fa). De kernel van de hosts zelf zal dan a.d.h.v. de actieve subscriptions het verkeer accepteren of negeren.
De Multicast adressen 224.0.0.1-224.0.0.255 worden gebruikt door hosts en routers binnen een broadcast domain om elkaar m.b.t multicast activiteit te informeren.
LINK LOCAL MULTICAST
Om multicast subscriptions te beheren, wordt in link local netwerken gebruik gemaakt van het IGMP protocol. Dit is een Layer 3 (netwerk) protocol en wordt ge-encapsuleerd in IP datagrammen. Wanneer een host d.m.v. IGMP een multicast group wil joinen, stuurt deze een request/membership report met daarin de multicast group die hij wil joinen. Dit is het ipadres van de multicast groep, bijv: 239.255.255.250. In de IGMP headers staan dus de waarden:
- type = membership report
- multicast address = 239.255.255.250
Om forwarding over ethernet mogelijk te maken, moet een layer 3 IP adres omgezet worden naar een layer 2 MAC adres. Een multicast enabled kernel zal het IP adres in een MAC adres encoden m.b.v. de 01:00:5e:x:x:x prefix. Deze prefix is voor multicast doeleinden door IANA gereserveerd . Dus als een host een membership report wil sturen naar IP adres 239.255.255.250, zal dit door de kernel omgezet worden naar MAC adres 01:00:5e:7f:ff:fa
Dit MAC adres zal nooit als source adres opgegeven worden, aangezien dit gereserveerd is voor multicast adressen en altijd een destination adres is. Aangezien een switch entries in de MAC table maakt a.d.h.v. source MAC adressen, zal de switch de ethernet frames naar deze multicast MAC adressen dus ook altijd flooden naar alle poorten. Het is dus eigenlijk een soort broadcast en zal ook bij elke host in het broadcast domain aankomen.
Een willekeurige host (de kernel) zal standaard alle frames/IP datagrammen die deze ontvangt met als destination een bepaalde multicast groep negeren, tenzij deze host zich ook bij deze multicast groep heeft aangesloten. Wanneer een host zich op een muiticast groep wil subscriben dient deze aan de volgende vereisten te voldoen:
1. Multicast onderteuning in de kernel
2. Ondersteuning voor IGMP protocol
De designated router is verantwoordelijk voor het managen van de mulitcast group subscriptions in het onderliggende broadcast domain. Als een host een join request (membership report) naar een bepaalde multicast groep stuurt, is het de taak van de designated router om deze subscriptions vast te leggen en m.b.v. bijv. het IGRP protocol zal de router de naast/hoger liggende routers hierover informeren.
Multicast routing m.b.v. het PIM protocol
PIM dens-mode: Wanneer een source server vervolgens een datastream naar de desbetreffende multicast groep stuurt (of eigenlijk van zichzelf afvloeit), zal deze m.b.v. het PIM dens-mode protocol het verkeer naar alle tussenliggende routers propageren. Standaard zijn alle tussenliggende multicast enabled routers lid van alle multicast groepen, maar kunnen zichzelf vervolgens afmelden (prunen) tot een bepaalde time-out en dan begint de cyclus weer opnieuw.
PIM sparse-mode: Wanneer een source server vervolgens een datastream naar de desbetreffende multicast groep stuurt (of eigenlijk van zichzelf afvloeit), zal deze m.b.v. het PIM sparse-mode protocol het verkeer naar een zogenaamde rendezvous point router sturen. Alle achterliggende multicast enabled routers kunnen zichzelf vervolgens aanmelden op de gewenste multicast groepen en het verkeer "ophalen" van de rendezvous point.
En uiteindelijk weer terug in het link local network
Een designated router die minimaal 1 client host heeft dat lid is van de desbetreffende multicast groep, zal het multicast verkeer dat van de source afvloeit binnen het gehele broadcast domain propageren (wederom d.m.v. MAC address die bij de multicast groep hoort, bijv: 01:00:5e:7f:ff:fa). De kernel van de hosts zelf zal dan a.d.h.v. de actieve subscriptions het verkeer accepteren of negeren.
De Multicast adressen 224.0.0.1-224.0.0.255 worden gebruikt door hosts en routers binnen een broadcast domain om elkaar m.b.t multicast activiteit te informeren.
[ Voor 6% gewijzigd door AmonTobin op 28-06-2012 21:20 ]