Irányítástechnika és Informatika Tanszék,
Budapesti Mûszaki Egyetem,
Mûegyetem rakpart 9, 1111, Budapest
e-mail:{mohacsi,pink,maray}@fsz.bme.hu
Egy új technológia bevezetésekor mindig lényeges, hogy az egyes implementációk mennyire felelnek meg a szabványoknak, illetve, hogy képesek-e egymással együttmûködni.
Ez a cikk beszámol a Budapesti Mûszaki Egyetem Irányítástechnika és Informatika Tanszékén végzett kísérletekrôl, amelyek különbözô IPv6 implementációk kompatibilitását vizsgálták.
A vizsgálatok az IBM AIX, FTP Software Secure Client, Digital Unix, FreeBSD és Linux IPv6 implementációkra terjedtek ki. Megvizsgáltuk az implementációk együtmûködési képességét és azt, hogy az egyes IPv6 szolgáltatások mennyiben felelnek meg a szabványnak.
With the introduction of a new technology, it is cruicial to find out the implementations adherence to the standards, and their interoperability.
This paper describes the interoperability and compatibility test of IPv6 implementations. These tests were performed at the Department of Control Engineering and Information Technology, Technical University of Budapest.
We have examined the IBM Aix, Digital Unix, FreeBSD/INRIA, FreeBSD/Wide, Linux and FTP Software Secure Client implementations.
Nem volt célunk teljesítménymérést illetve összehasonlítást végezni, mivel az alkalmazott különbözô típusú és teljesítményû hardverek miatt ez úgysem vezetett volna értékelhetô eredményre.
Meg kell jegyezni, hogy a tesztek eredményei csak fényképszerûen
mutatják a jelenlegi állapotot, mivel minden implementáció aktívan
fejlôdik. A késôbbiekben további és bôvebb vizsgálatokat tervezünk
más implementációkkal is, hogy információt nyerjünk az IPv6
megvalósítások érettségérôl és éles környezetben történô
alkalmazhatóságukról.
A tesztkörnyezet kialakítása a következõ volt. Az 6Bone-hoz a
rendszert egy INRIA-IPv6 alapú implementáció csatlakoztatta. (A 6bone
egy világméretû IPv6 teszthálózat, amihez Magyarország 1997. április
elején csatlakozott.) Ugyanez az INRIA rendszer alkotta a belsõ
szegmensek közötti útválasztó szerepét.
A tesztelt rendszerek
A fenti implementációkon kívül minden fontos rendszerre készül, vagy
elkészült a kísérleti IPv6 megvalósítás (Sun Microsystems: Solaris, Hewlett
Packard: HP-UX, Silicon-Graphics: IRIX, DEC: OpenVMS, SCO: Gemini,
Siemens-Nixdorf, Novell: Netware, Mentat: Macintosh)
Az implementációk által kínált szolgáltatások
A következô táblázat a dokumentációk, leírások és elsô benyomások
alapján készült. A szolgáltatások részletes vizsgálatának eredményét a
Tapasztalatok fejezet tartalmazza.
Implementáció / Szolgáltatás | FreeBSD INRIA | FreeBSD WIDE | Linux | Digital UNIX | AIX 4.3 | FTP-win95 |
---|---|---|---|---|---|---|
Állapotmentes autokonfiguráció | + | + | + | + | + | + |
Szomszéd meghatározás | + | + | + | + | + | + |
Útvonal átirányítás | + | + | + | + | + | ? |
RFC 1897 típusú cím támogatás | + | + | + | + | + | + |
EUI-64 cím támogatás | + | + | + | + | + | - |
Többszörös cím (Multihoming) | + | + | + | + | + | ? |
Tunneling Konfigurált, Automatikus | + | + | + | + | + | - |
Router üzemmód | + | + | + | + | - | - |
DNS szolgáltatás használata (1) | + | + | + | + | + | - |
DNS támogatás (2) | + | - | + | + | + | - |
Médiumok | ||||||
Ethernet | + | + | + | + | + | + |
TokenRing | - | - | - | - | + | - |
FDDI | + | + | ? | + | + | - |
ATM | + | + | + | - | - | - |
PPP | + | + | ? | - | - | - |
RFC2133 programozói interfész | + | + | + | + | + | - |
Alkalmazások | ||||||
telnet | + | + | + | + | + | - |
ftp | + | + | + | + | + | - |
mail (3)(4) | + | - | + | - | - | - |
http szerver (4) | + | - | + | - | - | - |
http kliens (4) | + | - | + | - | - | - |
NFS | + | - | - | - | - | - |
X11R6 | + | - | - | - | - | - |
Partner azonosítás és titkosítás | ||||||
Partner azonosítás (authentikáció) | + | + | + | - | + | + |
Titkosítás | -(5) | + | + | - | + | + |
A másik fajta szabadon hozzáférhetô implementáció az INRIA implementációja. Ezen koncepció alapeleme, hogy az IPv6-hoz és IPv4-hez közös TCP-UDP szállítási réteg tartozik. A másik jellemzôje ezen implementációnak, hogy az autokonfigurációs üzeneteket egy daemon process segítségével kezeli. Ezen implementáció található meg az IBM operációs rendszerében, valamint ezzel mutat rokonságot a Digital implementációja. Egyébként Az INRIA implementációt nemcsak az IBM (és Bull) választotta operációs rendszere IPv6-os komponensének alapjául, hanem a Silicon Graphics is.
Az NRL típusú implementációk az IPv6-ot, mint egy "újabb"
protokollt tekintik. A szeparált protokoll stack elônye, hogy
viszonylag egyszerûbb fejleszteni, tesztelni, a mûkôdô IPv4
implementáció zavarása nélkül. Ezzel szemben kevésbé hatékony, mert a
két protokoll egymás mellett foglalja a buffereket, memóriát stb. Az
INRIA implementáció viszont úgy tekinti az IPv6-ot, mint egy hálózati
protokoll, amely elôbb-utóbb felváltja az IPv4-et. Ezen integrált
protokoll stack fejlesztése nyilván nehezebb, de a memória gazdálkodás
hatékonyabb lehet.
Az implementációk installálhatósága
A megvizsált IPv6 implementációk nagyon különbözô osztályzatot
érdemelnek az telepíthetôségre. A skála a jól telepíthetôtôl a
szinte installálhatatlanig terjed.
FreeBSD INRIA implementáció (1998 januári snapshot)
Az INRIA implementáció viszonylag jól installálható. Az IPv6-os
kiegészítô csomagot a FreeBSD 2.2.5-ös rendszer forrására kell
kicsomagolni, és a rendszert újra kell fordítani. Ugyancsak új
IPv6-os kernelt kell fordítani, installálni az egészet, végül
konfigurálni az IPv6-os rendszert. Az INRIA implementáció
automatikusan, minden nehézség nélkül fordítható, csak az egész
rendszer újra fordítása tart meglehetôsen hosszú ideig (kb. 2 óra egy
133 Mhz-es Pentiumon). Az új programok a FreeBSD-ben már megszokott
katalógusokba kerülnek, tehát az INRIA csomag nem kísérleti
rendszerként tekint önmagára, hanem gyakorlati környezetben
alkalmazható implementációként. Hátrányaként róható fel, hogy ez az
implementáció nem patch file-ként vagy CVS update-ként jelenik meg,
ami megkönnyíthetné és gyorsíthatná a verziók közötti upgradelést. Az
telepítésrôl egy tömör, de elegendô információt tartalmazó útmutatót
kapunk az INRIA kit részeként.
FreeBSD WIDE implementáció (19980209 snapshot)
A WIDE implementáció közepesen bonyolultan telepíthetô. Egy KIT-ként
adják közre a friss változatokat, ami tartalmazza az új és újra írt
felhasználó és segédprogramokat, egy könyvtárat (libinet6) amivel
össze kell szerkeszteni az IPv6-ot használni kívánó programokat,
illetve 2 patch file-t (a kernel-hez és az include file-okhoz). Az
installációról viszonylag tömör, de használható leírást kapunk kézhez
angolul és japánul. A kernel fordítása nem különösebben nehéz, csak
egy bosszantó hibája van: függôség van az IPv6 és az IPSEC között,
mivel IPSEC nélkül nem lehet összeszerkeszthetô kernelt
készíteni. Ezzel szemben a felhasználói és segédprogramok fordítása
meglehetôsen bonyolult, sôt idônként a kernel forrásában való
bogarászást igényel. A programok nem létezô struktúrákra és
konstansokra hivatkoznak, amiket a header file-okból és kernel
forrásából kell kinyomozni. Az IPv6-os proramok nem a megszokott
helyre kerülnek, hanem az NRL-es konvencióknak megfelelôen az
/usr/local/v6 könyvtár alá. Tehát a WIDE implementáció installációs
szempontból inkább kísérletinek tekinthetô mint kész rendszernek.
Linux implementáció + inet6-apps0.26 +net-tools-980126
A Linux implementációt meglehetôsen nehézkes installálni. A kernelt és
a programokat több forrásból kell beszerezni, és ezek az alkotó részek
elég ritkán mûködnek együtt. Az installációról csak hiányos leírások
érhetôk el. Az IPv6-os kódot minden újabb fejlesztôi kernel (2.1.x)
tartalmazza. A kernel fordítása is meglehetôsen körülményes a config
lehetôség segítségével, mivel ezernyi opcióra kérdez rá a Linux
konfiguráló (Ezen opciók töredéke van csak dokumentálva). Ezek közül
bármit hibásan kitöltve a kernelünk mûködésképtelen vagy instabil
lehet. A új segédprogramok két helyen vannak szétszórva. Azt várnánk,
hogy elôször az alap segédprogramokat (mint ifconfig, netstat stb.)
kell installálni a net-tools-ból, hogy kipróbáljuk, mûködik-e az
IPv6-os kernel. Ezzel szemben, elôször az ftp-t és egyéb alkamazásokat
kell telepíteni az inet6-apps csomagból, mivel ez a csomag tartalmazza
az NRL alapú implementációknál szokásos libinet6-ot és a kiegészítô
include file-okat. Ezek után sem egyszerû az installálás, mivel a WIDE
implementációhoz hasonlóan nem létezô struktúrákat és konstansokat
kell bogarászni a kernelben és a header file-ok között. További
bosszantó dolog, hogy a make nem áll le a fordítási hibáknál, hanem
figyelmen kívül hagyja azokat. A programok, az IPv6-os könyvtár, és az
include file-ok a /usr/inet6 katalógus alá kerülnek. A Linux-os IPv6
implementáció installációja távolról sem tekinthetô kiforrottnak, még
rendkívûl sok javítani való van rajta.
Digital UNIX 4.0B + IPv6 v.6.112
A Digital Early Adopter's Kit-jét nagyon egyszerû telepíteni. A
kicsomagolás után a setld parancs segítségével a rendszer részéve
lehet tenni az IPv6-os kitet, majd új kernelt kell fordítani. Az egész
telepítési mûvelet elég jól dokumentált. Az IPv6-os programok az
/usr/opt/IP6112 katalógusba kerülnek. A szokványos helyükrôl
szimbólikus linkek mutatnak rájuk. Noha a DEC nem nyújt támogatást
ezen kithez, de megbízhatósága, stabilitása valódi IPv6 kísérleti
rendszernek teszi alkalmasssá. Két kisebb hiányossága van: nem teszi
lehetôvé az ATM és az IPv6 együttes alkalmazását, valamint nem mûködik
SMP-s rendszereken.
AIX4.3
Az AIX 4.3-nak integráns része az IPv6, így a rendszer telepítésével
együtt megkapjuk az IPv6-os rendszert. Az AIX installációja egyébként
szintén viszonylag egyszerû. Két apró hiányossága van a
rendszernek. Az egyik az, hogy az egész AIX 4.3 dokumentációja
meglehetôsen hiányos, így az installációról sincs sok leírva. A másik
apróság, hogy az IPv6 feletti, titkosítási partner azonosításhoz és
titkosításhoz szükséges csomag nem az operációs rendszer, hanem csak a
Bonus Pack részét képezi.
FTP Software Secure client 3.0
Az egyetlen Windows 95-ös csomag a vizsgált implementációk
közûl. Windows-hoz szokott módon egyszerûen installálható. Bár
figyelmeztet, hogy a Windows TCP/IP stackjét le fogja cserélni, a
Windows 95 lefagy, ha mûködés közben, egy lépésben történik a
csere. Ezért vagy még egyszer le kell futtatni a Secure Client
telepítôjét, vagy elôször kézzel el kell távolítani a Microsoft TCP/IP
csomagot.
Konfigurálás
FreeBSD INRIA implementáció (1998 januári snapshot)
Az INRIA implementáció viszonylag egyszerûen konfigurálható, bár a
konfigurációs leírások hiányoznak. A példaként adott konfigurációs
állományok segítségével viszonylag egyszerûen lehet host konfigurációt
kialakítani. Router konfiguráció kialakítása, illetve a tunnel-ek
konfigurálása már nem ennyire egyszerû. A példa állományokhoz célszerû
lett volna mellékelni a logikai topológiát is. A parancsok jól
vannak dokumentálva.
FreeBSD WIDE implementáció (19980209 snapshot)
A WIDE implementációt közepesen bonyolult konfigurálni. Egy rövid
leírás található arról, hogy az egyes parancsok mire valók, de igazi
leírás nem található egyetlen parancsról sem. A példa állományok
alapján host konfigurációt nagyon egyszerû csinálni. Router
konfigurációt az INRIA implementációhoz hasonlóan elég bonyolult
csinálni, fôleg azért, mert a programok forrásában kell keresgélni azt, hogy
melyik kapcsoló mire való. A tunnelek konfigurálása elég érdekes, mert
az automatikus tunnelhez egy daemon-t kell futtatni.
Linux implementáció + inet6-apps0.26 +net-tools-980126
A Linox-ot viszonylag egyszerû konfigurálni. Egy rövid How-to leírás
található arról, hogy az egyes parancsok mire valók, de igazi leírás
nem található egyetlen parancsról sem. Ezen leírasok alapján host
konfigurációt nagyon egyszerû csinálni. Router konfigurációt a többi
implementációhoz hasonlóan elég bonyolult csinálni, fôleg azért, mert
a WIDE implementációhoz hasonlóan, a programok forrásában kell
keresgélni azt, hogy melyik kapcsoló mire való. A Router Advertisment
Daemon-ról egy rövidke leírás van, ami nagyban segíti a
konfigurálást. A tunnelek konfigurálása nem tökéletes, mert nincsenek
igazán szétválasztva az automatikus és konfigurált tunnelek.
Digital UNIX 4.0B + IPv6 v.6.112
A Digital Early Adopter's Kit-jét nagyon egyszerû konfigurálni.
A csomaghoz átfogó felhasználói kézikönyv jár. Ez
részletesen elemzi, hogy milyen konfigurációban miket és hogyan kell
beállítani a helyes mûködéshez. A router konfiguráció is
egyszerû, mivel ezt is tárgyalja a leírás. Az egyedüli hiányosság,
hogy a programok manualjai nem frissültek fel illetve nem készültek
el, így viszonylag keveset lehet tudni az implementáció
lehetôségeirôl. A kithez adott ipv6_setup majdnem helyes konfigurációt
generál, azonban a hiba kijavítása a kézikönyv segítségével pár
pillanat alatt lehetséges.
AIX4.3
Az AIX 4.3-nak olyannyira integráns része a IPv6, hogy konfigurációját
SMIT segítségével is el lehet végezni. A host konfiguráció készítése
csak pár gombnyomás. Tunnelek konfigurációja szintén egyszerû. Router
konfiguráció nem lehetséges, mert az AIX 4.3 novemberi változata ezt
nem támogatja. Hiányossága a rendszernek a viszonylagos
dokumentálatlanság.
FTP Software Secure client 3.0
Az FTP Software termékének konfigurálása egyetlen opció beállítását
jelenti, és máris mûködik az IPv6. Azaz csak mûködne, ha nem
szolgáltató alapú címeket használna. A 6bone 1997 november óta áttért
egy hatékonyabb címzési architektúrára (Globálisan Aggregálható
Címek), az addig használt struktúrálatlan címkiosztásról. A Secure
Client kivételével mindegyik megvizsgált rendszer támogatja ezt a
címzési rendszert. A Secure Client nem támogatja a tunneleket
és a router üzemmódot.
Dokumentáció
FreeBSD INRIA implementáció (1998. januári snapshot)
Az INRIA implementáció elég jól dokumentált. A új segéd és
rendszerprogramoknak mind elkészült a kéziköny lapja (manual page).
A kézikönyvet a fejlesztéseknek megfelelôen rendszeresen frissítik.
Egyes mûködést és megvalósítást leíró dokumentációk franciául
részletesebbek, de ezek száma egyre fogy. Mindenre kiterjedô
dokumentáció azonban nincsen.
FreeBSD WIDE implementáció (19980209 snapshot)
A WIDE implementáció nagyon hiányosan dokumentált. A telepítést és
használatot bemutató néhány hevenyészett leíráson túl nincsen
semmilyen dokumentációja angolul. Bizonyos programok japánul
dokumentáltak, de ezek is meglehetôsen szórványosak.
Linux implementáció + inet6-apps0.26 +net-tools-980126
A Linux változatot kataszrofálisan gyengén dokumentálták. Létezik
ugyan néhány HOW-TO-IPv6 változat, de ezek ellentmondásosak és nem
nyújtanak igazi segítséget. Ezenkívül mindent a programok forrásának
tanulmányozásával kell kideríteni.
Digital UNIX 4.0B + IPv6 v.6.112
A DEC rendszer egyes dokumentációi mintaszerûek. Az installációs,
konfigurációs és programozói dokumentáció rendelkezésre áll mind HTML
mind Postscript formában. Ezen kívül a könyv mintapéldái is
megvannak. Az egyedül a módosult programok kézikönyv lapjainak az új
változata hiányzik.
AIX4.3
Az AIX 4.3-nak sajnos nem része a dokumentáció. Ennek a verziónak a
megjelenésekor a teljes AIX dokumentáció csak bétaváltozatú volt -
ugyanis az IBM áttér a html alapú leírásokra -, így alig található
valami leírás az AIX-rôl és az IPv6-ról. A teljes dokumentáció
elérhetô már a Weben, és valószínûleg a késôbbi AIX kiadásokban benne
lesz.
FTP Software Secure Client 3.0
Ezen implementációhoz az FTP szoftver részletes leírást mellékel,
de az nem ad lényegi információt az IPv6-ról.
Elvégzett tesztek
A teszteket a tanszék kísérleti IPv6 hálózatába kapcsolt rendszereken
végeztük. Az elvégzett méréseket úgy választottuk meg, hogy
illeszkedjenek és kiegészítsék a JOIN IPv6-os tesztjeit.
Az alábbi ábra szemlélteti a konfigurációt. A 6bone felé a kapcsolatot egy
FreeBSD/INRIA alapú gép jelentette, ugyanez funkcionált útválasztóként.
A hálózati forgalmat a tcdpdump analizátor programmal figyeltük.
Jelmagyarázat | |
+ | Támogatott |
- | Nem támogatott vagy nem mûködik |
* | Lásd részletes leírás |
1...5 | Osztályzat, legjobb: 5 |
FreeBSD
INRIA |
FreeBSD
Wide |
Linux | Digital Unix | AIX | FTP Software
Win95 |
|
Autokonfiguráció | + | + | + | + | + | + |
Prefix meghatározás | + | + | + | + | + | - |
Default route | + | + | + | * | + | + |
Link paraméterek | + | * | - | - | * | - |
Elavult címek | + | + | + | + | + | - |
Többszörös prefix | + | * | + | + | * | - |
Duplikált címek | * | * | + | + | + | - |
Elérhetetlenség felismerés | + | + | + | + | + | + |
Automatikus alagutak | + | + | + | + | + | - |
Konfigurált alagutak | + | + | + | + | + | - |
telnet | + | + | - | + | + | - |
ftp | + | * | * | * | * | - |
sendmail (SMTP) | + | - | + | - | - | - |
http szerver | + | - | - | - | - | - |
http kliens | + | - | - | - | - | - |
NFS | + | - | - | - | - | - |
DNS | * | * | * | * | * | - |
X window | + | - | - | - | - | - |
Csomagban található IPv6 alkamazások | 5* | 3 | 2 | 3 | 3 | 1* |
Installálás | 4 | 2 | 1 | 5 | 5 | 5 |
On-line kézikönyv | 4 | 1 | 1 | 4 | 3 | 1 |
Dokumentáció | 1 | 1 | 1 | 5 | 2 | 1 |
S. Thompson, T. Nartin, IPv6 Stateless Address Autoconfiguration , RFC1971 , August 1996.
T. Narten, E. Nordmark, W. Simpson, Neighbor Discovery for IP Version 6 (IPv6) , RFC1970 , August 1996.
M. Crawford, A Method for the Tranmission of IPv6 Packets over Ethernet Networks , RFC1972 , August 1996.
R. Gilligan, S. Thomson, J. Bound, W. Stevens, Basic Socket Interface Extensions for IPv6 , RFC2133, May 1997.
S. Thomson, C. Huitema, DNS Extensions to support IP version 6 , RFC 1886, December 1995.
R. Hinden, S. Deering IP Version 6 Addressing Architecture , Internet-Draft, Nov 1997.
R. Hinden, S. Deering Internet Protocol, Version 6 (IPv6) Specification , Internet-Draft, Nov 1997.
FreeBSD INRIA implementáció Magyarországon
Digital UNIX IPv6 KIT információk