www.SAMURAJ-cz.com 

25.04.2024 Marek Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

TCP/IP - skupinové vysílání IP Multicast a Cisco

Úterý, 10.03.2009 20:05 | Samuraj - Petr Bouška |
Multicast je metoda efektivní komunikace jednoho odesílatele více příjemcům. Příkladem může být internetové rádio (a přirovnání běžné rádio), kdy je jeden zdroj a mnoho příjemců, kteří přijímají stejná data ve stejnou chvíli. V praxi se to často řeší tak, že se vytvoří jednotlivá spojení pro každého příjemce. Takže je značně zatěžován server a část síťové infrastruktury je zbytečně přetížená přenosem duplicitních dat. Pomocí multicastu doručujeme informaci současně skupině příjemců co nejefektivnějším způsobem, aby zpráva přes každý síťový uzel cestovala pouze jednou, kopie se vytváří pouze, když se cesty k příjemcům rozdělují. V článku je vysvětlen obecný princip multicastu a dále se věnuje skupinovému protokolu IGMP (Internet Group Management Protocol) a směrovacímu protokolu PIM (Protocol Independent Multicast) ve všech jeho variantách.

Jak multicast funguje

Vysílač (zdroj dat) odesílá pakety na multicastovou adresu (která neslouží k identifikaci příjemce, ale skupiny), zdrojová adresa je jeho normální unicastová adresa. Na routerech se pak paket odesílá do všech směrů, kde je nějaký příjemce (provádí se duplikace paketu). Mezi routery se multicast pakety přenáší pomocí multicast směrovacího protokolu (nejčastěji) PIM. Ten vytváří distribuční strom skrze síť a provádí přeposílání paketů. Příjemci (stanice) se musí zaregistrovat do multicast skupiny pomocí protokolu IGMP. Tok paketů je určován příjemci, detaily závisí na použitém směrovacím protokolu (případně variantě PIM protokolu).

Schéma multicastu 1 - switch, router

Multicast na síťové kartě

Na 2. vrstvě OSI modelu (L2) se používají speciální multicast MAC adresy (které se vytváří z multicast IP adres). Tak jako síťová karta na nejnižší vrstvě kontroluje přicházející rámce a vyšším vrstvám posílá pouze provoz určený pro ni (s její cílovou MAC adresou nebo broadcast provoz), tak má podporu pro multicast a podle nastavení z vyšších vrstev filtruje multicast a dále posílá pouze rámce, které jsou určeny skupině, která klienta zajímá.

Multicast v rámci jednoho subnetu - switch

V rámci běžného switche se multicast chová jako broadcast, tedy jsou jím zaplaveny všechny porty. Broadcast je vlastně speciálním případem multicastu (příjemci jsou všichni na stejném subnetu). Například v IPv6 již broadcast neexistuje, ale používá se link local multicast. Multicast je sice rozesílán všude v rámci broadcast domény. Ale díky tomu, že se používá cílová IP adresa, tak podle ní může klient filtrovat, zda chce paket přijmout. Na rozdíl od broadcastu, kde se klient musí dívat až na datový obsah.

Důvod, proč se multicast chová jako broadcast v daném subnetu, i když chceme doručovat pouze určitým klientům, je následující. Na switchi v rámci L2 (ethernet rámce) nemůžeme zjistit, který klient (na kterém portu) chce odesílaný rámec přijmout. U unicastu je cílová MAC rámce adresou klienta a tu switch zná (má ji v CAM tabulce), ale to neplatí u multicastu, kde je cílová MAC adresa adresou skupiny. Aby mohl switch provádět lepší rozhodnutí, tak musí analyzovat veškerý multicast provoz a podle join a leave zpráv sestavovat tabulku, kam multicast směrovat. Cisco má metodu zvanou CGMP (Cisco Group Management Protocol), ale dnes se používá hlavně IGMP Snooping.

Multicast mezi subnety - router

Na routeru se již řeší více úloh. Router musí zjistit, do kterých přímo připojených sítí má multicast odesílat. Tedy řeší přihlašování klientů do multicast skupin. K tomu se používá protokol IGMP. Router periodicky odesílá do připojených sítí dotaz na multicast adresu 224.0.0.1 a stanice odpovídají (s různým zpožděním, aby nedošlo k zahlcení) s informací, kterou multicast skupinu chtějí přijímat (posílá se jedna zpráva pro každou skupinu), na adresu skupiny (kterou chce přijímat). Po přijetí dotazu host čeká, a pokud v dané době zaznamená odpověď jiného klienta pro stejnou skupinu, kterou chce přijímat, tak již odpověď sám neposílá (znamená to, že jsou na stejném subnetu, takže mu daný multicast provoz stejně přijde). SW na stanicích tedy musí také podporovat IGMP stejně jako router.

Druhý úkol routerů je optimální směrování multicastu do vzdálených sítí. Vytváří se minimální strom spojů, který se dynamicky aktualizuje. Dnes se používá primárně protokol PIM. Když si situaci představíme, tak komunikace probíhá tak, že server začne vysílat nějaký multicast provoz a ten se dostane na lokální router. Na druhé straně (třeba i v jiném státě přes internet) máme klienta, který chce daný provoz přijímat. Ten si vyjedná se svým lokálním routerem, že je členem dané multicast skupiny. A nyní se musí vyřešit ta složitá situace, aby se provoz dostal z jednoho routeru na druhý. Nejčastěji se používá jedna ze dvou variant PIM protokolu. Dense mode vychází z představy, že téměř všichni chtějí provoz přijmout, takže jej odesílá do všech směrů (na všechny routery mimo toho, od kterého přišel). Pokud některý sousední router provoz nechce, tak to musí oznámit. Naproti tomu Sparse mode neposílá provoz žádnému routeru, který si o něj nepožádá.

Schéma multicastu 2 - PIM protokol

Pro zabránění smyčkám se v multicastu používá metoda zvaná Reverse Path Forwarding (RPF), router přijímá multicast provoz pouze ze směrů, z kterých vede zpáteční cesta ke zdroji vysílání (jeho IP adresa je v každém paketu).

Vlastnosti Multicastu

  • IP multicast - komunikace jednoho několika, efektivní využití infrastruktury
  • základem jsou multicastové skupinové adresy (group address), multicastový distribuční strom (distribution tree) a klientem řízené vytváření stromu
  • vysílač používá skupinovou adresu jako cílovou adresu, příjemci užívají tuto adresu, aby informovali síť, že chtějí tuto komunikaci přijímat
  • nějaký obsah je spojen se skupinou 239.1.1.1, vysílač odesílá data na tuto adresu, příjemci se připojí do této skupiny pomocí protokolu IGMP
  • pokud získá skupina nějaké členy, tak se pro ni vytvoří distribuční strom, nejčastěji pomocí protokolu PIM, ten zajistí, že se pakety dostanou od vysílače ke všem příjemcům ve skupině
  • vysílač nemusí vědět o příjemcích, vytvoření stromu je iniciováno aktivními prvky blízko příjemců nebo přímo příjemci, síť zařizuji doručení příjemcům
  • multicast routery musí vědět o všech distribučních stromech, které prochází skrze něj, ale o ostatních neví nic, pro každý strom si vytváří záznam, ale pouze po dobu existence přenosu, nepoužívá se agregace

Multicast IP adresy

Multicast adresní rozsahy:

  • 224.0.0.0 až 224.0.0.255 - určené pro síťové protokoly uvnitř LAN, mají TTL = 1, takže nepřejdou přes router
  • 224.0.1.0 až 238.255.255.255 - jsou globální multicast adresy, které se používají mezi organizacemi a přes internet
  • 239.0.0.0 až 239.255.255.255 - je omezený rozsah adres, pro použití uvnitř organizace (LAN)

Některé speciální adresy:

  • 224.0.0.1 - všechny systémy
  • 224.0.0.2 - všechny lokální (na stejném subnetu) routery
  • 224.0.0.5 - OSPF všechny routery
  • 224.0.0.6 - OSPF DR a BDR routery
  • 224.0.0.10 - EIGRP routery

IGMP - Internet Group Management Protocol

  • používá se mezi klientem a aktivním prvkem (routry, switche)
  • IGMP slouží k registraci jednotlivých hostů do multicast skupin
  • multicast router odesílá membership query message (host query message), aby objevil, jaké multicast skupiny mají členy na připojené síti, to se odesílá všem pomocí IP 224.0.0.1 s TTL = 1
  • hosté odpovídají pomocí IGMP report message, která značí, že chtějí přijímat multicast pakety pro danou skupinu
  • designated router (designated querier) se používá u multiaccess, pro podsíť je jediný, kdo posílá host query message, pro IGMP verze 1 se volí pomocí multicast routovacího protokolu, pro verzi 2 a 3 je to multicast router s nejvyšší IP adresou, Point-to-point linky nezobrazují informace o DR
  • IGMP verze 3 umožňuje filtrování zdrojů, tedy aby si host řekl routeru, které zdroje chce přijímat
  • IGMP odhlašovací (leave) zprávy jsou IP datagramy s cílovou adresou 224.0.0.2, TTL 1

IGMP snooping

Jedná se o ochranný/optimalizační mechanizmus pro L2 switche. Standardně se multicast na switchi šíří jako broadcast, tedy na všechny porty mimo příchozího. IGMP snooping zajišťuje zkoumání multicast provozu a detekci join a leave zpráv. Podle toho se učí, na kterém portu se nachází router a kde klienti, a sestavuje tabulku, podle které přeposílá multicast pouze na ty porty, kde klient tento provoz požaduje. Také odpovědi klientů odesílá pouze na router a ne ostatním klientům. Dynamicky tedy konfiguruje porty pro příjem multicastu.

Multicast MAC adresa

Multicast MAC vždy začíná 01.00.5e - rezervovaná část značící multicast. Pak vezmeme posledních 23 bitů IP adresy, před to dáme 0 a převedeme na hexa, to je druhá část MAC. Příklad IP 228.10.10.7 a 229.138.10.7 mohou být reprezentovány pomocí MAC 0100.5e0a.0a07.

PIM - Protocol Independent Multicast

  • používá se mezi lokálním a vzdáleným multicast routerem pro směrování multicastu od serveru k řadě klientů
  • je to skupina routovacích protokolů, které zařizují distribuci jeden-mnoha nebo mnoho-mnoha přes internet
  • pro směrování používá klasické routovací protokoly

Rendezvous Point (RP) - setkávací místo pro zdroje a příjemce multicast provozu (obecně známé místo pro obě strany), jedná se společný o kořen pro sdílené stromy, zdroje multicastu posílají provoz na tento bod a ten je přeposílá přes sdílené stromy všem členům skupin, díky RP se lépe využijí síťové zdroje, ale nezaručuje optimální cestu

Sparse Mode - PIM-SM

Vychází z představy, že klienti, kteří chtějí přijímat multicast, se v síti nachází velmi řídce. Takže Sparse mode posílá provoz pouze routerům, kteří si o něj požádají.

Používá jednosměrné sdílené stromy s kořenem v RP a může vytvářet stromy nejkratších cest pro zdroje, vyžaduje na síti Rendezvous Point (RP). Zdroje posílají multicast přímo připojeným routerům (DR), DR (router s nejvyšší IP) je zabalí a jako unicast pošle na RP, ten je posílá členům multicast skupiny. RP oznamuje zdroje a vytváří cestu od zdroje ke členům skupiny, teprve potom posílá multicast datagramy.

Rozšířený routovací protokol pro multicast. Použijeme, pokud ostatní routery jsou různé. Dobře škálovatelný. Router se musí přihlásit do skupiny, aby přijímal provoz.

Dense Mode - PIM-DM

Dense mode vychází z představy, že téměř všichni chtějí provoz přijmout, takže jej odesílá do všech směrů (na všechny routery mimo toho, od kterého přišel). Pokud některý sousední router provoz nechce, tak to musí oznámit.

Vytváří strom nejkratších cest, používá flood and prune metodu (nejprve zaplaví doménu multicastem a pak ořezává větve, kde nejsou příjemci). Interfacy se přidávají do multicast routovací tabulky na routeru. Špatně škálovatelný, je ideální pro LAN, kde jsou členové hustě (densely) umístěni v síti.

Sparse-Dense Mode - PIM-SDM

Pokud máme Rendezvous Point (RP), tak funguje jako PIM-SM, pokud ne, tak funguje jako PIM-DM.

Bidirectional Mode - PIM-BM

Vytváří obousměrné sdílené stromy, ale nikdy ne strom nejkratších cest, takže může mít delší end-end vzdálenost, ale dobře škáluje.

Source Specific Multicast - PIM-SSM

Vytváří stromy, které mají kořen pouze v jednom zdroji. Adresa vysílače je známá a příjemci se registrují přímo ke zdroji vysílání.

Konfigurace multicastu v Cisco IOSu

ROUTER(config)#ip multicast-routing         // zapne multicast na routeru
ROUTER(config)#ip pim sparse-mode           // nastaví PIM mód
ROUTER(config)#ip pim rp-address 10.10.10.1 // definice Rendezvous Point (RP)
SWITCH(config)#ip igmp snooping             // zapne IGMP snooping pro switch
SWITCH(config)#ip igmp snooping vlan 100    // zapne IGMP snooping pro VLAN 100
ROUTER#show ip pim interface
SWITCH#show ip igmp snooping
SWITCH#show mac-address-table multicast
ROUTER#clear ip mroute *                    // vymaže IP multicast routovací tabulku
zobrazeno: 72524krát | Komentáře [4]

Autor:

Související články:

Počítačové sítě - Computer networks

Tento seriál se věnuje základům počítačových sítí. Jsou zde stručně popsány důležité praktické aspekty, které by měl znát každý, kdo se o sítě zajímá.

Cisco IOS

Velký seriál o operačním systému aktivních prvků firmy Cisco.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] Samuraj

    Seznam multicast IP adres www.networksorcery.com/enp/protocol/ip/multicast.htm

    Čtvrtek, 18.06.2009 15:12 | odpovědět
  2. [2] tomfi

    odpověď na [1]Samuraj:

    proč neodkázat rovnou dokument ze kterého byla tabulka vygenerována?

    http://www.iana.org/assignments/multicast-addresses/

    Pátek, 19.06.2009 15:32 | odpovědět
  3. [3] Štěpán

    Jak je to s routováním multicastu v IPv6 oproti IPv4?? Obzvláště mě zajímá inter-domain routing, využívá se tam taky PIM protokol nebo je funkčnost nahrazena embedded Rendezvous Pointem v IPv6 multicast adrese?

    Úterý, 18.05.2010 07:53 | odpovědět
  4. [4] Aleš

    Díky za článek. Velmi výstižný k pochopení!

    Řeším teď jednu záhadu ohledně IPTV.

    V původním zapojení CISCO ASR903--> trunkem do CISCO 3750 --> trunkem do OLT (GPON) mi data i IPTV funguje. Vše po 1Gbit.

    Jakmile propojím CISCO ASR903(10Gbit kartu)--> trunkem OLT (GPON). Tak mi jdou poze DATA, ale IPTV nikoli.

    netuším na co se zaměřit.

    V podstatě jsem jen nahradil gigabit propoj za 10gbit a vynechal switch (3750).

    Nenapadá mě, na co se zaměřit.....

    Pátek, 01.06.2018 17:42 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách