IPv6 kezdetektől (kérésre)

Érdeklődő ember lévén, mindig is érdekeltek az újdonságok, ez a kis blog post (inkább how to-nak nevezném blog postnak álcázva) is ezt hivatott egy kicsit bemutatni.
Annyira nem is új, de nem is régi, ámbár még mindig a fejünk felett lebegő kard az ami miatt egy kicsit körbenéztem,
mennyire is kezd terjedőben lenni az az IPv6, amiről mindenki beszél, ám igazából érdemleges történet az elmúlt évek alapján
nem sok született. Jó jelnek mondható, hogy a BIX webes statisztikái között (http://bix.hu/index.php3?lang=en&page=stat)
egy ideje már ott figyel az a kulcsszó hogy "BIX total IPv6 traffic", arról viszont nem lehet tudni hogy igazából
kik és mire is használják ezt a lehetőségét.
Mindenesetre biztató jel, hogy a lehetőség már adott, igazából már csak használni kéne, ám addig míg a szolgáltatók
még csak tesztelési jelleggel sem vezetik be a dolgot, addig igazából halott ügynek tűnik.

Jelen pillanatában az IPv6 hálózat főként tunneleken keresztül éldegél (http://en.wikipedia.org/wiki/Network_tunnel),
de egyes országokban már látható kezdeményezésként, egy-két csenevész főgerincen is megjelent az ipv6 forgalom.

Nah de elég a rizsából, most főként gyakorlati dolgokról kéne hogy szó essen, mert a postnak is igazából ez volt az
indíttatása. A száraz tényekre nem térek ki, aki veszi a bátorságot hogy felállítson magának egy IPv6-os környezet,
az valószínűleg tisztában van az egésznek a hátterével is (128 bites címtartomány, mostani értelemben vett netmask megszűnése, stb)
Az IPv6 - a hétköznapi ember számára - jelenleg csak a fennt említett tunneleken keresztűl érhető el, ehhez első körben
szükségünk lesz egy úgynevezett Tunnel broker-re. A Tunnel broker feladata, hogy létrehozzon egy IPv6 tunnelt a már
működő IPv4 hálózat fölött, a tesztkörnyezetben én http://www.tunnelbroker.net -et választottam, ugyanis elég sok
szerverrel rendelkeznek és a válaszidők is igen jónak mondhatók a szervereiken keresztül.
(A regisztráció menetét nem írom le, mert nem - nah:P). Szóval ott tartunk hogy regisztráltunk,
megigényeltünk az IPv4-es címünkre egy tunnelt, erre kapunk egy általában /64-es tartományt + 2 IP-t a tunnelhez.
A tesztkörnyezet feladatát nálam egy Windows Vista SP1, illetve egy FreeBSD alapú gateway szolgáltatta.
(Az utóbbi években a legtöbb operációs rendszer natívan támogatja már az IPv6-ot, legyen az Mac OS, Linux,
Windows vagy valamely unix szülemény, szóval nem kell megijedni, jó eséllyel mindenkinél menni fog).

1. lépés (tunnel felállítása).
Mint említettem a tunnelt futtató gép egy FreeBSD volt, így ennek a beállításait részletezem (a post végére odaírom linux-ra is, illetve egy két másik rendszerre, de azokat nem tudtam tesztelni).
Első lépésként létrehozzuk a tunnelt:
# ifconfig gif0 create
(A tunnelhez a kernel configban szerepelnie kell a "device gif"-nek, illetve ha már kernel confignál járunk az "options INET6" sem árt, hogy bekapcsoljuk az IPv6 támogatást, egyébként ezek mind megvannak az alap, generic kernelben is)
Ha minden igaz, a tunnel létrejött (ifconfig futtatásánál látni kéne mint interfacet).
Következő paranccsal beállítjuk a tunnel két végpontját is
# ifconfig gif0 tunnel {saját ip-d} {tunnel server ip-je}
majd megmondjuk hogy a virtuális interface-nek mi az ipv6-os címe, illetve hogy kivel kéne kommunikálnia a túloldalon:
# ifconfig gif0 inet6 {te ipv6-os végpontod} {tunnel szerver ipv6-os végpontja} prefixlen 128
Ha az általam emlegetett tunnel brokert használjuk, a "Tunnel details" lapon a cserék a következőek:
{Te ip-d}: ezt neked kéne tudnod, nem nekem, az adatlapon "Client IPv4 address"-ként van jelölve
{Server IP-je}: Adatlapon "Server IPv4 address"
A {te ipv6-os végpontod} szintén értelemszerűen cserélődik az előzőek tudatában, azonban az adatlapon ott van mögötte a /64 subnet megjelölés is, ezt el kell hagyni.

Ez így szép és jó, azonban az ipv6-os forgalom ettől még nem fog a tunnelen közlekedni, így ipv6-ra megadjuk a tunnel szerver címét átjárónak.
# route -n add -inet6 default {tunnel szerver ipv6-os végpontja}

Ha minden jól ment, és nem kaptunk sehol sem hibaüzenetet, az egyetlen dolgunk hogy felállítsuk az interfacet:
# ifconfig gif0 up
Majd egy jól irányzott ping6-al a szokásos módon ellenőrizzük hogy minden jó-e:
# ping6 {tunnel szerver ipv6-os végpontja}
A túloldalon lévő szervernek illik válaszolnia a ping-re, ha így is tesz, megpróbálkozhatunk egy kicsit távolabbi célponttal is:
# ping6 www.freebsd.org
Ha idáig hibamentesen elértünk, akkor elértük az első célt, a gateway már nem csak IPv6 kompatibilis, hanem használja is azt:)

A következő feladat a belső hálón lévő (esetemben Windows Vista-t) szintén kiengedni az IPv6-os hálóra.
Ehhez elsősorban meg kell néznünk a tunnel adatlapján hogy milyen tartományt kaptunk, példának okáért legyen ez a tartomány a 2001:470:1913:6d2::/64. (Adatlapon Routed/64-ként látható).
Fogjuk a tartomány első ip-jét, majd felvesszük a belső hálózat interface-re. (Mivel nálam intel hálókártyák vannak, nálam fxp0 a belső hálózati interface, de ez kinél mi)
# ifconfig fxp0 inet6 2001:470:1913:6d2::1 prefixlen 64
Engedélyezzük a hálókártyák közötti ipv6 adatmozgást (tudom, kicsit hülye elnevezést találtam, de fel lehet vetni jobbat ha tud valaki:))
# sysctl net.inet6.ip6.forwarding=1
Ha minden igaz, ezzel a lendülettel meg is történt hogy a rendszerünk már egy ipv6 gateway funkciót is ellát, nincs más dolgunk mint beállítani a kliens gépen az ipv6-ot, ip-nek (2001:470:1913:6d2::2)-t megadva, (2001:470:1913:6d2::1)-et pedig gateway-nek/átjárónak.
Vista alatt ez annyira egyszerű, hogy igazából túl sok szót nem is érdemel.
Itt is pingeléssel lehet a legegyszerűbben ellenőrizni, MS Vista alatt a -6 kapcsolóval lehet ráerőszakolni a rendszerre, hogy feltétlenül az új protokollt használja. Pl.:
c:\> ping -6 www.freebsd.org

Így hírtelen ennyi dolog jutott eszembe ezzel kapcsolatban. A post-ot a terjedelem miatt így is két részre osztottam a dolgot, a következőben majd az ipv6-os tartományhoz való reverse dns rendelést (Irc g33k-eknek host:D), illetve ennek beállítását fogom leírni;)

Illetve a beígért példa linuxos környezetre, ipv6-os modul használatával (mindenféle komment nélkül):

# modprobe ipv6
# ip tunnel add he-ipv6 mode sit remote {tunnel szerver ip-je} local {saját ip-d} ttl 255
# ip link set he-ipv6 up
# ip addr add {te ipv6-os végpontod}/64 dev he-ipv6
# ip route add ::/0 dev he-ipv6
# ip -f inet6 addr

Hozzászólások

Kerdes: leteznek free tunelek? Vagyis olyan tunel szerverek, melyektol ingyen lehet kapni ip6-t?
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

IPv6 alatt is megvannak ezek a tartományok, pontosabban csak hasonlóak "belső hálózati" tartományokhoz, ilyen a 0-val kezdődőek, pl a ::1 ami a localhost ipv6-os megfelelője, kifejezetten belső tartománynak pedig az fe80-al kezdődőek tekinthetőek.
Van még az ::ffff:0:0 tartomány, amit az ipv4 mappingnak szántak (ipv6-al lehet címezni egy ipv4-es ip-t). Ezek speciális tartományok, vannak még kifejezetten multicast tartományok, local link tartományok, de ezekbe már nem mennék bele, mert hosszú a lista;]

Csak hogy képben legyek, kinek mennyire tetszett a post (jó volt? érthető? Száraz? Tömény?), illetve igényt tartotok-e ehhez hasonló (how-to/tutorial szerű dolgokra) egyéb témában is (pl.: postfix+mysql configurálás alapoktol / dhcp, dns / ftp / samba vesézgetés, stb), mert akkor lehet bizonyos időközönként előhúzok még egy témát;]