IPv6 Technológiák Almási Béla University of Debrecen Almási Béla MI MSC - IPv6 1 IPv6 általános jellemzés Megtartja a jó koncepciókat, elveti a rosszakat az IPv4-ből Applikációs végfelhasználók számára észrevehetetlen változás. Hálózati rétegben mind koncepcionálisan, mind kivitelezésében új rendszer (RFC 2460). Nagyobb címtartomány - 128 bites címek. Egy négyzetméter Földfelszínre (óceán is!) 7x10 23 db cím jut. Nem hatékony felhasználás esetén is egy négyzetméterre több mint 1000 cím jut. Forgalomirányítók terhelésének (munkájának) könnyítése. Többesküldés, biztonsági opciók támogatása. Almási Béla MI MSC - IPv6 2 1
IPv6 Terminológia Csomópont: Router (Forwarding) Host Felsőbb réteg (Upper layer): A közvetlenül IPv6-ra épülő protokoll szint. Pl. TCP, ICMP, OSPF. Link: Kommunikációs lehetőséget biztosító entitás közvetlenül az IPv6 alatt. Csomag: IPv6 fej + adat. Link MTU: A linken továbbítható maximális csomagméret (bájtokban). Útvonal MTU (Path MTU): Az útvonalon használt linkek MTU értékének minimuma. Almási Béla MI MSC - IPv6 3 IPv4 fejrész szerkezete Verzió IHL Szolgáltatás típusa TTL Azonosító Transzport réteg protokoll D F M F Teljes hossz Fragment offset Fejrész ellenőrző összeg Feladó (forrás) IP címe Címzett (cél) IP címe Opcionális mező(k) Almási Béla MI MSC - IPv6 4 2
IPv6 fejrész szerkezete Version Traffic Class Flow Label Payload length Next header Hop limit Source Address (128 bit) Destination Address (128 bit) Almási Béla MI MSC - IPv6 5 IPv6 fejrész szerkezete - 1 Verzió Prioritás Folyamcímke Verzió(Version): IP verziószám (6). Prioritás(Traffic Class): A feladó és a routerek használhatják (módosíthatják) különböző forgalomszabályozást jelentő osztályok elkülönítésére. Folyamcímke(Flow Label): A forrás és a cél között kiépített (megfelelő paraméterekkel felépített) adatfolyamok létrehozását támogatja. Középút lehetőség a datagram és a virtuális áramkör szolgáltatás között. Almási Béla MI MSC - IPv6 6 3
IPv6 fejrész szerkezete - 2 Adat hossza Következő fej Ugráskorlát Adat hossza (Payload length): A csomag adatrészének hossza (a kötelező IPv6 fej nélkül, de az esetleges opcionális fejrészeket beleszámolva). Következő fej (Next header): Az IPv6 fejrészt követő fejrész azonosítója (Pl. TCP, ICMP, opcionális fejrészek). Ugráskorlát (Hop limit): A routerek 1-et levonnak értékéből. A csomag eldobandó, ha az ugráskorlát értéke zéró. Almási Béla MI MSC - IPv6 7 IPv6 fejrész szerkezete - 3 Feladó cím (128 bit) Cél cím (128 bit) Feladó cím: A forrás állomás 128 bites azonosítója. Célcím: A célállomás 128 bites azonosítója. Almási Béla MI MSC - IPv6 8 4
IPv6 - IPv4 fejrész összehasonlítása Egyszerűsített fejrész (13 mező helyett 8). Az IPv6 fej fix hosszú (nincs IHL mező). Routereken nincs darabolás (fragment) támogatás. Router munka egyszerűsítés. Útvonal MTU meghatározás szükséges. A link rétegnek támogatnia kell min. 1280 bájt MTU értéket, vagy rendelkeznie kell link-specifikus darabolás/összeillesztés támogatással. Nincs fejrész ellenőrző összeg. Router munka egyszerűsítés. Hasonló funkciójú mezők: Ugráskorlát - TTL, Tr. class - TOS, Következő fej - Protokoll. Vitás pontok pl. Ugráskorlát 8 bit hosszon? Almási Béla MI MSC - IPv6 9 IPv6 címzési rendszer Almási Béla MI MSC - IPv6 10 5
IPv6 címzési rendszer - fogalmak Prefix: A 128 bites cím rögzített (fix) bevezető része (előtagja). A CIDR alapú IPv4 prefix (hálózat azonosító) fogalmának implementációja IPv6-ban. Prefix hossz (Prefix length): A prefix bit darabszáma. Hasonló a rendeltetése, mint az IPv4-ben alkalmazott hálózati maszké. Formátum prefix (Format Prefix, FP): A 128 bites cím formátumát (értelmezését) meghatározó (néhány bit hosszúságú) bevezető bitsorozat. Gyakran rövidítik prefix-nek. Almási Béla MI MSC - IPv6 11 IPv6 címtípusok Az IPv6 három címtípust különít el (RFC2373, 2374): Egyedi cím (Unicast): Egy csomópont egy hálózati interfészére vonatkozó azonosító. Az IPv4-es unicast cím megfelelője. Egy interfészhez több IPv6 unicast cím is rendelhető. Bárki cím (Anycast): Interfészek egy halmazát (tipikusan különböző csomópontokon található interfészek halmazát) azonosító cím. Ha egy csomagot egy anycast címre küldünk, akkor a halmazból egy interfészre (célszerűen a forgalomirányítás szerint legközelebbire) kell eljuttatni. Többes cím (Multicast): Interfészek egy halmazát (tipikusan különböző csomópontokon található interfészek halmazát) azonosító cím. Ha egy csomagot egy multicast címre küldünk, akkor a halmaz minden interfészére el kell juttatnunk. Az IPv4-es Broadcast címet is multicast címmel implementálják IPv6-ban. Almási Béla MI MSC - IPv6 12 6
IPv6 címek írásmódjai - 1 Standard formátum: x:x:x:x:x:x:x:x ahol x egy 16 bites címrészlet hexa értéke (4 db hexadecimális számjegy). Pl.: 2080:0000:0000:00A5:0230:0000:DF05:1200 A 16 bites részletekben a bevezető 0 értékek elhagyhatók. Pl.: 2080:0:0:A5:230:0:DF05:1200 A 0 értékű részletek sorozata egy helyen rövidíthető (elhagyható), ennek jelzése :: formával lehetséges (tömörített írásforma). Pl.: 2080::A5:230:0: DF05:1200 Almási Béla MI MSC - IPv6 13 IPv6 címek írásmódjai - 2 A hálózat azonosítók (prefix-ek) írásmódja: hálózat azonosító / prefix hossz Pl.: 2080:0:0:A5:0:0:0:0 / 64 2080:0:0:A5:: / 64 Figyelni kell a helyes felírásra. Pl. helytelen írásmód: 2080::A5 /64 (jelentése: 2080:0:0:0:0:0:0:A5 / 64) Csomópont cím és prefix-ének együttes megjelenítése: 2080::A5:230:0: DF05:1200 / 64 Almási Béla MI MSC - IPv6 14 7
IPv6 Címtípusok (Formátum Prefix-ek) FP Cím használat 0000 0000 Foglalt (beleértve IPv4-et is). 0000 001 OSI NSAP számára foglalt. 0000 010 IPX számára foglalt. 001 Aggregálható globális unicast címek. 1111 1110 10 Címek Link local használatra. 1111 1110 11 Címek Site local használatra. 1111 110 Unique local címek. 1111 1111 Multicast címek. Almási Béla MI MSC - IPv6 15 Speciális IPv6 címek Nem specifikált cím (Unspecified address): 0:0:0:0:0:0:0:0 Nem szerepelhet IPv6 csomag célcímeként. Loopback cím : 0:0:0:0:0:0:0:1 Nem szerepelhet IPv6 csomag feladó címeként. Ha célcímként szerepel egy IPv6 csomagban, akkor a csomag nem hagyhatja el a csomópontot. Almási Béla MI MSC - IPv6 16 8
IPv4-es címformátumok Az IPv6 két formát specifikál IPv4 címekre: Beágyazott IPv4 cím, IPv4 kompatíbilis cím (Embedded IPv4): 96 db 0 bit 32 bites IPv4 cím A beágyazott IPv4 cím tipikusan mindkét protokollal rendelkező csomópontoknál használható (Tunnel). Leképezett IPv4 cím (Mapped IPv4): 80 db 0 bit 16 db 1 bit 32 bites IPv4 cím A leképezett IPv4 cím olyan csomópontok jelölésére használt, amelyek csak IPv4 protokollal rendelkeznek (Protokoll konverter). Speciális írásmód. Pl. ::193.6.135.55 ::FFFF:193.6.135.55 Almási Béla MI MSC - IPv6 17 Link-local címformátum 1111 1110 10 54 db 0 bit 64 bit interface ID Hexadecimális megjelenítés: FE80::Interface_ID Célja: Kommunikáció egy linken pl. ND, automatikus címmeghatározás ill. router nélküli hálózat esetén. Routerek nem továbbíthatnak Link-local feladó- vagy célcímmel rendelkező csomagot másik linkre. Almási Béla MI MSC - IPv6 18 9
Site-local címformátum 1111 1110 11 38 db 0 bit 64 bit interface ID 16 bit subnet ID Hexadecimális megjelenítés: FEC0::Subnet_ID:Interface_ID Célja: Kommunikáció egy intézményen (site-on) belül, globális IPv6 cím használata nélkül. Routerek nem továbbíthatnak Site-local feladó- vagy célcímmel rendelkező csomagot az intézményen kívülre. Almási Béla MI MSC - IPv6 19 Unique Local címformátum 1111 110 L 40 bit Global ID 64 bit interface ID 16 bit subnet ID Hexadecimális megjelenítés: FCxx:Global_ID:Subnet_ID:Interface_ID Célja: Az egész világon egyedi címek kiosztása intézményen belüli használatra. Az IPv6 publikus világban tipikusan nem route-olt. L bit: Ha értéke 1, akkor a prefix lokálisan került meghatározásra. Általánosan a Global_ID véletlenszám generátorral készül, s az IPv6 gerincen nem route-olják (bár lehet kivételes eset). Almási Béla MI MSC - IPv6 20 10
Aggregálható Globális Unicast címformátum 001 FP 13 bit TLA ID 8 bit Res 24 bit NLA ID 16 bit SLA ID 64 bit interface ID TLA: A routing hierarchia legmagasabb szintje. 8192 TLA egység, növelhető, Res. Bitek felhasználásával. NLA: A routing hierarchia következő szintje. NLA-n belüli szintezés is lehetséges. SLA: Intézményen belüli (alhálózat) specifikáció. Interface ID: IEEE EUI-64 alapú interfész azonosító. Almási Béla MI MSC - IPv6 21 IEEE EUI-64 globális azonosító 24 bit vállalat azonosító (C) 40 bit sorszám (váll.-on belül) (S). Speciális jelentésű a (balról) 7. bit ( u - universal/local bit): 0 - globális hatókör. 1 - lokális hatókör IEEE EUI-48 azonosítók (ethernet címek) beillesztése: CC CC CC FF FE SS SS SS 16 MAC-48 címek beillesztése: CC CC CC FF FF SS SS SS 16 Almási Béla MI MSC - IPv6 22 11
EUI-64 interfész azonosító Az EUI-64 globális azonosítóból az u bit invertálásával származtatható: cccccc1c cccccccc cccccccc ssssssss ssssssss ssssssss ssssssss ssssssss IEEE 48 bites MAC cím: cccccc0c cccccccc cccccccc ssssssss ssssssss ssssssss EUI 64 bites interfész azonosító: cccccc1c cccccccc cccccccc 11111111 11111110 ssssssss ssssssss ssssssss Almási Béla MI MSC - IPv6 23 Többes címzés (Multicast címzés) Almási Béla MI MSC - IPv6 24 12
Multicast címek formátuma 1111 1111 000T 4 bit Scope 112 bit Group ID T bit jelentése: 0 - Permanens (Well known) csoportcím (multicast cím), melyet globális címkiosztó szervezet (IANA) adott. 1 - Tranziens (nem permanens) multicast cím. A 0 Group ID-vel rendelkező permanens multicast címek foglaltak, nem használhatók multicast csoport azonosításra. Almási Béla MI MSC - IPv6 25 Multicast Scope bitek 0000 Fenntartott. 0001 Node local, egy gépen belüli. 0010 Link local, egy linken belüli. 0101 Site local, egy site-on belüli. 1000 Organization local, egy szervezeten belüli. 1110 Globális. 1111 Fenntartott. Almási Béla MI MSC - IPv6 26 13
Előre definiált multicast címek Minden csomópont: FF01:0:0:0:0:0:0:1 - Egy csomóponton belül. FF02:0:0:0:0:0:0:1 - Egy linken belül. Minden router: FF01:0:0:0:0:0:0:2 - Egy csomóponton belül. FF02:0:0:0:0:0:0:2 - Egy linken belül. FF05:0:0:0:0:0:0:2 - Egy intézményen (site) belül. Kérelmezett csomópont : FF02:0:0:0:0:1:FF00:0000 /104 prefix. Az utolsó 24 bit a keresett csomópont IPv6 címének utolsó 24 bitje. A csomópontnak csatlakoznia kell minden unicast címéhez tartozó kérelmezett csomópont multicast címhez. Almási Béla MI MSC - IPv6 27 Csomópont IPv6 címek Egy csomópontnak (host) a következő cél IPv6 című csomagokat kell fogadnia: A host link-local címe (bármely interfészére ). A host (bármely) egyedi IPv6 címe. Loopback cím. Minden csomópont multicast cím. Kérelmezett csomópont cím, minden unicast (és router esetén minden anycast) címéhez tartozóan. Egyéb multicast csoportok címe (amelyekbe a host tartozik). Almási Béla MI MSC - IPv6 28 14
IPv6 Opcionális Kiegészítő Fejrészek Almási Béla MI MSC - IPv6 29 IPv6 Kiegészítő fejrészek Cél: Az egyszerűsített IPv6 fejrészből kimaradt (opcionális) funkciók ellátása. A csomagtovábbítás során az alapvető mechanizmus (routing, forwarding) nem igényel kiegészítő fejrészt. A router-ek nem dolgozzák fel a kiegészítő fejrészeket, kivéve a Hop-by-hop fejrészt. A kiegészítő fejrészek feldolgozása megjelenésük sorrendjében történik (nincs keresés funkció a fejrészek között). A kiegészítő fejrészek sorrendje tetszőleges lehet. Almási Béla MI MSC - IPv6 30 15
IPv6 Kiegészítő fejrészek sorrendje Javasolt kiegészítő fejrész sorrend: Hop-by-hop fejrész (Hop-by-hop header). Cél opciók fejrész (Destination options header). Forgalomirányítási fejrész (Routing header). Darabolási fejrész (Fragment header). AH (Authentication header). ESP (Encapsulation Security Payload). Cél opciók fejrész (Csak a célállomás által feldolgozandó!). Almási Béla MI MSC - IPv6 31 Darabolási fejrész NH Reserved Fragment Offset Res. M Identification Funkciója és működési elve megegyezik az IPv4 fejrészben tárolt darabolási információk funkciójával és (vázlatos) működésével. A fragment sorozat azonosítására 32 bitet használunk. A darabolás 8 bájtos határon történhet. Az offszet érték az eredeti csomagbeli helyet specifikálja. A router-ek által feldolgozandó opcionális fejrészek nem darabolhatók. Almási Béla MI MSC - IPv6 32 16
ICMPv6 Almási Béla MI MSC - IPv6 33 ICMPv6 általános információk Az ICMPv6 célja megegyezik az IPv4 ICMP céljával, de változtatások szükségesek (pl. Neighbor Discovery ). IPv6 fejrész Next header érték: 58 (IPv4: 1). Hibaüzenetek (kód érték 0-127): Destination unreachable Packet too big Time exceeded Parameter problem Információs üzenetek (kód érték 128-255): Echo request. Echo reply Almási Béla MI MSC - IPv6 34 17
ICMPv6 PDU formátum Type Code Checksum Data Típus: Az üzenet típusát azonosítja (pl. 1- Destination unreachable ). Az adatmező értelmezése a típustól függ. Kód: Az adott típuson belüli tagolás (pl. 0- No route to destination ). Ellenőrző összeg: Pszeudo IPv6 fejrész beszámítása kötelező. Almási Béla MI MSC - IPv6 35 IPv6 socket programozás Almási Béla MI MSC - IPv6 36 18
IPv6 socket programozás Az IPv4 socket programozás működési logikája megmarad. Az alapvető függvények változatlanok: socket(family, type, protocol) bind (sockfd, *myaddr, addrlen) connect (sockfd, *server_addr, addrlen) accept (sockfd, *peer_addr, *peer_addrlen) send (sockfd, *buff, len, flags) recv (sockfd, *buff, len, flags) Almási Béla MI MSC - IPv6 37 IPv6 socket programozás változások Új Address Family konstans: AF_INET (IPv4) helyett AF_INET6 sd = socket(af_inet6, SOCK_DGRAM, 0); Új sockaddr struktúra: sockaddr_in (IPv4) helyett sockaddr_in6 struct sockaddr_in { sa_family_t sin_family; // AF_INET in_port_t sin_port; struct in_addr sin_addr; } Almási Béla MI MSC - IPv6 38 19
IPv6 socket programozás változások struct sockaddr_in6 { sa_family_t sin6_family; // AF_INET6 in_port_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr; uint32_t sin6_scope_id; } Almási Béla MI MSC - IPv6 39 IPv6 socket programozás függvények Elavult (IPv4) függvények: inet_addr ( *ip_str) inet_ntoa ( ip_addr) inet_aton ( *ip_str, *ip_addr) Általánosan (IPv4-ban és IPv6-ban is) használható network és presentation formák közötti váltás: inet_pton ( int family, char *src, void *dst) inet_ntop ( int family, void *src, char *dst, dst_size) Almási Béla MI MSC - IPv6 40 20
RFC Irodalomjegyzék Almási Béla MI MSC - IPv6 41 IPv6 Alapdokumentumok RFC1981: J. McCann, S. Deering & J. Mogul: Path MTU Discovery for IP version 6.; 1996. RFC2460: Deering, S., and R. Hinden: Internet Protocol, Version 6 (IPv6) Specification;1998. RFC2461: T. Narten, E. Nordmark W. Simpson: Neighbor Discovery for IP Version 6; 1998. RFC2462: Thomson, S., and T. Narten: IPv6 Stateless Address Autoconfiguration; 1998. RFC2463: A. Conta, S. Deering.: Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification; 1998. RFC2464: M. Crawford: Transmission of IPv6 Packets over Ethernet Networks; 1998. RFC2675: D. Borman, S. Deering, R. Hinden.: IPv6 Jumbograms; 1999. Almási Béla MI MSC - IPv6 42 21
IPv6 Címrendszer dokumentumok RFC2373: R. Hinden, S. Deering: IP Version 6 Addressing Architecture; 1998. RFC2374: R. Hinden, M. O'Dell, S. Deering: An IPv6 Aggregatable Global Unicast Address Format; 1998. RFC2375: R. Hinden, S. Deering: IPv6 Multicast Address Assignments; 1998. RFC2526: D. Johnson, S. Deering: Reserved IPv6 Subnet Anycast Addresses; 1999. RFC2921: B. Fink: 6BONE ptla and pnla Formats (ptla); 2000. RFC2928: R. Hinden, S. Deering, R. Fink,T. Hain: Initial IPv6 Sub-TLA ID Assignments; 2000. Almási Béla MI MSC - IPv6 43 IPv6 Biztonsági (IPSEC) dokumentumok RFC2401: S. Kent, R. Atkinson: Security Architecture for the Internet Protocol; 1998. RFC2402: S. Kent, R. Atkinson: IP Authentication Header; 1998. RFC2406: S. Kent, R. Atkinson: IP Encapsulating Security Payload (ESP); 1998. RFC2408: D. Maughan, M. Schertler, M. Schneider, J. Turner: Internet Security Association and Key Management Protocol (ISAKMP); 1998. RFC2409: D. Harkins, D. Carrel: The Internet Key Exchange (IKE); 1998. RFC2411: R. Thayer, N. Doraswamy, R. Glenn: IP Security Document Roadmap; 1998. Almási Béla MI MSC - IPv6 44 22
IPv6 Routing dokumentumok RFC2080: G. Malkin: R. Minnear: RIPng for IPv6; 1997. RFC2081: G. Malkin: RIPng Protocol Applicability Statement; 1997. RFC2185: R. Callon, D. Haskin: Routing Aspects of IPv6 Transition; 1997. RFC2545: P. Marques, F. Dupont: Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing; 1999. RFC2546: A. Durand, B. Buclin: 6Bone Routing Practice; 1999. RFC2740: R. Coltun, D. Ferguson, J. Moy: OSPF for IPv6; 1999. RFC2894: M. Crawford: Router Renumbering for IPv6; 2000. Almási Béla MI MSC - IPv6 45 IPv6 DNS dokumentumok RFC1034: P. Mockapetris: Domain names - concepts and facilities; 1987. RFC1035: P. Mockapetris: Domain names - implementation and specification; 1987. RFC1886: S. Thomson and C. Huitema: DNS Extensions to support IP version 6; 1995. RFC2673: Matt Crawford: Binary Labels in the Domain Name System; 1999. RFC2874: M. Crawford, C. Huitema: DNS Extensions to Support IPv6 Address Aggregation and Renumbering; 2000. Almási Béla MI MSC - IPv6 46 23
IPv4-v6 transzláció dokumentumok RFC2473: A. Conta, S. Deering: Generic Packet Tunneling in IPv6 Specification; 1998. RFC2529: B. Carpenter, C. Jung: Transmission of IPv6 over IPv4 Domains without Explicit Tunnels; 1999. RFC2765: E. Nordmark: Stateless IP/ICMP Translation Algorithm (SIIT); 2000. RFC2893: Gilligan, R. and E. Nordmark: Transition Mechanisms for IPv6 Hosts and Routers; 2000. RFC3053: A. Durand, P. Fasano, I. Guardini, D. Lento: IPv6 Tunnel Broker; 2001. RFC3056: B. Carpenter, K. Moore: Connection of IPv6 Domains via IPv4 Clouds; 2001. RFC3142: J. Hagino, K. Yamamoto: An IPv6-to-IPv4 Transport Relay Translator; 2001. Almási Béla MI MSC - IPv6 47 24