Netzwerke Teil 8: TCP/IP - Teil II 16.10.13 1
Übersicht Internet Control Message Protocol (ICMP) Adressauflösung (ARP) Dynamic Host Configuration Protocol (DHCP) Adressumsetzung (NAT) Domain Name Service (DNS) Beispiele für Werkzeuge 2
OSI-Einbindung Anwendung Transport DHCP TCP DNS UDP ICMP Vermittlung IP ARP Sicherung Übertragung LAN bzw. WLAN 3
Internet Control Message Protokoll (ICMP) Definiert in RFC 792 (1981) Für IPv6: RFC 1885, RFC 2463 ICMP dient zum Austausch von Verwaltungsinformationen, Anfragen und Fehlermeldungen. Mit dem IP-Protokoll in die Netzwerkschicht integriert Dieses Protokoll arbeitet wie IP ohne Bestätigungen. Die Pakete werden einfach dem Partner zugeschickt, verarbeitet und u. U. das Ergebnis zurück geschickt. 4
Aufbau des ICMP-Pakets I Das ICMP ist in dem Sinne mit IP verbunden, als dass es im Datenteil eines IP-Pakets integriert ist und dass bestimmte Felder im IP-Kopf gesetzt sind. 5
Aufbau des ICMP-Pakets II Die verschiedenen Arten von ICMP-Paketen unterscheiden sich durch eine bestimmte Nummer im Type-Feld. Eine Auswahl: Type Art 3 Destination unreachable Erläuterung 4 Source quench Puffer sind verbraucht 5 Redirect Pfadumleitung 11 Time exceeded Lebenszeit des Pakets überschritten 0 Echo reply Ping-Antwort 8 Echo request Ping-Anforderung 13 Time Stamp Zeitangabe-Anforderung 14 Time Stamp reply Zeitangabe Der Aufbau des ICMP-Pakets ist abhängig vom Type-Wert. 6
Erläuterungen Das Feld Code enthält noch weitere Informationen, z. B. bei Anforderungen die Art bzw. bei Antworten Fehlercodes. Das Feld Checksumme enthält die ICMP-Kopf-Prüfsumme, d.h. über die ersten 8 byte. In Fehlerfällen wird im ICMP-Datenteil das betroffene IP-Paket (IP- Header mit 8 byte Daten) angefügt, um dem Empfänger eine Möglichkeit der Rekonstruktion zu geben. Funktionen (Beispiele): Source Quench dient der Flusskontrolle, siehe http://en.wikipedia.org/wiki/icmp_source_quench Router Advertisement dient der Bekanntgabe von Routern (ca. alle 7-10 Min.) - dient jedoch nicht zum Austausch von Router-Informationen. Time Exceeded: Wenn max. Anzahl von Hops erreicht und das IP- Frame verworfen wurde. 7
Echo und Echo Reply ICMP-Typ 8 (echo) ist die Aufforderung eine Antwort (echo reply) an den Sender zurückzusenden. Verschiedene Echo-Requests desselben Senders erhalten den-selben Identifier-Wert, während jede Aufforderung aufsteigend durchnummeriert (Sequenznummer) wird. Am Ende dürfen noch max. 2 16-1-Headergröße byte Daten angehängt werden. 8
Time exceeded Dauert die Übertragung eines IP-Pakets zu lange (Ablaufen des TTL- Wertes (a) oder mind. ein Fragment wird innerhalb einer bestimmten Zeitspanne vermisst (b)), wird diese ICMP-Meldung an den Sender zurückgesendet und alle IP-Pakete mit der entsprechenden Nummer verworfen. Im Falle von (a) ist Code 0, bei (b) 1. In den Daten wird zwecks Rekonstruktion der Anfang des verworfenen IP- Pakets angegeben. 9
Adressauflösung (ARP) Address Resolution Protokoll (ARP) Definition in den RFC 826 und RFC 814 Bestandteil der unteren OSI-Netzwerkebene Die Einordnung ist problematisch, da ein Zugriff auf die Adressen des Link-Layers (MAC-Adresse) notwendig ist. Korrekter wäre eine Einordnung in einen Management-Bereich, der unabhängig von den Schichten ist. Ziel: Umsetzung der IP-Adresse in MAC-Adresse des Empfängers, da nur dann dieser anhand der IP-Adresse angesprochen werden kann Es gibt noch das Reverse ARP, das dazu dient, von der bekannten MAC-Adresse die dazugehörige IP-Adresse zu erfahren. 10
Zielstation ist im selben LAN Sender und Empfänger benutzen dasselbe LAN - genauer beide befinden sich in derselben Broadcast-Domain: Prüfung, ob MAC-Adresse schon im Cache ist: Vorhanden: diese Adresse verwenden Nicht vorhanden: Broadcast-Anfrage auf Link-Ebene Die Station mit der bewussten MAC-Adresse meldet sich und teilt IP und MAC-Adresse dem Sender mit In beide Caches (Sender und Empfänger) werden die neuen Werte eingetragen. Cache = Zwischenspeicher mit Ergebnissen der vorherigen Anfragen bzw. fest eingestellten Werten 11
Zielstation ist im fremden Netz Sender und Empfänger sind über mindestens einen Router verbunden. Dieser Fall wird anhand der IP-Adresse und der Netzwerkmaske festgestellt. Router-MAC-Adresse bestimmen Vorhanden: Adresse verwenden Nicht vorhanden: MAC-Adresse des Routers mit Hilfe dessen IP-Adresse bestimmen (wie vorheriges Verfahren) Senden des Pakets an den Router mit der IP-Adresse des eigentlichen Empfängers Router prüft anhand IP-Adresse, ob Zielrechner in einem der direkt an ihm angeschlossenen LANs ist Falls nicht: Neuen Router (Nachbarn) samt dessen MAC-Adresse bestimmen und an diesen senden Falls doch: an diese Zielstation direkt mit dessen MAC-Adresse senden Das Weiterleiten von Router zu Router wiederholt sich bis Zielstation erreicht ist. 12
Dynamic Host Configuration Protokoll (DHCP) RFC 1533, 1534, 1541, 1542, 2131 und 2132 Arbeitet oberhalb von OSI-Ebene 4 UDP, Ports 67 und 68 Ziele Verbesserte Ausnutzung der IP-Adressen Automatisierte Initialisierung des TCP/IP-Stacks Auf den Stationen muss sich eine "dynamisch wachsende" Realisierung des TCP/IP-Stacks befinden Weiterentwicklung des alten BOOTP-Protokolls Lease = Vergabe einer IP-Adresse für eine gewisse Zeit 13
DHCP-Server und Clients 14
DHCP-Informationen Über DHCP werden dynamisch vergeben bzw. bekannt gemacht: IP-Adresse Netzmaske Adressen von Namensservern (DNS, WINS) Default-Router Name der Domain... Die automatische Vergabe hat neben der besseren Ausnutzung des IP-Adressraums den großen Vorteil der Arbeitsersparnis der System-/Netzwerkadministratoren. Fast alle Internet-Service-Provider arbeiten mit DHCP. 15
Arbeitsweise I Schritt 1: Lease-Anforderung Minimaler Aufbau der TCP/IP-Stacks: UDP Broadcast ohne Absenderadresse (0) mit MAC-Adresse: DHCPDISCOVER Schritt 2: Lease-Angebot Alle angesprochenen DHCP-Server antworten mit Broadcast Informationen: MAC-Adresse, angebotene IP-Adresse samt Subnetzmaske, DHCP-Server-Adresse, Dauer der Lease: DHCPOFFER Kommt keine Server-Antwort (kein DHCP-Server erreicht oder keiner mit freier Adresse): Warten und erneuter Versuch (alle 5 Minuten probieren) 16
Arbeitsweise II Schritt 3: Lease-Auswahl Antwort per Broadcast mit IP-Adresse des gewählten DHCP- Servers: DHCPREQUEST Alle anderen Server beenden den Vorgang, da sie aufgrund des Broadcast den DHCPREQUEST mitbekommen haben Schritt 4: Lease-Bestätigung Server schickt direkte Bestätigung mit gültiger IP-Adresse Client übernimmt die weiteren Daten und baut mit den Daten den TCP/IP-Stack vollständig auf Server kann aber auch ablehnen: dann neuer Beginn des Verfahrens Schritt 5: Benutzung der IP-Adresse 17
Arbeitsweise III Schritt 6: Erneuerung des Lease Client versucht nach 50% des Lease-Zeitraums eine Erneuerung: direkte Adressierung mit DHCPREQUEST Falls keine Antwort bis 87,5% des Lease-Zeitraums: DHCPREQUEST mit Broadcast mit Empfang von Ablehnung (neuer Durchlauf) oder Bestätigung (Verlängerung) Falls keine Antwort ab 100%: Sonstige Netzaktivitäten einstellen und wie initial von vorn beginnen Nach Ablauf einer Lease darf die Adresse nicht benutzt werden: alle Netzaktivitäten werden eingestellt. Nach Zusammenbruch des Clients: Verkürztes Verfahren unter Verwendung der alten IP-Adresse, so dass oft dann die alte weiter benutzt werden kann. 18
Hinweise Router können so konfiguriert sein, dass sie die DHCP-Pakete weiter leiten. Diese Router werden als RFC 1542-konform bezeichnet. Normalerweise leiten Router DHCP-Pakete nicht weiter. Für jedes Subnetz gilt ein eigener DHCP-Adressbereich. Es sollten möglichst zwei DHCP-Server wegen höherer Ausfallsicherheit eingesetzt werden, z. B.: Eigentlicher Server: ca. 75% der Adressen Ersatzserver: ca. 25% der Adressen Dies hat den Vorteil, dass nach Ausfall des eigentlichen DHCP- Servers wenigstens 25% der Adressen vergeben werden können. Sind im Normalbetrieb alle Adressen des eigentlichen Servers (75%) vergeben, können die restlichen 25% aufgrund der Broadcast-Anfragen durch den anderen Server vergeben werden (gilt auch umgekehrt). 19
Network Address Translation (NAT) Bei der Network Address Translation (NAT) wird internen Adressen eine oder mehrere externe Adressen durch einen Router zugeordnet: Bei der Network Address Translation (NAT) werden die Adressen 1:1 auf einander abgebildet. Bei Port and Address Translation (PAT) oder Network-Address-Port- Translation (NAPT) in RFC 2663 werden mehrere interne Adressen auf eine externe unter Berücksichtigung der Ports abgebildet. IP-Masquerading ist im wesentlichen das PAT/NAPT-Verfahren, wobei hier auch der Aufbau von Verbindungen von außen erlaubt wird. Ziele: Kopplung von Netzen mit unterschiedlichen Adressräumen Zugang eines lokalen Netzes über eine IP-Adresse ans Internet Verdecken der eigenen lokalen Adressen (Ersparnis) 20
Masquerading Mehrere interne Adressen: 1 externe Adresse (PAT) Zuordnung der internen IP/Port-Adressen auf eine externe IP- Adresse (und umgekehrt) Dieser Fall wird auch Masquerading genannt. 21
Erläuterungen Aufbau einer Tabelle: Interne IP-Adresse Externe IP-Adresse Interne Port-Nummern (Sender, Empfänger) Externe Port-Nummer (Sender, Empfänger) Protokoll Der Auf-/Abbau der Tabelle muss dynamisch erfolgen. Alle Verbindungen nach außen müssen in beiden Rich-tungen eindeutig über folgendes N-Tupel identifizierbar sein: IP-Adressen Protokoll-Nummer Sende- und Empfänger-Port 22
Domain Name Service (DNS) Definiert in RFC 1034, 1035 Ziele dieses Verzeichnisdienstes Umsetzung einer symbolischen Adresse nach IP Umsetzung einer IP-Adresse zur symbolischen Vermerken der Adressen von E-Mail-Servern Vermerken von Informationen über Stationen Vermerken der Adressen anderer DNS-Server Die Adressen werden streng hierarchisch in Domains (Bereiche) zusammengefasst. 23
Namensraum www.htw-berlin.de www.f4.htw-berlin.de Top-Level-Domain Second-level Domain Third-level Domain Stations-/Service-Name Alte Top-Level-Domains: Länderkennzeichen.com Unternehmen.net Netzwerkbetreiber.org Organisationen.edu (Hoch-)Schulen.mil US-Militär.gov US-Regierung Weitere Top-Level-Domains:.biz Unternehmen.aero Fluglinien/Häfen.info Allgemein.name Namen.pro Berufsgruppen.museum Museen.coop Genossenschaften 24
Vergabe der Adressen NIC: Network Information Center Deutschland: denic www.nic.de Internationale Koordinierung der Top-Level-Domains: ICANN = Internet Corporation for Assigned Names and Numbers Begriffe Zone = Bereich der DNS-Namen, für die der DNS-Server zuständig ist, d.h. von denen er Daten hat. Intern wird für jede Zone eine Datei angelegt, so dass ein DNS- Server mit mehreren Dateien (Zonen) arbeiten kann. 25
Hierarchie und Authoritätszonen (Beispiel) Root.de.fr.edu... (Authoritäts-)Zonen tu-berlin fu-berlin htw-berlin... rz f1 f2 f3 f4 26
Mechanismus I Station 1 Station 2 Anfrager Resolver DNS- Server Cache DNS-Datenbank Anfrage an einen DNS-Server 27
Mechanismus II DNS- Server 2 Anfrager Resolver DNS- Server 1 DNS- Server 3... DNS- Server N Der beauftragte DNS-Server 1 befragt andere, um die Anforderung des Resolvers zu erfüllen: Rekursiver Modus. 28
Mechanismus III DNS- Server 1 Anfrager Resolver DNS- Server 2... DNS- Server N Der Resolver befragt selbst andere, um die Anforderung bearbeiten zu können. Ein DNS-Server ohne Antwort gibt eine Adresse eines anderen DNS-Servers zurück, von dem geglaubt wird, er hätte die Antwort. 29
Auflösungsalgorithmus 1. Prüfung der Anfrage, ob Antwort in der Datenbank vorhanden ist: Falls ja: dem Client antworten 2. Sonst: Ermittlung der Top-Level-Domain 3. Anfrage an Top-Level-Domain-Server 4. Dort Prüfung und Rücksendung der IP-Adresse des zuständigen DNS-Servers (Nachsehen in Datenbank aller gültigen Domainnamen) 5. Direkte Nachfrage bei diesem DNS-Server 6. Dort Prüfung und Rückantwort mit der IP-Adresse 7. Dem Client antworten Dieses Verfahren läuft entweder automatisch durch den ersten DNS-Server ab (rekursiver Modus) oder durch den Resolver selbst. 30
DNS-Serverarten (Beispiele für Rollen) Für jede Zone existieren/können existieren: Primärer Server mit Originaldaten Sekundärer Server als Spiegel des Primären Servers Cache-Only-Server hat keine eigene Zone, vermerkt bzw. lernt Anfragen und Ergebnisse, es gibt für ihn auch keine Zonen- Datei. Dies sind Rollen, die durch einen Server eingenommen werden können, Auch gleichzeitig, d.h. ein DNS-Server kann für eine bestimmte Zone der primäre Server sein und für eine andere der sekundäre. 31
Werkzeuge für die Netzanalyse I Ping (Nach dem Echolot beim U-Boot): ICMP-Echo-Request mit ICMP-Echo sowie ein paar Lastdaten Messung der Laufzeit von Paketen C:\WINDOWS>ping 10.1.1.1 Pinging 10.1.1.1 with 32 bytes of data: Reply from 10.1.1.1: bytes=32 time=88ms TTL=112 Reply from 10.1.1.1: bytes=32 time=72ms TTL=112 Reply from 10.1.1.1: bytes=32 time=69ms TTL=112 Ping statistics for 10.1.1.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 69ms, Maximum = 88ms, Average = 74ms C:\WINDOWS>ping -l 40000 10.1.1.1 Pinging 10.1.1.1 with 40000 bytes of data: Reply from 10.1.1.1: bytes=40000 time=2412ms TTL=112 Reply from 10.1.1.1: bytes=40000 time=2721ms TTL=112 Reply from 10.1.1.1: bytes=40000 time=2714ms TTL=112 Ping statistics for 10.1.1.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 2412ms, Maximum = 2761ms, Average = 2652ms 32
Werkzeuge für die Netzanalyse II Trace Route (traceroute, tracert) Senden ICMP-Echo-Request mit TTL=1 Empfang ICMP-Time exceed mit Router IP-Adresse Dann Wiederholung mit TTL=2 etc. bis Zielstation erreicht C:\WINDOWS>tracert www.google.de Routenverfolgung zu www.google.de [173.194.39.24] über maximal 30 Abschnitte: 1 <1 ms <1 ms <1 ms fritz.box [192.168.178.1] 2 45 ms 52 ms 44 ms ber022ibr001.versatel.de [62.214.64.185] 3 44 ms 44 ms 44 ms v461.ber022isp005.versatel.de [62.214.108.105] 4 116 ms 238 ms 239 ms 10g-8-4.ber023isp005.versatel.de [62.214.110.45] 5 254 ms 212 ms 215 ms 10g-8-4.hhb003isp005.versatel.de [62.214.110.41] 6 49 ms 49 ms 48 ms 10g-8-1.hhb002isp005.versatel.de [62.214.110.37] 7 47 ms 49 ms 48 ms 62.214.61.54 8 49 ms 48 ms 48 ms 72.14.233.121 9 50 ms 49 ms 48 ms 173.194.39.24 Ablaufverfolgung beendet. 33
Werkzeuge für die Netzanalyse III arp: Anzeige des Inhalts eines lokalen ARP-Caches sowie Setzen fester Einträge, z. B. MAC/IP-Adressen von häufig benutzten Servern (um Netzbelastung durch unnötige ARP-Anfragen zu senken) netstat: Anzeige der aktuellen Verbindungen sowie Statistik, z. B. Anzahl der Pakete, Anzahl der Fehler etc. 34
Werkzeuge für die Netzanalyse IV nslookup/dig/host: Anfrage von DNS-Einträgen, u. a. welche IP- Adresse ein symbolischer Name hat, dasselbe in umgekehrter Richtung, welche E-Mailserver eingetragen sind etc. Es können alle RR abgefragt werden. 35
Werkzeuge für die Netzanalyse V tcpdump: tcpdump listet die Pakete auf der IP-Ebene auf. wireshark analysiert auch die anderen Ebenen: 36
Werkzeuge für die Netzanalyse VI ipconfig (Windows): Ausgabe der Einstellungen, insbesondere nach DHCP-Konfigurierung; es kann der eigene Name bzw. die Parameter einer Schnittstelle ausgegeben und gesetzt werden 37
Werkzeuge für die Netzanalyse VII ifconfig (Linux) [root@moscitoiii ~]# ifconfig eth0 eth0 Link encap:ethernet Hardware Adresse E8:9A:8F:05:23:F7 inet Adresse:192.168.178.20 Bcast:192.168.178.255 Maske:255.255.255.0 inet6 Adresse: fe80::ea9a:8fff:fe05:23f7/64 Gültigkeitsbereich:Verbindung UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:45301 errors:0 dropped:0 overruns:0 frame:0 TX packets:26316 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:1000 RX bytes:66666858 (63.5 MiB) TX bytes:1832360 (1.7 MiB) 38
Nach dieser Anstrengung etwas Entspannung... 39