IP nové generace

IP-datagram verze 6 se skládá z čtyřicet bajtů dlouhého základního záhlaví následovaného rozšířeními. Čtyřicet bajtů základního záhlaví se může zdát hodně, ale je třeba si uvědomit, že jen IP-adresy odesílatele a příjemce zaberou 32 bajtů.

Obr. 8.1 Základní záhlaví IP-datagramu verze 6

Pole verze IP obsahuje hodnotu 6 pro IP-protokol vrze 6.

Pole třída dat se skládá ze čtyř bitů, tj. nabývá hodnoty 0 až 15. Specifikuje přenášená data pro případ rozhodování v okamžiku zahlcení sítě. V okamžiku zahlcení musí směrovač IP-datagramy zahazovat. V tomto poli se specifikuje, které IP-datagramy je možné zahodit dříve než jiné.

Interval 0-15 je rozdělen na dvě části:

0 – nespecifikovaná data

1 – provoz na pozadí (např. news)

2 – automatický provoz (např. mail)

4 – uživatelem (člověkem) prováděné velké přenosy dat (např. ftp)

6 – interaktivní provoz (např. telnet, X-windows)

7 – řízení sítě (např. směrovací protokoly, SNMP)

Pole idedntifikace toku dat spolu s adresou odesilatele jednoznačně identifikuje jeden dílčí tok dat v Internetu. Doposud se směrování provádělo výhradně na základě adresy příjemce. Nevýhodou směrování v Internetu je, že jednotlivé IP-datagramy se dopravují samostatně, tj. pokud Internetem prochází tok IP-datagramů mezi dvěma aplikacemi, pak směrovače na cestě řeší směrování pro každý procházející datagram samostatně. Např. pokud přenášíte několik MB dlouhý soubor, pak Internetem tečou tisíce datagramů. Každý směrovač na cestě se musí zabývat každým z těchto datagramů samostatně. Pokud nedojde ke změně v topologii sítě, pak pro tisíce datagramů směrovač řeší stejnou úlohu se stejným výsledkem.

Pole délka dat specifikuje délku IP-datagramu bez základního záhlaví. Jelikož je toto pole dlouhé 2 bajty, tak největší délka přenášeného IP-datagramu může být 65 535 bajtů. Je však možné použít volbu ohromný datagram v další hlavičce informace pro směrovače, která pak umožňuje odesílat ještě větší datagramy.

Pole další hlavička specifikuje typ následující hlavičky.

Tab. 8.1 Typy dalších hlaviček v IP-datagramu verze 6
0 Informace pro směrovače (Hop-by-Hop Header)
4 IP-protokol
6 Protokol TCP
17 Protokol UDP
43 Směrovací informace (Routing Header)
44 Záhlaví fragmentu (Fragment Header)
45 Protokol IRP
46 Protokol RRP
50 Bezpečnostní hlavička (Encapsulating Security Payload)
51 Autentizační hlavička (Authentication Header)
58 Protokol ICMP
59 Další hlavička již nenásleduje
60 Jiná volba (Destination Options)

Pole počet hopů v podstatě odpovídá položce TTL (doba života datagramu) v IP verze 4. Využít jej lze především jedním z následujících způsobů:

  1. K zahazování zatoulaných datagramů. IP-datagramu je položka počet hopů snižována při průchodu každým směrovačem. Po dosažení nuly je datagram považován za zatoulaný a je zahozen.
  2. K nalezení nejkratší cesty v Internetu (obdoba příkazu traceroute). Cílem je vyhledat nejbližšího člena určitého adresného oběžníku. Nejprve se odešle datagram jehož adresátem je adresný oběžník (multicast) s nastaveným polem počet hopů na jedničku. Pokud se žádný člen neozve, pak se odešle datagram s polem počet hopů nastaveným na dvojku atd.

Další hlavičky v IP-datagramu


Za základním záhlavím IP-datagramu mohou následovat další hlavičky.

      Obr. 8.2 Struktura IP-datagramu verze 6, šipky vyjadřují návaznost jednotlivých hlaviček
Pole další hlavička v základním záhlaví ukazuje jaký typ dat (“jaká hlavička”) následuje za základním záhlavím. Teoreticky může ukazovat již na TCP segment nebo jiný protokol vyšší vrstvy. Avšak může také ukazovat na další rozšiřující hlavičky IP-protokolu.

Informace pro směrovače

Tato hlavička obsahuje jednotlivé informace (volby), které jsou určeny pro směrovače přepravující datagram. Každý směrovač, který datagram předává se musí těmito volbami zabývat.

        Obr. 8.3 Struktura jedné volby z hlavičky informace pro směrovače
Volba se skládá ze pole typ dlouhého 1 B, pole délka dlouhého 1 B a pole obsahující vlastní volbu. Pole typ se skládá z osmi bitů:

aabxxxxx

bity aa sdělují co má směrovač s datagramem udělat, když nerozezná tuto volbu. Možnosti jsou:
 

00 – Pokud volbu nerozpoznáš, pak ji ignoruj a datagram zpracovávej dále.
01 – Pokud volbu nerozeznáš, pak datagram zahoď a neprováděj žádné další akce.
10 – Pokud volbu nerozeznáš, pak datagram zahoď a informuj o tom odesilatele protokolem ICMP.
11 – Pokud volbu nerozeznáš, pak datagram zahoď a v případě že datagram není adresován adresnému oběžníku, tak o tom informuj protokolem ICMP odesilatele.


Bit b sděluje, zda-li může směrovač tuto volbu změnit:
 

0 – Volba se nesmí změnit.
1 – Volba se může změnit.


Tabulka 8.2 uvádí některé volby. Volba výplň je dlouhá jeden bajt se skládá pouze z typu (nula), pole délka a volba má prázdné.

Tab. 8.2 Některé volby z hlavičky informace pro směrovače

         
        Typ desítkově Typ dvojkově Název Délka Hodnota v poli délka
        0 00000000 Výplň dlouhá 1 bajt 1 není
        1 00000001 Výplň dlouhá n bajtů 2 + n n
        194 11000010 Ohromný datagram 2 + 4 4


Výplně jsou určeny pro zarovnání hlavičky na určitou délku. Volba ohromný datagram využívá právě zarovnání. Tato volba musí totiž končit na hranici čtyřbajtu (viz obr. 8.4).

         

    Obr. 8.4 Volba délka ohromného datagramu končící na hranici čtyřbajtu
         
Pokud je volba délka ohromného datagramu použita, pak délka datagramu v základním záhlaví je nastavena na nulu a používá se délka uvedená v této volbě. Zatímco v základním záhlaví jsou pro délku určeny 2 bajty (tj. datagram může být dlohý až 64 KB), pak 4 bajty volby ohromný datagram umožňují délku až 4 GB.

Směrovací informace

Hlavička směrovací informace používá tč. jedinou volbu (Typ=0), kterou je explicitní směrování. Kdy odesilatel specifikuje IP-adresy směrovačů přes které má být datagram dopravován (viz obr. 8.5).
Obr. 8.5 Volba explicitní směrování
 


Obr. 8.6 Příklad koloběhu IP-adres při explicitním směrování
 
 

Záhlaví fragmentu

Fragmentovat IP-datagramy verze 6 může pouze operační systém na straně odesilatele. Směrovače, kterými datagram prochází na své cestě od odesilatele k příjemci fragmentovat na rozdíl od IPv4 již nesmí.

Obr. 8.7 Záhlaví fragmentu

Na rozdíl od IP-protokolu verze 4 neobsahuje každý IP-datagram (např. v základním záhlaví) identifikaci IP-datagramu. Identifikace IP-datagramu je nutná pro fragmentaci, aby příjemce zjistil které fragmenty patří do stejného datagramu. V IPv6 je identifikace datagramu pouze v dalším záhlaví, tj. není součástí každého IP-datagramu.

Autentizační hlavička

Pomocí autentizační hlavičky odesilatel autentizuje data, tj. prokazuje, že data odeslal on. Datagram je tak zabezpečen proti změně IP-datagramu útočníkem i proti záměně celých IP-datagramů odesilatele za IP-datagramy vložené útočníkem.

Bezpečnostní hlavička


Obr. 8.9 Bezpečnostní hlavička

Bezpečnostní hlavička umožňuje přenášená data šifrovat. Musí to být poslední hlavička IP-datagramu, protože data jsou již dále šifrována, tj. nedostupná ke zpracování směrovačům dopravujícím IP-datagram.


Obr. 8.10 Bezpečnostní brána

Bezpečnostní brány je praktické použít pro oddělení intranetu od Internetu. Provoz v intranetu je možný nešifrovaný, kdežto provoz mezi dvěma částmi firmy přes Internet se zabezpečí šifrováním.

Protokol ICMPv6


Podobně jako v případě IP-protokolu verze 4 se pro signalizaci chybových stavů a pro diagnostiku používá protokol ICMP, tak i v IPng se používá protokol ICMP. Protokol ICMP pro IP-protokol verze 6 je specifikován RFC-2463.
 


Obr. 8.11 Struktura ICMP paketu

Tab. 8.3 Typy a kódy ICMP zpráv
Typ Kód Popis
1   Nedoručitelný IP-datagram (Destination Unreachable)
  0 Ve směrovací tabulce neexistuje směr pro tuto adresu (no route to destination)
  1 Spojení s adresátem je administrativně uzavřeno (communication with destination administratively prohibited)
  3 Nedosažitelná adresa (address unreachable)
  4 Nedosažitelný port (port unreachable)
2 0 Příliš velký datagram (Packet Too Big)
3   Čas vypršel (Time Exceeded)
  0 Dosažen počet hopů (hop limit exceeded in transit)
  Vypršel čas na sestavení IP-datagramu z jeho fragmentů (fragment reassembly time exceeded)
4   Chybný parametr (Parameter Problem)
  0 Chybné pole v záhlaví (erroneous header field encountered)
  1 Nepodporovaný typ v poli další hlavička (unrecognized Next Header type encountered)
  2 Nepodporovaná volba (unrecognized IPv6 option encountered)
128 0 Žádost o echo (Echo Request)
129 0 Echo (Echo Reply)
133 0 Žádost o směrování (Router Solicitation)
134 0 Oznámení o směrování (Router Advertisement)
135 0 Žádost o linkovou adresu (Neighbor Solicitation)
136 0 Oznámení o linkové adrese (Neighbor Advertisement)
137 0 Změň směrování (Redirect Message)

Typy ICMP zpráv se dělí na dva intervaly:

Překlad IP-adres na linkové adresy

Na obrázku 8.12 chce stanice A odeslat stanici B IP-datagram. Jenže IP-datagram musí být vložen do linkového rámce. Stanice A sice zná IP-adresu stanice B (ta je 4800::1234:4321:123), avšak pro vytvoření linkového rámce potřebuje také linkovou adresu stanice B.


Obr. 8.12 Stanice A chce odeslat IP-datagram stanici B

Pro zjištění linkové adresy svého souseda na lokální síti slouží dvě ICMP zprávy:

  1. Žádost o linkovou adresu, kterou stanice A žádá oběžníkem stanici B, aby stanici A poskytla svou linkovou adresu.
  2. Oznámení o linkové adrese, kterou stanice B poskytuje stanici A svou linkovou adresu.



Obr. 8.13 Žádost o linkovou adresu


Obr. 8.14 Oznámení o linkové adrese
 

Zjištění adresy směrovače na LAN

Pokud stanici nestačí komunikace pouze na LAN, pak pro komunikaci mimo LAN musí znát adresu směrovače. Řečí směrovačů: stanice potřebuje získat položku default do své směrovací tabulky. Směrovače v pravidelných intervalech rozšiřují tuto informaci oběžníkem pro všechny počítače na LAN (FF02::1) pomocí ICMP zprávy oznámení o směrování – viz obr. 8.15.


Obr. 8.15 Oznámení o směrování


Obr. 8.16 ICMP zpráva Žádost o směrování
 

Změň směrování

Situace je znázorněna na obr. 5.11. Na LAN je více směrovačů. Odesilatel posílá IP-datagram příjemci. Jelikož ve směrovací tabulce nemá přímý směr přes směrovač 2, tak využije položkud default, kterou získal např. z ICMP zprávy oznámení o směrování a která ukazuje na směrovač 1. Směrovač 1 příjme datagram, ale je nucen jej stejným rozhraním předat směrovači 2. Směrovač 1 to sice provede, ale neodpustí si o tom ICMP zprávou změň směrování informovat odesilatel. Odesilatel příjme zprávu změň směrování, ze které si vytvoří novou položku do své směrovací tabulky, která ukazuje příjemce přímo přes směrovač 2.

ICMP zpráva změň směrování je znázorněna na obr. 8.17. Na obrázku je také napsán hypotetický příkaz route, kterým by se vložila příslušná položka do směrovací tabulky odesilatele.

Zajímavé je též pole kód, které je 0 v případě, že adresátem ICMP zprávy je počítač a 1 v případě, že adresátem je směrovač.


Obr. 8.17 Změň směrování


IP-adresa

IP-adresa je v protokolu IPng šestnáctibajtová (128 bitů). Rozeznáváme tři typy adres: Neexistuje zde všeobecný oběžník (Broadcast).

Zápis adresy

Používají se tři zápisy IP-adresy: Adresy sítí se zapisují obdobně jako u IPv4 jako prefix následovaný lomítkem a počtem bitů tvořících adresu. Např. 80:1::1/64.

Tab. 8.4 Některé čísti adresního prostoru IPng
 
0:0:0:0:0:0:0:0 Nespecifikovaná adresa (nepoužívá se)
0:0:0:0:0:0:0:1 Smyčka (Loopback)
010/3 Jednoznačné adresy přidělovávané poskytovatelům Internetu
010 10000/8 IANA
010 01000/8 RIPE (Evropa) 10010002=4816
010 11000/8 ARIN (Amerika)
010 00100/8 APNIC (Asie a Pacifik)
010 11111/8 Testovací blok adres (viz RFC-1897)
1111 1111/8 Oběžníky (Multicasts)

 

Oběžníky

Oběžníky mají prefix obsahující v prvním bajtu samé binární jedničky, tj. šestnáctkově FF (viz obr. 1.18).

Obr. 8.18 Adresa oběžníku
         
Druhý bajt je rozdělen na poloviny. První polovina má významná pouze bit T, který pokud má hodnotu 0, pak je oběžník přiřazen trvale, pokud má hodnotu 1, pak se jedná o dočasné přiřazení.

Druhá polovina druhého bajtu specifikuje rozsah skupiny tvořící oběžník. Nabývá např. hodnot:

     
    1 – oběžník v rámci lokálního uzlu,
    2 – oběžník v rámci LAN,
    5 – oběžník v rámci sítě,
    8 – oběžník v rámci firmy,
    E – globální oběžník.
Existují vyhrazené oběžníky, např.:
     
    FFxx::1 – oběžník pro všechny stanice (počítače i směrovače)
    FFxx::2 – oběžník pro všechny směrovače
    FFxx::9 – oběžník pro všechny směrovače provozující protokol RIP
    atd.

    Konkrétně FF02::2 je oběžník určený všem směrovačům na LAN.
     
     

Jednoznačné adresy

RFC-2373 specifikuje alokaci adres. Avšak nyní se ukazuje, že se bude používat mírně pozměněné schéma. Aktuálním materiálem je tč. materiál “IPv6 assigment and allocation policy document (5th draft 16 April 1999)”, který IP-adresu rozděluje do částí znázorněných na obr. 8.19.


Obr. 8.19 IP-adresa verze 6

Význam jednotlivých polí v IPv6-adrese je:

FP – první tři bity mají pro jednoznačnou alokovanou adresu hodnotu 010.

TLA ID (Top-Level Agregation Identifiers) – těchto 13 bitů je spravováno IANA (nejvyšší autorita Internetu), která přiděluje tento prostor regionálním IR (Internet Registry) – pro Evropu je IR organizace RIPE se sídlem v Amsterodamu. RIPE má přiděleno prvních 8 bitů: 010 01000, tj. RIPE spravuje všechny adresy, které mají v prvním bajtu hodnotu 10010002=4816.

sub-TLA - z těchto 13 bitů může RIPE přidělovat organizacím označovaným jako TLA registry, které budou přidělovat adresy poskytovatelům Internetu. Hodnota polí FP + TLA ID + sub TLA je přidělena konkrétnímu TLA registry.

NLA ID (Next Level Agregation) – těchto 13 bitů identifikuje konkrétního poskytovatele Internetu.

SLA ID – 16 bitů, ze který kterých přiděluje poskytovatel adresní prostor firmě. Nejmenší část adresního prostoru, která může být firmě přidělena je /64.

DNS

Rozšíření a změny DNS spojené s IPv6 musí být kompatibilní s existujícími aplikacemi. Rozšířením DNS pro IPng se věnuje RFC-1886.
Věta typu AAAA
IPv4 používá pro překlad jména na IP-adresu větu typu A. Pro IPv6 je zavedena obdobná věta typu AAAA. Rozdíl spočívá v tom, že věta typu AAAA má v poli IP-adresa nikoliv čtyřbajtovou IPv4-adresu, ale 32-bajtovou adresu IPv6.
Reverzní doména IP6.INT
Pro reverzní překlad je zavedena nová doména IP6.INT (obdoba domény IN-ADDR.ARPA pro IPv4). IPv6-adresa je prvkem domény IP6.INT. Zajímavý je zápis prvku domény IP6.INT. Jednotlivé bajty se opět zapisují “pospátku”, ale nikoliv celé bajty ale poloviny bajtů. Polovina bajtu je reprezentovaná jednou šestnáctkovou číslicí. Jednotlivé šestnáctkové číslice se oddělují tečkou (tj. oddělovačem v doménovém jméně).