FreeBSD kézikönyv
Előző | Fejezet 31. Egyéb haladó hálózati témák | Következő

# 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:

- 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

- KAME.net

## 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í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”.

## 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:

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

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

Előző | Tartalom | Következő
Párhuzamos vonali IP (PLIP) | Fel | Az Aszinkron adatátviteli mód (ATM)

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