31.11. Az IPv6

Eredetileg írta: Aaron Kaplan. Átszervezte és kiegészítette: Tom Rhodes. Tovább bővítette: Brad Davis.

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:

Az IPv6 ezeket és még más egyéb problémákat a következő módon igyekszik megoldani:

Az IPv6 emellett még rengeteg más előnyös lehetőséget is kínál:

Ha mindezekről többet szeretnénk megtudni, akkor erre érdemes továbblépnünk:

31.11.1. Az IPv6 címek háttere

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ímAz előtag hossza (bitekben)LeírásMegjegyzés
::128 bitnem specifikáltVö. a 0.0.0.0 címmel az IPv4 esetében.
::1128 bitsaját címVö. a 127.0.0.1 címmel az IPv4 esetében.
::00:xx:xx:xx:xx96 bitIPv4 beágyazásaAz alsó 32 bit egy IPv4 formátumú cím. Ezt “IPv4 kompatibilis IPv6 címnek” is nevezik.
::ff:xx:xx:xx:xx96 bitIPv4-re leképzett IPv6 címekAz 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 bithelyi összeköttetésVö. az IPv4 loopback címeivel.
fec0:: - fef::10 bithelyi cím 
ff::8 bitmulticast 
001 (2-es alapú)3 bitglobális unicastAz összes globális unicast címet ebből a tartományból osztjuk ki. Az első 3 bit értéke“001”.

31.11.2. Az IPv6 címek olvasása

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.

31.11.3. Kapcsolódás

Jelenleg négy módon tudunk más IPv6-os géphez és hálózathoz csatlakozni:

31.11.4. A nevek feloldása az IPv6 világában

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.

31.11.5. Az /etc/rc.conf szükséges módosításai

31.11.5.1. Az IPv6 kliensek beállításai

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"

31.11.5.2. Az IPv6 útválasztók és átjárók beállítása

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"

31.11.5.3. Az IPv6 tunnel beállításai

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"

31.11.6. Az útválasztók kihirdetése és automatikus konfigurációja

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>.