Datagram
Jak vypadá datagram? Oproti IPv4 došlo k zjednodušení základní hlavičky, ta má nyní konstantní velikost a obsahuje pouze nejnutnější informace. Ostatní příležitostně užívané údaje byly přesunuty do rozšiřujících hlaviček.
Základní hlavička tedy obsahuje:
verze - zahajuje IP datagram a určuje verzi protokolu, tedy v našem případě 6 /4 bity/
třída provozu - vyjadřuje prioritu datagramu nebo jeho zařazení do určité přepravní třídy. Její přesný význam nebyl ještě specifikován /8 bitů/
značka toku - také není přesně definován, avšak uvažuje se s ním pro urychlení práce směrovače, který pokud pozná, že pracoval již s některým taktoo označeným datagramem, a bude ho odesílat stejně jako předchozí /20 bitů/
délka dat - obsahuje informaci o délce datagramu bez základní hlavičky /16 bitů/
další hlavička - obsahuje identifikaci jaká hlavička nebo druh dat následuje za základní hlavičkou /8 bitů/, co zde může být:
- Rozšiřující hlavičky
- 0 - volby pro všechny
- 43 - směrování
- 44 - fragmentace
- 50 - šifrování obsahu
- 51 - autentizace
- 59 - poslední hlavička
- 62 - mobilita
- Typ nesených dat
- 6 - TCP
- 8 - EGP
- 17 - UDP
- 58 - ICMP
- aktuální a komplětní specifikace hodnot
dosah - je náhradou za předchozí životnost datagramu. Určuje maximálně kolika směrovači může datagram projít, než je odeslána ICMP zpráva odesílateli a zahození datagramu /8 bitů/
adresy - obsahuje adresu odesílatele a cílovou adresu /256 bitů/
Automatická konfigurace
V IPv6 jsou definovány dvo možné způsoby automatické konfigurace - stavová a bezstavová
Stavová konfigurace je staré známe DHCP, zde označované jako DHCPv6. Počítač rozešle na obecnou adresu dotaz a pokud tento dotaz dorazí na DHCP server, tak ten mu pošle odpověď obsahující IP adresu, prefix sítě, záznam do routovací tabulky a adresu DNS serveru.
Bezstavová konfigurace funguje na principu, že směrovač, kteří znají důležité informace o síti, občas odešlou informace, jaká je situace. Nový počítač může jen poslouchat respektive po nějakém čase sám požádat o tyto informace.
DNS
DNS je v IPv6 více než požadovanou službou, jelikož v IPv6 jsou adresy nechutně dlouhé. Avšak právě s DNS pro IPv6 je veliký problém. V roce 1995 vyšlo první RFC o DNS pro IPv6, které je nyní široce podporováno. V roce 2000 následovalo novější RFC, které zavádí lepší mechanismy a zároveň prohlásilo předchozí specifikaci za zastaralou. Vázla jeho implementace, která se objevila až v BINDu 9. V létě 2001 však byla novější specifikace prohlášena za experimentální a bylo doporučeno vrátit se k předchozímu. BIND 9 nyní podporuje obě specifikaci, takže jak teda vypadají?
RFC 1886
Původní návrh se striktně drží zažité konfiguraci, kdy pro dopředné záznamy zavádí nový typ záznamů nazvaný AAAA a definice domeny by mohla vypadat například takto:
$ORIGIN kdesi.cz.
@ SOA ns1.kdesi.cz. root.ns1.kdesi.cz. (
2002011200 ; Serial
10800 ; Refresh
3600 ; Retry
3600000 ; Expire
86400 ; default_ttl
)
;DNS servery
NS ns1
NS ns2
;adresy pocitacu
ns1 AAAA 2345:67:89AB:1:2A0:ECFF:FE12:3456
ns2 AAAA 2345:67:89AB:2:2A0:ECFF:FE12:7890
pc AAAA 2345:67:89AB:1:123:45FF:FE67:89AB
a zpětné dotazy by vypadaly takto:
$ORIGINB.A.9.8.7.6.0.0.5.4.3.2.ip6.arpa.
@ SOA ns1.kdesi.cz. root.ns1.kdesi.cz. (
2002011200 ; Serial
10800 ; Refresh
3600 ; Retry
3600000 ; Expire
86400 ; default_ttl
)
;DNS servery
NS ns1
NS ns2
;reverzni zaznamy
6.5.4.3.2.1.E.F.F.F.C.E.0.A.2.0.1.0.0.0 PTR ns1.kdesi.cz.
0.9.8.7.2.1.E.F.F.F.C.E.0.A.2.0.2.0.0.0 PTR ns2.kdesi.cz.
B.A.9.8.7.6.E.F.F.F.5.4.3.2.1.0.1.0.0.0 PTR pc.kdesi.cz.
Tento přístup k DNS je samozřejmě funkční, ale pro správce dosti pracný. Dále IPv6 podporuje multihoming - tedy možnost využívat vícero poskystovatelů internetu a tedy používání více různých prefixů současně. Právě s tímto se tento model nedokáže lehce smířit.
RFC 2874
Pro dopředné dotazy byl zaveden další typ záznamů nazvaný A6. Výhoda oproti předchozímu je zkrácení adresy. Záznam obsahuje pouze konec adresy a odkaz na prefix, který se vkládá.
$ORIGIN kdesi.cz.
@ SOA ns1.kdesi.cz. root.ns1.kdesi.cz. (
2002011200 ; Serial
10800 ; Refresh
3600 ; Retry
3600000 ; Expire
86400 ; default_ttl
)
;DNS servery
NS ns1
NS ns2
;adresy pocitacu
ns1 A6 64 ::2A0:ECFF:FE12:3456 sit1.ip6
ns2 A6 64 ::2A0:ECFF:FE12:7890 sit2.ip6
pc A6 64 ::123:45FF:FE67:89AB sit1.ip6
;poddomena ip6 prefixy
sit1.ip6 A6 48 0:0:0:1:: ip6
sit2.ip6 A6 48 0:0:0:2:: ip6
ip6 A6 0 2345:67:89AB::
Poslední záznam by bylo ještě možné elegantně odkazovat přímo na poskytovatele tedy:
ip6 A6 48 ::0 kdesi-prefix.ipv6.isp.cz
Pro multihoming, pak stačí přidělit prefixu několik adres
ip6 A6 0 2345:67:89AB::
A6 0 2389:AB:1234::
Revezní dotazy využívají nově definovaných možností, kdy lze používat binární prefixy:
\[xprefix_šestnáctkově/délka]
Pokud se jméno rozděluje do více domén jsou tyto binární prefixy zapsány v opačném pořadí, tedy nejkonkrétnější záznam je nejvíce vlevo.
Pro síť s prefixem 2345:67:89AB::/48 by pak v zónovém souboru existoval tento záznam:
\[x2345006789AB/48] DNAME ip6.kdesi.cz
IPsec
Implementace IPv4 vůbec neobsahovala žádné bezpečnostní mechanismy. Postupem času se objevily rozšíření i pro IPv4 zajišťující jakousi bezpečnošt, ale pro IPv6 byla bezpečnost jedním z požadavků. Proto vlastní realizace bezpečnostních služeb je ukryta ve dvou dalších rozšiřujících hlavičkách: AH /Authentication Head/ a ESP /Encapsulating Security Payload/. Datagramy mohou obsahovat jednu nebo obě, podle toho jak se chceme zabezpečit.
Přenos těchto datagramů se dále dělí na dva možné režimy:
transportní - hlavičky AH/ESP se přidávají jako rozšiřující k původní hlavičce
tunelující - původní datagram je obalen novou hlavičkou, která obbsahuje i rozšiřující hlavičky AH/ESP
Authentication Header, AH
Tato hlavička slouží k autentizaci odesílatele. V této hlavičce jsou autentizovaná data zahashovaná pomocí MD5 nebo SHA-1. Oba algoritmy používají dříve dohodnutý sdílený klíč, který se vygeneruje při navazování spojení.
Encapsulating Security Payload, ESP
Tato hlavička spolkne všechna data datagramu krom hlaviček určených pro směrovače a informací obsahujících data o fragmentaci a zašifruje je. Každá implementace musí obsahovat podporu DES, MD5 a SHA-1.
Pro správu bezpečnostních asociací se používá protokol ISAKMP, který ale neobsahuje například předpis pro protokol výměny klíčů. Toto je ponecháno pro jiné specifikace. Nyní se využívá IKE /Internet Key Exchange/.
Mobilita
Po oddálení problému IPv4 s nedostatkem adres se stala mobilita IPv6 značným trumfem a důvodem pro zavedení IPv6. Mobilita předpokládá, že každé zařízení je někde doma a tedy má svoji vlastní pevnou IP adresu, ta se nazývá domácí. Je uložena v DNS a stroj je pod touto adresou trvale dostupný i když je na cestách. Při cestování obdrží nějakou dočasnou adresu. Aby byl dosažitelný původní adresou je v domácí síti vytvořen domácí agent /home agent/. Jde o jeden ze směrovačů z domácí sítě, který k sobě bere všechny datagramy posílané pro mobilní zařízení a pak pomocí tunelu mu je předává. Tím se dozví, že se jej někdo pokusil kontaktovat a začne vyhledávat optimální trasu k odesílateli, aby mu mohl oznámit svoji dočasnou adresu. Následně se pak musí autentizovat novému partnerovi, aby prokázal, že jen ten, za kterého se vydává. Po autentizaci se do datagramů přidávají rozšiřující hlavičky Směrování, kde je uvedena dočasná adresa a další komunikace tedy probíhá bez účasti domácího agenta.
radvd - Router ADVertisement Daemon
Jedná se o směrovač pro systémy typu Unix. Vývoj toho programu se však rozdělil do dvou větví. Oficiální je na této adrese ftp://ftp.cityline.net/pub/systems/linux/network/ipv6/radvd/ a druhou verzi je možné získat na této adrese http://v6web.litech.org/radvd
Konfigurace programu lze nalézt v /etc/radvd.conf. Obsahuje definici, jak se má směrovač chovat pro každé rozhraní ve tvaru:
interface jmeno{
volby_rozhrani
prefix prefix/delka{
volby_prefixu
};
pripadne dalsi prefixy
};
Mezi volby rozhraní lze zahrnout tyto parametry:
AdvSendAdvert - Má se do daného rozhraní posílat ohlášení směrovače? volby: on | off
AdvManagedFlag - Má se vedle bezstavové použít také stavová automatická konfigurace?
AdvOtherCofigFlag - Má se stavová konfigurace použít pro zbývající prvky konfigurace (tedy jiné než adresy)?
AdvDefaultLifetime - Doba životnosti oznámení o implicitním směrovači. Udává se v sekundách.
AdvHomeAgentFlag - Je směrovač ochoten vykonávat roli domácího agenta?
AdvHomeAgentInfo - Má do ohlášení směrovače přidávat volbu s informacemi o domácím agentovi?
HomeAgentPreferenece - Udává preferenci domácího agenta
Konfigurace
BSD
Implementace IPv6 je zde asi nejlepší. Projekt věnující se tomuto systému se nazýva Kame
Linux
Přestože jádro Linuxu obsahuje podporu IPv6, vznikl projek USAGI, který chce dosáhnout kvalit BSD systému. Vyvíjí se v Japonsku a programátoři spolupracují s vývojovým týmem Kame.
Upravené jádro s USAGI je možno stáhnout na www.linux-ipv6.org
Pro vlastní konfiguraci je potřeba mít v jádře podporu IPv6 přeloženou alespoň jako modul. Zda nám IPv6 běží zjistíme jednoduše příkazem ifconfig. Pokud se nám ve výpisu neobjevuje nikde něco jako inet6-addr, můžeme zkusit přidat modul ipv6.o.
Pro konfiguraci lze odkázat na Linux IPv6 HOWTO nebo na stránkách Petera Bieringera
Zda máte nakonfigurovanou IPv6 adresu a jakou zjistíte příkazem
# /sbin/ip -6 addr show dev
Přidávání IPv6 adresy
# /sbin/ip -6 addr add / dev
Zobrazení IPv6 sousedů
# ip -6 neigh show [dev ]
Přidání souseda do tabulky sousedů
# ip -6 neigh add lladdr dev
Vymazání souseda z tabulky
# ip -6 neigh del lladdr dev
Zobrazení existujících IPv6-in-IPv4 tunelů
# /sbin/ip -6 tunnel show
Odkazy
Linux IPv6-HOWTO
www.6bone.net
USAGI Project - UniverSAl playGround for Ipv6
KAME Project
Jak zprovoznit IPv6 pod NetBSD
Seznam vlastníku pTLA
IPv6 DNS Examples
RADVD Introduction
Linux IPv6 Router Advertisement Daemon (radvd)
www.zebra.org