PA160 Protokol IPv6 Motivace Proč nový protokol: Nedostatek adresního prostoru Autokonfigurace Bezpečnost Podpora nových služeb včetně mobility PA160 2 Jaro 2003 Adresní prostor IPv4 Studie z roku 1990 Vyčerpání B adres v roce 1994 Řešení CIDR (spojování C adres) Podstatná část adresního prostoru A adres nevyužita Stav 2000: cca 40 % adresního prostoru stále volné PA160 3 Jaro 2003 Alokace adresního prostoru IPv4 IPv4 Address SpaceIPv4 Address Space IPv4 Address Space IANA Allocation 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241 251 Address space (/8 unit) Allocation(0or1) The figure shows the Internet Assigned Numbers Authority (IANA)PA160 4 Jaro 2003 Současný stav Následná studie (1992) K vyčerpání adresního prostoru dojde v letech 2005­2011 Dostatek času na vytvoření nového protokolu PA160 5 Jaro 2003 Historie IPv6 1990 Predikce vyčerpání v roce 1994 1991 Vytvořena skupina ROAD pro směrování 1992 Vyčerpání až v letech 2005­2011 1993 Výzva pro návrhy IPng (RFC 1550) 1994 Vznikla pracovní skupina IPng 1995 První specifikace IPv6 (RFC 1883) 1996 Vzniká 6bone 1997 První návrh adresního formátu ,,poskytovatele`` 1998 První IPv6 výměnný bod: 6tap 1999 Vytvořeno IPv6Forum, přiděleny IPv6 prefixy 2000 Podpora IPv6 ve standardních výrobcích 2002 Nativní IPv6 mezinárodní páteř (6NET) PA160 6 Jaro 2003 IPv5 Experimentální streamovací protokol Využívá IPv4 Cílem zajistit QoS v IP sítích: rezervace zdrojů Nahrazen jinými přístupy (RSVP, DiffServ) RFC 1190 a RFC 1819 PA160 7 Jaro 2003 Adresní prostor IPv6 128 bitů, tj. 2128 různých adres (15 000 adres na čtvereční metr Země) Adresuje se rozhraní (interface), nikoliv uzel Adresní model: Unicast Anycast Multicast (nahrazují současně broadcastové adresy z IPv4) PA160 8 Jaro 2003 Reprezentace adresního prostoru Doporučená forma: Definována v RFC 1884 a má tvar: X:X:X:X:X:X:X:X Každé X reprezentuje hexadecimální hodnotu příslušných 16 bitů adresy Příklad: FEDC:BA98:7654:3210:FEDC:BB88:1234:8FFF Komprimovaná forma: Používá :: na kompresi nulové části adresy :: lze použít v adrese nejvýše jednou (expanze) Příklady: 1080:0:0:0:8:800:2:44AA na 1080::8:800:2:44AA 0:0:0:0:0:0:0 na :: 0:0:0:0:0:0:1 na ::1 FF01:0:0:0:0:0:15 na FF01::15PA160 9 Jaro 2003 Reprezentace adresního prostoru II Smíšená forma: Pro prostředí s IPv6 i IPv4 uzly Tvar: X:X:X:X:X:X:D.D.D.D X jako výše, D.D.D.D je standardní IPv4 adresa Příklady: 0:0:0:0:0:0:147.251.7.18 nebo ::147.251.7.18 0:0:0:0:0:FFFF:13.1.68.5 nebo ::FFFF:13.1.68.5 PA160 10 Jaro 2003 Adresní prefixy Analogie s IPv4 IPv6 adresa/délka prefixu Příklady 12AB:0000:0000:CD30:0000:0000:0000:0000/60 12AB::CD30:0:0:0:0/60 12AB:0:0:CD30::/60 12AB:0:0:CD30/60 RFC 2373 PA160 11 Jaro 2003 Alokace IPv6 adres Alokace Prefix (bin) Část prostoru Reservováno 0000 0000 1/256 Volné 0000 0001 1/256 NSAP 0000 001 1/128 IPX 0000 010 1/128 Volné 0000 011 1/128 Volné 0000 1 1/32 Volné 0001 1/16 Adresy ISP 001 1/8 Volné 010 1/8 Volné 011 1/8 PA160 12 Jaro 2003 Alokace IPv6 adres ­ pokračování Alokace Prefix (bin) Část prostoru ,,Geografické`` adresy 100 1/8 Volné 101 1/8 Volné 110 1/8 Volné 1110 1/16 Volné 1111 0 1/32 Volné 1111 10 1/64 Volné 1111 110 1/128 Volné 1111 1110 0 1/512 Link-local-use 1111 1110 10 1/1024 Site-local-use 1111 1110 11 1/1024 Multicast 1111 1111 1/256 PA160 13 Jaro 2003 Unicastové adresy Tři základní typy: Adresy ISP (provider-based): Adresy, které dále přiděluji ISP Site-local-use: Interní adresy organizace nepřipojené na Internet. Umožní následné snadné připojení bez nutnosti přečíslování. Nesměrují se mimo organizaci. Link-local-use: Pro individuální použití na konkrétním spoji. Nesměrují se. Podrobnosti v RFC 1887 PA160 14 Jaro 2003 Formát unicastových adres Hierarchická struktura (může být ignorována koncovým uzlem) Základní hierarchie: n bitů prefix, 128-n bitů ID rozhraní Podrobnější hierarchie: n bitů prefix poskytovatele, 80-n bitů ID podsítě, 48 bitů ID rozhraní Další zjemnění: s bitů prefix poskytovatele, n bitů ID oblasti, m bitů ID podsítě, 128-s-n-m bitů ID rozhraní PA160 15 Jaro 2003 Speciální adresy Nespecifikovaná: :: (samé nuly) Nesmí byt použita jako cílová Použití při hledání vlastní adresy Loopbask: ::1 Pouze pro virtuální rozhraní Nesmí být poslána mimo uzel PA160 16 Jaro 2003 Soužití s IPv4 Vnořené IPv4 adresy Pro tunelování: ::D.D.D.D IPv4 mapované IPv6 adresy: ::FFFF:D.D.D.D Používá se, pokud IPv4 uzel nezná IPv6 adresy PA160 17 Jaro 2003 ISP adresy Definovaná struktura: 3 bity určují adresu (010) n bitů (zpravidla 13) je Adresa registrační autority (TLA ID) m bitů (zpravidla 32) je ISP (NLA ID) o bitů (zpravidla 16) je uživatel (organizace, či ,,subscriber``) (SLA ID) Zbývajících 125-n-o-m bitů (=64) je vnitřní záležitostí uživatele PA160 18 Jaro 2003 Příklady ISP adres CESNET: 2001:718::/32 CERN: 3FFE:8130::/28 Nokia: 3FFE:8130::/28 Microsoft: 3FFE:8310::/28 POZMAN: 3FFE:8320::/28 PA160 19 Jaro 2003 Adresy pro lokální použití Link-local: Pouze lokální spojení Hledání/přiřazení adresy Žádné směrovače Není nikdy směrována mimo lokální spojení Site-local: Při neznalosti lokálního prefixu Nesmí být směrována mimo lokalitu (site) PA160 20 Jaro 2003 Anycast Jedna unicastová adresa přiřazena více rozhraním Pakety jsou doručeny na nejbližší rozhraní Syntakticky neodlišitelné od unicastových adres Každý uzel, jehož rozhraní má anycastovou adresu, to musí vědět Globální anycast: Prázdný společný prefix Náročné na směrování Nepoužívat Anycast na úrovni aplikací: v pozdější přednášce PA160 21 Jaro 2003 Anycast v IPv6 Anycastovou adresu může mít pouze rozhraní směrovače Anycastová adresa se nesmí použít jako zdrojová adresa IPv6 paketu Využití Označuje skupinu směrovačů Předefinovaná anycastová adresa: n bitů subnet prefix a 128-n bitů nulových Musí být podporována všemi směrovači na dané podsíti Použití: potřeba komunikace se skupinou vzdálených směrovačů PA160 22 Jaro 2003 Multicast Základní struktura: 8 bitů jedniček, 3 bity nulové, T bit, 4 bity rozsahu. T bit: 0 odpovídá permanentní, obecně známé multicastové adrese Rozsah: 1 lokální uzel 2 lokální spojení 5 lokální vzhledem k místu (site) 8 lokální pro organizaci E globální rozsah PA160 23 Jaro 2003 Multicastové známé adresy DHCP server/relay: FF02::C Všechny směrovače: FF01::2 a FF02::2 Všechny uzly: FF01::1 a FF02::1 Nabízená (solicited) adresa uzlu: FF02::1:X:X, kde X:X je (předpokládaná) unicastová adresa PA160 24 Jaro 2003 Identifikace uzlu Každý uzel musí rozeznat řadu adres: link-local adresa vlastní unicastová adresa multicast pro všechny uzly nabízená (solicited) multicastová adresa Router navíc musí rozeznat subnet-router anycastovou adresu multicast pro všechny směrovače PA160 25 Jaro 2003 DNS pro IPv6 RFC 1886 Nový formát: AAAA (typ číslo 28) IPv6 adresa (128 bitů, nejvyšší byte nejdříve) Délka prefixu (8 bitů) Doménové jméno podsítě (nesmí být uvedeno, pokud je délka prefixu 0). Optimalizováno pro čtení PA160 26 Jaro 2003 DNS pro IPv6 ­ A6 RFC 2784 Nový formát: A6 (typ číslo 38) Délka prefixu (8 bitů) IPv6 suffix (0­128 bitů, nejvyšší byte nejdříve, nemá být uveden, je-li délka prefixu rovna 128) Doménové jméno podsítě (nemá být uvedeno, je-li délka prefixu 0) Snadná koexistence s AAAA (nadmnožina funkcionality) Adresa skládána postupně Optimalizováno pro zápis PA160 27 Jaro 2003 Hlavička IPv6 truktura IPv6 packetů PA160 28 Jaro 2003 Hlavička IPv6 ­ diskuse Verze je rovna 6 Třída provozu (občas též priorita) 0 Obecný provoz 1 Výplňová data (news) 2 Nehlídaná data (e-mail) 3 Reservováno 4 Hlídaný souvislý přenos dat (ftp) 5 Reservováno 6 Interaktivní provoz (ssh) 7 Řídící data (SNMP) PA160 29 Jaro 2003 Hlavička IPv6 ­ další pole Značka toku (24 bitů) Nová položka hlavičky Určena primárně pro real-time provoz Definuje proud dat, kde všechny pakety mají získat jednotné zpracování sítí Vlastní nastavení cesty nezávislé (např. RSVP) Nebezpečí zavedení stavu do směrovačů PA160 30 Jaro 2003 Hlavička IPv6 ­ další pole Maximální počet skoků Analogie TTL, avšak pouze na počet průchodů směrovači Další hlavička identifikuje typ hlavičky za IPv6 hlavičkou Může jít o AH nebo ESH (IPsec) Analogie pole ,,Protokol`` IPv4 Délka dat Každý spoj musí být schopen přenést paket délky 576 (536 užitečný) Maximálně 65535 bytů 0 značí využití Jumbo paketů PA160 31 Jaro 2003 Fragmentace Hledání maximální délky paketu RFC 1981 Unicast nebo multicast paketem konkrétní délky Při odpovědi Packet too big (ICMPv6) snížení velikosti Není povinné (může použít délky 576 bytů) Není možná fragmentace po cestě Je možná fragmentace vysílajícím uzlem PA160 32 Jaro 2003 Protokol průzkumu okolí Neighbor Discovery Protocol RFC 2491 Cílem je zjistit: Směrovače na lokální síti Prefix lokální sítě Parametry (např. MTU) Vlastní adresu (autokonfigurace) (Linkovou) adresu souseda (když zná jeho IP adresu) Adresu pro další přenos (next hop) Nedostupnost souseda (uzel nebo směrovač) Duplicitní adresy PřesměrováníPA160 33 Jaro 2003 Základní vlastnosti Založen na ICMPv6 protokolu 5 speciálních typů paketů Nabídka a ohlášení směrovače Nabídka a ohlášení souseda Přesměrování PA160 34 Jaro 2003 Router Solicitation Poslána po zapojení/aktivaci rozhraní Ostatní směrovače musí odpovědět ohlášením (Advertisement) Uzly tyto pakety ignorují Podmínky přijetí směrovačem Max počet skoků je 255 Korektní autentizace (má-li AH) Korektní kontrolní součet ICMP kód má hodnotu 0 ICMP má délku 8 nebo více bytů Všechny použité volby mají nenulovou délku PA160 35 Jaro 2003 Router Solicitation ­ formát Jednotlivá pole IPv6 hlavičky: Max počet skoků je 255 Priorita je 15 Zdrojová adresa je buď unicastová adresa nebo nespecifikovaná adresa Cílová adresa je zpravidla multicastová adresa směrovačů Pole ICMP paketu Type 133 Code 0 Může obsahovat spojovou adresu odesilatele, je-li známa PA160 36 Jaro 2003 Router Advertisement Pravidelně posílaná informace o směrovači řada specifické informace, zejména MTU Prefixy Spojová adresa rozhraní Uzly zpracovávají tuto informaci a staví si interní cache Může jít i o vyžádanou reakci na Router Solicitation V tomto případě obsahuje veškerou volitelnou informaci (zejména všechny validní prefixy) PA160 37 Jaro 2003 Router Advertisement ­ formát IPv6 hlavička Max počet kroků je 255 Priorita je 15 Zdrojová adresa je spojová adresa odesílajícího rozhraní Cílová adresa buď multicast pro všechny uzly nebo unicast toho, kdo poslal router solicitation PA160 38 Jaro 2003 Router Advertisement ­ ICMP hlavička Typ je 134 Code je 0 Počet kroků: doporučená hodnota pro odcházející pakety (0 znamená nespecifikováno) M bit: 1 znamená použití stavového algoritmu autokonfigurace adresy O bit: 1 znamená použití stavového algoritmu autokonfigurace ostatních parametrů (Other) Router Lifetime: pro default směrovač, jinak 0 (udává se v sekundách) PA160 39 Jaro 2003 Router Advertisement ­ ICMP hlavička II Reachable Time: Počet milisekund po něž je soused dostupný (0 znamená nespecifikováno) Retrans Timer: počet milisekund mezi retransmisemi Neighbor Solicitation paketů (0 znamená nespecifikováno) Dodatečné hodnoty: např. MTU, spojová adresa odesilatele, informace o prefixech platných pro daný spoj (obsluhovaných směrovačem) PA160 40 Jaro 2003 Router Advertisement ­ podmínky přijetí Zdrojová IP adresa je link-local adresa Max počet kroků je 255 ICMP kód je 0 Délka ICMP paketu je 16 bytů Všechny použité volby mají nenulovou hodnotu PA160 41 Jaro 2003 Neighbor Solicitation Použití Zjištění spojové adresy souseda nebo cílového uzlu Poskytnutí vlastní linkové adresy cílovému uzlu Zjištění dosažitelnosti (reachability) cílového uzlu Zjištění spojové adresy multicastem Zasíláno na nabízenou (solicited) multicastovou adresu Cílový uzel vrací svou spojovou adresu unicastem (Neighbor Adevrtisement) Zjištění duplicitních adres (RFC 1971) PA160 42 Jaro 2003 Unicast versus multicast Uzel posílá Neighbor Solicitation multicastem pokud potřebuje zjistit adresu Uzel posílá Neighbor Solicitation unicastem pokud potřebuje ověřit dostupnost PA160 43 Jaro 2003 Neighbor Solicitation ­ formát IPv6 hlavička Max počet kroků je 255 Priorita je 15 Zdrojová adresa je IP adresa odesílajícího rozhraní Nespecifická adresa (::), pokud se jedná o detekci duplicit Cílová adresa: buď nabízená multicast adresa cíle nebo přímo adresa cíle PA160 44 Jaro 2003 Neighbor Solicitation ­ ICMP formát Type 135 Code 0 Zdrojová spojová adresa odesílatele, je-li známa Povinné (pokud existuje) v multicastových zprávách Doporučené v unicastových zprávách PA160 45 Jaro 2003 Neighbor Solicitation ­ podmínky přijetí Max počet kroků je 255 ICMP kód je 0 Délka ICMP paketu je 24 a více bytů Cílová adresa není multicastová adresa Všechny použité volby mají nenulovou hodnotu PA160 46 Jaro 2003 Neighbor Advertisement Uzel tak reaguje na Neighbor Solicitation zprávu Je možno zasílat i nevyžádáné zprávy ­ oznamují změnu linkové adresy uzlu PA160 47 Jaro 2003 Neighbor Advertisement ­ formát IPv6 hlavička Max počet kroků je 255 Priorita je 15 Zdrojová adresa je IP adresa odesílajícího rozhraní Cílová adresa pro vyžádané oznámení může být Adresa uzlu, který zaslal původní Neighbor Solicitation zprávu Multicastová adresa všech (lokálních) uzlů pokud původní adresa byla ,,nespecifikována`` Cílová adresa nevyžádaného oznámení je multicastová adresa všech uzlů PA160 48 Jaro 2003 Neighbor Advertisement ­ ICMP formát Type 136 Code 0 R bit: je-li nastaven indikuje, že odesilatelem je spěrovač S bit: je-li nastaven indikuje, že se jedná o vyžádanou zprávu (odpověď na Neighbor Solicitation) O bit: Override bit (přepsání). Je-li nastaven, zaslaná informace má přepsat linkovou adresu v lokální yrovnávací paměti (jinak se tato informace nepřepisuje). Měl by být nastaven u všech nevyžádaných zpráv a u těch vyžádaných, které nejsou zasílány na anycastovou adresu. PA160 49 Jaro 2003 Neighbor Advertisement ­ ICMP formát II Cílová adresa: u vyžádaných je to cílová adresa toho, kdo si zprávu vyžádal, u nevyžádaných zpráv je to adresa uzlu, jehož linková adresa se změnila. Nikdy to nesmí být multicastová adresa. Volby: pokud uzel má přidělenu linkovou adresu, musí být zahrnuta PA160 50 Jaro 2003 Neighbor Advertisement ­ podmínky přijetí Max počet kroků je 255 ICMP kód je 0 Délka ICMP paketu je 24 a více bytů Cílová adresa není multicastová adresa Je-li cílová adresa IP hlavičky multicast, pak S bit nesmí být nastaven Všechny použité volby mají nenulovou hodnotu PA160 51 Jaro 2003 Automatická konfigurace adres Dva typy automatické konfigurace adres Stavová ­ `a la DHCP Bezstavová Vzájemně se doplňují Uzel může použít bezstavovou autokonfiguraci k určení vlastní adresy Uzel může použít stavovou autokonfiguraci (DHCP) pro zjištění adres sousedních uzlů PA160 52 Jaro 2003 Bezstavová autokonfigurace Kombinuje Lokálně dostupnou informaci Informaci propagovanou směrovači Směrovač oznamuje prefix (podsíť), ten je spojen s lokálně generovanou adresou (např. MAC adresa nebo její jedinečný hash) RFC 1971 ,,IPv6 Stateless Address Autoconfiguration`` PA160 53 Jaro 2003 IPv6 mobilita IETF draft ,,Mobility support in IPv6`` ( Únor 2003) Problém: Naivní odpojení se a nové zapojení do sítě nese s sebou potenciální změnu IP adresy, což znemožňuje kontinuální činnost všech vyšších protokolů Principy řešení: Stabilní Domovská adresa Uzel komunikuje prostřednictvím této domovské adresy Nezávislá na způsobu připojení Změna umístění uzlu ,,neviditelná`` pro vyšší transportní vrstvy PA160 54 Jaro 2003 Základní pojmy Domovská adresa: odpovídá ,,domácímu`` (výchozímu) umístění uzlu care-of adresa: konkrétní IPv6 adresa, kterou uzel získá při pohybu Může mít více care-of adres současně Musí být ustavena vazba (binding) mezi každou přidělenou care-of adresou a domovskou adresou uzlu Komunikující uzly jsou nazývány odpovídajícími (correspondent) Odpovídající uzel se může dovědět aktuální care-of adresu prostřednictvím odpovídající vazby (correspondent binding procedure) PA160 55 Jaro 2003 Mobilní směrování ­ dva přístupy Přes domovskou adresu Používá domovského agenta (směrovač) Využívá proxy Neighbor Discovery pro zachycení paketů určených pro mobilní uzel Obousměrné tunelování přes domovský směrovač Využívá IPv6 zapouzdření pro přenos dat (tunelování) Pomocí optimalizace cesty PA160 56 Jaro 2003 Mobilní směrování ­ optimalizace cesty Vyžaduje registraci (vazbu) care-of adresy u odpovídajícího uzlu Lokální cache vazeb na každém uzlu Použití speciální (care-of) směrovací hlavičky odesílaných paketů Obsahuje domovskou adresu mobilního uzlu Zajišťuje transparenci pro vyšší přenosové vrstvy Zabraňuje zahlcení domovského agenta (pro více mobilních uzlů) PA160 57 Jaro 2003 Rozšíření Podpora pro Vícenásobné domovské agenty Rekonfiguraci domovské sítě Umožňuje Zjištění adresy domovského agenta Zjištění stavu, kdy se změní domovský prefix PA160 58 Jaro 2003 Zabezpečení Nebezpečí podvržení vazby mezi domovskou a care-of adresou Return routability procedure Ověří, že nabídnutá care-of adresa patří deklarovanému uzlu Využívá dvojici zpráv Home test Init a Care-of test Init zasílaných mobilním uzlem První jde přes domovského agenta Druhá jde přímo odpovídajícímu uzlu Uzel odpoví dvěma zprávami Home test a Care-o test Opět každá jde jinou cestou PA160 59 Jaro 2003 Return routability procedure Struktura Home test Init zprávy: Domovská adresa jako zdrojová Adresa odpovídajícího uzlu jako cílová Home test init cookie (64 bitová hodnota) Tunelována před domovského agenta Struktura Care-of test Init zprávy: Care-of adresa jako zdrojová Adresa odpovídajícího uzlu jako cílová Care-of test init cookie (64 bitová hodnota) Jde přímou cestou PA160 60 Jaro 2003 Reakce odpovídajícího uzlu Struktura Home test zprávy: Zdrojová adresa je adresou odpovídajícího uzlu Cílová adresa je domovská adresa mobilního uzlu Home init cookie, home keygen value, home nonce index Tunelována před domovského agenta Struktura Care-of test zprávy: Zdrojová adresa je adresou odpovídajícího uzlu Cílová adresa je care-of adresa mobilního uzlu Care-of init cookie, care-of keygen value, care-of nonce index PA160 61 Jaro 2003 Generování kryptografických dat home keygen token (80 bitů):= First (64, HMAC SHA1 (Kcn, (home address | nonce | 0))) care-of keygen token (80 bitů):= First (64, HMAC SHA1 (Kcn, (care-of address | nonce | 1))) Kcn je interní klíč odpovídajícího uzlu Mobilní uzel pak spojí oba keygen tokeny a vytvoří vlastní klíč: Kbm = SHA1 (home keygen token | care-of keygen token) Klíč pro odpojění (zrušené existující vazby) je: Kbm = SHA1 (home keygen token) PA160 62 Jaro 2003 Autorizace vazby Mobilní uzel zašle Binding Update (BU) zprávu: care-of adresa jako zdrojová adresa odpovídajícího uzlu jako cílová Parametry: Domovská adresa Pořadové číslo (BU) zprávy home nonce index care-of nonce index HMAC SHA1 (Kbm, (care-of address | CN address | BU)) Odpovídající uzel si spočte Kbm (z nonce indexů) a ověří platnost vazby; tu následně zanese do své vyrovnávací paměti PA160 63 Jaro 2003 Binding Acknowledgment (BA) Zasílá odpovídající uzel Není povinné Používá se pro indikaci chyby (např. po rebootu) Struktura: Zdrojová a cílová adresa je zřejmá HMAC SHA1 (Kbm, (care-of address | CN address | BA)) PA160 64 Jaro 2003 Činnost domovského agenta Udržuje vazebnou cache a seznam domovských agentů Zpracovává vazby Primární care-of adresa Změna (přeregistrace) care-of adresy Smazání care-of adresy Zpracování paketů Podpora nalezení adresy domovského agenta Rekonfigurace (změna prefixu) domovské sítě PA160 65 Jaro 2003 Domovský uzel ­ zpracování paketů Zachytávání paketů pro mobilní uzly Neighbor advertisement jménem mobilního uzlu Zpracování zachycených paketů Tunelování paketů na care-of adresu Nepřesílá pakety pro link-local adresu mobilního uzlu Pouze multicastové pakety s globláním rozsahem jsou přeposílány Podpora zápisu do multicastových skupin DHCPv6 pro mobilní uzly Přeposílání poketů z mobilních uzlů (obrácený tunel) Ochrana Return Routability paketů PA160 66 Jaro 2003