Datenkommunikation – V. Internet Protokoll Internet Ethernet Ethernet Router PPP Router FDDI-Ring Router 1 Datenkommunikation – V. Internet Protokoll Internet Definition Definition/Eigenschaften: • Verbund verschiedener LANs mit verschiedener Layer 1/Layer 2 Technologie und unterschiedlicher Administration • Nahezu unbegrenzte Ausdehnung ist möglich • Gemeinsames Layer 3 Protokoll • Hierarchischer Adressraum – mehr oder minder ... siehe http://xkcd.com/195/ 2 Datenkommunikation – V. Internet Protokoll Internet Protokollschichten 3 Datenkommunikation – V. Internet Protokoll Internet Protokolle Protokoll ISO/OSI IP TCP UDP Telnet Rlogin FTP SMTP ARP RARP ICMP NFS 3 4 4 5-7 5-7 5-6 5-7 3 3 3/4 7 Beschreibung Internet Protocol Transmission Control Protocol User Datagram Protocol Interaktiver Terminaldienst Remote Login File Transfer Protocol Simple Mail Transfer Protocol Adress Resolution Protocol Reverse Adress Resolution Protocol Internet Control Messages Protocol Network File System 4 Datenkommunikation – V. Internet Protokoll Internet Dienstmodell Dienstmodell: • • • • • Host-zu-Host Dienst (End-to-End) Oberhalb (unabhängig) vom physikalischen Netz So anspruchslos wie möglich Intelligenz am Rand des Netzes Zwei Bestandteile: Adressierungsschema Datagramm-Modell 5 Datenkommunikation – V. Internet Protokoll Layer 3 Protokoll • verbindungsloses Protokoll • fragmentiert (zerteilt) Pakete bei Bedarf • Adressierung durch 32-Bit Internet-Adressen • 16-Bit Transportprotokolladressen • maximal 65535 Bytes Paketgröße • enthält lediglich eine Kopfprüf-, keine Datenprüfsumme • nicht ständig benötigte Protokollfelder sind optional • endliche Lebensdauer eines Pakets • “Best- Effort”-Zustellung 6 Datenkommunikation – V. Internet Protokoll Paketformat (1) Version HLen DiffServ Ident TTL Length Flags Protocol Offset Checksum SourceAddress DestinationAddress Optionen (variabel) Füller (variabel) Daten (variable) 7 Datenkommunikation – V. Internet Protokoll Paketformat (2) Paketfelder: • Version: • Hlen: • DiffServ: • • • • • • • 4 (IPv4) ... -> IPv6 Header Length Differentiated Services (RFC2474), Kennzeichnung von Paketen für spezielle Behandlung, wie QoS für VoIP, Bulk Traffic etc. aber auch ECN Ident: Identifikation der Zugehörigkeit zu einem Paket bei Paket-Fragmentierung Flags: Reserviertes Bit, Don't Fragment, More Fragments Offset: Anfangsposition des Fragments im Paket Length: totale Paketlänge TTL: zur Vermeidung von “Routingschleifen“ Protocol: Übergeordnete Protokolle Checksum: Header Prüfsumme 8 Datenkommunikation – V. Internet Protokoll Paketformat (3) DiffServ – Differentiated Services: • 1981 in RFC791 als 'TOS' – Type of Serice definiert • 1998 in RFC2474 durch DiffServ ersetzt, da TOS in der Praxis nicht verwendet • 2001 in RFC3168 Bits 6/7 an 'ECN' – Explicit Congestion Notification vergeben • Verkehrsklassen basiert 9 Datenkommunikation – V. Internet Protokoll Protokolle der nächsthöheren Schicht Höhere IP Prokolle: $ cat /etc/protocols icmp ggp tcp egp pup udp hello l2tp sctp 1 ICMP 3 GGP 6 TCP 8 EGP 12 PUP 17 UDP 63 HELLO 115 L2TP 132 SCTP # # # # # # # # # internet control message protocol gateway-gateway protocol transmission control protocol Exterior-Gateway Protocol PARC universal packet protocol user datagram protocol HELLO Routing Protocol Layer Two Tunneling Protocol:RFC2661 Stream Control Transmission Protocol [...] 10 Datenkommunikation – V. Internet Protokoll Fragmentierung (1) Unfragmentiertes IP Paket Header Anfang Ident = X 0 Offset =0 Header Rest Daten 1400 Byte Fragmentiertes IP Paket Header Anfang Ident = X 1 Offset=0 Header Rest Daten 512 Byte • Offset à 8 Byte 11 Datenkommunikation – V. Internet Protokoll Fragmentierung (2) Fragmentiertes IP Paket (Fortsetzung) Header Anfang Ident = X 1 Offset=64 0 Offset=128 Header Rest Daten 512 Byte Header Anfang Ident = X Header Rest Daten 376 Byte -> Fragmente & Firewall Problematik 12 Datenkommunikation – V. Internet Protokoll Adressierung (1) IP Adressklassen 13 Datenkommunikation – V. Internet Protokoll Adressen (2) Einige Adressbeispiele: Class A (1. Oktet von 1 bis 126) 126 Netze, ca. 17 Mio. Hosts 112.10.3.34 Class B (1. Oktet von 128 bis 191) Ca. 16 K Netze, 64 K Hosts 141.37.99.213 Class C (1. Oktet von 192 bis 223) Ca. 2 Mio Netze, 254 Hosts 198.1.123.234 14 Datenkommunikation – V. Internet Protokoll Adressen (3) Reservierte Adressen: Broadcastadresse: alle Host Bits auf 1 Beispiel: 126.1.3.17 Broadcast 126.255.255.255 Netzwerkadresse: alle Host Bits auf 0 Beispiel: 126.1.3.17 Netzwerk 126.0.0.0 Local Loopback: 127.0.0.1 15 Datenkommunikation – V. Internet Protokoll Weiterleitung von IP Datagrammen (1) „Forwarding“ Grundlagen für die Weiterleitungsentscheidung • Zieladresse in jedem IP Paket • Netzwerkteil einer Adresse kennzeichnet die Zugehörigkeit zu einem physikalischen Netz • Alle Hosts und Router, die die gleiche Netzwerkadresse haben, gehören dem gleichen physikalischen Netz an und können Pakete direkt austauschen • Jedes physikalische Netzwerk umfasst mindestens einen Router der an mindestens ein weiteres physikalisches Netzwerk angeschlossen ist • Dieser Router kann Pakete von einem physikalischen Netzwerk in ein anderes physikalisches Netzwerk weiterleiten 16 Datenkommunikation – V. Internet Protokoll Weiterleitung von IP Datagrammen (2) 17.23.5.2 17.24.189.1 Ethernet 17.27.1.123 17.1.1.254 17.23.5.1 Router 134.34.98.230 134.34.1.100 134.34.14.3 Ethernet 134.34.90.36 134.34.33.45 17 Datenkommunikation – V. Internet Protokoll Weiterleitung von IP Datagrammen (3) Welche Informationen braucht ein Host, um eine Weiterleitungsentscheidung treffen zu können: • Seine IP Adresse • Die Adresse eines Routers, über den ein anderes Netz erreichbar ist • Daraus resultierend einen Eintrag in der Weiterleitungstabelle Beispiel: IP Adresse: 17.23.5.2 Router: 17.1.1.254 Eintrag in Weiterleitungstabelle für ein spezifisches Netz: • 134.34.0.0 17.1.1.254 Bedeutung: “Hosts mit der Netzwerkadresse 134.34.X.Y sind über den Router 17.1.1.254 erreichbar“ 18 Datenkommunikation – V. Internet Protokoll Weiterleitung von IP Datagrammen (4) Eintrag für die Default Route • 0.0.0.0 17.1.1.253 Bedeutung: “Alle anderen Hosts sind über den Router 17.1.1.253 erreichbar“ Wichtig: Weiterleitungstabellen können mehrere spezifische Routen sowie eine Default Route beinhalten Die gesammte Weiterleitungstabelle würde nun so aussehen: eigene IP Adresse: 17.23.5.2 Netz 17.0.0.0 134.34.0.0 0.0.0.0 erreichbar über Interface 0 17.1.1.254 17.1.1.253 19 Datenkommunikation – V. Internet Protokoll Weiterleitung von IP Datagrammen (5) Ablauf der Weiterleitungsentscheidung: if (network number of destination == network number of one of my interfaces) then deliver packet to destination over that interface elsif (network number of destination is in my forwarding table) then deliver packet to that next hop router else deliver packet to default router Dabei werden immer spezifischere Einträge bevorzugt. Wie ist das resultierende Layer 2 Paket adressiert? 20 Datenkommunikation – V. Internet Protokoll Weiterleitung von IP Datagrammen (6) 17.13.8.1 If 1: 17.28.11.1 If 2: 11.0.0.1 R1 If 2: 142.37.4.1 142.37.98.9 If 2: 11.0.0.4 If 2: 34.1.1.1 If 2: 11.0.0.2 R4 R2 34.10.10.99 If 2: 11.0.0.3 R3 134.48.10.12 R5 If 1: 134.48.1.3 If 2: 134.48.100.1 If 2: 198.11.10.1 198.11.10.2 21 Datenkommunikation – V. Internet Protokoll Subnetting – Subnetzmaske (1) Information, wie ein Netz in Subnetze unterteilt ist: Netzwerkbits = 1, Hostbits = 0 Beispiel: Netzwerknummer Hostnummer Adresse der Klasse B 11111111.11111111.11111111 00000000 Subnetzmaske, Klasse B Netzes in 256 Netze a 256 Adressen unterteilt 22 Datenkommunikation – V. Internet Protokoll Subnetting – Subnetzmaske (2) Schreibweisen der Subnetzmaske: 11111111.11111111.11111111.00000000 255.255.255.0 Netzwerkadresse / 24 Anmerkungen: Jedes Interface eines Hosts bzw. Routers enthält zusätzlich die Subnetzmaske. Die Subnetzmaske ist in einem Subnetz immer gleich. In einem Klassen Netz (A, B oder C) können aber Subnetze mit unterschiedlichen Masken existieren 23 Datenkommunikation – V. Internet Protokoll IP Konfiguration von Hosts/Router Anzeige der IP Adresse/Subnetzmaske Windows 2K/NT: Unix/Linux: Cisco: ipconfig /ALL netstat –i ifconfig ip link show show ip interface <if_num> Anzeige der Routingtabelle Windows 2K/NT – Unix/Linux: Linux: Cisco: netstat –r route ip route show show ip route 24 Datenkommunikation – V. Internet Protokoll Address Resolution (1) • Rechner besitzen im Protokoll der Ebene 3 eine ID: eine IP Adresse • Somit hat der Rechner 2 Adressen: - eine in Schicht 2 - und eine in Schicht 3 • Die Datenübertragung erfolgt ausschliesslich über die Adresse aus Schicht 2 • Die Anwendung / der Benutzer kennt nur die Adresse aus Schicht 3 - oder einen „Namen“ nach einer anderen Konvention (DNS und andere) 25 Datenkommunikation – V. Internet Protokoll Address Resolution (2) Problemstellung: Wie weiss ein Host, an welche Layer 2 Adresse er ein IP Paket zustellen soll? Address Resolution Protokoll • Jeder Rechner hat eine ARP Tabelle, in der IP Adressen den Layer 2 Adressen zugeordnet werden Windows/Linux: arp • Ist ein Eintrag nicht vorhanden, wird dieser über Broadcast angefordert • Erkennt der gesuchte Rechner seine IP im Broadcast, antwortet er dem Sender mit einem Unicast. Inhalt der Meldung: eigene IP Adresse und eigene Layer 2 Adresse 26 Datenkommunikation – V. Internet Protokoll Address Resolution (3) 27 Datenkommunikation – V. Internet Protokoll Fehlerbehandlung - ICMP • Protokol auf Layer 3/4 • überträgt Fehlermeldungen, die auf Layer 3 entstehen können: Routing, Fragmentierung, Erreichbarkeit • Nachrichten z.B. über: - Netz ist nicht erreichbar (Routing) - Host ist nicht erreichbar - Reassembierung nicht möglich - TTL abgelaufen - siehe z.B. /usr/includes/linux/icmp.h • ICMP Forwarding Redirects • Implementierung: ping, traceroute 28 Datenkommunikation – V. Internet Protokoll Dynamic Host Configuration Protocol Problemstellung: Wie kann die Netzwerkkonfiguration von Hosts in grösseren Netzwerken vereinfacht und automatisiert werden? DHCP • Host schickt Broadcast, DHCP Server antwortet mit Netzwerk Konfiguration: (IP, Netzmaske/-adresse, Route, DNS etc.) • grosse Anzahl von weiteren Feldern möglich • Server kann IPs an MACs binden (stationäre Hosts) • freie IP Bereiche für dynamische Hosts (Laptops, Gäste etc.) • "Mieten" einer IP für eine beschränkte Zeitdauer • bei Subnetzen DHCP Relays 29 Datenkommunikation – V. Internet Protokoll Routing (1) Bisher haben wir gesehen, dass ein Gerät Pakete anhand seiner Weiterleitungstabelle weiterleitet. Wie entsteht jedoch diese Tabelle? → Routing Router: Host mit mindestens 2 Netzwerkinterfaces die sich jeweils in verschiedenen physikalischen Netzen befinden und jeweils eine unterschiedliche (Sub-)Netzwerkadresse besitzen. Aufgabe ist die Weiterleitung von IP Paketen zwischen den angeschlossenen Netzen. D.h. ein Router ist zuerst für die Weiterleitung von Paketen zuständig. Das Routing ist eine zusätzliche Aufgabe. 30 Netzwerk als Graph A B 1 E 1 4 C F 2 3 6 1 Datenkommunikation – V. Internet Protokoll Routing (2) 9 D 31 Datenkommunikation – V. Internet Protokoll Routing (3) Routing: • Finden des Weges zwischen zwei Knoten (Hosts, Router) mit den geringsten Kosten • Die Kosten eines Weges sind die Summe der Einzelkosten der Kanten Statische Methode: Die Kosten werden einmal ermittelt, die Konfiguration ist dann statisch Nachteile: • Berücksichtigt keine Knoten- oder Leitungsausfälle • Berücksichtigt nicht den Anschluss neuer Knoten oder Verbindungsleitungen • Geht davon aus, dass sich die Kantenkosten nicht verändern 32 Datenkommunikation – V. Internet Protokoll Routing (4) Dynamisches Routing: • Anpassung der Routing- bzw. Weiterleitungstabelle zu Laufzeit • Verteiltes, dynamisches Routing (jeder Knoten nimmt am Routingprotokoll teil) • Berücksichtigt Ausfall von Knoten und Verbindungsleitungen • Verteilter Algorithmus Zwei Klassen von dynamischen Routing Protokollen: • Distance Vector • Link State 33 Datenkommunikation – V. Internet Protokoll Routing (5) Metriken • Metrik ist ein Wert, der eine Route qualifiziert. Je geringer die Metrik, desto besser ist die Route. Metriken können gebildet werden nach der Bandbreite einer Verbindung, nach den Kosten einer Verbindung etc. • Metriken werden z.T. vom Router selbst gebildet, (wichtig) können aber auch vom Admin gesetzt werden • Bei alternativen Routen zum gleichen Ziel wird die Route mit der niedrigsten Metrik gewählt! 34 Datenkommunikation – V. Internet Protokoll Routing - Distancevector Routing (1) • Jeder Knoten bildet ein eindimensionales Array mit den Metriken zu den übrigen Knoten • Alle diese Informationen (Ziel, Metrik) werden an die unmittelbaren Nachbarn verteilt. • Annahme: Jeder Knoten kennt die Kosten der Verbindungsleitungen zu seinen unmittelbaren Nachbarn Protokollablauf • 1. Schritt: Entfernung zu den direkt angeschlossenen Knoten eintragen • 2. Schritt: Versenden der eigenen Entfernungstabelle • 3. Schritt: Ergänzen der eigenen Entfernungstabelle um die erhaltenen Informationen, und Generieren der Routingtabelle • 4. Schritt: Versenden von Routing-Aktualisierungen • 5. Schritt: wieder zu Schritt 3 35 Datenkommunikation – V. Internet Protokoll Routing - Distancevector Routing (2) B Aus Sicht von B C A D E F Destination Cost NextHop A 1 A C 1 C D 2 C E 2 A F 2 A G 3 A G 36 Datenkommunikation – V. Internet Protokoll Routing - Distancevector Routing (3) Routing-Aktualisierungen: • Periodisch: Mitteilen, dass der sendende Knoten noch in Betrieb ist • Angestossen: Wenn sich bei einem Knoten aufgrund von neuen Informationen die Routingtabelle ändert Probleme: Count-of-Infinity Problem !! Lösungen: Maximale Metrik = 16 (“unendlich langer Weg zum Ziel”) Split Horizon: Knoten schickt jene Routen nicht mit, die er vom jeweiligen Nachbarn erhalten hat Split Horizon with Poison Reverse: Die Information wird doch an den Nachbar, der die Quelle der Information ist, geschickt, aber mit einer unendlichen Metrik belegt 37 Datenkommunikation – V. Internet Protokoll Routing - Distancevector Routing (4) Implementierung: RIP v1(Routing Information Protokoll) • Kosten jeder Verbindungsleitung = 1 • Router versucht immer die Route mit den wenigsten Hops auszuwählen • Aktualisierung alle 30 Sekunden über Broadcast • Gültige Anzahl Hops: 1-15, 16 = unendlich • Unterstützt kein Subnetting RIP v2 • Authentifizierung jedes RIP Packetes • Multicast anstelle Broadcast für die Informationsverteilung • Unterstützt auch Subnetting 38 Datenkommunikation – V. Internet Protokoll Routing - Distancevector Routing (5) Cisco Konfiguration – RIP v2 interface Ethernet0 ip address 192.213.11.1 255.255.255.0 interface Ethernet1 ip address 192.213.12.2 255.255.255.0 interface Ethernet2 ip address 128.213.1.1 255.255.255.0 router rip version rip 2 network 192.213.0.0 network 128.213.1.1 Konfiguration einzelner Interfaces (optional, ansonsten “send and receive”:) interface Ethernet0 ip rip send [1/2] ip rip receive [1/2] 39 Datenkommunikation – V. Internet Protokoll Routing – Link State (1) Vorgehensweise • Routing Informationen werden an alle teilnehmenden Router geschickt (vgl. Distance Vector: nur an unmittelbare Nachbarn) • Link State Packet (LSP) – ID des Routers, der das LSP generiert – cost of link (Metrik) zu jedem direkt angeschlossenen Knoten – Sequence Nummer (SEQNO) – (TTL) für jedes Paket • Zuverlässiges Fluten – Speichern des neuesten LSPs von jedem Knoten (SEQNO) – Übermitteln von neueren LSPs an alle Knoten außer dem Urspungsknoten – LSP periodsch generieren: • Erhöhung der SEQNO – Start SEQNO mit 0 nach Reboot – Dekrementieren der TTL jedes gespeicherten LSP • Verwerfen wenn TTL=0 40 Datenkommunikation – V. Internet Protokoll Routing – Link State (2) Ermittlung des kürzesten Pfades • siehe auch Zusatzdokument • Dijkstra’s shortest path Algorithmus • Sei –N die Knoten eines Graphen – k(i, j) die Kosten (Metrik) der Kante (i, j) –s der Knoten, der den Algorithmus ausführt –M die vom Algorithmus bisher erfassten Knoten – c(n) Kosten des Pfades von s nach n M = {s} for each n in N - {s} c(n) = k(s, n) while (N != M) M = M union {w} such that c(w) is the minimum for all w in (N - M) for each n in (N - M) c(n) = MIN( c(n), c(w)+k(w, n) ) 41 Datenkommunikation – V. Internet Protokoll Routing – Link State vs. Distanz Vector Distanz Vector: Jeder Knoten kommuniziert mit seinem direkten Nachbarn und teilt ihm alles mit, was er weiss oder gelernt hat. Link State: Alle Knoten kommunizieren miteinander und schicken sich, was sie mit Sicherheit wissen. 42 Datenkommunikation – V. Internet Protokoll Routing – Link State - OSPF (1) OSPF – Open Shortest Path First • • • • • Implementierung des Link State Routing Authentifizierung von Routing Nachrichten Zusätzliche Hierarchie: Aufteilen der Routing Domain in Areas Lastverteilung: Routen mit gleichen Metriken zulässig 32-Bit Router ID (i.d.R. immer die kleinste IP Adresse) Kennt 6 Nachrichtentypen (5 LSA´s – Link State Advertisement): Hello Packet LSA Typ 1 – Ankündigung von Kosten zwischen Routern LSA Typ 2 – Ankündigung von angeschlossenen Netzwerken LSA Typ 3 – Summary der Netze einer Area LSA Typ 4 – Routen und Kosten zu den Routern mit Anschluss an externe Netze • LSA Typ 5 – Routen und Kosten für externe Netze ausserhalb des AS • • • • • 43 Datenkommunikation – V. Internet Protokoll Routing – Link State - OSPF (2) Router Typen: • • • • IR: Internal Router ABR: Area Border Router BR: Backbone Router (jeder ABR ist auch BR) ASBR: AS Boundary Router 44 Datenkommunikation – V. Internet Protokoll Routing – Link State - OSPF (3) Areas • Router einer Area können LSAs austauschen • Für den LSA Austausch zwischen Areas stehen spezielle Router (ABR) zur Verfügung. • Backbone Area: (ID=0) Alle anderen Areas eines AS sind daran angeschlossen • Stub Area: Empfängt keine externen Routen, ist nach aussen mit einer Default Route angebunden • ABRs teilen den ABRs anderer Areas nur dann Link Informationen mit, wenn der interne Link State Algorithmus abgeschlossen ist • Eine “optimale” Route kann so oft nicht gefunden werden, der Verkehr für das Routing Protokoll wird aber stark minimiert 45 Datenkommunikation – V. Internet Protokoll Routing – Link State - OSPF (4) Typ 1/2 BR BR ABR Typ 3/4 ABR Typ 3 Typ 5 IR IR Typ 1/2 IR Typ 1/2 Typ 5 IR ASBR Externe Routing Domain 46 Datenkommunikation – V. Internet Protokoll Routing – Link State - OSPF (5) 47 Datenkommunikation – V. Internet Protokoll Routing – Link State - OSPF (6) Cisco Konfiguration – OSPF Konfig für 2 Areas interface Ethernet0 ip address 192.213.11.1 255.255.255.0 interface Ethernet1 ip address 192.213.12.2 255.255.255.0 interface Ethernet2 ip address 128.213.1.1 255.255.255.0 router ospf 100 network 192.213.0.0 0.0.255.255 area 0.0.0.0 network 128.213.1.1 0.0.0.0 area 23 48 Datenkommunikation – V. Internet Protokoll Routing – Link State - OSPF (7) Cisco Konfiguration – Authentifizierung interface Ethernet0 ip address 10.10.10.10 255.255.255.0 ip ospf authentication-key mypassword router ospf 10 network 10.10.0.0 0.0.255.255 area 0 area 0 authentication 49 Datenkommunikation – V. Internet Protokoll Routing – Klassenloses Routing (CIDR) Skalierungs Aspekte • • Anwachsen der Routingtabellen Ausschöpfen des Adressraums Problem: ineffiziente Adresszuweisung Schlechte Ausnutzung hängt stark mit dem Verbrauch von Klasse B Netzen zusammen Lösung: Zuweisung mehrerer Klasse C Adressen, wenn nicht nahezu 64K Adressen benötigt werden Cisco Konfiguration: ip classless 50 Datenkommunikation – V. Internet Protokoll Routing – Interdomain Routing (0) Routing Domain, Autonomes System (AS): Internetwork, bei dem sich alle Router unter der gleichen administrativen Kontrolle befinden. Klassifizierung der Routing Protokolle: • Intradomain Routing Protokolle oder Interior Gateway Protokolle (RIP, OSPF) • Interdomain Routing (BGP) 51 Datenkommunikation – V. Internet Protokoll Routing – Interdomain Routing (1) Routing: • innerhalb eines AS: IGP (Interior Gateway Protocol): - z.B. RIP, OSPF • zwischen AS: EGP (Exterior Gateway Protocol): - BGP4 • Austausch von Routinginformationen zwischen AS = Interdomain Routing • Möglichkeit für die hierarchische Aggregation von Routinginformationen (CIDR) • Innerhalb eines AS freie Wahl des Routing Protokolls • Ein AS kann den Umfang von Routinginformationen dadurch reduzieren, dass Default Gateways eingesetzt werden 52 Datenkommunikation – V. Internet Protokoll Routing – Interdomain Routing (2) Large corporation „Consumer“ ISP Peering point Backbone service providers „Consumer“ ISP Large corporation Peering point „Consumer“ ISP Small corporation 53 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (1) Border Gateway Protokoll (BGP) sehr gutes Buch dazu: John W. Stewart III, BGP4 – InterDomain Routing in the Internet • Komplex • Annahme: Das Internet darf ein beliebiger Zusammenschluss verschiedener AS sein Drei AS Typen: • Stub AS: • Multihome AS: • Transit AS: nur eine Verbindung zu einem anderen AS Verbindungen zu mehr als einem anderen AS, weigert sich, Transitverkehr zu befördern Verbindungen zu mehr als einem anderen AS, befördert Transitverkehr • BGP4 kennt auch private AS, welche nur intern benutzt werden können 54 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (2) • BGP über TCP • 2 Router (Peers) haben je eine BGP Session offen • sobald TCP Session unterbrochen: -> keine Connectivity -> Peers müssen jeweils vom anderen gelernte Information vergessen • ein Router kann bei mehreren BGP Sessions dabei sein • BGP übermittelt erreichbare Netzwerkpräfixe und deren Eigenschaften: - Nächster Hop - Metriken - AS - Pfad, über den das Präfix gekommen ist - Ursprungsart eines Präfix (unbekannt oder statisch, IGP, EGP) 55 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (3) • BGP ist erweiterbar: Feature Verhandlung via Protokoll • BGP verwaltet Präfixe in drei Gruppen: - empfangene Präfixe - lokal verwendete Präfixe - weiterzuversendende Präfixe • Präfixe & deren Attribute können gefiltert und manipuliert werden • ein BGP Speaker wird mit seiner eigenen AS und der seiner Peers konfiguriert 56 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (4) A B • AS A kann angeben über welche Verbindung welche seiner Präfixe bevorzugt geroutet werden sollten 57 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (5) C A B D • AS C kann kommunizieren, dass es eine bessere Route von A nach B hat als D 58 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (6) Warum ist Interdomain-Routing so schwierig? • für jedes Netz muss ein passender Eintrag vorhanden sein • Autonome Struktur der Domains (Metriken) • Vertrauen in die Richtigkeit der Routinginformationen anderer 59 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (7) • Administrator wählt in jedem AS mindestens einen BGP Speaker • BGP Speaker tauschen Informationen mit BGP Speakern anderer AS aus • jedes AS hat mindestens ein ABR • BGP verbreitet im Gegensatz zu Intradomain Protokollen vollständige Wege in Form von numerischen Listen • BGP Sprecher sind in der Lage, zuvor bekanntgegebene Wege zu annullieren • BGP übermittelt positive wie negative Erreichbarkeitsnachrichten 60 Datenkommunikation – V. Internet Protokoll Routing – BGP4 (8) • BGP Routen werden nach Länge des AS-Pfads gewählt und ans Routing weitergegeben -> Kriterium bei EGP ist nicht Optimum, da es mit so einem simplen Algorithmus nicht erreicht werden kann! -> entscheidend ist die Erreichbarkeit! • siehe auch Zusatzdokument 61 Datenkommunikation – V. Internet Protokoll Routing – IGP & EGP Routing (1) Integration von Interdomain- und Intradomain-Routing Verschiedene Ansatzpunkte 1 In einem Stub-AS kann ein Border-Router eine Default Route in das AS injizieren, welche vom Intradomain Protokoll verwendet wird. 2 In einem Multihomed-AS kann ein Border-Router Routen in das AS injizieren, die er von auserhalb des AS gelernt hat und welche vom Intradomain Protokoll verwendet werden. 3 Als Intradomain Protokoll wird eine spezielle Variante, das Interior BGP (IBGP) verwendet, welches Routen von den BGP Sprechern direkt an die Router des AS weiterleiten kann. IBGP wird verwendet, da der Informationsverkehr aus dem EGP zu hoch ist (Volumen, Häufigkeit) für das IGP. 62 Datenkommunikation – V. Internet Protokoll Routing – IGP & EGP Routing (2) 63 Datenkommunikation – V. Internet Protokoll Routing – IGP & EGP Routing (3) Konfig Router A: router bgp 100 neighbor 129.213.1.1 remote-as 200 Konfig Router B: router bgp 200 neighbor 129.213.1.2 remote-as 100 neighbor 175.220.1.2 remote-as 200 Konfig Router C: router bgp 200 neighbor 175.220.212.1 remote-as 200 neighbor 192.208.10.1 remote-as 300 Konfig Router D: router bgp 300 neighbor 192.208.10.2 remote-as 200 64 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (1) Problemstellung: • • Handhabung von Skalierungsproblemen (hauptsächlich: Adressraumausnutzung) CIDR und Subnetting brachten in IPv4 Erleichterung, reichen aber bald nicht mehr aus (?) (siehe NAT) Entwicklung : • • • • IETF (Internet Engeneering Task Force) beschäftigte sich sich mit der Erweiterung des Adressraums Erhöhung des Adressranges erfordert Änderungen am Header Zuerst: IP Next Generation (IPnG), heute IPv6 Neben der Adressraumvergrösserung wurden folgende Ziele formuliert: - Unterstützung von Echtzeitdiensten - Unterstützung von Sicherheitsmerkmalen - Automatische Konfiguration - Erweiterung der Routingfunktionalität (Mobile Hosts) 65 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (2) Adressen und Routing: • • 128 Bit Adressen (=3,4*1038) anstelle 32 Bit (=4*109) zum Vergleich: – Erdoberfläche ca. 268mm2 – ca. 232 Menschen 66 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (3) Adressen und Routing: • • • • • • • Keine Adressklassen, aber Aufteilung der Adressen nach den führenden Bits (siehe S. 325, “Computernetze”) Klasse A,B und C Adressen sind in 001 abgebildet (“Aggregierbare”, globale Unicastadressen) Es gib Reservierungen für IPX und spezielle ISO Protokolle (NSAP), weite Bereiche wurden für zuküftige Entwicklungen reserviert Link Local Adressen: sind auch bei Wechsel eines Hosts in ein anderes Netz noch eindeutig! Site-local Adressen: Nicht geroutete Adressen für Unternehmensbereiche, die nicht eindeutig sein müssen Multicast Adressen, ähnlich wie in IPv4 Für den Übergang von v4 auf v6: v4 kompatible v6 Adressen: v4 Adresse wird “vorne” mit 0en auf 128 Bit erweitert v6 Adressen für Hosts, die nur v4 verstehen: 2 Byte mit 1en vor die v4 Adresse, dann mit 0en auf 128 Bit auffüllen 67 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (4) Adressbeispiele: Schreibweise x:x:x:x:x:x:x:x Wobei x = 16 Bit in Hex, wenn x == 0, dann weglassen 47CD:1234:4422:AC02:0022:1234:A456:0124 47CD:0000:0000:0000:0000:0000:A456:0124 = 47CD::A456:0124 IPv6 Adresse für Hosts, die IPv4 und IPv6 verarbeiten: 134.34.1.1 = ::134.34.1.1 IPv6 Adresse für Host die nur IPv4 verarbeiten: 134.34.1.1 = ::FFFF:134.34.1.1 68 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (5) Adressvergabe globale Unicast Adressen: Ziel: Durch Aggregation der Zuteilung kleine Routingtabellen, Adressverteilung ähnlich CIDR Begriffe: • Backbone AS verbindet Provider AS Provider AS verbindet Teilnehmer AS Provider bekommt ein Präfix zugeteilt, seinen Kunden teilt er längere Präfixe zu Probleme (z.Zt. ungelöst) • Was geschieht bei einem Providerwechsel? • Was ist, wenn ein Provider an mehreren Backbones angeschlossen ist? • Was ist, wenn ein Teilnehmer an mehreren Providern angeschlossen ist? • Erweiterung des IPv6 Protokol Stacks (Shim6) wird diskuttiert (August 2006), welche Multihoming implementieren würde (http://tools.ietf.org/wg/shim6/) 69 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (6) IPv6-Header: (vgl. auch Seite 7 (#Slide 7)) 0 4 Version 12 TrafficClass PayLoadLen 16 24 31 Flow Label NextHeader HopLimit SourceAddress DestinationAddress Next Header / Data 70 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (6) Ipv4 vs IPv6 0 4 Version 8 HL 16 DiffServ Identification TTL Protokol 20 31 0 4 Length Version TrafficClass Fl PayLoadLen Offset Header Checksum 12 16 24 31 Flow Label NextHeader HopLimit SourceAddress Source Destination Next Header / Data DestinationAddress verändert entfernt Next Header / Data hinzugefügt Inspiriert von: „Discovering IPv6 with Wireshark“ von Rolf Leutert, Seite 6 http://sharkfest.wireshark.org/sharkfest.10/B-6_Leutert%20Discovering%20IPv6%20with%20Wireshark.pdf 71 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (6) Version: Traffic Class: 6 Type Of Service, Explicit Congestion Notification Flow Label: Zuordnung von Paketen zu Datenströmen versch. Qualität Payload Length: Extension Header + Daten Next Header: identifiziert Header, welcher auf IPv6 Header folgt (u.U. nächsthöheres Protokol). Z.B. TCP Header oder IPv6 Extension Header Hop Limit: => TTL 72 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (7) Extension Header: Müssen in definierter Reihenfolge auftreten: - IPv6 Base Header - Hop by Hop Options - Destination Options (für Dest. plus Knoten auf expliziter Route) - Routing Header - Fragmentation Header - Authentication Header - Encapsulation Header - Destination Options für Dest. Next Header: was für ein Header folgt als nächster Options: effektive Optionen evtl. Padding: Füller 73 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (8) Autokonfiguration: Zustandslose Autokonfiguration: Benötigt keinen Server (vgl. DHCP) Prinzipielle Vorgehensweise: 1. 2. Einholung einer Interface ID (ergibt wertniedrigsten Teil der IPv6 Adresse, z.B. 48 Bit MAC Adresse) Einholung des Adresspräfix des Subnetzes Funktioniert mittels ICMPv6: - Router Anfragen & Antworten Netz ARP Routen finden Redirect Fehlermeldungen 74 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (9) Erweiterte Routingfunktionalität: • • In einem Erweiterungs-Header wird eine Liste von IPv6 Adressen gespeichert Diese stellen eine Reihen von Knoten dar, die ein Paket auf dem Weg zu Ziel passieren sollte Anycast: • gehen an irgendeine Maschine (üblicherweise Router) in einem gewissen Netz 75 Datenkommunikation – V. Internet Protokoll IP-Version 6 (IPv6) (10) IPSec • • • • DB mit Sicherheitsinfos [Gateway | Host] to [Gateway | Host] Sicherheit Authentifizierung (entspr. Header) Verschlüsselung (dito) 76