TCP/IP Grundlagen - PC-Treff-BB

Werbung
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
Zugehörige Unterlagen
Herunterladen