|identifikace vyrobce| seriove cislo | | AC | DE | 48 | 23 | 45 | 67 | 89 | AB |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Verze | Trida provozu | Znacka toku | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Delka dat |Dalsi hlavicka | Max. Hopu | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Zdrojova Addresa + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Cilova Addresa + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Verze - 6
Trida provozu - pozadavky toku na vlastnosti site, nema zatim presne danou semantiku
Znacka toku - identifikator proudu packetu, vice viz RFC 2460, Appendix A
Delka dat - delka paketu bez hlavicky, v oktetech
Dalsi hlavicka - stejne jako pole Protocol u IPv4, dalsi hlavicku
muze byt bud rozsirena IP hlavicka nebo hlavicka protokolu vyssi urovne.
Vice o rozsirenych hlavickach viz RFC 2460, Section 4.
Max. hopu - stejne jako pole TTL u IPv4
Zdrojova adresa, cilova adresa - 128bitove IPv6 adresy
Allocation Prefix Fraction of (binary) Address Space ----------------------------------- -------- ------------- Reserved 0000 0000 1/256 Reserved for NSAP Allocation 0000 001 1/128 Reserved for IPX Allocation 0000 010 1/128 Aggregatable Global Unicast Addresses 001 1/8 Link-Local Unicast Addresses 1111 1110 10 1/1024 Site-Local Unicast Addresses 1111 1110 11 1/1024 Multicast Addresses 1111 1111 1/256
Individualni (unicast address) - oznacuji jedno rozhrani pripojeneho pocitace ci zarizeni, celosvetove (celointernetove) jedinecne. Adresu tvori 3 bity prefix oznacujici globalni unicastovou adresu, dalsich 61 bitu tvori prefix site (tento je dale hierarchicky clenen) a poslednich 64 bitu tvori lokalni cast adresy.
+ + TLA ID +reserved+ NLA ID + SLA ID + Interface ID + |001| 13 bitu | 8 bitu | 24 bitu | 16 bitu | 64 bitu |TLA - Top-level agregace, NLA - Nex-level agregace, SLA - Site-level agregace - hierarchicke rozcleneni adresniho prostoru (napr: Bude nekolik meezinarodnich spolecnosti, ktere budou mut svoje TLA, budiu rozdavat NLA toplologicky podrizenym velkym korporacim a ISP, a ti budou alokocvat SLA ... etc. ) V IPv4 ma vetsina stroju prirazenu prave jednu adresu na kazdy interface, prip. pouze jednu adresu na cele zarizeni. V IPv6 ma kazdy interface prirazenu nejen globalni routovatelnou adresu, ale navic muze mit dalsi adresy:
Skupinove (multicast address) - predstavuji adresu skupiny sitovych rozhrani. Paket se skupinovou cilovou adresou bude dopraven vsem clenum skupiny. Zakladni idea multicastu - jedna informace tece kazdym kusem linky pouze jednou. Pouziva se nejcasteji pro sireni zvukoveho ci obrazoveho signalu, videokonference a podobne, tez jako nahrada broadcastovych adres v IPv4. Vice o multicastu viz prednasky doc. Matysky i sitich.
Dalsi skupinou adres jsou vyberove (anycast address) - take oznacuji skupinu sitovych rozhrani, ale paket je dopraven jen na jedno z nich (zpravidla to nejblizsi). Nemaji svuj vlastni prefix. Jsou zarazeny mezi globalni individualni adresy, lisii se pouze zpusobem zpracovani ve smerovacich algoritmech. Mozne pouziti - load balancing
NSAP, IPX - ve vyvoji, vlastne ani nikdo nevi, proc jsou soucasti IPv6 adresniho prostoru
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
Zapis adresy je pomerne komplikovany, predpoklada se vyuziti DNS.
::/128
- nedefinovaná adresa, pouziva se pri zjistovani vlastni adresy
::1/128
- zpetna vazba (loopback), nesmi se objevit v siti
Dale existuji jeste specialni multicastove adresy, ktere pokryvaji napr. vsechny uzly na lokalni siti, vsechny smerovace na lokalni siti ap.
AAAA
(typ cislo 28). Obsahuje IPv6 adresu, 8-bitovou delku prefixu a domenove jmeno podsite. Alternativou AAAA
zaznamu jsou A6
zaznamy (typ cislo 38, RFC 2874).
Ten obsahuje delku prefixu, IPv6 suffix a domenove jmeno podsite. Oba typy
nejsou primo kompatibilni, ale existuji jednoduche prevodove mechanismy z
AAAA
na A6
. A6
je vyrazne novejsi, avsak objevily se problemy. A6
je proto prohlasena za experimentalni a doporucuje se pouzivat starsi normu.
Path MTu discovery, detaily viz
RFC 1981.
mobilita - IPv6 zajistuje moznost prechazet mezi fyzicky i logicky ruznymi sitemi bez nutnosti rekonfigurace zarizeni, pripadne i bez preruseni spojeni. Je to zajisteno pomoci tzv. home-agentu, kteri vedi, kde se zrovna mobilni zarizeni nachazi a znaji jeho aktualni adresu a smeruji pakety patricnym zpusebem. Pokrocilejsi algoritmus umoznuje i vynechani home-agenta, je vsak nutna podpora na druhem konci spojeni. Vice viz IEFT - mobility in IPv6
autokonfigurace - krome DHCPv6, ktera zprostredkovava stavovou autokonfoguraci, umi IPv6 bezstavovou konfiguraci. Pomoci algoritmu Neighbor discovery 'osaha' sve okoli, od routeru ziska sitovy prefix, lokalni cast adresy vygeneruje podle EUI64 nbo z MAC adresy (nekolik pokusu pro pripad, ze adresa uz existuje). Detailni popis by byl na samostany referat :) Slabiny - nelze nastavovat prostredi vyssich protokolu, napr. adresu DNS sreveru
iproute2
(utilita /sbin/ip
),
ping6
na ozkouseni, podpora IPv6 v jadre
ifconfig eth0 add fec0::50/64 upnebo:
ip addr add fec0::50/64 dev eth0
Pomoci route
, podobne jako u IPv4:
route -A inet6 add default gw fec0::1nebo pomoci
ip
ip -6 route add ::/0 via fec0::1
Tunnel skrz IPv4 infrastrukturu
--8<-cut-here------------------------------------------
#!/bin/sh #pri spravnem nastaveni vytvori IP6 over IP4 tunnel REMOTEIP4=10.0.40.1 LOCALIP4=10.0.40.2 TUNELLPREFIX=fec0:0:0:40::/64 TUNNELIP=fec0:0:0:40::1/64 ip tunnel add tunnel1 mode sit ttl 255 remote $REMOTEIP4 local $LOCALIP4 ip link set dev tunnel1 up ip -6 route add $TUNNELPREFIX dev tunnel1 metric 1 ip addr add $TUNNELIP dev tunnel1--8<-cut-here------------------------------------------
Pomoci ping6
se podivame, jestli tunnel dela to co ma, prikazem ip tunnel show
vypismeme
vsechny nastavene tunely
ipv6_enable="YES"Nahozeni rozhrani:
ifconfig xl0 inet6 fec0::40/64pripadne tak, aby ID rozhrani bylo podle normy EUI64:
ifconfig xl0 inet6 fec0::/64 eui64Nastaveni brany:
route add -inet6 default fec0::1
Tunnel skrz IPv4 infrastrukturu
#!/bin/sh #pri spravnem nastaveni vytvori IP6 over IP4 tunnel REMOTEIP4=10.0.40.1 LOCALIP4=10.0.40.2 TUNNELIP=fec0:0:0:40::1 ifconfig gif0 create gifconfig gif0 $LOCALIP4 $REMOTEIP4 ifconfig gif0 inet6 $TUNNELIP prefixlen 64
pc AAAA 2345:67:89AB:1:123:45FF:FE67:89ABCela definice domeny domena.cz, v ktere se nachazeji dva autoritativni DNS servery (ve dvou ruznych podsitich) a jeden pocitaz, vypada asi takto
$ORIGIN domena.cz. @ SOA ns1.domena.cz. root.ns1.domena.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:89ABReverzni dotazy jsou reseny obdobne jako pro IPv4 - obrati se poradi sestnactkovych cislic v adrese a na konec se pripoji domena ip6.arpa. Napr. pro adresu
2345:67:89AB:1:123:45FF:FE67:89AB
B.A.9.8.7.6.E.F.F.F.5.4.3.2.1.0.1.0.0.0.B.A.9.8.7.6.0.0.5.4.3.2.ip6.arpa
Pro domenu domena.cz by zonovy soubor obsahoval asi takovyto zaznam:
$ORIGIN B.A.9.8.7.6.0.0.5.4.3.2.ip6.arpa. @ SOA ns1.domena.cz. root.ns1.domena.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.domena.cz. 0.9.8.7.2.1.E.F.F.F.C.E.0.A.2.0.2.0.0.0 PTR ns2.domena.cz. B.A.9.8.7.6.E.F.F.F.5.4.3.2.1.0.1.0.0.0 PTR pc.domena.cz.
Instalace:
wget http://v6web.litech.org/radvd/dist/radvd-0.7.2.tar.gz tar xvzf radvd-0.7.2.tar.gz cd radvd-0.7.2 ./configure --prefix=/usr/local --sysconfdir=/etc --mandir=/usr/share/man make make install ./configure --prefix=/usr/local --sysconfdir=/etc --mandir=/usr/share/man make make installKonfigurace (/etc/radvd.conf): nastavime, ze se ma smerovac ohlasovat na fyzickei rozhrani eth1
interface eth1 { AdvSendAdvert on; MaxRtrAdvInterval 30 prefix fec0:0:0:40::/64 { AdvAutonomous on; } };V konfiguraku se pravi, ze na rozhrani eth1 se ma posilat ohlaseni smerovace v intervalu 30 vterin. Dale ze na razhrani bude inzerovat prefix ten a ten, ktery muze byt za vhodnych podminek pouzit k automatickemu nakonfigurovani rozhrani nove pripojeneho uzlu. Vice viz
man radvd.conf
Pokud mate touhu pripojit se k IPv6 internetu, je v zasade nekolik moznosti:
Freenet6 - na adrese http://www.freenet6.net najdete homepage projektu, ktery ma tez za cil sirit myslenku IPv6. K siti se pripojujete pomoci specialniho klienta, ktery v pripade potreby ustavi IPv6-over-IPv4 tunel mezi vasi podsiti a Internetem.
gethostbyname(3)
a getservbyname(3)
jak je zname z IPv4 nahrazuje nove getaddrinfo(6)
. O opacny preklad se stara getnameinfo(3)
, kterezto volani se neomezuje jen na IPv6.
Ostatni volani, jako napr. connect(), listen(),...
se nemeni, je treba uvadet parametr address family
INET6 misto INET..
Vice informaci viz manualove stranky.