Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes TCP/IP Grundlagen Andreas Hoster 9. September 2007 Vortrag für den PC-Treff Böblingen Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Agenda 1 Grundlagen 2 IP Konfiguration 3 Protokolle 4 Routing 5 Fortgeschrittenes Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung IPv4 – IPv6 Abkürzungen Aufbau eines Netzwerkprotokolls Einleitung Unter TCP/IP wird üblicherweise das komplette auf IP basierende Netzwerkprotokollsystem verstanden, welches aus dem IP und den darauf aufbauenden TCP, UDP und ICMP Protokollen besteht und die Basis der heute verwendeten Netzwerke, inklusive des Internets, darstellt. Alternative Netzwerkprotokolle wie IPX/SPX oder AppleTalk und ähnliche spielen nur noch in Nischenregionen eine Rolle. Über TCP/IP gibt es Bücher mit über 500 Seiten, wir streifen heute also nur mal die Oberfläche. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung IPv4 – IPv6 Abkürzungen Aufbau eines Netzwerkprotokolls IPv4 – IPv6 Es gibt im Moment zwei Versionen: IP Version 4 (IPv4) und IP Version 6 (IPv6). Die gebräuchlichere ist IPv4, worauf sich auch dieser Vortrag beschränkt. IPv6 ist eine Erweiterung, die vorallem größere IP-Adressen besitzt, da die 32bit lange Adresse von IPv4, die 4 Milliarden Adressen erlaubt, nicht ausreichend ist, da durch die Bildung von Subnetzen nicht alle Adressen sinnvoll verwendet werden können. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung IPv4 – IPv6 Abkürzungen Aufbau eines Netzwerkprotokolls Abkürzungen IP TCP UDP ICMP ARP DHCP DNS Internet Protocol Transmission Control Protocol Universal Datagramm Protocol Internet Control Message Protocol Adress Resolution Protocol Dynamic Host Cofiguration Protocol Domain Name System Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung IPv4 – IPv6 Abkürzungen Aufbau eines Netzwerkprotokolls Wortdefinition: Protokoll Ein Protokoll ist ursprünglich eine formale Vereinbarung von Verhaltensmaßregeln (z.B. das Hofprotokoll, welches die Etikette an Königshöfen regelt). In der Datenverarbeitung ist ein Protokoll (in diesem Zusammenhang) die vereinbarten Regeln, wie der Datenverkehr zwischen zwei Sende- und Empfangsstationen abzulaufen hat. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung IPv4 – IPv6 Abkürzungen Aufbau eines Netzwerkprotokolls Aufbau Netzwerk: OSI-Schichtenmodell OSI-Modell Applikation Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer TCP/IP Anwendungsschicht Anwendungsschicht Anwendungsschicht Transportschicht Internetschicht Netzzugangsschicht Netzzugangsschicht Andreas Hoster TCP/IP Grundlagen Beispiel HTTP HTTP HTTP TCP / UDP IP Ethernet Ethernet Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP-Adresse Subnetz-Maske Standardgateway DHCP DNS Bestandteile IP-Konfiguration Für ein ordnungsgemäßes Funktionieren eines Netzwerks ist die richtige Konfiguration des IP Netzwerks notwendig. Die wichtigsten Bestandteile der IP Konfiguration sind: IP-Adresse Subnetz-Maske Standardgateway DNS-Server Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP-Adresse Subnetz-Maske Standardgateway DHCP DNS IP-Adresse Die IP Adresse ist ein 32bit lange Zahl, Bsp.: 11000000101010000000110000000101, welche zur besseren Lesbarkeit und Merkbarkeit in 4x8bit unterteilt ist, Bsp.: 192.168.12.5 Die IP-Adresse muß innerhalb eines Netzwerks eindeutig sein damit bei der Kommunikation eindeutig festgelegt werden kann, wer mit wem kommuniziert. Für private Netzwerke sind folgende IP Adressbereiche freigegeben: 10.0.0.0 – 10.255.255.255 172.16.0.0 – 172.31.255.255 192.168.0.0 – 192.168.255.255 Zusätzlich ist für die Autokonfiguration von Systemen: 169.254.0.0 – 169.254.255.255 Pakete mit diesen Adressen werden im Internet verworfen! Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP-Adresse Subnetz-Maske Standardgateway DHCP DNS Subnetz-Maske Die Subnetz-Maske dient zum Erkennen, ob eine IP-Adresse im selben Subnetz liegt wie der Rechner selber. Bei der Subnetzmaske sind die vorderen Bits, die das Netzwerk markieren auf binär 1 gesetzt, die hinteren für die Hosts auf 0, Bsp.:11111111111111111111111100000000 oder 255.255.255.0. Mit dem vorherigen Beispiel der IP-Adresse 192.168.12.5 ergibt sich, daß alle Rechner, deren IP-Adresse mit 192.168.12 anfängt im selben Netz liegen und die 5 den Rechner in diesem Netzwerk kennzeichnet. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP-Adresse Subnetz-Maske Standardgateway DHCP DNS Standardgateway Das Standardgateway ist derjenige Rechner, Router, Netzgerät welches alle Pakete an IP-Adressen erhält, von denen der Rechner nicht weiß, wo er sie hinschicken muß. Das Standardgateway muß ein Rechner im selben Subnetz wie der Rechner selber sein, da bei IP Kommunikation nur direkte Kommunikation im selben Netz möglich ist. Wie Rechner aus unterschiedlichen Netzen miteinander kommunizieren kommt im Abschnitt Routing. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP-Adresse Subnetz-Maske Standardgateway DHCP DNS DHCP = Dynamic Host Configuration Protocol Da es mühselig ist, bei jedem Rechner die IP Einstellungen zu konfigurieren, gibt es DHCP. Bei DHCP stellt ein System eine Anfrage an einen DHCP Server und erhält von diesem die ganzen Konfigurationsdaten für die IP-Einstellungen wie IP-Adresse, Subnetz-Maske, Standardgateway, DNS-Server etc. Inzwischen ist in praktisch jedem DSL-Router ein DHCP Server integriert. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP-Adresse Subnetz-Maske Standardgateway DHCP DNS DNS = Domain Name System Da es müselig ist, sich die ganzen IP-Adressen zu merken, gibt es ein Telefonbuch für das Internet: Das Domain Name System Dabei gibt es DNS-Server im Internet, welche Namen in IP-Adressen übersetzen können, damit kann man z.B. im Browser www.herma.de eingeben, der DNS Server übersetzt das für den Rechner in die IP-Adresse (217.119.51.146) und damit kann der Rechner die Anfrage losschicken. Für ganz kleine private Netze kann man auch eine Datei auf dem Rechner pflegen (die hosts Datei) und die Zuordnung dort manuell eintragen. Was natürlich extremst aufwendig wird, wenn es mehr Rechner werden und beim Zugang ins Internet völlig unpraktikabel. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP Internet Protokollfamilie Daß sich TCP/IP soweit durchgesetzt hat, hat es einigen seiner Vorteile zu verdanken: IP ist unabhängig von der darunterliegenden Netzwerktechnik und kann daher mit Ethernet, Token Ring, Wählleitungen etc. eingesetzt werden. IP erlaubt es über seine Adressierungsschemas Geräte eindeutig zu bestimmen, auch in Netzen so groß wie das Internet. Einzelne Protokolle im Überblick: IP TCP UDP ICMP ARP Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP IP = Internet Protocol Das IP Protokoll ist die Basis, auf denen TCP, UDP etc. aufbauen. Im OSI-Modell ist IP in der Vermittlungsschicht angesiedelt und damit zuständig für die Vermittlung der Daten zwischen den Rechnern. Auf dieser Basis ist Netzwerke in Größe des Internets möglich, da es die Funktionen für Wegewahl und Weiterleitung in andere Netze bietet. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP Aufbau eines IP Pakets -0-------------------1-------------------2-------------------3---0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version|--IHL--|Type-of-Service|----------Total-Length---------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |---------Identification--------|Flags|------Fragment-Offset----| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |--Time-to-Live-|----Protocol---|---------Header-Checksum-------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |-----------------------Source-Address--------------------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |--------------------Destination-Address------------------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |--------------------Options--------------------|----Padding----| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |--------------------Daten---+-+-+-+-+-+-+-+-+-+-+-+-+----- Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP IP Header Feldbedeutung Version: 4 oder 6 für IPv4 oder IPv6 IHL: Länge des Header in 32 bit Worten Type of Service: Für Quality of Service, ob schnell oder lieber sicher etc. Total Length: Länge des Pakets inklusive Header Identification: Zahl um nach einer Fragmentierung die Teilpakete in der richtigen Reihenfolge zusammenzufügen Flags: Geben an ob fragmentiert werden darf und ob noch weitere Fragmente kommen Fragment Offset: Gibt an, wo im Gesamtpaket das Teilpaket eingefügt werden muß. Wird in 64bit Worten angegeben Time To Live: Lebensdauer, in Anzahl von Durchgangsstationen gemessen Header Checksum: Prüfsumme nur über den Header, die Daten sind IP egal Source Address: IP-Adresse des Senders Destination Address: IP-Adresse des Empfängers Daten: z.B. ein TCP, UDP oder ICMP Paket Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP TCP = Transmission Control Protocol Das TCP Protokoll baut auf der Grundlage von IP auf (daher ist auch meistens von TCP/IP die Rede) und ist im OSI Modell in der Transportschicht angesiedelt. TCP stellt für den Rechner einen Duplex-Kommunikationskanal zu einer Gegenstelle dar (die daher auch Daten zurücksenden kann) und überwacht dabei auch, daß die Daten vollständig und unverändert dort ankommen (allerdings keine Sicherung gegen mutwillige Verfälschung!). Das Programm, welches über TCP Daten verschickt, muß sich also nicht um die korrekte Übertragung kümmern. Diese Sicherheit wird durch Prüfsummen im TCP-Paket (Sicherung gegen Verfälschung) und durch das Bestätigen des Empfängers, welche Pakete er erhalten hat (Sicherung gegen Verlust von Daten), gewährleistet. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP TCP Portnummern Desweiteren kennt TCP eine weitere Adressierung, unterhalb der IP-Adresse, die sogenannten Portnummern. Diese Portnummern dienen einerseits dazu, daß der Empfänger weiß, für welches Programm das Datenpaket gedacht ist. So verwenden bestimmte Programme/Protokolle bestimmte Portnummern, z.B. 80 ist für das HTTP Protokoll reserviert, 25 für SMTP. Außerdem können auf Senderseite nun mehrere Programme mit einem anderen Rechner kommunizieren, ohne daß die Daten der beiden Kommunikationskanäle sich vermischen, da die Programme von unterschiedlichen Ports aus die Verbindung geöffnet haben. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP Aufbau eines TCP Pakets -0-------------------1-------------------2-------------------3---0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |----------Source-Port----------|-------Destination-Port--------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |------------------------Sequence-Number------------------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |--------------------Acknowledgment-Number----------------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |--Data-|-----------|U|A|P|R|S|F|-------------------------------| |-Offset|-Reserved--|R|C|S|S|Y|I|------------Window-------------| |-------|-----------|G|K|H|T|N|N|-------------------------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |-----------Checksum------------|---------Urgent-Pointer--------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |--------------------Options--------------------|----Padding----| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |-----------------------------Daten-----------------------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+------------------------- Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP TCP Header Feldbedeutung Source Port: Source Port Nummer Destination Port: Destination Port Nummer Sequence Number: Sequenznummer, wird verwendet um die richtige Reihenfolge der Pakete sicherzustellen Acknowledgement Number: Bestätigungsnummer, gibt an, welche Sequenznummer der Empfänger vom Sender als nächstes erwarten würde. Dient dem Erkennen, ob alle Pakete angekommen sind. Data Offset: Ab wo fangen die Daten an Control Bits: URG: Urgent Pointer field significant ACK: Acknowledgment field significant PSH: Push Function RST: Reset the connection SYN: Synchronize sequence numbers FIN: No more data from sender Window: Maximale Datentransfergröße Checksum: Prüfsumme Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP UDP = Universal Datagram Protocol Das UDP Protokoll baut wie TCP auf dem IP Protokoll auf und ist wie dieses in der Transportschicht angesiedelt. Im Gegensatz zu TCP ist UDP ein verbindungsloses Protokoll, es wird kein Kommunikationskanal mit der Gegenstelle hergestellt sondern nur ein Datenpaket an den Empfänger geschickt. Es wird auch nicht kontrolliert ob das Paket beim Empfänger ankommt, es wird allerdings eine Prüfsumme mitgeschickt, um Datenverfälschungen zu erkennen. Durch den Verzicht auf den Duplex-Kommunikationskanal und die Erkennung von verlorengegangen Paketen ist UDP sehr schnell, allerdings muß sich die Anwendung um verlorene Datenpakete selber kümmern. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP UDP Paket Aufbau -0------7-8-----15-16----23-24----31+--------+--------+--------+--------+ |--Source--Port---|Destination-Port-| +--------+--------+--------+--------+ |-----Length------|----Checksum-----| +--------+--------+--------+--------+ |----------data-octets--------------| +---------------------- Source Port: Source Port Nummer Destination Port: Destination Port Nummer Length: Größe des Pakets (inklusive Header) Checksum: Prüfsumme Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP ICMP = Internet Control Message Protocol Das ICMP Protokoll dient dazu, um Fehler oder sonstige Control Messages untereinander austauschen zu können, z.B. das der Empfänger nicht erreichbar ist, oder das mehr Pakete ankommen, als der Empfänger verarbeiten kann, oder die Bitte, eine Antwort zu schicken (um zu prüfen, ob der Rechner an ist, der bekannte Ping). Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP Aufbau eines ICMP Pakets -0-------------------1-------------------2-------------------3---0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |-----Type------|-----Code------|----------Checksum-------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |----Pointer----|-------------------unused----------------------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |------Internet-Header-+-64-bits-of-Original-Data-Datagram------| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: Typ der Nachricht, z.B. 3 = Ziel nicht erreichbar Code: Spezifizierung des Typs, z.B. Typ = 3 und Code = 0 = Netzwerk nicht erreichbar Checksum: Prüfsumme Ab Pointer sind die Daten Optional. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes IP TCP UDP ICMP ARP ARP = Address Resolution Protocol Das ARP Protocol dient dazu, den Netzwerk IP-Adressen die Hardwareadressen der Netzwerkkarten (MAC-Adresse = Media Access Control) zuzuordnen, da diese auf OSI Ebene 2 zur Adressierung verwendet werden. Dabei wird ein Broadcast an alle Systeme im Netz gemacht mit der Frage welches System die IP xxx.xxx.xxx.xxx hat und nur das System, welches diese Adresse hat antwortet. Die Systeme führen eine interne Liste, welche MAC Adresse zu welche IP Adresse gehört, damit nicht bei jedem Paket ein Broadcast verschickt werden muß. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung Die Routing-Tabelle traceroute Routing: Von einem Netz zum Anderen In einem kleinen Netz wie daheim, ist nun das Kommunizieren via IP ganz einfach: Der Sender schickt einen ARP Request raus, mit der gewünschten IP Adresse. Der Empfänger antwortet auf diesen ARP Request. Der Sender kennt nun die MAC Adresse und kann das Datenpaket dort hinschicken. Aber was machen wir, wenn das Ziel nicht hier ist, sondern z.B. irgendwo in Australien? Woher weiß der PC, wo er das Paket hinschicken muß? Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung Die Routing-Tabelle traceroute Routing: Von einem Netz zum Anderen Es ist wie im wirklichen Leben: Der PC muß es nicht wissen, er muß nur jemanden kennen, der es weiß. Jeder PC führt eine sogenannte Routing-Tabelle, in der er rauslesen kann, wo er welche IP Pakete hinschicken muß. Inklusive einer Adresse, wo er alle Pakete hinschicken darf in der Hoffung, daß dieses System weiß, wo das Paket hinmuß. Dieses System hatten wir in der Konfiguration schonmal: Das Standardgateway. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung Die Routing-Tabelle traceroute Routing: Die Routing Tabelle Kernel IP Routentabelle Ziel Router Genmask 10.0.0.0 * 255.255.255.0 default server 0.0.0.0 Flags U UG Metric 0 0 Ref 0 0 Use 0 0 Iface eth0 eth0 Diese Tabelle bedeutet: Alle Pakete an die IP-Adressen 10.0.0.??? gehen direkt über die Ethernetkarte eth0 ins Netzwerk raus, alles andere schicke mal an das System server weiter. Da das mein Server ist, weiß ich, daß er das auch nicht weiß, aber auch er hat ein Standardgateway, daß von meinem Zugangsknoten bei Arcor. Der wiederum weiß ... Das geht solange, bis das Paket ankommt, oder ein Fehler zurückkommt. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung Die Routing-Tabelle traceroute Routing Probleme Wenn nun die Routing Tabelle nicht stimmt, macht sich das bemerkbar, indem manche oder alle Rechner nicht mehr erreichbar sind. Und es müssen nicht nur die Routen auf dem Hinweg stimmen, auch die Routen auf dem Rückweg müssen stimmen, ansonsten schickt der Empfänger eventuell eine Antwort, die findet nur nicht zu mir. Bei diesen Problemen kann die Suche recht aufwendig werden, ist aber die häufigste Ursache, wenn in Netzwerken Teile nicht mehr miteinander kommunizieren können. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes Einleitung Die Routing-Tabelle traceroute traceroute = Der Weg zum Ziel Mit dem Programm traceroute kann man sehen, welchen Weg ein Paket nimmt: traceroute www.pc-treff-bb.de traceroute to www.pc-treff-bb.de (81.169.145.71), 30 hops max, 40 byte packets 1 server (10.0.0.1) 0.091 ms 0.042 ms 0.038 ms 2 dslb-084-057-128-001.pools.arcor-ip.net (84.57.128.1) 5.156 ms 5.155 ms 5.334 ms 3 stg-145-254-14-121.arcor-ip.net (145.254.14.121) 5.131 ms 4.683 ms 4.931 ms 4 ffm-145-254-19-221.arcor-ip.net (145.254.19.221) 7.870 ms 7.405 ms 7.388 ms 5 ffm-145-254-16-18.arcor-ip.net (145.254.16.18) 18.476 ms 8.155 ms 8.129 ms 6 atuin.rzone.de (80.81.192.110) 8.625 ms 9.334 ms 9.578 ms 7 85.214.1.249 (85.214.1.249) 9.881 ms 10.760 ms 9.816 ms 8 81.169.146.66 (81.169.146.66) 10.356 ms 10.659 ms 10.302 ms 9 w07.rzone.de (81.169.145.71) 10.358 ms 10.287 ms 10.812 ms Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall NAT = Network Address Translation NAT wird verwendet, um mehrere Systeme hinter einer IP Adresse zu verstecken, bzw. private Adressen in öffentliche umzuwandeln. Wie auf Folie IP-Adresse erwähnt gibt es IP-Bereiche, die jeder beliebig verwenden darf, die aber im Internet nicht weitergeleitet werden. Wenn der Heimrechner jetzt aber eine solche IP Adresse hat, würde er nie Kontakt mit dem Internet haben, wenn der Router nicht NAT machen würde. Bei NAT tauscht der Router einfach im IP Header die Original-Absender Adresse durch seine eigene IP-Adresse aus und wenn eine Antwort zurückkommt tauscht er die Ziel-Adresse (welche ja seine eigene ist) durch die des Ursprungssystems aus. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall Funktionsweise von NAT Beispiel: HTTP Anfrage Client:10.0.0.2, Router:10.0.0.1/84.57.153.175, Ziel:217.119.51.146 Stand der Anfrage Client schickt ab Router schickt weiter Antwort Empfänger Router an Client Quell-Adresse:Port 10.0.0.2:1111 84.57.153.175:8888 217.119.51.146:80 217.119.51.146:80 Ziel-Adresse:Port 217.119.51.146:80 217.119.51.146:80 84.57.153.175:8888 10.0.0.2:1111 Dazu führt das System, welches NAT macht, eine Tabelle, welche Anfragen er wohin über welche Ports schickt, um die Rückantworten dem richtigen System zuordnen zu können. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall Probleme bei NAT NAT funktioniert einwandfrei bei Verbindungen, die der interne Client nach außen aufbaut, wenn der Empfänger nur den aufgebauten Kommunikationskanal verwendet. Sobald aber ein System von außen den Rechner mit der privaten IP erreichen will geht das nicht, weil die NAT Tabelle ja noch keinen Eintrag zum Weiterleiten hat und der äußere nicht sagen kann, daß er die 10.0.0.1 haben will, da diese Adresse im Internet nicht geroutet wird. Andererseits sorgt dies bei den normalen Internetanwendern mit Routern für eine gewisse Sicherheit des privaten Rechners, da er nicht direkt erreichbar ist. Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall Portforwarding Damit nun ein Rechner hinter einem NAT-System direkt von außen erreichbar ist, muß auf dem NAT System sogenanntes Portforwarding betrieben werden. Dabei wird fest eingetragen, daß z.B. alle von außen kommenden Pakete an Port 80 an das System mit IP 10.0.0.2 weitergeleitet wird (damit wurden alle HTTP Anfragen an 10.0.0.2 weitergeleitet). Damit ergibt sich auch, daß es nur ein System hinter einem NAT Gerät geben kann, welches die Daten von einem bestimmten Port bekommen kann, also nur ein Webserver, ein FTP Server etc. (solange man bei den Standardports bleiben will). Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall Firewall Da nun bei der IP Kommunikation mittels Adresse und Portnummer festgestellt werden kann, wer was von uns will oder wer was ins Internet schicken will, kann man darauf aufbauend natürlich den unerwünschten Verkehr filtern. Das ist die Funktion einer Firewall, nämlich alles unerwünschte auszusperren. Wobei dies nicht immer einfach ist, wenn mal viele Rechner mit vielen anderen auf vielen verschiedenen Ports kommunizieren, wird das Regelwerk recht aufwendig. Auch wird es kompliziert, wenn Programme mit wechselnden Ports arbeiten oder sogar der Empfänger neue Verbindungen zum Sender aufbauen will (z.B. FTP). Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall Einfachstes Firewall Beispiel Nehmen wir z.B. an, daß man einen Webserver betreibt. Der benutzt Port 80 für HTTP und Port 443 für HTTPS. Auf alle anderen Ports, die irgendwelche Programme öffnen, müssen die Surfer nicht kommen, also werden nur die Ports 80/443 freigegeben, der Rest gesperrt. Damit nun der Webmaster noch was machen kann, wird z.B. Port 22 (SSH = Secure SHell) für die eine IP, von der der Webmaster aus arbeitet geöffnet, die anderen dürfen immer noch nicht. Regeln: Von überall auf Webserver Port 80: Erlauben Von überall auf Webserver Port 443: Erlauben Von IP Webmaster auf Port 22: Erlauben Alles Andere: Verbieten Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall Ende Vielen Dank für Ihre Aufmerksamkeit! Andreas Hoster TCP/IP Grundlagen Grundlagen IP Konfiguration Protokolle Routing Fortgeschrittenes NAT Portforwarding Firewall Referenzen TCP/IP Network Administration by Craig Hunt, O’Reilly, ISBN 1-56592-322-7, 630 pages Building Internet Firewalls by D. Brent Chapman & Elizabeth D. Zwicky. O’Reilly, ISBN 1-56592-124-0, 517 pages Wikipedia, www.wikipedia.de RFCs: 791 - IP, 792 - ICMP, 793 - TCP, 768 - UDP, 826 ARP, www.faqs.org/rfcs/ WireShark, Netzwerkanalyse-Tool, www.wireshark.org Andreas Hoster TCP/IP Grundlagen