IP Multicast kísérletek

1998. május

Bevezető Az IP multicast-ról röviden A kísérleti felállás Routolás Tapasztalatok, felmerült problémák Konklúzió, nyitott kérdések Javaslat Hasznos linkek


1. Bevezető
film_reel.gif (24790 bytes)

Egyre jobban terjednek a multimédia streaming alkalmazások a hálózaton (pl. RealAudio, RealVideo, Netshow, videokonferencia stb.), melyek a hagyományos pont-pont IP alapú összeköttetésekkel megvalósítva pazarolják a rendelkezésre álló sávszélességet, s nem alkalmasak a tömeges felhasználásra. A kézenfekvő megoldás az IP multicast technika használata, mely egy routolt Internet környezetben átgondolt, alapos tervezést, koordinációt és tesztelést igényel, mielött a szolgáltatók az éles hálózatukon használni tudnák. Jelen leírásban azt a kísérletsorozatot ismertetem, mellyel hozzá szeretnénk járulni egy magyar multicast backbone kialakulásához.A kísérletsorozatban bárki által ingyen letölthető szoftvereket, közönséges PC-ket és létező IP hálózatot használtunk.

2. Az IP multicast-ról röviden

A multicast egy kommunikációs forma, melyben egy adó (jelforrás) és tetszőleges számú vevő egy közös csatornát használva információt cserél. A legfontosabb tulajdonsága a pont-pont kommunikációval szemben, hogy az információmennyiség csak egy példányban áramlik át a hálózaton. Ezt a tulajdonságot elsősorban a multimédia alkalmazások tudják kihasználni, így az élő hang és videóközvetítések, a videókonferenciák, s az egyéb tartalomszóró megoldások.

Az IP multicast lokális hálózatokon a legegyszerűbben megvalósítható: a szerver számítógép operációs rendszerének és az adást sugárzó szoftvernek képesnek kell lennie a multicast kommunikációra, pontosabban az IGMP protokoll használatára. Ez manapság minden modern TCP/IP implementáció része, így csak konfiguráció kérdése a hatékony használat. A legtöbb szoftver esetében ez csak a multicast címtartomány beállítását jelenti.

Az összetett, routolt hálózatok esetében (mint az Internet) megoldandó a multicast forgalom pont-pont WAN linkeken keresztüli továbbítása. Ezt különböző multicast routing protokollok teszik lehetővé. Az első ilyen elterjedt protokoll a DVMRP volt, mely a világméretű MBONE hálózat kialakításánál fontos szerepet játszott. (Az MBONE az Interneten megvalósított multicast backbone, melynek különböző részeit un. tunnel-ek, azaz digitális átjátszó-alagutak kötik össze.) Mára egy korszerűbb protokoll, a PIM (Protokoll Independent Multicast) kezd elterjedni, ezt támogatják a Cisco routerek is. Természetesen lehetséges az átjárás is a különböző protokollok között.

3. A kísérleti felállás

A kísérletek célja, hogy bemutassuk a multicast technológia és routolás egyszerű bevezethetőségét. A kísérlethez Cisco routereket és IBM kompatibilis PC-ket használunk, Windows NT és Windows 95 operációs rendszerrel.

A teszt jelforrás egy CD-ROM meghajtóval felszerelt PC, melyen Windows NT alatt az ingyenesen letölthető RealEncoder szoftver kódolja a végtelenített lejátszásra beállított CD hangját.

Az encoder egy Windows NT szerveren futó - szintén ingyenesen letölthető - RealNetworks Basic Server 5.0-nak küldte a jelet. A szerveren beállítottuk a multicast adás lehetőségét a server.cfg konfigurációs file kiegészítésével:

MulticastAddressRange 239.0.0.1-239.0.0.255
MulticastPort 7070
MulticastControlList [{0.0.0.0, 0.0.0.0}]

A 239.0.0.0/8 a privát multicast címtartomány, ennek egy blokkjából választ dinamikusan címet a szerver az egyes élő streameknek: a kliens először TCP kapcsolatot létesít a szerverrel, ekkor a szerver átadja a kért stream multicast címét és utána a kliens megpróbál csatlakozni a multicast csatornához.
A harmadik sor a kiszolgált kliensek körét határozza meg, jelen esetben mindenki csatlakozhat tetszőleges címről.

A kísérleti hálózat:

E1 és E2 egy telephelyen, s bérelt vonalon csatlakoznak E3-ra (a C3 belső hálózata). PC1-PC5 kliensek más-más pozícióban. E1, R1 és R2 a több routeres kísérlet kedvéért lett beállítva, a többi berendezés üzemszerűen működik a kísérlettől függetlenül is. Az IP forgalmat statikus routolás biztosítja.

A kliensek a RealPlayer 5.0-val ellátva csatlakoznak  a hálózat több pontján, az automatikus multicast vétel létrejöttét a statisztika ablak fejlécéből lehet ellenőrizni. A debug idején manuálisan multicast vételre voltak korlátozva, mivel a szerver automatikusan unicast módban küldi a jelet, ha nem sikerül a multicast kapcsolatnak létrejönnie.

4. Routolás

Az első lépésben a lokális hálózati multicast adatátvitelt teszteltük, ez semmilyen egyéb beállítást, konfigurációt nem igényelt: a RealPlayer kliensek a szerver beállítása után automatikusan multicast üzemmódban tudták fogni az adást.

A második lépésben két lokális hálózat közötti multicast routolás megvalósítása volt a feladat. Ehhez a routerekben konfigurálni kellett a multicast routolást, valamint a PIM protokollt. A tesztekhez az előtanulmányok nyomán a PIM sparse mode (PIM-SM) üzemmódot választottuk, mely a szétszórtan elhelyezkedő, korlátozott sávszélességgel kapcsoló multicast kliensek esetére optimalizált, s nem igényli egy LAN sávszélességét. A PIM-SM a multicast elosztó fa felépítéséhez egy RP (rendezvous point) jelölésű routert használ. Az RP segítségével találkoznak a "vevők" az "adókkal", majd kiépül köztük a közvetlen kapcsolat, azaz az RP csak a kapcsolatfelépítéshez szükséges. A részletekről nagyon jó leírás olvasható a 4. ajánlott linken.

Tehát nézzük egy tetszőleges, a PIM protokollt támogató Cisco router beállítását (itt a fenti R4 router példáján):

conf t ;belépés a konfigurációs üzemmódba
ip multicast-routing ;a multicast routolás engedályezése
ip pim rp-address 194.38.96.65 ;az RP címének megadása
int fa0/0.1 ;az Ethernet interfész (itt egy VLAN) konfigurálása
ip pim sparse-mode ;a PIM sparse mode engedélyezése
int s4/4 ;a soros port konfigurálása
ip pim sparse-mode ;a PIM sparse mode engedélyezése
exit ;kilépés az interfész konfigurációból
exit ;kilépés

Ugyanezt értelemszerűen a másik oldali routerben (R3) is beállítottuk.
Ezt követően az alábbi parancsokkal ellenőrizhető a működés:

debug ip pim A PIM protokoll figyelése
debug ip igmp Az IGMP protokoll figyelése
show ip mroute A multicast routing tábla megtekintése
show ip mroute active Az aktív multicast jelfolyamok megjelenítése
show ip pim neighbors A PIM szomszédok megtekintése
show ip pim interfaces A PIM interfészek megtekintése
show ip pim rp Az egyes RP-k megtekintése
show ip rpf _cím_ Az adott címhez tartozó RPF (Reverse Path Forwarding) információk

A debug ip pim parancsot kiadva látszanak a két router közötti információcserék. (Természetesen telnet kapcsolat esetén a debug nézéséhez ki kell adni a term mon parancsot, mely a console outputját átirányítja a telnet sessionbe. Ezt a term no mon paranccsal lehet kikapcsolni.)

A RealPlayer klienset elindítva a következő - leegyszerűsített - folyamat játszódik le:

1. Először egy TCP kapcsolat eredményeként megkapja a kliens a kért adás multicast címét a szervertől
2. Erre a címre IGMP kérést küld a kliens a routernek
3. A router PIM csatlakozási kérést küld az RP routernek, majd az RP-től kapott informáciük alapján felépül a multicast fa
4. Elindul az adatfolyam a szervertől a routereken át a klienshez.

Az adatfolyamot az ip mroute active paranccsal ellenőrizhatjük, itt látható a használt sávszélesség értéke is.
Ezzel megjelent a kliens Ethernet hálózatán a jelfolyam, s ha ezt további kliensek is hallgatni kívánják, akkor sem nő a két router közötti forgalom.

A következő feladat a két pont-pont WAN szakaszon átnyúló multicast routolás volt. Ez - amennyiben a routerek is úgy akarják (lásd később) - egy a fentivel egyező beállítást igényel az újabb routerpáron (R1 és R2). Ezzel a felállással kipróbáltuk, hogy a multicast jelfolyam több hálózaton keresztül is eljut a klienshez, a közbenső routerek automatikusan továbbítják a csatlakozási kéréseket.

5. Tapasztalatok, felmerült problémák

A fentiekben leírt konfigurációban üzemel a kísérleti rendszer, a kiinduló audio stream-en kívül teszteltük video jellel is, tökéletesen működik.

Természetesen a fent leírtak hosszas próbálkozások és tesztek eredményei. Az alábbiakban a menet közben felmerült problémákat, váratlan eseményeket foglaljuk össze:

6. Konklúzió, nyitott kérdések

A kísérlet (és az idevágó online szakirodalom alapos tanulmányozása) alapján nyilvánvaló, hogy viszonylag csekély energiával látványos eredményeket lehet elérni. Természetesen még rengeteg tesztelni, kipróbálni való van a témakörben, ezek közül néhány:

Tervezzük workshop jellegű tesztek végrehajtását, mikor egy alkalommal nagyobb számú eszközzel és több résztvevővel végzünk különböző dokumentált kísérleteket. Az első workshopon plug-n-play jelleggel az itt bemutatott kísérlet ellenőrzését fogjuk végrehajtani nulláról indulva egy háromrouteres, gyűrüs teszthálózaton. (Update: a workshop sikerrel lezajlott, Cisco 4500, 2501 és 1005-ös routerekkel, DTE-DCE kábelekkel és három PC-vel minden lehetséges kombinációt végigpróbáltunk.)

7. Javaslat

A C3 a jelen kísérletsorozattal szeretné a magyarországi ISP-k összefogását kezdeményezni egy multicast backbone kialakítására, s a további kísérletek közös folytatására. Ennek elősegítésére:

Reméljük kezdeményezésünk kedvező fogadtatásra talál, s nem riadnak vissza a kollégák a kísérletezéstől. Minden javaslatot, kérdést, korrekciót, csatlakozási szándékot, sikeres teszt-stream vételt a multicast@c3.hu címen várunk, s itt olvashatók majd a további fejlemények. Ezt az oldalt folyamatosan frissíteni fogjuk a korrekciókkal, kiegészítésekkel.

8. Hasznos linkek

    1. The IP Multicast Initiative (IPMI) - http://www.ipmulticast.com

    2. Multicast addresses - http://www.isi.edu/in-notes/iana/assignments/multicast-addresses

    3. Internet Multicast Transmission, Addressing and Routing - http://snad.ncsl.nist.gov/snad-staff/night/multicast/multicast.html

    4. Introduction to IP Multicast Routing - http://www.ipmulticast.com/community/whitepapers/introrouting.html

    5. RealNetworks homepage - http://www.real.com

    6. Multicasting Live Content with RealServer - http://service.real.com/help/library/guides/doc/7multi.htm

    7. RealServer Administration Guide - http://service.real.com/help/library/guides/index.htm

    8. The Multimedia Conferencing Applications Archive - http://www.video.ja.net/mice/

    9. Multicasting (Sztaki) - http://www.sztaki.hu/services/mbone/konfig.hu.html

    10. IP multicast szoftver archívum - http://www.sztaki.hu/services/mbone/software.hu.html

    11. Cisco Systems IP Multicast Implementation - ftp://ftp-eng.cisco.com/ipmulticast.htm

    12. MBONE tools - http://scrappy.cs.ucl.ac.uk/shrimp/install.html

    13. MBONE & Multicast for Windows - http://www.research.microsoft.com/research/BARC/mbone/

    14. IP Multicast - by Cisco Systems - http://www.cisco.com/warp/customer/732/multicast/

Az oldal utolsó frissítése: 1998-10-31, készítette: atudos@c3.hu