Daniel Stenberg, Contactor Data AB 2 Oktober, 2000 IPv6 - vad, hur, varför? Daniel Stenberg, Contactor Data AB 2 Oktober, 2000 IPv6 - Daniel Stenberg
Varför IPv6? IPv6 - Daniel Stenberg
Livet innan IP ALG Application Layer Gateways behövs för all kommunikation mellan olika nätverk. Svår att införa nya ”inter-wide” applikationer, ALG bestämmer Dynamisk routing runt fel fungerar inte Svårt att hitta orsaker och lösningr vid end-to-end problem Svårt att hitta fel/problem IPv6 - Daniel Stenberg
Att använda IP IP IP IP IP Enkelt och applikationsoberoende Oberoende av transportlager Stateless routing kan gå runt fel End-users kan införa nya applikationer gobalt utan att ”nätet” känner till dem IPv6 - Daniel Stenberg
Internet idag NAT-ALG NAT-ALG NAT-ALG IP Svårt att införa internet-wide applikationer Många statiska routar hindrar dynamisk routning runt fel Peer-to-peer i många fall helt omöjligt Applikations-specifika, ad-hoc, lösningar IPv6 - Daniel Stenberg
Finns det inte många IPv4-adresser kvar? Ungefär hälften av IPv4-utrymmet är utdelat - hur lång tid tar det att dubbla antalet IP-användare? IPv4-adresser är rationaliserade - användningsstatistik visar inte den riktiga användningen eller svårigheterna som skapas av att det inte finns fler - svårigheterna att få IP-adresser är anledningen till de flesta NAT-ALG som finns idag Nya sorters apparater med IP-adresser kommer inte kunna hanteras ordenligt av NAT (telefoner, bilar, etc) IPv6 - Daniel Stenberg
Sned fördelning av adresser IBM, 33 miljoner adresser Stanford University, 17 miljoner adresser US government, 168 miljoner adresser Hela Kina, 9 miljoner adresser Vad händer när asien ”vaknar”? IPv6 - Daniel Stenberg
Varför räcker inte NATs till? De fungerar inte för ett stort antal ”servers” som blir ”kontaktade” av andra. T.ex IP-telefoner. De omöjliggör multicast och mobile IP De förstör för många existerande applikationer De hindrar införandet av nya applikationer De är störande för prestanda, robusthet och säkerhet på Internet IPv6 - Daniel Stenberg
Kan vi inte göra bättre NATar? Vi kan patcha bort flera av problemen genom att lägga till nya protokoll - kan öka funktionalitet, men ökar komplexitet, ömtålighet, göra det mer svårhanterligt etc - nya problem kommer när vi behöver ”inter-ISP” NATar… Det räcker med att göra en sak (byta till IPv6) istället för att göra många förändringar för att Internet skall kunna fortsätta växa, fungera och utvecklas. IPv6 är inte den enda möjligheten, men det är den som är mest mogen, möjlig och har flest anhängare IPv6 - Daniel Stenberg
Vad är IPv6? IPv6 - Daniel Stenberg
IPv6 header Version Traffic Class Flow Label Payload Length Next Header Hop Limit 128 bitar Source Address 128 bitar Destination Address 32 bitar IPv6 - Daniel Stenberg
32 bit Destination Address IPv4 header Version Hdr Len Prec TOS Total Length Identification Flags Fragment Offset Time to Live Protocol Header Checksum 32 bit Source Address 32 bit Destination Address Protocol Padding 32 bitar Skuggade fält finns inte med i IPv6 headern IPv6 - Daniel Stenberg
Skillnader mellan IPv4 och IPv6 headers Adresser förstorade från 32 till 128 bitar Fragmentering flyttad från grundheadern Options flyttade från grundheadern Header checksum är borttagen Header-längd fältet är borta Flow Label inlagd (QoS) Time to Live har blivit Hop Limit Protocol är istället Next Header Precedence och TOS blir Traffic Class Längdfältet exkluderar IPv6 headern Alignment ändrad från 32 till 64 bitar IPv6 - Daniel Stenberg
MTU i IPv6 Minsta länk MTU för IPv6 är 1280 octets (är 68 för IPv6) - länkar med mindre MTU måste sköta det på ett länk-specifikt sätt Implementationer förväntas genomföra ”path MTU discovery” för att skicka paket större än 1280 En ”Hop-by-Hop” Option stödjer överföring av s k ”jumbograms” med upp till 232 octets payload IPv6 - Daniel Stenberg
Fragmentering av IP-paket I IPv6 sköts det av en Fragment Header IPv6 fragmentering och defragmentering är en end-to-end operation, routers delar inte upp paket på vägen och ifall ett paket är för stort skickas ett ”packet too big” ICMP tillbaks IPv6 - Daniel Stenberg
Hur skrivs IPv6-adresser? IPv6 - Daniel Stenberg
Adresstyper multicast (en till många) anycast (en till närmast) unicast (en till en) - global - link-local - site-local - compatible (IPv4) multicast (en till många) anycast (en till närmast) reserverade IPv6 - Daniel Stenberg
Adresstypernas prefix Alla andra prefix är reserverade (ungefär 7/8 av alla) anycast-adresser allokeras med unicast prefix IPv6 - Daniel Stenberg
Globala unicast-adresser 001 TLA NLA SLA Interface ID ”public topology” 48 bitar ”site topology” 16 bitar ”interface identifier” 64 bitar TLA = Top Level Aggregator NLA = Next-Level Aggregator SLA = Site-Level Aggregator IPv6 - Daniel Stenberg
Routing med IPv6 Samma längst-prefix koncept som med IPv4 Route-tabellerna i huvudroutrarna är idag med IPv4 över 80.000 rader och ökar. IPv6 får som mest 8192* Enkla ändringar i existerande router-protokoll: unicast: OSPF, RIP-II, IS-IS, BGP4+, ... multicast: MOSPF, PIM, … Med den s k Routing Headern kan man routa genom vissa maskiner, eller med anycast vissa ”providers” IPv6 - Daniel Stenberg
Serverlös autoconfigurering Maskiner kan konstruera sina egna IP-adresser - subnetprefix skickas periodiskt som multicast från närmsta router - interface ID genereras lokalt t.ex från MAC-adress Andra IP-lager parametrar kommer också som router ”annonseringar” Högre-lager info (t.ex DNS- och NTP-serverar) kommer också som multicast/anycast annonseringar DHCP finns kvar för de som vill ha mer kontroll IPv6 - Daniel Stenberg
Auto-rekonfigurering Nya adressprefix kan introduceras, gamla kan tas bort - överlappande period kan hanteras - maskiner tar emot ”prefix lifetime” och ”preferability” - gamla TCP-koppel lever till slutet av överlappet, nya koppel överlever bortom slutet Nytt DNS-system för att hantera prefix-ändringar IPv6 - Daniel Stenberg
DNS för IPv6 AAAA fält anger IPv6-adresser, fungerar parallellt med traditionella A-adresser A6 fält anger prefix BIND 9 har full IPv6 support (9.0.0 kom 17 september 2000, för ”early-adoptors”) BIND 8 slår upp AAAA-adresser över IPv4 IPv6 - Daniel Stenberg
Mobile IP för IPv6 ”flytta med” din IP-adress dit du är Integrerat med IPsec för full säkerhet Definierat att ingå i 3GPP Finns även för IPv4 men mer ”inpatchat” i IPv4-arkitekturen och med färre finesser IPv6 - Daniel Stenberg
Mobile IPv6 exempel Anropande maskin Din maskin Ditt hemmanät Home agent Ditt besöksnät IPv6 - Daniel Stenberg
Andra features i IPv6 ”neighbor unreachability detection” upptäcker när en first-hop router dör Generell header-kompression IPsec som utan NAT möjliggöra riktig end-to-end QoS. (”diffserv” och ”intserv”), flow label möjliggör identifiering av flöden IPv6 - Daniel Stenberg
När kommer IPv6? IPv6 - Daniel Stenberg
Standarder De viktigaste delarna av IPv6 är IETF Draft Standards - vältestat och stabilt Delar som ännu inte är standard är relativt stabila (mobile IP, header compression, A6 DNS, IPv6-over-NBMA) UMTS R´00 standarden inkluderar IPv6 IPv6 - Daniel Stenberg
Implementationer OS: Linux, *BSD, Solaris, Tru64, HPUX, Microsoft HW: Cisco, 3Com, Ericsson/Telebit, IBM, Hitachi, Panasonic, NEC, Nortel, Fujitsu Operatörer: Telia, 6BONE, NTT Japan, IIJ, BT, Sprint, Internet 2, Eurescom IPv6-adresser kan ”hämtas ut” idag IPv6 - Daniel Stenberg
Övergångsmetoder automatiska tunnlar konfigurerade tunnlar 6over4 6to4 DSTM (Dual-stack) NAT-PT SIIT BITS SOCKS64 ”Tunnel broker” IPv6 - Daniel Stenberg
APIer RFC 2553 - basic IPv6 sockets RFC 2292 - Advanced IPv6 sockets ”jipsy” - IPv6 för Java, inget finns från Sun ännu IPv6 - Daniel Stenberg