Az IPv6 (másik néven az IPng, vagy a “az internet következő generációs protokollja”, “IP next generation”) a jól ismert IP protokoll (avagy az IPv4) új változata. Hasonlóan a jelenleg működő összes többi BSD rendszerhez, a FreeBSD is tartalmazza a KAME IPv6 referencia implementációt. Ezért ha ezzel szeretnénk kísérletezni, akkor ehhez a FreeBSD minden eszköz biztosít számunkra. Ez a szakasz az IPv6 beállítását és használatát mutatja be.
Az 1990-es évek elején az IPv4-es címterek rohamos mértékű kimerülését figyelték meg. Az internet jelenlegi bővülési üteme mellett két nagyobb aggodalomnak adott okot:
A címek elfogyása. Napjainkban efelől egyre kevesebb a kétség, mivel az RFC 1918 által megfogalmazott privát címterek (10.0.0.0/8, 172.16.0.0/12, és 192.168.0.0/16), valamint a hálózati címfordítás (Network Address Translation, NAT) használata igen elterjedt.
Az útválasztási táblázatok méretének növekedése. Ez még manapság is aggasztó.
Az IPv6 ezeket és még más egyéb problémákat a következő módon igyekszik megoldani:
A 128 bites címtér használata. Más szóval, elméletben összesen 340 282 366 920 938 463 463 374 607 431 768 211 456 darab címet képes kiosztani. Ez azt jelenti, hogy bolygónk minden egyes négyzetméterére megközelítőleg 6,67 * 10^27 IPv6 típusú cím jut.
Az útválasztók a saját táblázataikban csak a hálózatok összevont címeit tárolják el, ezáltal egy átlagos útválasztási táblázatban található bejegyzések száma 8192 alá csökken.
Az IPv6 emellett még rengeteg más előnyös lehetőséget is kínál:
A címek automatikus beállítása (lásd RFC 2462)
Anycast (bárkiküldés, vagyis “egy a sokból”)
Kötelező (mandatory) multicast
IPsec (IP szintű védelem)
Egyszerűsített fejléc
Mobil IP
IPv6-IPv4 közti átjárhatóság
Ha mindezekről többet szeretnénk megtudni, akkor erre érdemes továbblépnünk:
Az IPv6 áttekintése a playground.sun.com honlapon
Az IPv6 címeknek több típusa létezik: a unicast (egyesküldés), az anycast (bárkiküldés) és a multicast (többesküldés).
A unicasthez használt címek jól ismert címek. Az így elküldött csomag pontosan ahhoz a felülethez érkezik meg, amelyhez az adott cím tartozik.
Az anycasthez használt címek felírásukban tökéletesen megegyeznek a unicast esetével, de valójában felületek egy csoportját címezik. Az anycastre beállított címekre küldött csomagok mindig a(z útválasztó szerinti) legközelebb levő felülethez érkeznek meg. Az anycastet az útválasztók számára találták ki.
A multicasthez használt címek felületek egy csoportját nevezik meg. A multicast címekre érkező csomagokat a csoport minden egyes tagja megkapja.
Megjegyzés: Az IPv4 esetében az üzenetszórásra szánt (általában az xxx.xxx.xxx.255 formátumú) címeket az IPv6 esetében multicast címekkel fejezzük ki.
Táblázat 31-2. Fenntartott IPv6 címek
IPv6 cím | Az előtag hossza (bitekben) | Leírás | Megjegyzés |
---|---|---|---|
:: | 128 bit | nem specifikált | Vö. a 0.0.0.0 címmel az IPv4 esetében. |
::1 | 128 bit | saját cím | Vö. a 127.0.0.1 címmel az IPv4 esetében. |
::00:xx:xx:xx:xx | 96 bit | IPv4 beágyazása | Az alsó 32 bit egy IPv4 formátumú cím. Ezt “IPv4 kompatibilis IPv6 címnek” is nevezik. |
::ff:xx:xx:xx:xx | 96 bit | IPv4-re leképzett IPv6 címek | Az alsó 32 bit egy IPv4 címet jelöl. Olyan gépeknél használatos, amelyek nem támogatják az IPv6 protokollt. |
fe80:: - feb:: | 10 bit | helyi összeköttetés | Vö. az IPv4 loopback címeivel. |
fec0:: - fef:: | 10 bit | helyi cím | |
ff:: | 8 bit | multicast | |
001 (2-es alapú) | 3 bit | globális unicast | Az összes globális unicast címet ebből a tartományból osztjuk ki. Az első 3 bit értéke“001”. |
Az IPv6 címek kanonikus formája így ábrázolható: x:x:x:x:x:x:x:x, ahol mindegyik “x” egy 16 bites hexadecimális érték. Például: FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.
Gyakran a címek hosszú nullákból álló sorozatokat tartalmaznak, ezért mindegyik ilyen sorozatot rövidíteni tudjuk a “::” jelöléssel. Rajtuk kívül még az egyes hexadecimális csoportokban a bevezető nullák is elhagyhatóak. Például az fe80::1 cím kanonikus formája: fe80:0000:0000:0000:0000:0000:0000:0001.
A harmadik forma szerint az utolsó 32 bites részt írjuk fel a megszokott (decimális) IPv4 stílusú pontozással, ahol tehát a “.” választja el a tagokat. Így például a 2002::10.0.0.1 felírás a 2002:0000:0000:0000:0000:0000:0a00:0001 kanonikus (hexadecimális) ábrázolásnak feleltethető meg, ami pedig egyszerűen 2002::a00:1 alakban is megadható.
Mostanra már minden bizonnyal a kedves olvasó érteni fogja a következőt:
# ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 ether 00:00:21:03:08:e1 media: Ethernet autoselect (100baseTX ) status: active
A fe80::200:21ff:fe03:8e1%rl0 cím az automatikusan beállított helyi összeköttetés címe. Ez az automatikus beállítás részeként a MAC-címből jött létre.
Az IPv6 címek szerkezetéről további részleteket az RFC 3513-ban találunk.
Jelenleg négy módon tudunk más IPv6-os géphez és hálózathoz csatlakozni:
Kérjünk a hálózati elérésünkért felelős illetékesektől IPv6 alapú hálózatot. A részletek tekintetében vegyük fel a kapcsolatot az internet-szolgáltatónkkal.
A SixXS a világ minden táján kínál végpontokkal rendelkező tunneleket.
Egy 6-ból-4 (RFC 3068) típusú tunnellel.
Ha betárcsázós kapcsolatunk van, akkor használjuk a net/freenet6 portot.
IPv6 alatt régebben két típusa volt a nevek feloldásáért felelős rekordoknak. Az IETF az A6 rekordokat időközben elavultnak nyilvánította. Ezért manapság már az AAAA rekordok tekinthetőek szabványosnak.
Az AAAA rekordok használata magától értetődik. A hálózati nevükhöz az alábbi módon tudunk IPv6 címet rendelni az elsődleges zónát leíró állományban:
SAJÁTNÉV AAAA SAJÁTIPv6CÍM
Ha nem rendelkezünk saját névfeloldási zónával, akkor erre kérjük meg a névfeloldást végző szolgáltatónkat. A bind jelenlegi változatai (8.3 és 9), valamint a dns/djbdns (IPv6 támogatására vonatkozó javítással) támogatják az AAAA rekordokat.
Ezek a beállítások egy helyi hálózaton levő gépre vonatkoznak, nem pedig egy útválasztóra. Az rtsol(8) az alábbi megadásával fogja automatikusan beállítani a felületeinket a rendszer indításakor:
ipv6_enable="YES"
Ha az fxp0 felülethez statikusan akarunk IP-címet rendelni, például a 2001:471:1f11:251:290:27ff:fee0:2093 címet, akkor ehhez a következőt kell megadni:
ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"
Az /etc/rc.conf állományban az alapértelmezett átjárót a következő módon tudjuk a 2001:471:1f11:251::1 címre beállítani:
ipv6_defaultrouter="2001:471:1f11:251::1"
Itt most a tunnelt biztosító szolgáltató által mutatott irányt követjük, és olyan formára alakítjuk, amely megmarad az újraindítás után is. A rendszer indításakor az /etc/rc.conf állományban valami ilyesmit kell megadni a járat visszaállításához:
Soroljuk fel a beállítandó általános tunnel alapú felületeket, ilyen lehet például a gif0:
gif_interfaces="gif0"
A felületnek állítsunk be egy helyi végpontot a SAJÁT_IPv4_CÍM megadásával, valamint egy távoli végpontot a TÁVOLI_IPv4_CÍM megadásával:
gifconfig_gif0="SAJÁT_IPv4_CÍM TÁVOLI_IPv4_CÍM"
Az IPv6 tunnelünk végpontjához kapott cím aktiválásához az alábbit kell még megadnunk:
ipv6_ifconfig_gif0="SAJÁT_KAPOTT_IPv6_TUNNEL_VÉGPONTJÁNAK_CÍME"
Ezután már csak az alapértelmezett útvonalat kell beállítani az IPv6 számára. Ez az IPv6 járat másik oldala:
ipv6_defaultrouter="SAJÁT_IPv6_TÁVOLI_TUNNEL_VÉGPONTJÁNAK_CÍME"
Amennyiben a szerver IPv6 alapú forgalmat közvetít a hálózatunk és a világ között, az /etc/rc.conf állományba a következőt kell felvennünk:
ipv6_gateway_enable="YES"
Ebben a szakaszban az rtadvd(8) beállításával fogjuk az alapértelmezett IPv6 útvonalat kihirdetni.
Az rtadvd(8) engedélyezéséhez az alábbi sort kell betennünk az /etc/rc.conf állományba:
rtadvd_enable="YES"
Emellett még fontos megadnunk azt a felületet, ahol az IPv6 útválasztó kérelmezését végezzük. Ha erre a feladatra például az fxp0 felületet választjuk, akkor erről az rtadvd(8) így értesíthető:
rtadvd_interfaces="fxp0"
Most pedig készítenünk kell hozzá egy konfigurációt is, vagyis az /etc/rtadvd.conf állományt. Íme erre egy példa:
fxp0:\ :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:
Az fxp0 felületet természetesen cseréljük ki a sajátunkkal.
Ezután a 2001:471:1f11:246:: címre helyére írjuk be a saját kiosztásunk előtagját.
Egy egész /64 alhálózat esetén nem is kell többet megadni. Minden más helyezetben az előtag hosszára prefixlen# vonatkozó értéket is be kell még állítanunk.
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
kérjük erre a címre írjon: <gabor@FreeBSD.org>.