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.
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.
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
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:
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:
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:
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
:
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:
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:
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:
SAJÁT_IPv6_TÁVOLI_TUNNEL_VÉGPONTJÁNAK_CÍME
"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:
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ő:
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:
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):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.