Grundlagen von TCP/IP

Werbung
Grundlagen von TCP/IP
Falko Dreßler,
Regionales Rechenzentrum
[email protected]
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
1
Überblick
•
•
•
•
Historie
Architektur von TCP/IP
Link Layer
IP (Internet Protocol)
–
–
–
–
•
•
•
•
IP-Adressen
Subnetze
ARP (Address Resolution Protocol)
ICMP (Internet Control Message Protocol)
TCP (Transmission Control Protocol)
UDP (User Datagram Protocol)
DNS (Domain Name Service)
Routing
– Grundlagen
•
•
•
WiN- und REVUE-Netz
Einfache UNIX-Kommandos
Fehlersuche
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
2
Historie
•
Situation der 70er Jahre
– Proprietäre Protokolle (z.B. DECNET, SNA)
•
Ziele
– Offene Kommunikationsplattform
– Zuverlässige Datenkommunikation
•
Entwicklung
– 1968 Beginn der Entwicklung eines Paket-Vermittlungssystems durch die
DARPA (Defense Advanced Research Projects Agency)
– gleichzeitig Entwicklungen im „Xerox Palo Alto Research Center“
(PARC)
– 1972: ARPANET wird vorgestellt, unterstützt durch die DARPA Erster
Einsatz im ARPANET
– 1983: Alle Rechner im ARPANET müssen TCP/IP verwenden
– 1984: 4.2BSD und UNIX System V mit TCP/IP-Unterstützung
– Heute: ca. 2,5 Mio Endgeräte via Internet miteinander verbunden
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
3
Historie 2
• Mittel der Standardisierung
– IAB: Internet Activities Board - plant und koordiniert
die Entwicklung des Internet und der InternetProtokolle. Gliedert sich in:
• IETF: Internet Engineering Task Force
• IRTF: Internet Research Task Force
• beide bestehen aus Arbeitsgruppen, in denen die weitere
Entwicklung der Internetprotokolle geplant wird
– RFC: Internet Request for Comments - die InternetStandards und Entwürfe als Ergebnis der
Entscheidungen des IAB. Weniger formal als ISOStandards.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
4
Architektur von TCP/IP
• TCP/IP-Schichtenmodell ist älter und
einfacher als das ISO-OSI-Referenzmodell:
Application
Transport
Network
Link
Grundlagen von TCP/IP
2000-11-08
telnet, ftp, http
TCP, UDP
IP, ICMP, IPv6
Ethernet
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
5
Architektur von TCP/IP 2
• Aufgaben der Schichten
– Link Layer: realisiert die physikalische
Datenübertragung incl. „Verpackung“ der Daten,
Zugriff auf das Netzwerk
– Network Layer: Adressierung und Wegbestimmung der
Pakete, Fragmentierung
– Transport Layer: Datenfluß zwischen Endsystemen,
evtl. Übertragungssicherung, Flußsteuerung
– Application Layer: Abwicklung der speziellen
Anwendung
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
6
Beispiel für die beteiligten
Protokolle bei einer ftp-Sitzung
Rechner A
Rechner B
Anwendungsprotokoll
Application
ftp
Transportschichtprotokoll
Transport
TCP
Router
Network
IP-Protokoll
Link
IP-Protokoll
Netzwerk 1
Grundlagen von TCP/IP
2000-11-08
Network
Interface
IP-Protokoll
IP-Protokoll
IP
Ethernet-Treiber
Netzwerk 2 (Ethernet)
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
7
TCP/IP Protokollsammlung
•
TCP/IP wird durch mehrere Teilprotokolle realisiert. Man spricht
deshalb von einer Protokollsammlung oder einer Protocol-Suite.
AnwenderProzeß
AnwenderProzeß
Application
TCP
UDP
Transport
ICMP
IP
ARP
RARP
Hardware-Schnittstelle
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
Network
Link
8
Link Layer
• IP ist auf einer Vielzahl von Medien (mittels RFC)
definiert:
– Ethernet (FastEthernet, GigabitEthernet)
– FDDI (Fiber Distributed Data Interface)
– Asynchron
• SLIP (Serial Line IP)
• PPP (Point-to-Point Protocol)
– Token Ring
– ATM (Asynchronous Transfer Mode)
• Classical IP over ATM
• LAN Emulation
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
9
Link Layer 2
Preambel
Rahmenbegrenzer
Zieladresse
Quelladresse
Aufbau eines Ethernet V.2 Frames
Beispiele für den Typ:
Typenfeld
Daten
IP
ARP
IPX
0x0800
0x0806
0x8137
Prüfsumme
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
10
IP (Internet Protocol)
•
•
•
•
•
Aufbau von IP-Paketen
IP-Adressen
Subnetze
ARP
ICMP
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
11
Aufbau von IP-Paketen
HLEN
Service Type
Total Length
FGS
Fragment Offset
Identification
Header Checksum
Time To Live
Protocol
Source IP Address
Destination IP Address
IP Options (so vorhanden)
Padding
Data
VERS
Bedeutung der Felder:
• VERS: Versionsnummer (z.Zt. 4)
• HLEN: Länge des Paket-Headers in 32 Bit-Worten
• Total Length: Länge des ges. Paketes in Bytes (max. 65535)
• Identification: eindeutige Kennung eines Paketes
• FGS: (Flags) legen fest, ob ein Paket fragmentiert werden darf, etc.
• Fragment Offset: Offset des akt. Fragments in Vielfachen von 8 Bytes
• Time To Live (TTL): maximale Lebensdauer eines Paketes; wird von jedem Router um 1 erniedrigt; wenn TTL=0,
wird das Paket verworfen und eine Fehlermeldung (ICMP) an den Absender geschickt
• Protocol: Kennung für das Protokoll der übergeordneten Schicht (TCP=6, UDP=17)
• Header Checksum: Prüfsumme für den Paket-Header
• Source IP Address: Absenderadresse
• Destination IP Address: Zieladresse
• IP Options: Optionen
• Data: Anwendungsdaten
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
12
Internet Datagram
Wichtig: IP ist verbindungslos, d.h. jedes Paket wandert unabhängig von
seinem Vorgänger und Nachfolger durch das Netz (Routing). Dabei kann
es vorkommen, daß ein Paket in mehrere zerlegt (fragmentiert) und wieder
zusammengesetzt werden muß. Weiterhin kann sich die Reihenfolge der
Pakete ändern.
Fragm. 2
Rechner A
Rechner B
Paket 1
Fragm. 1
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
13
IP-Adressen
•
•
•
Ziel: Jede Rechnerschnittstelle muß eindeutig identifizierbar sein.
IP-Adressen sind 4 Byte lang und werden in einen Netzwerk- und
einen Rechneranteil gegliedert.
Unterschiedliche Netzklassen:
Class A
0 7 Bit Netz-Id
Class B
10
Class C
110
Class D
1110
Class E
11110
•
24 Bit Host-Id
14 Bit Netz-Id
16 Bit Host-Id
21 Bit Netz-Id
8 Bit Host-Id
28 Bit Multicast Group-Id
Reserviert für spätere Verwendung
Die Universität hat zwei Klasse-B-Netze (131.188.0.0 für die
Wissenschaft und 141.67.0.0 für die Medizin sowie mehrere Klasse-CNetze. Für die Wähleingänge wird das nicht nach außen routbare Netz
10.10.0.0 verwendet.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
14
Subnetze
•
•
Ziel: Strukturierung des Adreßraums
Der Adreßraum einer Organisation wird durch eine sogenannte
Subnetzmaske aufgeteilt. Die Subnetzmaske legt fest, welche Bits als
Netzadresse verwendet werden.
Beispiel 1
Beispiel 2
131
188
3
2
Rechner-IP-Adresse
131
188
29
129
255
255
255
0
Subnetzmaske
255
255
255
224
Netzwerk: 131.188.3.0
Rechner: 2
Broadcast: 131.188.3.255
•
Netzwerk: 131.188.29.128
Rechner: 1
Broadcast: 131.188.29.159
Alle Bits auf 0 im Host-Id-Teil einer IP-Adresse bestimmen die
Netzadresse und alle Bits auf 1 im Host-Id-Teil ergeben die BroadcastAdresse.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
15
ARP (Address Resolution Protocol)
•
•
•
„The Address Resolution Protocol, ARP, allows a host to find the physical address of a
target host on same physical network, given only the target‘s IP address.“
Ziel: Zu einer gegebenen logischen (IP-) Adresse die zugehörige Hardware-Adresse
(z.B. MAC-Adresse) ermitteln. Der Ausgangsrechner schickt einen Broadcast mit der
gesuchten IP-Adresse los. Der Zielrechner antwortet mit seiner Hardware-Adresse.
Wichtig: ARP baut nicht auf IP auf!
Zielrechner
IP: 131.188.3.150
MAC: 8:0:20:97:1f:60
1. Wer ist 131.188.3.150 ?
Ausgangsrechner
Zielrechner
IP: 131.188.3.150
MAC: 8:0:20:97:1f:60
2. Ich bin 131.188.3.150 mit 8:0:20:97:1f:60 !
Ausgangsrechner
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
16
ICMP (Internet Control Message Protocol)
•
•
•
„The Internet Control Message Protocol, ICMP, allows gateways to send error
or control messages to other gateways or hosts.“
ICMP-Pakete sind normale IP-Pakete, bei denen das Protokoll-Feld auf 1
gesetzt ist.
ICMP-Pakete enthalten ein Typ-Feld und ein Code-Feld, das die
Fehlermeldung genauer spezifiziert.
Type Field
0
3
4
5
8
11
12
13
14
17
18
Grundlagen von TCP/IP
2000-11-08
Beschreibung
Echo Reply
Destination Unreachable
Source Quench
Redirect
Echo Request
Time Exceeded
Parameter Problem
Timestamp Request
Timestamp Reply
Address Mask Request
Address Mask Reply
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
17
ICMP 2
•
Code Values für „Destination Unreachable“
Code Value
0
1
2
3
4
5
6
7
8
9
10
11
12
Grundlagen von TCP/IP
2000-11-08
Beschreibung
Network unreachable
Host unreachable
Protocol unreachable
Port Unreachable
Fragmentation needed, DF set
Source route failed
Destination network unknown
Destination host unknown
Source host isolated
Communication with destination network prohibited
Communication with destination host prohibited
Network unreachable for type of service
Host unreachable for type of service
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
18
TCP (Transmission Control Protocol)
•
•
•
•
•
•
Erstes Transportprotokoll auf IP
Definiert Ende-zu-Ende-Verbindung
Bietet gesicherte Übertragung
Flußkontrolle mittels Van-Jacobson-Algorithmus
Dominiert im Weitverkehrsbereich
Stellt eine Datenstromschnittstelle zur Verfügung,
die mittels Prozeduren von Applikationen genutzt
werden kann
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
19
TCP 2
• Socket-Konzept: Ein Socket dient zur eindeutigen
Identifikation eines Dienstes auf einem Rechner
• Ein Prozeß (eine Anwendung) wird auf einem Rechner
durch eine eindeutige Portnummer identifiziert
• Formal: Eine Association (eine TCP-Verbindung) wird
durch ein 5-Tupel charakterisiert: {Protokoll; lokale
Adresse; lokaler Prozeß; remote Adresse; remote Prozeß}
• Beispiel: {tcp; 131.188.3.150; 1022; 131.188.3.40; 22}
lisa$ netstat -an | grep 131.188.3.40
131.188.3.150.1022 131.188.3.40.22 17520
131.188.3.150.1011 131.188.3.40.22 17520
Grundlagen von TCP/IP
2000-11-08
0
0
33580
33580
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
0
0
ESTABLISHED
ESTABLISHED
20
Beispiele für TCP-Anwendungen
• ssh (Secure Shell):
Ermöglicht den Zugriff auf entfernte Rechner. Eigener
Rechner verhält sich wie ein angeschlossenes Terminal.
Port 22.
• ftp (File Transfer Protocol):
Datenübertragung von/zu einem entfernten Rechner. Es
werden zwei Verbindungen (für Kommandos und
Datenübertragung) aufgebaut. Port 20 (Daten) und 21
(Kommandos).
• smtp (Simple Mail Transfer Protocol):
Elektronische Post. Port 25.
• http (Hypertext Transfer Protocol):
Übertragung von WWW-Daten. Port 80.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
21
Aufbau eines TCP-Pakets
Source Port
HLEN
Reserved
Checksum
Destination Port
Sequence Number
Acknowledge Number
Code Bits
Options
Window
Urgent Pointer
Padding
Data
•
•
•
•
•
•
Source Port / Destination Port: Prozeßidentifikation auf Quell- und
Zielrechner.
Sequence Number / Acknowledge Number: dienen der Flußkontrolle
HLEN: Länge des Headers in 32 Bit-Worten
Window: aktuelle Fenstergröße bei der Datenübertragung
Checksum: Prüfsumme (beinhaltet auch einen Teil des IP-Headers)
Urgent Pointer: dient zur Übertragung von beschleunigten Daten
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
22
TCP - Geschichte einer Verbindung
Rechner 1
Rechner 2
Verbindungsaufbau
Send SYN seq=x
Receive SYN segment
Send SYN seq=y, ACK x+1
Receive SYN + ACK segment
Send ACK y+1
Receive ACK segment
Datenübertragung
Send Packet x+1
Receive Packet x+1
Send ACK x+2
Receive ACK x+2
Verbindungsabbau
Send FIN seq=x‘
Receive FIN segment
Send ACK x‘+1
Receive ACK segment
Inform Application
Send FIN ACK x‘+1
Receive FIN + ACK segment
Send ACK y‘+1
Receive ACK segment
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
23
TCP Zustandsautomat
•
•
Zustandsautomaten dienen zur Protokollspezifikation
Die Beschriftungen an den Übergängen bezeichnen das empfangene /
gesendete Paket
begin
closed
passive open
close
active open/syn
syn/syn+ack
send/syn
listen
reset
syn/syn+ack
SYN
RECVD
SYN
SEND
ack
close/
timeout/
reset
fin/ack
established
CLOSE
WAIT
close/fin
close/fin
FIN
WAIT-1
close/fin
fin/ack
closing
ack
fin/ack ack
ack
FIN
WAIT-2
Grundlagen von TCP/IP
2000-11-08
fin/ack
ack
TIMED
WAIT
LAST
ACK
timeout nach 2 „segment lifetimes“
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
24
UDP (User Datagram Protocol)
•
•
•
•
ungesichertes Transportprotokoll
effizienter als TCP im LAN-Bereich
keine Flußkontrolle
Anwendung muß Datenverluste selber
behandeln
• Einsatz für Multimedia-Anwendungen
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
25
Beispiele für UDP-Anwendungen
• NFS (Network File System)
• NIS (Network Information System)
• SNMP (Simple Network Management
Protocol)
• RTP (Realtime Transport Protocol, für
Multimedia over IP Anwendungen)
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
26
DNS (Domain Name Service)
• Problem: IP-Adressen sind schwer zu merken
• Idee: Einführung symbolischer Namen
– Erfordern Umsetzungstabellen
– Einführung von Nameservern, die alle Adressen einer Domain
auflösen können
• Für die Kommunikation auf physikalischer Ebene benötigt
man Hardwareadressen. Die Umsetzung erfolgt über ARP.
1. Welche Adresse hat cssun ?
Client
2. cssun hat die 131.188.3.9 !
3. Hallo 131.188.3.9 !
Grundlagen von TCP/IP
2000-11-08
Nameserver
cssun
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
27
DNS 2
• Aufteilung der „Welt“ in Zonen.
• Zonen weiter unterteilt:
– Top-level-Zonen: z.B. „de“ für Deutschland oder „uk“ für GB
– Second-level-Zonen: z.B. „uni-erlangen.de“ oder „bhn.de“
– weitere Unterteilung möglich
• Die Nameserver aller Domains arbeiten weltweit
zusammen, um global Adressen aufzulösen. Koordinierung
über die root-Nameserver.
• Neben den primary-Nameservern (verantwortlich für
einzelne Zonen) gibt es noch secondary-Nameserver
(Ausfallsicherheit!)
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
28
Routing
• Was ist Routing?
– Kommunikation der Rechner via IP nur im lokalen Subnetz
– Spezialrechner (Router) als Gateways zwischen diesen Subnetzen
– Router entscheiden anhand der Ziel-IP-Adresse im ankommenden
Paket, wie dieses Paket weitervermittelt werden soll.
• Warum Routing?
– Logische (effiziente) Trennung von Subnetzen
– Verhinderung von Broadcast-Stürmen
– Optimierung der Netzwerkleistung durch automatische
Leitungswahl (redundante Anbindung)
• Wie wird geroutet?
– Statisches Routing: Routing-Einträge werden vom Administrator
von Hand erstellt und verwaltet
– Dynamisches Routing: Die Router tauschen RoutingInformationen über Routingprotokolle aus.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
29
Statisches vs. Dynamisches Routing
• Dynamisches Routing kann durch falsche
Informationen gestört werden
• Dynamisches Routing erzeugt Netzlast
• Statisches Routing funktioniert nur bei einfachen
Netztopologien
• Keine Backup-Pfade bei statischem Routing
• Statisches Routing ist arbeitsintensiv bei
Änderungen
• Näheres in „Routing und Routing-Protokolle im
FAU-Netz am 6.12.2000“
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
30
IP-Routing-Algorithmus
Route_IP_DATAGRAM (datagram, routing_table)
extract destination IP address, ID, from datagram
compute IP address of destination network, IN
if IN matches any directly connected network address
send datagram to destination over that network;
(this involves resolving ID to a physical address (ARP),
encapsulate datagram, and sending the frame)
else if ID apears as a host specific route
route datagram as specified in the table
else if ID apears in routing table
route datagram as specified in the table
else if default route has been specified
route datagram to default gateway
else declare a routing error
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
31
Routing-Tabelle
•
Tabelle, in der vermerkt ist, welche Netze oder Rechner wie erreichbar
sind.
131.188.71.0
131.188.71.15
Destination
Distance
Route
131.188.3.0
0
Direct
131.188.10.0
0
Direct
131.188.71.0
2
131.188.10.5
131.188.71.15
1
131.188.3.15
Default
131.188.5.3
131.188.71.1
Rechner 1
Router B
131.188.3.15
131.188.3.1
131.188.3.0
131.188.3.250
Router A
131.188.5.1
131.188.5.0
131.188.5.3
Router C
•
Kann mittels Konfiguration statisch oder mittels Routing-Protokollen
(Protokolle zum Austausch von Erreichbarkeitsinformationen)
dynamisch aufgebaut werden.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
32
Routing-Protokolle
• RIP (Routing Information Protocol)
– Alle 30 Sekunden werden Broadcasts zum Austausch der RoutingInformation ausgelöst. Jeder Router bzw. jedes Endsystem erhält
dadurch Informationen über seine direkten Nachbarn.
– Es wird eine Routing-Tabelle erzeugt, in der die Zieladresse mit
einer Metrik versehen ist. Diese Metrik ist beim RIP der „hopcount“, also die Anzahl der Systeme, die ein Paket zu diesem Ziel
durchlaufen muß.
– Der Vorteil von RIP ist seine Einfachheit und seine weite
Verbreitung.
– Nachteile sind die langsame Konvergenz und eine Unflexibilität,
da nur eine Netzmaske und eine Metrik unterstützt wird.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
33
Routing-Protokolle 2
• OSPF (Open Shortest Path First)
– Jeder Knoten kennt den kompletten Aufbau des Netzwerks. Er
prüft die Erreichbarkeit aller seiner direkten Nachbarn und sendet
diese Informationen an alle Knoten im Netz. Aus den eigenen
Informationen und denen von allen anderen Knoten findet er
mittels des „Shortest Path First“-Algorithmus den kürzesten Weg.
– Die Vorteile von OSPF sind eine schnelle Konvergenz, die
Unterstützung verschiedener Metriken (z.B. Geschwindigkeit der
Leitung) und Netzmasken, sowie eine einfachere Problemverfolgung als bei RIP.
– Ein Nachteil ist, daß es noch nicht so verbreitet ist, und daß
Implementierungen z.T. noch fehlerhaft sind.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
34
Deutsches Wissenschaftsnetz (G-WiN)
• Internet2 in Deutschland
• Organisiert und betrieben vom DFN-Verein
(Verein zur Förderung des deutschen
Forschungsnetzes e.V.)
• Anschlüsse mit Übertragungsgeschwindigkeiten
von 128kBit/s, 2MBit/s, 34MBit/s, 155MBit/s und
622MBit/s, ab 2001 auch 2,48GBit/s
• Netzprotokolle: IP (ATM-Dienst geplant)
• Anschluß der FAU (seit 06/2000): 622MBit/s
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
35
REVUE
• REchner Verbund Universität Erlangen
• Im Augenblick:
–
–
–
–
In der Wissenschaft: 180 Netze mit 8164 Hosts
In der Medizin: 64 Netze und 3048 Hosts
10 Sondernetze
Backbone über ATM (622MBit/s und
155MBit/s)
– Anschlüsse der Institute via ATM, FastEthernet
und GigabitEthernet
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
36
Einfache UNIX-Kommandos
•
•
•
•
•
•
•
•
netstat
ifconfig
inetd
route
routed, in.routed
nslookup
ping
traceroute
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
37
netstat
netstat - Statusinformationen des Netzwerkes
Synopis:
netstat
netstat
netstat
netstat
netstat
[ -anv ]
[ -s | -g | -m | -p | -f address_family ] [-P protocol ] [ -n ]
-i | -I interface [ interval ]
-r [ -anv ]
-M [ -ns ]
Beschreibung:
netstat zeigt die Inhalte von mehreren Netzwerk-Datenbankstrukturen in verschiedenen Formaten: Die erste Form zeigt für jedes Protokoll
eine Liste der aktiven Sockets. Die zweite selektiert bestimmte Datenbankstrukturen, abhängig von den Optionen. Die dritte Form liefert
laufende Verkehrsstatistiken der konfigurierten Interfaces. Die vierte liefert Routinginformationen und die letzte Form zeigt
Multicastinformationen.
Optionen:
-a
-v
-n
-s
-g
-m
-p
-f address_family
-P protocol
Grundlagen von TCP/IP
2000-11-08
zeigt den Status aller Sockets. Ohne diese Option werden nur aktive Sockets angezeit.
‚verbose‘ Informationen.
zeigt Netzwerkadressen als Nummern (keine Adreßauflösung).
zeigt Protokoll-Statistiken.
zeigt die Zugehörigekeit zu einer Multicastgruppe.
Statistiken, die von Managementroutinen über den Puffer-Pool aufgezeichnet werden.
zeigt die ARP-Tabelle.
zeigt Reports über die angegebene Adreßfamilie (inet, unix).
zeigt die Statistik nur für ein Protokoll (z.B. tcp).
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
38
netstat 2
-i
-I interface
-r
-M
zeigt den Status aller konfigurierten Interfaces.
zeigt Statistiken des angegebenen Interfaces.
zeigt die Routingtabellen.
zeigt die Multicast-Routingtabellen.
Ausgaben und Beispiele:
Zweite Form: Es wird für jeden aktiven Socket die lokale und die remote Adresse, die Sende- und Empfangswarteschlange (Bytes), das
Protokoll und der interne Status des Protokolls angezeigt.
Das Format der Ausgabe für die Socketadresse ist „hostname.port“ bzw. „network.port“, falls eine Socketadresse ein Netzwerk bezeichnet.
Nicht spezifizierte oder „Wildcard“-Adressen werden mit „*“ gekennzeichnet.
Dritte Form: Falls ein Intervall angegeben wurde, zeigt netstat eine Tabelle mit kummulierten Statistiken über die transferierten Pakete, die
Fehler und die Kollisionen, die Netzwerkadressen des Interfaces und die maximale Paketgröße (MTU). Jede weitere Zeile zeigt inkrementelle
Statistiken für das Intervall.
Vierte Form: Es wird die Routingtabelle ausgegeben, in der die verfügbaren Routen und deren Status verzeichnet sind. Jeder Eintrag besteht
aus Zielhost oder Zielnetzwerk, dem Gateway, dem Status, der Anzahl der aktiven Verbindungen, der Anzahl der über diese Route
übertragenen Pakete, sowie dem Interfacenamen, der für diese Route benutzt wird.
Die Statusinformationen bestehen aus folgenden Einträgen:
U - Die Route ist „UP“
G - Die Zieladresse ist ein Gateway
D - Die Route wurde dynamisch durch ein Redirect erzeugt
H - Die Zieladresse ist ein Host
Zusammen mit der Option „-v“ erhält man auch die Maske für die Routen.
netstat -a -P tcp
netstat -i
Grundlagen von TCP/IP
2000-11-08
netstat -rn
netstat -s
netstat -s -P tcp
netstat -in 10
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
39
ifconfig
ifconfig - Konfiguration der Parameter eines Netzwerkinterfaces
Synopis:
ifconfig interface [[ address_family ] address ] [ parameters ]
Beschreibung:
ifconfig wir benutzt, um eine Adresse einem Netzwerkinterface zuzuweisen bzw. Netzwerkparameter eines Interfaces
zu verstellen. ifconfig wird während der Boot-.Phase des Rechners benutzt, um Netzverbindungen herstellen zu
können. ifconfig ohne Parameter aufgerufen, liefert die aktuellen Einstellungen des Interfaces. Beim Aufruf als root,
wird zusätzlich die MAC-Adresse ausgegeben.
interface
Interfacename (z.B. le0, le1 - Ethernetinterfaces bei Sun)
address_family
Adreßfamilie, z.Zt. nur inet sinnvoll
address
IP-Adresse des Interfaces (als Nummer oder, wenn Namensauflösung läuft, als Name)
Parameter:
up/down
[-]arp
metric n
[-]debug
netmask mask
dest_address
broadcast address
Grundlagen von TCP/IP
2000-11-08
markiert ein Interface als up bzw. down.
Ein- / Ausschalten des ARP-Protokolls.
setzt die Routing-Metrik des Interfaces auf n.
Ein- / Ausschalten des Debugging-Modus.
setzt die Netzmaske auf mask.
setzt die Adresse der Gegenstelle bei Punkt-zu.-Punkt-Verbindungen.
setzt die Broadcastadresse auf address.
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
40
ifconfig 2
Ausgaben und Beispiele:
% ifconfig hme0
hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
inet 131.188.3.150 netmask ffffff00 broadcast 131.188.3.255
# ifconfig hme0
hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
inet 131.188.3.150 netmask ffffff00 broadcast 131.188.3.255
ether 8:0:20:92:e9:4
% ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
inet 127.0.0.1 netmask ff000000
hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
inet 131.188.3.150 netmask ffffff00 broadcast 131.188.3.255
lane0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
inet 192.44.88.11 netmask ffffff00 broadcast 192.44.88.255
# ifconfig hme0 inet 131.188.3.150 netmask 255.255.255.0 broadcast 131.188.3.255
# ifconfig hme0 down
# ifconfig hme0 up
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
41
route
route - manuelles Modifizieren der Routing-Tabelle
Synopis:
route [ -fn ] add | delete [ host | net ] destination [ gateway [ metric ]]
Beschreibung:
Mit route können Routing-Einträge von Hand erstellt oder gelöscht werden. Dieses Kommando ist privilegiert und
darf nur vom Superuser ausgeführt werden.
Optionen:
-f
-n
alle Einträge der Routing-Tabelle werden gelöscht (flush).
es wird keine Nameserviceauflösung vorgenommen.
Beispiele:
#
#
#
#
#
#
route
route
route
route
route
route
add 131.188.74.14 131.188.3.1 1
add net 131.188.74.0 131.188.3.1 1
delete 131.188.74.14 131.188.3.1
delete net 131.188.74.0 131.188.3.1
-fn
add default 131.188.3.1 1
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
42
routed, in.routed
routed - Netzwerk-Routingdaemon
Synopis:
in.routed [ -gqstv ] logfile
Beschreibung:
Normalerweise wird der routed beim Hochfahren des Rechners gestartet, um die NetzwerkRoutingtabellen zu verwalten. Hierbei wird das Routing Information Protocol (RIP) benutzt.
Der Routingdaemon überwacht den UDP-Port 520 auf ankommende RIP-Pakete. Diese Pakete
beinhalten auch einen „hop count“ (Metrik), um so die Qualität der Routen bewerten zu können.
Optionen:
-g
-s
-q
-t
-v
es wird eine default-Route generiert.
es werden Routinginformationen an andere Stationen abgegeben.
es werden Routinginformationen nur angenommen, aber keine abgegeben.
alle eingehenden oder abgehenden Pakete werden ausgegeben.
es wird ein Logfile angelegt, in dem Änderungen der Routingtabelle mit Zeitstempel
dokumentiert werden.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
43
nslookup
nslookup - aktive Abfragen eines Nameservers
Synopis:
nslookup [ -option ] host [ server ]
nslookup
Beschreibung:
nslookup sendet Anfragen an Nameserver, bereitet die Antwort auf und zeigt dann die gewünschten Informationen an.
Das Programm kann sowohl interaktiv als auch nicht-interaktiv genutzt werden. Wird nslookup ohne Parameter
aufgerufen, gelangt man in den interaktiven Modus.
Interessante Kommandos:
Die Kommandos von nslookup sind sehr vielfältig. Nähere Informationen findet man in der man-Page.
host
gibt den Eintrag für host aus.
host server
dito, aber server wird als Nameserver benutzt.
help
eine Hilfe.
server host
ab sofort wird der Server host für Abfragen benutzt.
set option
setzt Optionen:
domain=domainname
setzt den Default-Domainname auf domainname.
type=searchtype
setzt den Suchtyp (z.B. type=mx für Ausgabe der Mailexchanger).
ls domain
listet eine ganze Domain auf. Die Ausgabe kann man mit „>“ in eine Datei umlenken.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
44
ping
ping - sendet ICMP ECHO_REQUEST Pakete an Netzwerk-Hosts
Synopis:
ping
ping
host [timeout]
[-s] [-dlLnrRv] [-i interface] [-I interval]
[-t ttl] host [packetsize] [count]
Beschreibung:
ping benutzt das ICMP ECHO_REQUEST Datagram, um ein ICMP ECHO_RESPONSE Datagram des angegebenen
Hosts zu generieren. In der ersten Form (ohne Optionen) wird, falls der Host antwortet, „host is alive“ ausgegeben.
Falls nicht, wird nach einem optionalen Timeoout (Standard ist 20 Sek.) eine entsprechende Meldung erstellt. In der
zweiten Form (mit „-s“) wird jede Sekunde (außer „-I interval“) ein Paket an den Host geschickt, wobei Paketgröße
und Anzahl konfigurierbar sind. Wenn ping durch ein SIGINT abgebrochen wird oder die Anzahl der zu sendenden
Paket erreicht wurde, wird eine Statistik über Antwortzeiten und Paketverluste erstellt.
Optionen:
-r
keine Verwendung der Routingtabellen.
-R
verwendet die „record route“-Option. Zusammen mit „-v“ wird der Weg des Paketes angezeigt.
-i interface
benutze Interface interface (sinnvoll nur bei Multicast).
-n
keine Nameserviceauflösung.
Beispiele:
# ping faui45.informatik.uni-erlangen.de
# ping -s faui45.informatik.uni-erlangen.de
# ping -svRn www.sun.com
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
45
traceroute
traceroute - gibt die Route aus, über die ein Netzwerk-Host erreichbar ist.
Synopis:
tarceroute [-m max_ttl] [-n] [-p port] [-q nqueries] [-r]
[-s src_addr] [-g addr] [-w waittime] host [packetsize]
Beschreibung:
traceroute benutzt das „time to live“-Feld im IP-Header, um eine ICMP TIME_EXCEEDED-Antwort eines jeden
Gateways auf der Route zu einem Host zu generieren. Hierzu werden drei Testpakete (oder „-q“) mit einer TTL von 1
verschickt. Das angesprochene Gateway antwortet mit einer ICMP TIME_EXCEEDED-Meldung. Somit erhält
traceroute die IP-Adresse des ersten Gateways. Es wird jetzt solange die TTL um 1 erhöht, bis eine ICMP
PORT_UNREACHABLE-Meldung ankommt (Host ist erreicht) oder die maximale TTL („-m“) erreicht ist. Die
Ausgabe von !H bedeutet, daß der Host nicht erreichbar ist. Ein (ttl=255!), daß das TTL-Feld im Antwortpaket von
der Erwartung abweicht.
Optionen:
-m max_ttl
-n
-p port
-q nqueries
-s src_addr
-g addr
-v
-w waittime
Grundlagen von TCP/IP
2000-11-08
setzt die maximale TTL.
keine Nameserviceauflösung.
setzt die Portnummer.
setzt die Anzahl der Pakete pro Durchgang.
setzt die Quelladresse bei Hosts mit mehreren Interfaces.
benutzen der „Loose Source Record Route“-Option.
Ausgabe der ICMP Pakete, sofern nicht TIME_EXCEEDED oder UNREADABLE.
setzt die Wartezeit für eine Antwort.
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
46
inetd
•
•
•
Um nicht für jeden Dienst ständig einen Server-Prozeß laufen zu lassen, wurde der inetd
eingeführt.
Der inetd wartet an einer Reihe von Sockets und startet bei Bedarf den richtigen
Daemon.
Konfiguration über /etc/inetd.conf:
ftp
telnet
echo
echo
•
tcp
tcp
tcp
udp
nowait
nowait
nowait
wait
root
root
root
root
/usr/sbin/in.ftpd
/usr/sbin/in.telnetd
internal
internal
in.ftpd
in.telnetd
Bedeutung der Felder:
–
–
–
–
–
–
–
•
stream
stream
stream
dgram
ftp: bezeichnet den Dienst. Muß in /etc/services oder der entsprechenden NIS-Tabelle
stehen.
stream/dgram: gibt an, ob es sich um einen Stream- oder Datagram-Dienst handelt.
tcp/udp: gibt das verwendete Protokoll an.
wait/nowait: bei wait erlaubt der inetd erst wieder einen Zugriff auf den Dienst, wenn die
Bearbeitung der letzten Anfrage abgeschossen wurde.
root: bezeichnet die UID, unter der Daemonprozeß gestartet wird.
/usr/sbin/in.ftpd: ist der Server, der gestartet werden soll.
Der Rest sind Argumente für den Server.
Nach einer Änderung der inetd.conf-Datei muß der inetd neu initialisiert werden. Dies
geschieht durch ein gesendetes SIGUP.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
47
Nameservice-Konfiguration
•
•
•
•
In der Datei /etc/hosts können Abbildungen IP-Adresse <-> Rechnername statisch konfiguriert
werden:
127.0.0.1
localhost
131.188.3.150 lisa.rrze.uni-erlangen.de lisa
192.44.88.11 lisa-gigabit lisa-gigabit.rrze.uni-erlangen.de
Über die Datei /etc/nsswitch.conf wird die Auswertereihenfolge der verschiedenen
Informationsdienste festgelegt:
hosts:
files dns
networks:
nis [NOTFOUND=return] files
protocols:
files
netmasks:
nis [NOTFOUND=return] files
In der Datei /etc/resolv.conf werden Nameserver und Suchreihenfolge verschiedener SubDomains festgelegt:
nameserver
131.188.3.2
nameserver
131.188.2.45
domain
rrze.uni-erlangen.de
search
rrze.uni-erlangen.de uni-erlangen.de
Rechner können entweder als Nameservice-Clients (kein aktiver Namedaemon), CachingNameserver (aktiver Namedaemon, aber keine lokalen Zonendateien) oder Secondary-Nameserver
(aktiver Namedaemon mit lokalen Zonendateien) konfiguriert werden.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
48
Fehlersuche
•
Ist das Interface korrekt konfiguriert und UP?
kawa{root}[~]# ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
inet 127.0.0.1 netmask ff000000
hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
inet 131.188.3.154 netmask ffffff00 broadcast 131.188.3.255
ether 8:0:20:96:8:bd
•
Läßt sich das eigene Interface anpingen?
kawa{root}[~]# ping 131.188.3.154
131.188.3.154 is alive
•
Können Rechner im eigenen Subnetz erreicht werden?
kawa{root}[~]# ping 131.188.3.150
131.188.3.150 is alive
•
Gehen Daten über die Netzwerkschnittstelle?
kawa{root}[~]# netstat -i 2
input
hme0
output
packets errs packets errs colls
42738774 0
32558669 0
0
12
0
2
0
0
9
0
1
0
0
Grundlagen von TCP/IP
2000-11-08
input (Total)
output
packets errs packets errs colls
45296582 0
35116477 0
0
16
0
6
0
0
13
0
5
0
0
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
49
Fehlersuche 2
•
Bei Problemen im eigenen Subnetz: Wie schaut der ARP-Eintrag aus?
kawa{root}[~]# arp -a
Net to Media Table
Device
IP Address
Mask
Flags
Phys Addr
------ -------------------- --------------- ----- --------------hme0
southern.gate.uni-erlangen.de 255.255.255.255
00:50:0f:10:a6:17
hme0
herkules.rrze.uni-erlangen.de 255.255.255.255
08:00:20:96:03:0d
hme0
lisa.rrze.uni-erlangen.de 255.255.255.255
08:00:20:92:e9:04
hme0
kawa.rrze.uni-erlangen.de 255.255.255.255 SP
08:00:20:96:08:bd
hme0
BASE-ADDRESS.MCAST.NET 240.0.0.0
SM
01:00:5e:00:00:00
•
Ist ein default-Route bekannt?
kawa{root}[~]# netstat -rn
Routing Table:
Destination
Gateway
Flags Ref
Use
Interface
-------------------- -------------------- ----- ----- ------ --------131.188.3.0
131.188.3.154
U
3 32241 hme0
224.0.0.0
131.188.3.154
U
3
0 hme0
default
131.188.3.1
UG
0 52187
127.0.0.1
127.0.0.1
UH
02464303 lo0
•
•
Im Fehlerfall: Läuft ein Routingdaemon oder soll der default-Route statisch konfiguriert
sein?
Läßt sich der Router anpingen?
kawa{root}[~]# ping 131.188.3.1
131.188.3.1 is alive
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
50
Fehlersuche 3
•
Kann ein Rechner außerhalb des eigenen Subnetzes erreicht werden?
kawa{root}[~]# traceroute -n 131.188.128.54
traceroute to 131.188.128.54 (131.188.128.54), 30 hops max, 40 byte packets
1 131.188.3.1 2 ms 1 ms 1 ms
2 131.188.10.1 2 ms 2 ms 3 ms
3 131.188.7.128 2 ms 1 ms 1 ms
4 131.188.128.54 3 ms 1 ms 1 ms
•
Funktioniert der Nameservice?
kawa{root}[~]# nslookup www.sun.com
Server: localhost
Address: 127.0.0.1
Name:
wwwwseast.usec.sun.com
Address: 192.9.49.30
Aliases: www.sun.com
•
Kann das Zielsystem auf dem gewünschten Port angesprochen werden?
kawa{root}[~]# telnet mailhub smtp
Trying 131.188.71.14...
Connected to mailhub.rrze.uni-erlangen.de.
Escape character is '^]'.
220 max5.rrze.uni-erlangen.de (Mail*Hub TurboSendmail) ESMTP Service ready
quit
221 Until later [131.188.3.154]
Connection closed by foreign host.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
51
Literatur
• Douglas E. Comer: Internetworking with TCP/IP. PrenticeHall International.
• Walter Richard Stevens: TCP/IP Illustrated Volume 1, The
Protocols. Addison-Wesley.
• Walter Richard Stevens: TCP/IP Illustrated Volume 2, The
Implementation. Addison-Wesley.
• Walter Richard Stevens: TCP/IP Illustrated Volume 3,
TCP for Transactions, HTTP, NNTP, and the UNIX
Domain Protocols. Addison-Wesley.
Grundlagen von TCP/IP
2000-11-08
Falko Dreßler, Universität Erlangen-Nürnberg, RRZE
Email: [email protected]
52
Herunterladen