IPv6 – Eine kleine Einführung in die Welt – der langen IP-Adressen



IPv6 – Eine kleine Einführung in die Welt – der langen IP-Adressen

0 0


ipv6_slides

some slides for my ipv6 presention

On Github abuzze / ipv6_slides

IPv6

Eine kleine Einführung in die Welt

der langen IP-Adressen

Created by christoph miessler / @gantor

Nur ein Einstieg in IPv6. Weiter Vorträge werden noch folgen.

Was ist IPv6

  • wird von IETF (Internet Engineering Task Force) seit 1995 entwickelt
  • hieß ursprünglich IP Next Generation
  • Beim Design wurden viele Probleme von IPv4 behoben:
    • z.B ist kein NAT mehr notwendig und im Design auch nicht mehr erwünscht(Ende zu Ende wieder möglich)
    • Protokolle wie FTP und SIP sind dadurch einfacher zu benutzen
  • IPv4 Addressknappheit ist derzeit das Hauptargument für die Umstellung.
*Aufzählung* IPv6 hat mehr zu bieten, als nur einen großen Adressraum. Doch zunächst eine kleine Auffrischung bezüglich IPv4.

Ursprüngliche Einteilung des IPv4 Adressraums

  • Class A: 8 Bit
  • Class B: 16 Bit
  • Class C: 24 Bit
8 Bit bei Class A stellt die Länge der Netzmaske dar. Class D: Multicast Class E: reserved(Experimental) Das kleinste Netz ist damit Class C mit 256 Hosts. Für die Verteilung eher schlecht. Daher wurde CIDR eingeführt und die Klassen werden heute nicht mehr benutzt.

CIDR - Classless Inter-Domain Routing

IPv4 Adresse : 168.122.34.3/24

168.122.34.3 : 10101000.01111010.00100010.00000011

255.255.255.0: 11111111.11111111.11111111.00000000

Mit CIDR ist auch eine /31 mit 2 Hosts möglich. Der Netzteil wird ähnlich wie bei Postleitzahlen genutzt. Für den Router ist nur der Netzteil der Adresse interessant, weil er danach die Route bestimmt. Die ursprüngliche Idee vom einfach Routing durch Strukturierung des Adressraums hat leider nicht funktioniert und die Routingtabellen bei Provider sind trotzdem riesig und unübersichtlich. Außerdem ist durch die Vergabe von IPv4 Adressen eine große Menge verschwendet worden. Vergabe von /8 an Apple(17.x.x.x), MS, US Mil, etc. Desweiteren sind die Adressen, die auf 0 oder 255 enden auch nicht benutzbar. (Netz/Broadcast)

Adressknappheit bei den RIRs

Das letzte /8 wurde angebrochen. Wer neue IPv4 Adressen haben will, muss auch immer ein IPv6 Netz dazunehmen.

(Regional Internet Registry) RIPE (Europe) ARIN (North America) APNIC (Asia - Pacific) LACNIC (Latin America and Caribbean) AfriNIC (African)

IPv4 != IPv6

IPv4: 172.20.1.100/16

IPv6: 2001:6f8:900:90f6:bc69:ec97:29ab:8c34

Adressen sind jetzt 128 Bit lang. Damit sind 2 hoch 128 Adressen möglich. IPv6 bedeutet nicht nur das die Adressen länger werden. Es verändern sich grundlegende Dinge. Urban Legend: Jedes Atom kann eine IPv6 Adresse haben. > geht nicht, falls man davon aus geht, dass die Erde einen Eisenkern hat. Aber für jedes Sandkorn würde es reichen.

IPv6 Header

IPv6 Header (320 Bit) v4:160bit | Version (4 bits) 0110 = 6 | Traffic Class (8bits) = Traffic Art Bestimmung Flow Label (16 Bits) = auf non-zero setzen, um dem Router zu sagen, dass er die Reihenfolge der Paket nicht verändern soll Payload Length (16 bits) = Größe des Payloads mit Extension Header Next Header (8 bits) = Gibt die Art des nächsten Headers an. Wichtig falls Extension Header benutzt werden. Hop Limit (8 bits) = wird um 1 dekrementiert und bei 0 wirft der Router das Paket weg. TTL (8Bit) ist auch raus. TTL wurde pro Sekunde runterzählt und von jedem Router um eins dekrementiert. Dafür gibt es jetzt das Hoplimit Zusatzinfos werden nicht mehr im Eigentlichen Header untergebracht, sondern bei Bedarf als Extension Header hinter dem Fixed Header eingefügt. Falls ein Router den Ext. Header nicht versteht, wird das Paket gedroppt und ein Parameter Problem message (ICMPv6 type 4, code 1) zurückgeschickt. Rausgefallen ist die Checksum, weil die jedesmal bei Änderung der TTL vom Router neu erzeugt werden muss und deshalb Performance frist. Fun Fact: Mit IPv6 kann man ein Jumbogram versenden. Payload fast 4GB. (Muss im Transport Layer implementiert sein)

Fragmentation

Im Gegensatz zu IPv4 werden IPv6 Pakete nicht von Routern fragmentieren. Dafür ist der Client zuständig. MTU Path Discovery ist daher Pficht. ICMPv6 blocken bedeutet daher Totalausfall, weil der Client nicht bestimmen kann auf welche Größe er die Paket zuschneiden muss.

MTU Ethernet 1500. DSL 1492 (8 BIT PPPOE)

Adressaufbau

Siteprefix wird vom ISP zugeteilt; in der Regel /56; früher gab es /48. Subnet ID dient der Aufteilung der eignen Netze Für die eigentliche Adresse (Interface Identifier) sind immer die letzten 64 Bit reserviert. Diese dürfen nicht für die Struktrierung genutzt werden!

Adressvergabe

1. Link Local

Link Local Range: fe80::/10

BSP: fe80::7ed1:c3ff:fe76:59d0%en1

Mit IPv6 hat ein Interface sofort eine IPv6 Adresse. Auch falls kein Kabel angesteckt ist. vergleichbar mit APIPA-Adressen im Netz 169.254.0.0/16 Link Local != Loopback Link Local ist bei IPv6 Pflicht! Link Local gilt nur in Zusammenhang mit einem bestimmten Interface und wird nicht geroutet. fe80::7ed1:c3ff:fe76:59d0%en1 (%en1 ist das Interface) Mit IPv6 ist die Unterstützung für mehrere IP-Adressen pro Interface Plficht!

Adressvergabe

2. Site Local

Site Local Range: fec0::/10

Seit 2004 decprecated

Site Local war ursprünglich als privater Adressraum für IPv6 gedacht Die schwammige Definition von Site, hat aber zu Verwirrung geführt, weshalb das Konzept zu Gunsten von ULAs (Unique local adresses) verworfen wurde

Adressvergabe

3. Unique Local Address

Unique Local Address Range: fd00::/8

BSP: fd9e:21a7:a92c:2323::1

Konzept entspricht in etwa den privaten IPv4 Adressen

Keine Vergabe durch RIR und Benutzung nur in internen Netzen keine Garantie der globalen Eindeutigkeit keine Reverseauflösung unter ip6.arpa möglich, weil die Adressen nicht im globalen DNS delegiert werden SIXX bietet eine Datenbank in der man ULA registieren kann, um Doppelvergabe zu vermeiden. Wichtig für VPN

Adressvergabe

4. Loopback

Loopback: ::1/128

Das Gegenstück zu 127.0.0.1

Adressvergabe

5. Multicast

Multicast: ff00::/8

ff01::1, ff02::1: - All Nodes ff01::2, ff02::2, ff05::2 - All Routers Sendet Packet an eine bestimmte Gruppe von Hosts im Netz

Adressvergabe

6. Global Unicast - Öffentliche Adressen

Global Unicast Range: alles was noch nicht anderweitig reserviert ist

  • 0:0:0:0:0:ffff::/96 - IPv4 Mapped Addresses
  • 64:ff9b::/96 - NAT64
  • 2000::/3 ( 2000… bis 3fff… ) bezeichnet den weltweit routbaren Bereich
IPv4 Mapped Addresses enthalten in den letzten 32 Bit die IPv4 Adresse und können von einem geeigneten Router konvertiert werden z.b. z.B. ::ff.8.8.8.8 NAT64 übersetzt IPv4 in IPv6

Adressvergabe

6.1. Global Unicast - Öffentliche Adressen

2000::/3 unterteilt man in

  • 2001::/32 - wird vom Teredo Tunnel benutzt
  • 2002::/16 - 6to4 Tunnel
  • 2003, 240, 260, 261, 262, 280, 2a0, 2b0 und 2c0 können auch vergeben werden, sind aber noch nicht im großen Umfang verteilt
Teredo sollte abgeschaltet werden, sobald IPv6 nativ verfügbar ist. 6to4 tunnel IPv6 Packet über IPv4 In der Regel fangen öffentliche Adressen mit 2001 an

möglicher Ablauf der Autokonfiguration

Der Client weißt sich selbst eine Link Local Adresse zu (fe80::/10) Client starte Neighbour Discovery (ND) indem eine Anfrage an die Multicast Adresse ff02::2 (all Routers) gesendet wird (Router Solicitation) Die angesprochenen Router senden die möglichen Präfixe als Router Advertisment zurück Der Client hängt an den Präfix seinen Interface Identifier an, den er schon für die Link Local Adresse benutzt hat

möglicher Ablauf der Autokonfiguration

Der Client weißt sich selbst eine Link Local Adresse zu (fe80::/10) Die Router senden in regelmäßigen abständen Router Advertisments Der Client hängt an den Präfix aus dem RA seinen Interface Identifier an, den er schon für die Link Local Adresse benutzt hat

Privacy

Laut dem ursprünglichen Entwurf der IETF wurde für den Interface Identifier die MAC Adresse des Interfaces benutzt.

Die Clients sind dadurch immer identifizierbar, weil sich die MAC Adresse nicht ändert!

Privacy Extension

Eine Lösung bieten die sogenanten Privacy Extensions, die vom Betriebsystem implementiert werden müssen. Dabei wird für das Interface immer wieder eine neue temporäre Adresse generiert, die für abgehenden Traffic benutzt wird.

BSP: inet6 2001:6f8:900:90f6:7ed1:c3ff:fe76:59d0 prefixlen 64 autoconf inet6 2001:6f8:900:90f6:51b0:858c:d83:f57a prefixlen 64 autoconf temporary Eingehend wird immer die normale Adresse benutzt Ausgehend wird die temp Adresse benutzt. Es werden regelmäßig neue temp Adressen generiert. Der Wechsel erfolgt sobald die alte temp Adresse nicht mehr verwendet wird

Too be continued…