Überblick Fragmentierung IPv4 Aufbau ICMP Adress Auflösung IPv6 IPsec
TCP/IP Referenzmodell
Das Internet
Internet Protokoll (IP) RFC 791 (Request for Comments) IP arbeitet mit Datagrammen, deren Kopf min. 20 und max. 60 Bytes lang ist D.h. Es stehen 40 Bytes für Optionen zur Verfügung Daten liegen in High-Order vor, d.h. Auf Rechnern mit beispielsweise Pentium Prozessoren muss Umrechnung auf beiden Seiten erfolgen Übertragung erfolgt nach dem Best-Effort -Prinzip
Kommunikation im Internet Versenden von Paketen mit maximaler Größe von 64k möglich Durchschnittlich 1500 Bytes IP schreibt mindestlänge 576 Oktette vor Problem: Durchschnittliche Paketgröße > 576 Oktette!
Fragmentierung
Fragmentierung Strategie 1 Transparente Fragmentierung (z.b. ATM, dort als Segmentierung bezeichnet) Ausgangsgateway setzt Fragmente wieder zu Paketen zusammen Fragmentierung muss ggf. wiederholt werden (Overhead)
Fragmentierung Strategie 2 Einmal fragmentierte Pakete werden nicht wieder zusammengesetzt Jeder Host muss somit in der Lage sein zu reassemblieren Overhead, da jedes Fragment als eigenständig gilt (vollständiger Header) Geht ein Fragment verloren, gilt das ganze Paket als verloren
IP Header
IP-Header Version: Hier steht eine 4! IHL: Länge des Kopfes in Langworten (32 Bit), kann also zwischen 5 und 15 liegen Type of Service: 8 Bit, davon sind 3 Bit Priorität, mit 000 am geringsten 1 Bit für möglichst geringe Verzögerung (Delay) 1 Bit für möglichst hohen Durchsatz (Throughput) 1 Bit für möglichst hohe Zuverlässigkeit (Reliability) 2 ungenutze Bits
IP-Header Total Lenght: Gesamtlänge des Paketes, Header und Daten, max. 64k Identification: Dient zur Erkennung von Fragmenten die zum gleichen Paket gehören (haben alle gleiche Identifikation) 1 Bit ungenutzt 1 Bit DF: (Don't fragment) Wenn dieses Bit gesetzt ist, darf das Paket nicht fragmentiert werden 1 Bit MF: (More fragments) ist bei allen Fragmenten außer dem letzten gesetzt
IP-Header Fragment offset: Position des Fragments im Paket, vielfaches von 8, 8192 Fragmente pro Paket erlaubt Time To Live: Zähler, der bei jedem Hop reduziert wird, bei 0 wird das Paket verworfen und Quelle informiert Protocol: Vermittlungsschicht muss wissen, an welchen Transportprozess des Paket weitergereicht werden soll, z.b. TCP oder UDP, weitere im RFC 1700 Checksum: Modulo 2^16 Addition im Einerkomplement über den Header, Gesamtergebnis muss 0 sein, wegen TTL stets neu berechnet!
IP-Optionen Jede Option beginnt mit 1-Byte Identifikation Optional kann ein weiteres Feld für Besonderheiten eingefügt werden Danach folgen die Daten Optionen werden auf 4-Byte Grenze aufgefüllt 5 Optionen sind definiert
IP-Optionen Security: Kennzeichnet die Geheimhaltung, z.b. könnten bestimmte Länder umroutet werden Strict Source Routing: Die zu verwendende Route wird strikt vorgegeben, 9 Hops sind möglich, sinnvoll z.b. bei Verlust von Routingtabellen oder bei Zeitmessungen Loose Source Routing: Eine Reihe von Routern wird vorgegeben, zwischendrin können aber weitere liegen (politische oder wirtschaftliche Gründe)
IP-Optionen Record Route: Zeichnet den Verlauf eines Paketes auf, jeder Hop wird vermerkt, ebenfalls mit 9 Hops heute zu knapp bemessen Time Stamp: Wie Record Route, jedoch wird ein Zeitstempel mit abgespeichert, nützlich zur Fehlerbehandlung
IP-Adressen Jeder Router und jeder Host im Internet haben eigene IP IP Adresse muss eindeutig sein Adresse ist 32-Bit lang und wird üblicherweise byteweise dezimal dargestellt: w.x.y.z Dotted Decimal Notation (DDN) Rechner können mehrere verschiedene Adressen besitzen
IP-Adressen Anhand der IP-Adresse lässt sich erkennen, welcher Klasse sie zugeordnet ist Es gibt bis zu 126 Klasse A Netzen mit bis zu 16 Millionen Hosts 16382 Klasse B Netze mit 65000 Hosts (z.b. Uni) Klasse C, 2 Mio Netze mit 254 Hosts Adressen werden vom Network Information Center (NIC) vergeben um Konflikte zu vermeiden
IP-Adressen
Spezielle Adressen IP Adresse 0.0.0.0 eigener Host (Initialisierung) 0 als Netzkennzeichnung => Host im eigenen Netz 255.255.255.255 ist Broadcastadresse 127.0.0.1 ist Loopback 224.0.0.0-239.255.255.255 (Klasse D) Multicastadressen Private Adressbereiche 10.x.x.x, 172.16.0.0-172.31.255.255 und 192.168.0.0-192.168.255.255 Klasse E Netze experimentell
Spezielle Adressen
Subnetze Große Netzwerke speziell Klasse A und B lassen sich sinnvoller Weise in logische Gruppen (Teilnetze/Subnetze) unterteilen Neben Adresse wird Netzwerkmaske benötigt Eingehende Adresse wird mit der Maske UND- Verknüpft Anhand des Ergebnisses erkennt der Router, ob sein Subnetz gemeint ist Erspart umfangreiche Routingtabellen Ebenfalls im DDN Format
Classless Interdomain Routing RFC 1519 CIDR ist unabhängig von den vordefinierten Klassen Ein ISP kann ein Klasse B Netz aufteilen und mehreren Kunden Teile zuweisen Notation ist IP-Adresse/Anzahl der Netzwerkbits, z.b. 134.106.55.1/26 statt 134.106.55.1/255.255.255.192 Netzwerkbits entsprechen den Maskenbits
Netzmaske
Internet Steuerprotokolle ICMP (Internet Control Message Protocol) ARP (Address Resolution Protocol) RARP (Reverse Address Resolution Protocol) BOOTP (Bootstrap Protocol)
ICMP RFC 792 (Request for Comments) Schwerwiegende Probleme (z. B. Unterbrechung einer Leitung) werden zur Vermeidung von Folgefehlern mittels ICMP den Kommunikationspartnern mitgeteilt Ist in IP-Datagramm gekapselt
ICMP Es gibt verschiedene Nachrichtentypen, die jeweils verschiedene Header haben Einzelne Paketverluste werden nicht gemeldet (unzuverlässiger Datagrammdienst) ICMP meldet keine Fehler bzgl. ICMP-Pakete ICMP unterstützt den Austausch von Statusanfragen und Zustandsinformation zur Kontrolle und Fehlersuche im Netz (Test von Routen; Messen von Verzögerungen etc.) Bekannteste Anwendung: Ping
ICMP Typen
ICMP Header 5
ARP Problem: IP Adressen sind virtuell, d.h. sie werden von der Software verwaltet Für den Benutzer sind IP Adressen verständlich und vermitteln den Eindruck eines großen Netzes Die Rahmenübertragung findet aber auf Schicht 2 statt, hier sind IP-Adressen unverständlich Zur Datenübertragung ist deshalb die Hardwareadresse notwendig
ARP Lokal Möglichkeit 1: Alle lokalen Hardwareadressen werden von einem Server verwaltet Möglichkeit 2: Der Sender sendet ein Broadcast mit IP- Adresse des gewünschten Zielrechners Nur Zielrechner antwortet und übermittelt Hardwareadresse
ARP Optimierung Bei einer Anfrage sendet die Quelle gleich die eigene Hardwareadresse mit Eingehende HW-Adressen kommen in einen Cache Zur Erkennung neuer Hardware läuft Cache ab Neuer Rechner sendet zu Beginn Anfrage mit eigener IP, weil Doppelte IP würde erkannt werden (Bei Antwort) HW-Adresse wird allen mitgeteilt (für Cache)
1. Möglichkeit: ARP-Proxy ARP Global Router erkennt, dass sich die Anfrage auf ein anderes Netz bezieht Router gibt sich als Stellvertreter aus 2. Möglichkeit: Host ist bekannt, dass Empfänger in anderem Netz liegt IP-Paket mit Adressangabe wird an Router geschickt
Genereller Ablauf: ARP Global Rahmen mit IP-Paket wird zum Router gesendet Router liest IP-Paket aus Ziel wird aus Routingtabelle bestimmt Paket wird zum Zielrouter gesendet, im Beispiel in einem FDDI Rahmen, ggf. findet auch hier vorher ein Adress Auflösung statt Zielrouter holt die Information aus dem FDDI Rahmen und sendet HW-Adresse zurück (falls bekannt) oder sendet das Paket ins eigene LAN Dann wie gehabt
ARP Beispiel
ARP
ARP Hardware Address Type: Art der benutzten Hardware, enthält z.b. eine 1 für Ethernet Protocol Address Type: Art des verwendeten Protokolls, z.b. 0x0800 für IP HaddrLen/PaddrLen: Anzahl von Bytes, die für die Hardware- bzw. Protokolladresse benötigt werden
ARP Operation: Enthält entweder 1 oder 2 zur Unterscheidung zwischen Anfrage und Antwort (wichtig z.b. bei Ethernet) Sender Haddr/Paddr: Hardware- bzw. Protokolladresse des Senders Target Haddr/Paddr: Hardware- bzw. Protokolladresse des Empfängers wobei Target Haddr. im Anfragepaket 0 ist
RARP Ermittelt Protokolladresse (z.b. IP) zu einer Hardwareadresse Vorteil: Festplattenlose Rechner müssen eigene IP nicht fest verdrahten (flexibler und Bootsoftware kann unmodifiziert für viele Systeme verwendet werden) Nachteil: Anfrage geschieht über Broadcast (wird nicht geroutet) => jedes Subnetz benötigt eigenen Server
BOOTP Alternative zu RARP Erlaubt Endsystemen ohne Festplatte IP- Adresse und weitere Standardinformationen vom Server zu holen Verwendet UDP und TFTP => kann Netzweite Anfragen stellen
IPv6 IPv4 hat einen Adressraum von knapp 4Mrd. Durch enorme Zuwachszahlen im Internet wird der Adressraum bald erschöpft sein 1990 begann die IETF (Internet Engineering Task Force) mit Entwicklung eines neuen IP Ergebnis ist IPv6
Ziele von IPv6 Größerer Adressraum Reduzierung von Routing-Tabellen Vereinfachung des Protokoll, damit Router Pakete schneller abwickeln können Höhere Sicherheit (Authentifikation und Datenschutz) Mehr Gewicht auf Dienstarten (speziell Echtzeitanwendungen)
Ziele von IPv6 Unterstützung von Multicast durch Definition des Umfangs Einfache Adressänderung (z.b. für Reisen) Flexible Gestaltung, damit Weiterentwicklung möglich ist Unterstützung der alten Protokolle um einen sanften (langjährigen) Übergang zu gestatten
IPv6 IPv6 ist bezüglich der Headergestaltung flexibler geworden Es gibt einen Basisheader und beliebige optionale Header
IPv6 Basisheader Header beinhaltet keine Prüfsumme mehr!
IPv6 Basisheader Version: Versionsnummer des Protokolls Traffic Class: Verkehrsklasse zur Spezifikation allgemeiner Eigenschaften, z.b. wenn geringe Verzögerung erforderlich ist Flow Label: Bereitstellung einer Dienstklasse, ist dieser Wert gesetzt, werden alle Pakete über die gleiche Route gesendet (simuliert verbindungsorientierte Übertragung)
IPv6 Basisheader Payload Lenght: Länge des Nutzdatenfeldes (vgl. IPv4, dort war Gesamtlänge angegeben) Next Header: Enthält entweder den Typ des nächsten (optionalen) Headers oder den Typ der Datenart im Datenteil (z.b. TCP oder UDP) Hop Limit: Gibt an, nach wie vielen Hops das Paket verworfen wird Source/Destination Address: Jeweils 128-Bit Adressraum für Quell- und Zieladresse
IPv6 Header Beispiel für den NEXT-Header Zeiger: (a) Keine Optionen, NEXT zeigt auf Nachrichtentyp (b) NEXT zeigt auf Option ROUTE, NEXT von ROUTE gibt den Nachrichtentyp an
IPv6 Optionen Woran wird Beginn des Folgeheaders erkannt? (a) Einige Header haben feste Länge, Basisheader z.b. 40 Bytes, wird am Typ erkannt (b) Header die Optionen beinhalten, werden über das Feld HEADER LEN in ihrer Länge definiert
Sinn mehrerer Header Wirtschaftlichkeit Geringerer Overhead durch Maßschneiderung Beispiel: Fragmentierungsinformationen bei IPv4 stets mitgesendet aber selten benötigt Erweiterbarkeit Einführung neuer Standards möglich, ohne Protokoll grundlegend zu verändern (IPv4 Header -> IPv6) Experimentelle Header zweier Systeme können durchs Internet geroutet werden, sofern Routing Header vor experimentellen Headern stehen
Fragmentierung Wie bei IPv4 kommt ein Präfix vor jedes Fragment Da Basisheader keine Fragmentierungsinformationen mehr beinhaltet wird Fragmentheader benötigt Fragmente werden ausschließlich am Header erkannt Alle Fragmente haben gleiche Länge, außer dem letzten
Fragmentierung
Fragmentierung Wichtigster Unterschied: Unter IPv6 wird nicht von Routern fragmentiert! Bestimmung der MTU (Maximum Transfer Unit) ist nun Aufgabe des Hosts Prozess (Path MTU Discovery) verläuft normalerweise iterativ Router verwerfen zu große Pakete mit einer Fehlermeldung
IPv6 Adressierung Wegfall von Broadcast, statt dessen Unicast: Ansprechen eines Ziels Multicast: Gruppe von mehreren Computern, die ggf. verschiedene Standorte haben, ersetzt Broadcast, Gruppenzugehörigkeit ist jeder Zeit änderbar Anycast: Anfrage an redundante Server möglich, Zuweisung kann z.b. nach Last oder Nähe entschieden werden
IPv6 Adressierung Adressraum beträgt nun 128 Bit Entspricht ca. 3,4*10^38 Adressen Oder 667 Billiarden Adressen/mm^2 Erde Aufgrund der Darstellungslänge in DDN gibt es neue Schreibweise (jetzt in hex): z.b. 3ffe:400:280:0:0:0:0:1 oder kurz 3ffe:400:280::1 (EINE Gruppe von Nullen kann durch :: ausgespart werden)
IPv6 Adressierung IPv4 Adressen können durch ::ffff:139.18.38.71 dargestellt werden, entspricht ::ffff:8b12:2647 Schreibweise mit Präfix IPv6/Präfix, z.b. 3ffe:400:280:0:0:0:0:1/48 d.h. 128-48=80 Bit für lokale Adressierung
Aufteilung der Adressen reserviert für spezielle Anwendungen 0::0/8 0,4% noch nicht zugeordnet 100::0/8 0,4% Abbildung von NSAP-Adressen 200::0/7 0,8% Abbildung von IPX-Adressen 400::0/7 0,8% noch nicht zugeordnet 600::0/7 0,8% noch nicht zugeordnet 800::0/5 3,1% noch nicht zugeordnet 1000::0/4 6,3% global eindeutige Adressen 2000::0/3 12,5% noch nicht zugeordnet 6000::0/3 12,5% noch nicht zugeordnet 8000::0/3 12,5% noch nicht zugeordnet A000::0/3 12,5% noch nicht zugeordnet C000::0/3 12,5% noch nicht zugeordnet E000::0/3 6,3% noch nicht zugeordnet F000::0/5 3,1% noch nicht zugeordnet F800::0/6 1,6% noch nicht zugeordnet FE00::0/7 0,8% noch nicht zugeordnet FE00::0/9 0,2% auf eine Verbindung begrenzte Adressen FE80::0/10 0,1% auf eine Einrichtung begrenzte Adressen FEC0::0/10 0,1% Multicast-Adressen FF00::0/8 0,4%
IPv6 Sonstiges Trotz des großen Adressraumes gibt es wiederum private Adressbereich, vergleichbar dem 192.168. Bereich Einführung des Protokolls noch ungewiss Vorwiegendes Interesse in Europa und Asien, wenig Interesse Seitens der USA (da im Besitz von ca. 75% des IPv4 Adressraumes)
IPsec IP Security Protocol (IPsec) Gehört in IPv6 zum Standard Für IPv4 zusätzliche Installation notwendig
IPsec Implementierungen
IPsec Bietet Paketintegrität Verwendung von HMAC (Hash based Message Authentication) vorgeschrieben Hashwert durch symmetrische Verschlüsselung abgesichert Paketauthentifizierung Ergibt sich aus Paketintegrität Paketvertraulichkeit Inhalte der IP Pakete wird symmetrisch verschlüsselt
IPsec Bietet Verkehrsflussvertraulichkeit Durch Tunnelmodus gewährleistet Schutz vor Replay Angriffen Jedes Paket wird durch ARS (Anti Replay Service) auf Wiederholungen geprüft
Datenverschlüsselung Symmetrische Verschlüsselung Modus: Cypher Block Chaining mit explizitem Initialisierungsvektor Gängige Verfahren und Schlüssellängen (Triple )DES, Blowfish, IDEA, Cast, RC5 56 Bit (DES) 448 Bit (Blowfish)
DES im CBC Modus mit IV
Integritätsprüfung Vorgeschriebene Verfahren HMAC MD5 96 und HMAC SHA1 96 Gelten als sicher gegenüber Kollisionen Sicherheit beruht auf symmetrischen Schlüsseln, die per IKE (Internet Key Exchange) ausgetauscht wurden Die niederwertigen 32 Bit des 128 Bit langen Wertes werden entfernt
HMAC
Integritätsprüfung ICV=Integrity Check Value
Anti Replay Service Erkennung doppelter bzw. veralteter Pakete Pakete werden durch monoton steigende 32Bit Sequenznummer markiert Empfänger hat 32 oder 64 Bit Empfangsfenster Eintreffende Pakete links davon werden verworfen Pakete rechts davon verschieben das Fenster
Anti Replay Service
ARS Problem IPsec sieht u.u. vor, die Integritäts und Authentizitätsprüfung abzuschalten Dadurch können falsche Pakete mit zu großen Sequenznummern eingespielt werden ARS verschiebt Fenster zu schnell nach rechts Gültige Pakete werden verworfen Gefälschte Pakete werden erst nach Entschlüsselung erkannt
IPsec Sicherheitsassoziation (SA) Bestimmt das Verhalten von IPsec Verwendete Verschlüsselung Lebensdauer der SA Authentifizierungsprotokoll Verbindungsdaten werden jeweils in die Security Association Database (SAD) eingetragen Eine SA ist immer unidirektional Mehrere SAs über eine Verbindung möglich Z.B. bei Paketen mit verschiedener Sicherheitsstufe
Sicherheitsassoziation PFS=Perfect Forwarding Secrecy (siehe IKE Protokoll)
IPsec Sicherheitsassoziation (SA) Identifizierung der SA anhand des Security Parameter Index (SPI) Wichtig falls mehrere SAs innerhalb eine IP Verbindung mit gleichem Protokoll existieren und sich nur in Verschlüsselungsstärke unterscheiden SAs werden i.d.r. durch IKE Protokoll erzeugt Löschen der SA erfolgt auch durch IKE, wenn Verbindsdauer überschritten Maximale Anzahl von Daten übertragen
Security Policy Security Policy Database (SPD) Beinhaltet Regeln für die Behandlung ein und ausgehender Pakete discard Pakete werden nicht bearbeitet bypass Pakete umgehen IPsec apply Verweis auf SA wird zurückgeliefert und Datagramm entsprechend bearbeitet Falls keine SA existiert wird sie per IKE erzeugt
Betriebsmodi Tunnelmodus Einbettung des originalen IP Paketes Schütz das gesamte IP Paket Kann in allen Einsatzszenarien verwendet werden Transportmodus Schütz den Datenbereich des IP Paketes Kann nur für Host zu Host Verbindungen genutzt werden
Einsatzszenarien
Authentication Header Sichert Authentizität und Integrität der Daten ARS kann eingesetzt werden Dient nicht zur vertraulichen Datenübertragung Schutz erstreckt sich über das gesamte Paket (auch IP Kopf) NAT somit nicht möglich
Authentication Header
AH Paketformat
AH Paketformat Next Header Gibt Protokoll des Inhaltes an (Transportmodus) Im Tunnelmodus immer Wert 4 (IP) Payload Lenght Länge des Kopfes in Vielfachen von 64 Bit
Encapsulating Security Payload ESP Wie AH + Datenvertraulichkeit IP Kopf wird nicht mit authentifiziert Authentifizierungdaten werden hinten angehangen Erlaubte Variationen ESP mit Verschlüsselung (nicht sinnvoll) ESP mit Integritätscheck ESP mit beidem
Encapsulating Security Payload
ESP Paketformat
ESP Paketformat Initialisierungsvektor für CBC Padding Einige Verschlüsselungsalgorithmen erwarten vielfaches einer bestimmten Blocklänge Padding Länge 0 falls kein Padding verwendet wird Next Header Wie AH
Verarbeitung eines ESP Pakets
Zusammenfassung Ausschnitte aus der Vermittlungsschicht Routing Etwas Hardware IPv4 incl. ICMP ARP, RARP, BOOTP Fragmentierung IPv6