IPv6 technológiák
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!) 7x1023 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 technológiák
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ó
Szolgáltatás típusa
IHL
D M F F
Azonosító TTL
Teljes hossz
Transzport réteg protokoll
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 technológiák
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 technológiák
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 technológiák
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 technológiák
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 technológiák
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 technológiák
IPv6 Címtípusok (Formátum Prefix-ek) FP 0000 0000
Cím használat Foglalt (beleértve IPv4-et is).
0000 001 0000 010 001
OSI NSAP számára foglalt. IPX számára foglalt. 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
IPv6 technológiák
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
IPv6 technológiák
Site-local címformátum 1111 1110 11
38 db 0 bit 16 bit subnet ID 64 bit interface 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 16 bit subnet ID 64 bit interface 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
IPv6 technológiák
Aggregálható Globális Unicast címformátum 001 13 bit 8 bit 24 bit 16 bit FP TLA ID Res NLA ID 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 SS16 MAC-48 címek beillesztése:
CC CC CC FF FF SS SS SS16 Almási Béla – MI MSC - IPv6
22
11
IPv6 technológiák
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
IPv6 technológiák
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
IPv6 technológiák
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 technológiák
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 technológiák
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
IPv6 technológiák
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
IPv6 technológiák
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 technológiák
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 technológiák
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
IPv6 technológiák
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 technológiák
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 technológiák
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
IPv6 technológiák
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