56
Regionales Rechenzentrum für Niedersachsen Kolloquiumsvortrag IPv6 Jan Wiebelitz / Christian Grimm Fachgebiet Distributed Virtual Reality (DVR)

Ipv6 UNI Hannover Info

  • Upload
    jomeah

  • View
    1.167

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ipv6 UNI Hannover Info

Regionales Rechenzentrum für Niedersachsen

Kolloquiumsvortrag

IPv6

Jan Wiebelitz / Christian Grimm

Fachgebiet Distributed Virtual Reality (DVR)

Page 2: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 2Regionales Rechenzentrum für Niedersachsen

Darum gehts

Protokoll der Vermittlungssschicht

zwischen Transport- (TCP, UDP) und Verbindungsschicht (Ethernet, …)beinhaltet u. a. Adressen von Netzwerkknoten

im Betriebssystem implementiertz. Zt. IP Version 4

Übergang zu IP Version 6

TCP / UDP

Application

IP

Data Link

Physical

Host

IP

Data Link

Physical

Router

TCP / UDP

Application

IP

Data Link

Physical

Host

Data Link

Physical

Switch

Anwendung

Betriebssystem

Hardware

Page 3: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 3Regionales Rechenzentrum für Niedersachsen

Übersicht – IP Version 6

Warum braucht die Welt noch ein neues Protokoll?Gute Gründe ein altes Protokoll abzulösen

Was ist IPv6?Adressen, Header und vieles mehr

Wie geht‘s weiter?Die Entwicklung ist nicht abgeschlossen

Wie funktioniert‘s im Detail?Applikationen für IPv4 und IPv6

Page 4: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 4Regionales Rechenzentrum für Niedersachsen

Übersicht – IP Version 6

Warum braucht die Welt noch ein neues Protokoll?Gute Gründe ein altes Protokoll abzulösen

Was ist IPv6?Adressen, Header und vieles mehr

Wie geht‘s weiter?Die Entwicklung ist nicht abgeschlossen

Wie funktioniert‘s im Detail?Applikationen für IPv4 und IPv6

Page 5: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 5Regionales Rechenzentrum für Niedersachsen

Zuwachs an Hosts im Internet

Quelle: http://www.isc.org/ds

CID

R, R

FC

1519

, Sep

tem

ber

1993

NA

T, R

FC

163

1 , M

ai 1

994

240,000,000

Page 6: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 6Regionales Rechenzentrum für Niedersachsen

Zuwachs an Nutzern im Internet

Nutzer (in Millionen)

0

200

400

600

800

1.000

1.200

1.400

1.600

USA Asia-Pacific W. Europe Worldwide

2001

2004

2007

Quelle: Computer Industrie Almanac Inc., Mai 2002

Page 7: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 7Regionales Rechenzentrum für Niedersachsen

Vergrößerung der Routingtabellen

Thu Dec 4 03:31:38 2003 (Australian Eastern Time) http://www.telstra.net/ops/bgptable.html

CID

R, R

FC

1519

, Sep

tem

ber

1993

NA

T, R

FC

163

1 , M

ai 1

994

Page 8: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 8Regionales Rechenzentrum für Niedersachsen

NAT

NAT bricht das Ende-zu-Ende-Paradigma von IPbehindert die Entwicklung neuer Applikationen

NAT verhindert die Erreichbarkeit von Hostszukünftig wird es mehr Geräte geben, die zugleich Client und Server sind (z.B. Mobiltelefone)

zukünftige Anwendungen werden stärker auf Peer-to-Peer-Technologieaufsetzen

Page 9: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 9Regionales Rechenzentrum für Niedersachsen

Übersicht – IP Version 6

Warum braucht die Welt noch ein neues Protokoll?Gute Gründe ein altes Protokoll abzulösen

Was ist IPv6?Adressen, Header und vieles mehr

Wie geht‘s weiter?Die Entwicklung ist nicht abgeschlossen

Wie funktioniert‘s im Detail?Applikationen für IPv4 und IPv6

Page 10: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 10Regionales Rechenzentrum für Niedersachsen

6bone

IPv6 Timeline

1993 1994 1995 1999199819971996 2000 2001

IETF IPnGStarted

1st Specification

Provider basedIPv6 Spaces

6TAP

IPv6 ForumFounded

RIRs AssignedIPv6 Spaces

Cisco IPv6Support12.2(t)

2002 2003

Uni HannoverConnected to

the 6WIN

DFN-ProjectJOIN

6WIN DFN

Page 11: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 11Regionales Rechenzentrum für Niedersachsen

Zuwachs an Hosts im Internet

Quelle: http://www.isc.org/ds

CID

R, R

FC

1519

, Sep

tem

ber

1993

NA

T, R

FC

163

1, M

ai 1

994

IPv6

, RF

C 1

883,

Dez

embe

r 19

95

Page 12: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 12Regionales Rechenzentrum für Niedersachsen

Adressen

Vergleich von IPv4 und IPv6

IPv4: 32 Bit Adressen4.294.967.296 mögliche Adressend.h. 0,0000084 IPv4-Adressen / m2 Erdoberfläche

IPv6: 128 Bit Adressen340.282.366.920.938.463.463.374.607.431.768.211.456 mögliche Adressenmit IPv6 wird der Adressraum von IPv4 96x verdoppelt

d.h. 665.570.793.348.866.943.898.599 IPv6-Adressen / m2 Erdoberfläche Beispiel

– auf das erste Feld eines Schachbretts wird ein Reiskorn gelegt usw.– die Summe ergibt 264-1 Reiskörner, was 461 Mrd. t Reis entspricht (0,025 g/Korn)

(Anmerkung: die Reisernte des Jahres 2000 betrug weltweit ca. 431 Mio. t)*– jedem dieser Reiskörner steht in IPv6 ein Adressraum von 264 Adressen zu

* (lt. Wikipedia.de)

Page 13: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 13Regionales Rechenzentrum für Niedersachsen

Adressen

Reichweiten von AdressenRFC3515 „IP Version 6 Addressing Architecture“ vom April 2003

Link-Local scope FE80::/10

Site-Local scope FEC0::/10Global scope

Link-Local Site-Local Global-Scope

Link-Local

Link-Local Site-Local

Page 14: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 14Regionales Rechenzentrum für Niedersachsen

Adressen

Reichweiten von AdressenDraft „Deprecating Site Local Address“

Link-Local scope FE80::/10

Global scope

Link-Local Global-Scope

Link-Local

Link-Local Site-Local

Page 15: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 15Regionales Rechenzentrum für Niedersachsen

Adressen

Adressierungsarten

Unicast AdresseIdentifier für ein einzelnes Interface (1:1)

Anycast AdresseIdentifier für eine Gruppe von InterfacesPaket wird an ein Interface gesandtnur für RouterHost-Routen notwendig

Multicast AdresseIdentifier für eine Gruppe von InterfacesPaket wird an alle Interfaces übertragen. (1:n)

kein BroadcastBroadcast wird durch von Multicast ersetzt.

Page 16: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 16Regionales Rechenzentrum für Niedersachsen

Adressen

Zusammenfassung der verschiedenen IPV6-Adressen

IPv6 Adressen

Multicast Unicast Anycast

Solicited Node

Assigned

IPv4 Compatible

UnspecifiedLoopback

Link-Local

Aggregatable Global

Site-Local

Link-Local

Aggregatable Global

Site-Local

Page 17: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 17Regionales Rechenzentrum für Niedersachsen

Adressen

Darstellung von IPv6-Adressen

bevorzugte Darstellungacht 16-bit-Teile hexadezimal dargestelltdurch Doppelpunkt voneinander getrennt

führende Nullen in einem Feld können weggelassen werden, anhängende nichtBeispiel:

1234:5678:9ABC:DEF0:1234:5678:9ABC:DEF0

1080:0:0:0:8:800:200C:417A

vereinfachte Darstellung16-bit-Gruppen von Nullen können einmal zusammengefasst werdenführende Nullen einer 16-bit-Gruppe können weggelassen werden, anhängende nicht

Beispiel: 1080::8:800:200C:417A

Page 18: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 18Regionales Rechenzentrum für Niedersachsen

Adressen

Darstellung von IPv6 Adressen

Gemischte Darstellungin gemischter IPv4/IPv6-UmgebungIPv4-compatible IPv6 address fürTunnel durch IPv4-Netze

IPv4-mapped IPv6 address präsentiert IPv4-Adressen als IPv6-AdressenBeispiel:

0000:0000:0000:0000:0000:0000:130.75.3.21 (IPv4 compatible IPv6 address)0000:0000:0000:0000:0000:FFFF:130.75.3.21 (IPv4 mapped IPv6 address)

Nibble-Formatfür Rückwärtsauflösung im DNSjeweils 4 Bit werden durch eine Punkt (.) voneinander getrennt

hexadezimale SchreibweiseAdresse wird rückwärts geschrieben, Domäne wir angehängt

Beispiel:7.F.3.3.0.8.E.F.F.F.A.D.0.5.2.0.1.0.0.0.6.0.6.0.8.3.6.0.1.0.0.2.ip6.int

Page 19: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 19Regionales Rechenzentrum für Niedersachsen

Stateless Autoconfiguration

Schritte zur eigenen Adresse (link-local scope)

Host generiert provisorische link-local address fe02::<Interface ID>

Host sendet neighbor discovery message (duplicate address detection)Source: unspecified address (::)Destination: solicitation-node address (ff02:0:0:0:0:1:FFxx:xxxx)

Frage nach der provisorischen link-local adress

Antwortet ein Knoten mit einer neighbor advertisement message, so ist diese Adresse schon vergeben und die Autokonfiguration stoppt. Manuelle Konfiguration ist notwendig

Erhält der Host keine Antwort, so wird die provisorische link-localaddress dem Interface zugewiesen

Page 20: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 20Regionales Rechenzentrum für Niedersachsen

Stateless Autoconfiguration

Interface ID nach IEEE-Guidelines im sog. modifizierten EUI-64 Format

Gilt für alle Unicast AdressenInterface ID einer Netzwerkkarte basiert auf deren MAC-Adressezwischen company ID (c) und extension ID (x) wird FF FE eingefügt

das universal/local Bit im Company-Anteil wird auf 1 gesetztAusnahme: alle Adressen die mit 0002 beginnen

cccc ccug cccc cccc cccc cccc xxxx xxxx xxxx xxxx xxxx xxxx

cccc ccug cccc cccc cccc cccc xxxx xxxx xxxx xxxx xxxx xxxx1111 1111 1111 1110FF FE

48 Bit MAC-Adresse

64 Bit Interface ID

universal/local Bit wirdVon 0 nach 1 invertiert

Page 21: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 21Regionales Rechenzentrum für Niedersachsen

Stateless Autoconfiguration

Schritte zur eigenen Adresse (link-local scope)

Duplicate Address Detection

Link-Local Adress FE80::<Interface ID>

ZumInternet

Page 22: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 22Regionales Rechenzentrum für Niedersachsen

Stateless Autoconfiguration

Schritte zur eigenen Adresse (global unicast scope)

Host sendet router solicitation message an "all-routers" Multicast Gruppe (FF02:0:0:0:0:0:0:0:2)

Router antwortet mit router advertisement messagemanaged address flagother stateful configuration

PrefixPrefix lifetime

Host stellt sich aus Präfix und der Interface ID die IPv6-Adresse zusammen

Page 23: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 23Regionales Rechenzentrum für Niedersachsen

Stateless Autoconfiguration

Schritte zur eigenen Adresse (global unicast scope)

Router Solicitation

ZumInternet

Page 24: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 24Regionales Rechenzentrum für Niedersachsen

Stateless Autoconfiguration

Schritte zur eigenen Adresse (global unicast scope)

Router Advertisement

Global Unicast Adresse <präfix>:<interface-id>

ZumInternet

Page 25: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 25Regionales Rechenzentrum für Niedersachsen

Adressen

Global Unicast Adressen

Global Routing Prefixidentifiziert eine SiteBeispiel: 2001:0638::/32 ist dem DFN zugewiesen

Subnet IDidentifiziert ein Subnetz innerhalb einer SiteBeispiel: 2001:0638:0606::/48 ist der Uni Hannover vom DFN zugewiesen

Interface IDim modifizierten EUI-64 Format

128 Bit

global routing prefix interface ID

n Bit

subnet ID

64 - n Bit 64 Bit

network prefix

Page 26: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 26Regionales Rechenzentrum für Niedersachsen

Adressen

Multicast Adressen

Prefix ist immer 1111 11112Flags

die drei höherwertigen Flags sind reserviert und müssen 0 sein,das vierte Flag gibt an, ob die Multicast Adresse permanent (also von der IANA zugewiesen) ist (0) oder nichtpermanent (1) ist

Scope: Reichweite der Multicast-Adresseinterface-local scopelink-local und site-local scopeadmin-local scopeorganizational-local scopeglobal scope

128 Bit

8 Bit 4 Bit 4 Bit 112 Bit

prefix flags scope group ID

Page 27: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 27Regionales Rechenzentrum für Niedersachsen

Adressen

Anycast Adressen

haben keinen syntaktische Unterschied zu Unicast-Adressensind mehr als einem Interface zugeordnet

dürfen nicht Source-Adressen seindürfen nur Routern zugewiesen werden, Hosts nichtwerden zum nächstgelegenen Interface mit der Anycast-Adresse geroutet

Auswahl des nächstgelegenen Interface anhand Distanzen aus RoutingProtokollendurch Host-Route Einträge auf den Routern

128 Bit

subnet prefix interface ID000..000

n Bit 128 - n Bit

Page 28: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 28Regionales Rechenzentrum für Niedersachsen

Header

Vergleich von IPv4- und IPv6-Header

IPv4-Header IPv6-Header

Feld entfällt in IPv6

Feld in IPv4 und IPv6 enthalten

Name und Position in IPv6 verändert

neues Feld in IPv6

Ver. TrafficClass

Source Address

Payload Length NextHeader

HopLimit

Destination Address

Flow LabelFlow Label

gen

au 4

0 B

yte

Ver.

Time toLive

Source Address

Total LengthType ofService

HdrLen

Identification FragmentOffsetFlg

Protocol HeaderChecksum

Destination Address

HdrLen

Identification FragmentOffsetFlg

HeaderChecksum

Options Padding

min

. 20 Byte

Page 29: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 29Regionales Rechenzentrum für Niedersachsen

Header

Extension HeaderIPv4-Option-Feld fällt weg

Extension HeaderHop-by-Hop HeaderDestination Option Header

Routing HeaderFragment Header

Authentication HeaderEncapsulating SecurityPayload Header

Reihenfolge wichtig

Ver. Traffic Class

Source Address

Payload Length Next Header Hop Limit

Destination Address

Flow Label

Extension Header #1Next Header

Extension Header #2Next Header

Payload(TCP, UDP Paket)

gena

u 40

Byt

eva

r.va

r.va

r.

Page 30: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 30Regionales Rechenzentrum für Niedersachsen

DNS (proposed standard) I

Neuer Address Record: AAAA-RecordBeispiel$ORIGIN rvs.uni-hannover.de

dns1 IN AAAA 2001:638:606:1:202:e3ff:fe1d:b750

Neue Domäne: ip6.intIPv6 Adressen werden im "Nibble"-Format dargestellt

Beispiel0.5.7.b.d.1.e.f.f.f.3.e.2.0.2.0.1.0.0.0.6.0.6.0.8.3.6.0.1.0.0.2.ip6.int

IN PTR dns1.rvs.uni-hannover.de

Page 31: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 31Regionales Rechenzentrum für Niedersachsen

DNS (proposed standard) II

Neue Konzepte kommen zum EinsatzAdresse wird in mehreren Teilen aufgelöst

DNAME-Resource-RecordAufbau von Chains innerhalb des DNS-Systems

ähnlich dem CNAME-Resource-Recordfür IPv4 und IPv6

Beispiel$ORIGIN new-style.in-addr.arpa

189.190 DNAME in-addr.example.net.

$ORIGIN in-addr.example.net

188 DNAME in-addr.customer.example.

$ORIGIN in-addr.customer.example.

1 PTR www.customer.example.

2 PTR mail.customer.example.

Page 32: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 32Regionales Rechenzentrum für Niedersachsen

DNS (experimental) I

A6-Resource-Recordskonkurrierend zu den AAAA-Recordshaben jedoch z.Zt. den Status „experimental“

für die Vorwärtsauflösungnur einen Teil der IPv6-Adresse auflösen

Verweis auf einen symbolischen Namen für den RestBeispiel 1$ORIGIN rvs.uni-hannover.dedns1 IN A6 0 2001:638:606:1:202:e3ff:fe1d:b750

Beispiel 2$ORIGIN uni-hannover.de.

IN A6 0 2001:638:606::

$ORIGIN rvs.uni-hannover.de.IN A6 48 0:0:0:1 rvs.uni-hannover.de.

dns1 IN A6 64 ::202:e3ff:fe1d:b750 rvs.uni-hannover.de.dns2 IN A6 64 ::a00:20ff:fe21:5b92 rvs.uni-hannover.de.

Page 33: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 33Regionales Rechenzentrum für Niedersachsen

DNS (experimental) II

Neue Domäne ip6.arpakonkurrierend zur Domäne ip6.int die den Status „experimental“ hat

Neues Darstellungsformat für die Rückwärtsauflösung bitstring label für die neue Domäne ip6.arpateilweise Auflösung von IP-Adressen ist möglich

Beispiel 1\[x20010638060600010202e3fffe1db750/128].ip6.arpa IN PTR dns1.rvs.uni-hannover.de

Beispiel 2 mit DNAME\[x200106380606/48].ip6.arpa. IN PTR uni-hannover.de

\[x0001/16].uni-hannover.de. IN DNAME rvs.uni-hannover.de

\[x0202e3fffe1db750/64].rvs.uni-hannover.de. IN DNAME dns1.rvs.uni-hannover.de

Page 34: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 34Regionales Rechenzentrum für Niedersachsen

Renumbering

Renumberinghilfreich z.B. beim Wechsel des ISP‘s„strict aggregation“: ein Präfix nicht weitergegeben darf

IPv6 Präfix ändernstateless autoconfiguration der Knoten ist notwendigZeitparameter im „router advertisement“ werden genutzt

Lebenszeit des alten Präfixes wird reduziertNeuer Präfix wird verkündet

während der Übergangszeit haben die Knoten zwei Unicast Adressen

DNS Einträge änderndurch DNAME-Resource-Records kann der Präfix ganzer Netze schnell und einfach geändert werden

Page 35: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 35Regionales Rechenzentrum für Niedersachsen

Routing

Wachstum der Routingtabellen kontrollierbardurch Clusterbildung

„strict aggregation“

„renumbering“

IPv6 RoutingModifikation von Unicast-Routing(OSPF, RIP, BGP)

Modifikation Multicast-Routing Protokollen (PIM, DVMRP, MOSPF) „longest prefix match“ wie bei IPv4 CIDR

Routing-Header um Pakete mit Hilfe von Anycast-Adressen durch bestimmte Regionen zu leiten

Auswahl von Internet Service Providern

Policy-AspekteLeistungsaspekte

Page 36: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 36Regionales Rechenzentrum für Niedersachsen

6bone - Backbone

http://www.cs-ipv6.lancs.ac.uk/ftp-archive/6Bone/Maps/backbone.gif

Page 37: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 37Regionales Rechenzentrum für Niedersachsen

6bone – Site connectivity

http://www.cs-ipv6.lancs.ac.uk/ftp-archive/6Bone/Maps/all6bone.gif

Page 38: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 38Regionales Rechenzentrum für Niedersachsen

Anschluss an den 6bone

http://www.join.uni-muenster.de/6bone/uebersichtskarte.php

Übersichtsbild

Page 39: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 39Regionales Rechenzentrum für Niedersachsen

6WIN des DFN

http://www.6win.de/

Page 40: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 40Regionales Rechenzentrum für Niedersachsen

Anschluss des RRZN an den 6bone

IPv4

IPv6

DNS Tunnel-endpunkt

6bone

Uni HannoverDFN Hamburg

IPv6

DNS

Tunnel-endpunkt

Tunnel-endpunkt

JOIN - Uni MünsterIPv6

Uni Paderborn

TU Clausthal

DNS DNS

DNS

IPv6Tunnel-

endpunkt

Tunnel-endpunkt

Tunnel-endpunkt

Page 41: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 41Regionales Rechenzentrum für Niedersachsen

Übersicht – IP Version 6

Warum braucht die Welt noch ein neues Protokoll?Gute Gründe ein altes Protokoll abzulösen

Was ist IPv6?Adressen, Header und vieles mehr

Wie geht‘s weiter?Die Entwicklung ist nicht abgeschlossen

Wie funktioniert‘s im Detail?Applikationen für IPv4 und IPv6

Page 42: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 42Regionales Rechenzentrum für Niedersachsen

Was geht‘s weiter?

AdressierungSite-local scope fällt wohl demnächst weg

DNSDynamic DNS mit stateless autoconfiguration

Dynamic DNS mit DHCPv6

DHCPv6Time Configuration Options

NIS Configuration OptionsPrefix Options

IPv6 MobilityInsgesamt erst Draft-Status

Page 43: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 43Regionales Rechenzentrum für Niedersachsen

Übersicht – IP Version 6

Warum braucht die Welt noch ein neues Protokoll?Gute Gründe ein altes Protokoll abzulösen

Was ist IPv6?Adressen, Header und vieles mehr

Wie geht‘s weiter?Die Entwicklung ist nicht abgeschlossen

Wie funktioniert‘s im Detail?Applikationen für IPv4 und IPv6

Page 44: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 44Regionales Rechenzentrum für Niedersachsen

Client/Server-Applikationen in IPv4 und IPv6

Verbindungsmatrix für Hosts mit TCP/IP-Stack für IPv4 und IPv6Frage: welche Kombinationen von Host unter IPv4 und IPv6 können

miteinander kommunizieren?Ziel: alle!

„klassische“ Client/Server-Applikationen sind für IPv4 programmiertdie Erfahrung zeigt: Hosts können über IPv4 miteinander kommunizieren

der Kombination „ IPv4-Client “ auf „ IPv4-Server “ ist also erledigt

Client

Server

??IPv6

??IPv4

IPv6IPv4

Page 45: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 45Regionales Rechenzentrum für Niedersachsen

Anpassung einer IPv4-Applikation an IPv6

Applikationen nutzen im Allgemeinen die Socket-SchnittstelleSockets sind Schnittstelle (API) zum Transport Layer (TCP / UDP)IP befindet sich erst im Network Layer, d. h. unterhalb des Transport Layer

Folgerung: die Version von IP bleibt der Applikation – beinah – verborgen

Anpassung bestehender IPv4-Applikationen an IPv6im Wesentlichen muss lediglich die Adressierung angepasst werden

d. h. Anpassung von Datenstrukturen und Funktionen für Adressierungder Aufwand ist gering, s. Beispiele

TCP / UDP

Application

TCP / UDP

Application

IP IPIPIP

Data Link Data LinkData LinkData Link

Physical PhysicalPhysicalPhysical

Sockets Sockets

Page 46: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 46Regionales Rechenzentrum für Niedersachsen

Client/Server-Applikation – TCP über IPv4

#include <...>

#define BUFFERSIZE 20#define PORT 7923

int main ( int argc, char *argv[] ) {int sockfd;int sendlen;char sendbuf[BUFFERSIZE];struct sockaddr_in saddr;

if ( ( sockfd = socket ( AF_INET, SOCK_STREAM, 0 ) ) < 0 ) {perror ( "socket" ); return -1;

}

bzero ( ( char * ) &saddr, sizeof ( saddr ) );saddr.sin_family = AF_INET;saddr.sin_port = htons ( PORT );if ( inet_pton ( AF_INET, argv[1], &saddr.sin_addr ) <= 0 ) {

perror ( "inet_pton" ); return -1;}

strcpy ( sendbuf, "Hi there !!" );sendlen = strlen ( sendbuf );

if ( connect ( sockfd, (struct sockaddr *) &saddr, sizeof (saddr) ) < 0 ) {perror ( "connect" ); return -1;

}

if ( send ( sockfd, sendbuf, strlen ( sendbuf ), 0 ) < 0 ) {perror ( "send" ); return -1;

}

close ( sockfd );

return 0;}

Client Server

#include <...>

#define BUFFERSIZE 20#define PORT 7923

int main ( void ) {int sockfd, newsockfd;int clielen, recvlen;char recvbuf[BUFFERSIZE];struct sockaddr_in saddr, caddr;

if ( ( sockfd = socket ( AF_INET, SOCK_STREAM, 0 ) ) < 0 ) {perror ( "socket" ); return -1;

}

bzero ( ( char * ) &saddr, sizeof ( saddr ) );saddr.sin_family = AF_INET;saddr.sin_port = htons ( PORT );saddr.sin_addr.s_addr = htonl ( INADDR_ANY );

if ( bind ( sockfd, (struct sockaddr *) &saddr, sizeof ( saddr ) ) < 0 ) {perror ( "bind" ); return -1;

}

listen ( sockfd, 5 );

clielen = sizeof ( caddr );newsockfd = accept ( sockfd, (struct sockaddr *) &caddr, &clielen );if ( newsockfd < 0 ) {

perror ( "accept" ); return -1;}

recvlen = recv ( newsockfd, recvbuf, BUFFERSIZE, 0 );if ( recvlen < 0 ) {

perror ( "recv" ); return -1;}recvbuf[recvlen] = 0;printf ( "Empfangen: %s\n", recvbuf );

close ( sockfd );close ( newsockfd );

return 0;}

Page 47: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 47Regionales Rechenzentrum für Niedersachsen

Client/Server-Applikation – TCP über IPv6

#include <...>

#define BUFFERSIZE 20#define PORT 7923

int main ( int argc, char *argv[] ) {int sockfd;int sendlen;char sendbuf[BUFFERSIZE];struct sockaddr_in6 saddr;

if ( ( sockfd = socket ( AF_INET6, SOCK_STREAM, 0 ) ) < 0 ) {perror ( "socket" ); return -1;

}

bzero ( ( char * ) &saddr, sizeof ( saddr ) );saddr.sin6_family = AF_INET6;saddr.sin6_port = htons ( PORT );if ( inet_pton ( AF_INET6, argv[1], &saddr.sin6_addr ) <= 0 ) {

perror ( "inet_pton" ); return -1;}

strcpy ( sendbuf, "Hi there !!" );sendlen = strlen ( sendbuf );

if ( connect ( sockfd, (struct sockaddr *) &saddr, sizeof (saddr) ) < 0 ) {perror ( "connect" ); return -1;

}

if ( send ( sockfd, sendbuf, strlen ( sendbuf ), 0 ) < 0 ) {perror ( "send" ); return -1;

}

close ( sockfd );

return 0;}

Client Server

Initialisierunganpassen

Programmablaufnicht anpassen

#include <...>

#define BUFFERSIZE 20#define PORT 7923

int main ( void ) {int sockfd, newsockfd;int clielen, recvlen;char recvbuf[BUFFERSIZE];struct sockaddr_in6 saddr, caddr;

if ( ( sockfd = socket ( AF_INET6, SOCK_STREAM, 0 ) ) < 0 ) {perror ( "socket" ); return -1;

}

bzero ( ( char * ) &saddr, sizeof ( saddr ) );saddr.sin6_family = AF_INET6;saddr.sin6_port = htons ( PORT );saddr.sin6_addr.s_addr = in6addr_any;

if ( bind ( sockfd, (struct sockaddr *) &saddr, sizeof ( saddr ) ) < 0 ) {perror ( "bind" ); return -1;

}

listen ( sockfd, 5 );

clielen = sizeof ( caddr );newsockfd = accept ( sockfd, (struct sockaddr *) &caddr, &clielen );if ( newsockfd < 0 ) {

perror ( "accept" ); return -1;}

recvlen = recv ( newsockfd, recvbuf, BUFFERSIZE, 0 );if ( recvlen < 0 ) {

perror ( "recv" ); return -1;}recvbuf[recvlen] = 0;printf ( "Empfangen: %s\n", recvbuf );

close ( sockfd );close ( newsockfd );

return 0;}

Page 48: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 48Regionales Rechenzentrum für Niedersachsen

Client/Server-Applikationen in IPv4 und IPv6

Verbindungsmatrix für Hosts mit TCP/IP-Stack für IPv4 und IPv6Frage: welche Kombinationen von Host unter IPv4 und IPv6 können

miteinander kommunizieren?Ziel: alle!

Frage: was ist mit heterogenen Applikationen?IPv4-Client kommuniziert mit IPv6-Server

IPv6-Client kommuniziert mit IPv4-Server

Client

Server

einfache Anpassung?IPv6

?der „klassische“ FallIPv4

IPv6IPv4

Page 49: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 49Regionales Rechenzentrum für Niedersachsen

Dual Stack – IPv4 und IPv6 in einem Host

Eigenschaften eines Dual Stack Hostim TCP/IP-Stack des Betriebssystems sind IPv4 und IPv6 implementiertder Host verfügt über mindestens je eine IPv4- und IPv6-Adresse

im DNS sind A- und AAAA-Records für den Host eingetragen

Server auf Dual Stack Hosts können generell IPv4- und IPv6-Clients bedienenVoraussetzung: Server-Applikation ist für IPv6 implementiert

Konventionen für Server-Applikation auf Dual Stack Hostauf IPv4-Socket gebundener Server kann nur IPv4-Pakete empfangen

auf IPv6-Socket gebundener Server kann nur IPv6-Pakete empfangenwenn der Socket auf eine „reguläre“ IPv6-Adresse gebunden ist

auf IPv6-Socket gebundener Server kann nur IPv4-Pakete empfangenwenn der Socket auf eine IPv4-mapped Adress gebunden ist

auf IPv6-Socket gebundener Server kann IPv4- und IPv6-Pakete empfangenwenn der Socket auf die Unspecified Address (0::0) gebunden ist

Page 50: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 50Regionales Rechenzentrum für Niedersachsen

Anpassung der IP-Adressen im Dual Stack Server

Übergabe der IP-Adresse des Client an Server-Applikation

IPv4 Paket IPv6 Paket

SocketTCP/IPv4

SocketTCP/IPv6

IPv6

IPv4

Server

IPv6

SocketUDP/IPv4

SocketUDP/IPv6

IPv4IPv4-

mappedIPv4-Paket ist anApplikation auf

IPv6-Socket gerichtet

IPv4-mapped

Server

TCP

IPv6IPv4

UDP

Server Server1236 123712351234Port Number

Page 51: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 51Regionales Rechenzentrum für Niedersachsen

Dual Stack Server

Frage: woher weiß Host, ob IPv4- oder IPv6-Paket kommt?

Antwortanhand unterschiedlicher Protocol-IDs im Data Link LayerProtocol-ID 0x0800 für IPv4 und 0x86dd für IPv6

Frage: wie kann IPv6-Server Daten an IPv4-Client zurücksenden?Anmerkung: Client sendet Daten in IPv4-Paketen

AntwortTCP/IP-Stack übergibt IPv6-Server die IPv4-mapped Address des Client

IPv6-Server sendet Daten an die IPv4-mapped Address des ClientTCP/IP-Stack auf IPv6-Server erkennt IPv4-mapped Address des Client

löst IPv4-mapped Address in tatsächliche IPv4-Adresse des IPv4-Client aufweitere Bearbeitung der Daten durch IPv4-Stack

Page 52: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 52Regionales Rechenzentrum für Niedersachsen

Datenfluss im Dual Stack Server für TCP

Server

TCP

Data Link

IPv6IPv4

00:E0:7D:82:D4:A5| ... | 86dd6 | ... | 6 | ... | 2001:...:8156 | 2001:...:d4a5 | ...

... | 7923 | ......

EthIP

TCPData

00:E0:7D:82:D4:A5| ... | 08004 | ... | 6 | ... | 130. 75.3.232 | 130.75.3.234 | ...

... | 7923 | ......

EthIP

TCPData

130.75.3.23486dd0800

00:E0:7D:82:D4:A5

6

7923

2001:0638:0606:0001:2e0:7dff:fe82:d4a5

Socket IPv6local IP address

2001:0638:0606:0001:0a00:20ff:fe8e:8156

Socket IPv4local IP address

130.75.3.232

Socket IPv6local IP address 0::0

local port 7923 Client IP address2001:0638:0606:0001:0a00:20ff:fe8e:8156

Client IP address0000:0000:0000:0000:0000:FFFF:

130.75.3.232

Page 53: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 53Regionales Rechenzentrum für Niedersachsen

Dual Stack Client

Frage: wie entscheidet Client, ob Daten über IPv4 oder IPv6 gesendet werden?Annahme: es ist nicht bekannt, ob Ziel ein IPv4- oder IPv6-Server ist

Antwort: Entscheidung hängt von DNS-Auflösung abDual Stack Client fragt DNS nach A- und AAAA-Record des Servers

in jedem Fall erwartet Applikation eine Adresse für IPv6-Datenstrukturen

Fall 1: Ziel ist ein IPv6-Server mit AAAA-Record im DNSDual Stack Client erhält reguläre IPv6-Adresse

Fall 2: Ziel ist ein IPv4-Server mit A-Record im DNSDual Stack Client erhält IPv4-mapped Address des IPv4-Servers

Betriebssystem entscheidet anhand Adresstyp über IPv4- oder IPv6-Paket

Problem: IPv6-Client und IPv4-Server auf Dual Stack HostsDNS enthält sowohl A- als auch AAAA-Record des ServersClient erhält auf DNS Request den AAAA-Record des Servers

Client sendet Daten an IPv6-Adresse des Servers

Page 54: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 54Regionales Rechenzentrum für Niedersachsen

Senden von IP-Paketen auf Dual Stack Client

IPv4 Paket IPv6 Paket

SocketTCP/IPv4

SocketTCP/IPv6

IPv6

IPv4

Client

IPv6

SocketUDP/IPv4

SocketUDP/IPv6

IPv4

Client

TCP

IPv6IPv4

UDP

Client Client

IPv4-mapped

IPv4-mapped

DNS-Auflösung ergibtlediglich A-Record, d. h.

Ziel ist IPv4-Server

Page 55: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 55Regionales Rechenzentrum für Niedersachsen

Client/Server-Applikationen in IPv4 und IPv6

Verbindungsmatrix für Hosts mit TCP/IP-Stack für IPv4 und IPv6Frage: welche Kombinationen von Host unter IPv4 und IPv6 können

miteinander kommunizieren?Ziel: alle!

Praxisfast alle relevanten Fälle können miteinander kommunizieren

nur in einer der relevanten Kombinationen wird tatsächlich IPv6 genutzt

reine IPv6-Stacks, in der Praxis nicht relevant

A und AAAA

A

AAAA

A

DNS

Dual

Dual

IPv6

IPv4

TCP/IP-Stack DualDualIPv6IPv4

IPv6–IPv6IPv4IPv6

IPv4IPv4–IPv4IPv4

IPv6–IPv6–IPv6

IPv4IPv4–IPv4IPv4

Client

A und AAAAA und AAAAAAAAA

IPv6IPv4IPv6IPv4Socket

Server

Page 56: Ipv6 UNI Hannover Info

J.Wiebelitz, C. Grimm | 11.Dezember 2003 | Folie 56Regionales Rechenzentrum für Niedersachsen

Literatur

RFCsRFC 2460: Internet Protocol, Version 6 (IPv6) SpecificationRFC 2461: Neighbor Discovery for IP Version 6 (IPv6)RFC 2462: IPv6 Stateless Address AutoconfigurationRFC 2463: Internet Control Message Protocol (ICMPv6) for the Internet

Protocol Version 6 (IPv6) SpecificationRFC 3513: Internet Protocol Version 6 (IPv6) Addressing Architecture

BücherR. Desmeules, Cisco Self-Study Implementing IPv6 Networks (IPv6)Cisco Press, 2003H. P. Dittler, IPv6, 2.Auflage, dpunkt.verlag, 2002H. Wiese, Das neue Internetprotokoll IPV6, Hanser Verlag, 2002N. Hagen, IPv6 Essentials, O'Reilly, 2002P. Albitz, C. Liu, DNS und Bind, 4. Auflage, O'Reilly, 2002W. R. Stevens, UNIX Network Programming – Volume 1: NetworkingAPIs: Sockets and XTI, Prentice Hall, 1998