Protokol IP verze 6
Petr Grygárek S využitím částí zpracovaných Filipem Staňkem
Proč IPv6 1995 - RFC 1883: Internet Protocol, Version 6 Požadavky ● Adresní prostor – 128 bitů (3,4 * 10E38) ● Různé druhy adres (uni-, multi-, any-cast) ● Důraz na používání globálně směrovatelných adres (omezení NAT) ● Hierarchické směrování a adresace (agregace) ● Podpora QoS ● Automatická konfigurace ● Optimalizace vysokorychlostního směrování ● Podpora mobility ● Snadný přechod z IPv4 + koexistence ● Bezpečnost (autentizace, šifrování)
Formát IPv6 paketu
Hlavička IPv6 ● ●
RFC 2460: Internet Protocol, Version 6 Minimalizace a zjednodušení (základní) hlavičky – 40 B, 32 B adresy
Položky ● Verze (4 b) ● Třída provozu (8 b) ● Značka toku (20 b) ● Délka dat za hlavičkou (16 b) ● Další hlavička (8 b) ● Dosah (8 b) ● Adresy odesílatele a příjemce (2 x 128 b)
Porovnání hlaviček IPv4 a IPv6 IP v4 8b Ve r ze
8b Dé lk a h l.
8b
Typ s lu žb y
Id e n t ifik a c e TTL
8b Ce lk o vá d é lka
Vo lb y 3b
Po s u n fr a g m e n t u
Pr ot o ko l
Kon t r o ln í s o u č e t
Ad r e s a od e s íla t e le C ílo vá a d r e s a Vo lb y
IP v6 Ve r ze
Tř íd a p r o vozu Dé lk a d a t
Zn a č k a t oku Da lš í h la vič k a Ad r e s a od e s íla t e le
M a x. s k o ků
Pole Délka dat, další hlavička, dosah ●
Délka dat – –
●
Identifikace další hlavičky – –
●
týká se dat, bez hlavičky maximální délka je 64 kB (jumbogram lze vyžádat zvláštní volbou)
možnost řetězení hlaviček také identifikace přenášených dat (např. TCP)
Dosah – – –
náhrada za TTL průchod směrovačem (hop) sníží tuto hodnotu při dosažení 0, je paket zahozen a vyslána ICMPv6 zpráva, slouží k prevenci zacyklení
Pole Identifikace toku dat ●
Jednoznačná identifikace dílčího toku – – –
●
Možnost rychlejšího směrování –
●
indexování route-cache
Možnost zajištění QoS-PHB pro tok – –
●
IP adresa odesílatele IP adresa cíle Značka toku (určována odesílatelem, jednoznačná spolu s adresou odesílatele)
V praxi zpravidla použito ToS stejně jako IPv4 DSCP Použití Flow Label generovaného zdrojem výhodné zejména při zašifrovaných L4 hlavičkách pro identifikaci jednotlivého toku (oproti NBAR + marking v ToS)
Životnost položky v paměti směrovače max. 6s –
Kvůli restartu OS zdroje a znovupoužití hodnoty
“Ztracené” položky IPv4 hlavičky ●
Délka hlavičky, Identifikace, Kontrolní součet –
●
nejsou již třeba
Rozšiřující Volby, Fragmentace –
nahrazeny mechanismem zřetězením rozšiřujícíh hlaviček
Zřetězení rozšiřujících hlaviček ●
Každá rozšiřující hlavička je samostaný blok
●
Propojení pomocí položky “Další hlavička”
●
●
Poslední rozšiřující hlavička ukazuje na typ dat paketu (zastupuje položku “Protokol” z IPv4) Řetěz obsahuje pouze hlavičky, které jsou nutné
Vybrané hodnoty položky “Další hlavička” R o z š i řu jí c í h l a vi č k y 0
vo lb y p r o vš e c h n y
43
s m ě r o vá n í
44
fr a g m e n t a c e
50
š ifr o vá n í ob s a h u (E S P)
51
a u t e n t iz a c e (AH )
59
p o s le d n í h la vič k a
60
vo lb y p r o c íl
62
m ob ilit a
Typ n e s e n ýc h d a t 6
TCP
8
E GP
9
IGP
17
U DP
46
RS VP
47
GRE
58
ICM P
Doporučené pořadí rozšiřujících hlaviček 1. základní hlavička IPv6 2. volby pro všechny 3. volby pro cíl (pro první cílovou adresu) 4. směrování 5. fragmentace 6. autentizace 7. šifrování obsahu 8. volby pro cíl (pro konečného příjemce) Slouží k optimalizaci/urychlení zpracování
Rozšiřující hlavička Volby ● ●
Pro všechny (typ 0), pro cíl (typ 60) Délka 16 B 8b
8b
Da lš í h la vič k a
Dé lka d a t
8b Vo lb y
8b
Struktura Volby ●
Samotná volba má části – – –
●
typ (1 B) délka (1 B) data
2 nejvyšší bity typu určují co s neznámou volbou 00 – přeskočit a pokračovat dalšími volbami 01 – zahodit datagram a nepokračovat dalšími volbami 10 – zahodit datagram a odesilateli poslat ICMP zprávu 11 – zahodit datagram a ICMP poslat jen pokud cílová adresa nebyla multicastová
●
třetí nejvyšší bit určuje možnost změny volby po cestě 0 – volba se nesmí změnit 1 – volba se může změnit
Vybrané typy Voleb ●
Pro všechny 0 1 5 194
●
– Pad1 – PadN – Upozornění směrovače – Jumbo obsah (začíná bity 11)
Pro cíl 0 – Pad1 1 – PadN 201 – Domácí adresa u MoIP (jako SRC adresa je CoA kvůli Reverse Path check)
Rozšiřující hlavička Směrování (source routing/MoIP) 8b Další hlavička
8b Délka dat
8b Typ směrování = 0 Rezerva = 0 Adresa [1]
Adresa [2] .
Adresa [n]
8b Zbývá segmentů
Rozšiřující hlavička Fragmentace ●
●
●
●
IPv6 nedovoluje fagmentovat na cestě – fragmentuje tedy výlučně odesílatel IPv6 vyžaduje min. délku MTU 1280 B (IPv4 576 B) Posun fragmentu je v osmicích bajtů od začátku fragmentované části dat Příznak M určuje, zda-li jsou další fragmenty 8 b
8 b
13 b
Da lš í h la vič k a
Re ze r va = 0
Po s u n fr a g m e n t u Id e n t ifik a c e
2b
1 b
R M e z.
Jumbogramy ● ●
Použití oznámeno volbou Délka dat je určena 32 bity –
●
Velikost je tedy 64 kB až 4 GB
Délka dat v základní hlavičce se vynuluje
8b
8b
8b
8b
Typ volb y = 1 9 4
Dé lka volb y = 4
Dé lka ju m b o d a t
Adresování v IPv6
Rozsahy platnosti adres v IPv6 ●
Globální agregovatelné – –
http://www.iana.org/assignments/ipv6-unicast-address-assignments
Typický formát ● ● ●
●
Linkové lokální (fe80::/10) –
Jednoznačné v rámci jedné L2 domény
–
pro servisní protokoly, směrovací protokoly, autokonfiguraci Eliminuje potřebu “L2+” protokolů ● Vše neseno v IPv6 paketech Možnost komunikace i před přidělením globálně jednoznačné adresy
– – ●
48b prefix sítě (typická délka) 16b subnet ID (není nutný VLSM) 64b interface ID (dostatek potenciálních adres na segmentu)
Unique local address (fc00::/7) – – –
Jednoznačné v rámci jedné administrativní domény ● směrovatelné i mezi skupinou spolupracujících sítí obdoba privátních adres IPv4 nahrazují původní “site-scope” adresy
Typy adres v IPv6 ● ● ●
Individuální (unicast) Skupinové (multicast) Výběrové (anycast) – “nejbližší” člen skupiny (z pohledu routingu) – z hlediska formátu nerozpoznatelné od unicast adres – stejný princip lze aplikovat i u IPv4 IPv6 nemá adresy typu broadcast ! (nahrazeno multicastem)
Zápis IPv6 adres ●
Standardní zápis FEDC:BA98:7654:1230:FECD:BACD:7546:3210
●
Zkrácené zápisy –
Mějme adresu 2001:0718:1001:0000:0000:69ff:fe06:e407
–
Zkrácení počátečních nul 2001:718:1001:0:0:69ff:fe06:e407
–
Vynechání nul 2001:718:1001::69ff:fe06:e407
Prefixy sítí ●
Příslušnost k dané síti je dána prefixem –
všechna rozhraní na jedné síti mají stejný prefix ●
–
●
(popř. více stejných prefixů)
podobné jako IPv4 CIDR
Zápis ve formě IPv6_prefix / délka_prefixu
Speciální IPv6 adresy ● ● ●
●
::/128 – unspecified address ::1/128 - loopback ::ffff:0:0/96 – IPv4 mapped addresses – Poslední 4 bajty jsou IPv4 adresou ● Příklad zápisu: 0:0:0:ffff:0:0:158.196.158.77 Adresy pro mechanismy přechodu (příklady) – 2001::/32 ● Teredo tunneling – 2002::/16 ● 6to4 tunneling
Skupinové adresy (FF00::/8) 8b 11111111
●
4b 000T
4b rozsah
112 b skupinová adresa
Význam bitu T 1 – trvalé přiřazení 0 – dočasné přiřazení
●
Význam rozsahu 1 – lokální uzel, 2 – linka, 3 – subnet, 5 – místo, 8 – organizace, E – globální
●
“Unicast-prefix based” multicast adresy ●
2^32 alokovatelných multicast adres odvoditelných z globálního unicast prefixu (a jeho délky)
Embedded-RP multicast adresy
Některé rezervované skupinové adresy ●
FFxx::1 – všechny stanice (počítače i směrovače)
●
FFxx::2 – všechny směrovače
●
FFxx::9 – všechny směrovače provozující RIPNG
●
a další...
Identifikátor rozhraní - modifikované EUI-64 ● ●
Používáno pro autokonfiguraci adres pro Ethernet (a varianty) mezi 3. a 4. bajt MAC adresy se vloží 16 bitů FFFE
Povinné adresy rozhraní ●
Koncová stanice – – – – – –
●
lokální linková adresa (FE80::...) všechny individuální adresy lokální smyčka (::1) skupinová adresa pro všechny uzly (FF01::1) skupinová adresa pro vyzývaný uzel pro všechny přidělené individuální (a příp. výběrové) adresy všechny skupinové adresy
Směrovač – – –
výběrová adresa pro směrovače v podsíti všechny výběrové adresy, které byly přiděleny skupinová adresa pro všechny směrovače (FF05::2)
ICMPv6 (Integrace IPv4 ICMP + ARP + IGMP )
Zpráva ICMPv6 ●
nejvyšší bit typu 0 – chyba 1 – informační
8 b
8 b
16 b
Typ
Kód
Kon tr oln í sou če t Tě lo zp r á vy
ICMPv6 typy a kódy I typ 1 1 1 1 2 3 3 3 4 4 4 4
kód popis 0 1 3 0 0 1 0 1 2
nedoručitelný datagram ve směrovací tabulce neex. směr pro adresu spojení s cílem je administrativně uzavřeno nedosažitelná adresa příliš velký datagram čas vypršel dosažen max. počet hopů vypršel čas na sestavení datagramu z fragmentů
chybný parametr chybné pole v záhlaví nepodporovaný typ v poli hlavička nepodporovaná volba
ICMPv6 typy a kódy II typ
kód popis
128 129 133 134 135 136 137
0 0 0 0 0 0 0
žádost o echo echo žádost o směrování oznámení o směrování žádost o linkovou adresu (náhrada ARP) oznámení o linkové adrese (náhrada ARP) změň směrování
Neighbor Discovery
●
●
ARP/INARP, autokonfigurace adresy, výběr default GW, duplicate address detection (DAD) Neighbor Solicitation/Neighbor Advertisement – –
Náhrada ARP Zasíláno na multicast adresu odvozenou z hledané IPv6 adresy (Solicited-Node Address) ● ●
– ●
Prefix FF02::1:FFxx:xxxx/104 Posledních 24b převzatých z nejnižších 24b IPv6 adresy
FSM pro udržování sousedství
Router Solicitation/Router Advertisement – –
Propaguje linkové prefixy a jejich preference (životnosti) Podpora pro automatickou konfiguraci
Poznámka: Proxy ARP omezen z důvodu nutnosti provozu interface v promisc módu –
poslech Neighbor Solicitation pro všechny možné adresy
DNS a IPv6 ● ●
●
RFC 3596 (vychází z RFC 1886) Adresy typu AAAA – konstrukce se záznamy typu A6 odnačeny jako experimental ● Nepřímé odkazy na částí prefixů pro usnadnění přeadresování sítě Reverzní záznamy v doméně ip6.arpa:
michelle IN
AAAA 2001:718:1001:9e:a00:69ff:fe06:e407
zone "1.0.0.1.8.1.7.0.1.0.0.2.IP6.ARPA": 7.0.4.e.6.0.e.f.f.f.9.6.0.0.a.0.e.9.0.0 michelle.vsb.cz.
IN
PTR
Podpora v OS ●
*BSD KAME Project – www.kame.net
●
Linux standardní jádro USAGI Project – www.linux-ipv6.org
●
Microsoft Windows starší než 2000 – podpora IPv6 není a nebude 2000 – stáhnout a instalovat záplatu XP,Vista, Win 7 – integrováno (vč. tunelovacích mechanismů)
Směrování v IPv6 ●
Stejné principy jako u IPv4 –
V IPv6 od začátku kladen důraz na agregovatelnost adres ●
●
Sousedské vazby typicky navazovány na lokálních linkových adresách – – –
●
V Internetu nicméně dnes i IPv6 PI adresy
Rozhraní může mít více globálních adres – kterou jinak zvolit ? Vazby zůstanou zachovány i při přeadresování sítě Nutnost explicitního ošetření pri předávání next-hopu na nesousední směrovač (EBGP do IBGP)
Load-balancing (per-flow) –
router musí být schopen počítat hash z vhodných polí IPv6 hlavičky
Směrovací protokoly pro IPv6 ●
IGP: –
●
RIP-NG, OSFPv3, IS-IS, (“EIGRPv6”)
EGP: –
BGPv4+ (Multiprotocol BGP) ● ●
●
Adresní prefixy šířeny jako NLRI atribut Další závislost na IPv4 adresách pouze v atributech NEXT-HOP (redefinováno) a AGREGATOR (ponecháno IPv4 ID) Samotná transportní relace může být IPv6 nebo IPv4
Router ID často v “IPv4 stylu” ● Odvození z IPv4 adresy interface (pokud je), jinak nutno konfigurovat manuálně
OSPFv3 ●
Nekompatibilní s OSPFv2 ●
●
Adresní schema 3. vrstvy odděleno od topologické informace (nové typy LSA) –
● ●
Zprávy neseny v paketech IPv6
podpora více prefixů na interface
Nové typy LSA Extenze pro paralelní propagování síťových adres různých rodin ve vývoji –
s ohledem na obecnost (ne všechny segmenty mají adresy všech typů, např. při migraci) vede na multitopology routing
Integrated IS-IS ●
Topologická informace a výpočet nejkratších cest z principu odděleny od adresního schematu na L3 –
●
●
Zprávy IS-IS šířeny v L2 rámcích
Lze provozovat v režimu single-topology (IPv4+ IPv6) nebo multi-topology (IPv4/IPv6) se samostatnými metrikami linek V praxi používáno u některých ISP
Tunnelling ●
Statické tunely –
●
GRE, ipv6ip
Dynamické tunely –
6to4, ISATAP, ... ●
obvykle svázány se statickým routigmen
IPv6 QoS ●
IntServ –
Rozšíření RSVP o přenos adres IPv6 ●
●
od začátku koncipováno obecně
Diffserv –
Pole IPv6 Traffic Class zpracováváno stejně jako IPv4 DSCP ●
Alternativně lze použit Flow Label, pokud zdroj vyplňuje –
–
V praxi zatím téměř neimplementováno
IPv6 musí být zohledněno v klasifikačních mechanismech typu NBAR apod.
Další ● ● ●
●
●
Podpora vícenásobných adres DHCPv6, prefix delegation (DHCP-PD) Mobile IP – Home Agent, Correspondent Node, Care-of Address Bezpečnost IPv6 – IPSec původně vyvinut pro IPv6, na IPv4 “backportován” – Hlavičky AH/ESP, protokol ISAKMP/IKE Připojení/propojení IPv6 sítí a izolovaných IPv6 strojů – – – – –
dual-stack hosts, IPv4-kompatibilní adresy statické tunely dynamické tunely – tunnel broker, 6to4, Teredo, ISATAP MPLS - 6PE NAT-PT
Literatura ●
Satrapa Pavel: IPv6 Neocortex, Praha 2002, ISBN 80-86330-10-9 + aktualizované vydání (2008)
●
Dostálek Libor, Kabelová Alena: Velký průvodce protokoly TCP/IP a systémem DNS Computer Press, Praha 2000, ISBN 80-7226-323-4