Grundlagen von TCP/IP Falko Dreßler, Regionales Rechenzentrum [email protected] Grundlagen von TCP/IP 2000-05-24 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-05-24 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 – – – – – – Entwickelt von Universität Stanford und Bolt, Beranek und Newman Unterstützt durch DARPA (Advanced Research Project Agency) Erster Einsatz im ARPANET 1982: Einsatz in 4.2BSD UNIX 1983: Alle Rechner im ARPANET müssen Internet Protokolle verwenden Heute: ca. 2,5 Mio Endgeräte via Internet miteinander verbunden Grundlagen von TCP/IP 2000-05-24 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 – IETF: Internet Engineering Task Force - besteht aus Arbeitsgruppen, in denen die weitere Entwicklung der Internetprotokolle geplant wird. Teil des IAB. – RFC: Internet Request for Comments - die InternetStandards und Entwürfe. Weniger formal als ISOStandards. Grundlagen von TCP/IP 2000-05-24 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-05-24 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-05-24 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-05-24 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-05-24 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 – 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 Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 9 IP (Internet Protocol) • • • • • Aufbau von IP-Paketen IP-Adressen Subnetze ARP ICMP Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 10 Aufbau von IP-Paketen VERS HLEN Service Type Total Length Identification FGS Fragment Offset Time To Live Protocol Header Checksum Source IP Address Destination IP Address IP Options (so vorhanden) Padding Data 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 11 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 12 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 13 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 14 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 15 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-05-24 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] 16 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-05-24 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] 17 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 18 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-05-24 0 0 33580 33580 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 0 0 ESTABLISHED ESTABLISHED 19 Beispiele für TCP-Anwendungen • telnet: Ermöglicht den Zugriff auf entfernte Rechner. Eigener Rechner verhält sich wie ein angeschlossenes Terminal. Port 23. • 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 20 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 21 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 22 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-05-24 fin/ack ack TIMED WAIT LAST ACK timeout nach 2 „segment lifetimes“ Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 23 UDP (User Datagram Protocol) • • • • • • • Ungesichertes Transportprotokoll Effizienter als TCP im LAN-Bereich Einsatz für Multimedia-Anwendungen Basis für Client-Server-Lösungen Keine Flußkontrolle Anwendung muß Datenverluste selber behandeln Beispiele: NFS (Network File System), NIS (Network Information System), SNMP (Simple Network Management Protocol) Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 24 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 1. Welche Adresse hat cssun ? Client 2. cssun hat die 131.188.3.9 ! 3. Hallo 131.188.3.9 ! • • • Nameserver cssun Neben den primary-Nameservern gibt es noch secondary-Nameserver (Ausfallsicherheit!) Die Nameserver aller Domains arbeiten weltweit zusammen, um global Adressen aufzulösen. Koordinierung über die root-Nameserver. Für die Kommunikation auf physikalischer Ebene benötigt man Hardwareadressen. Die Umsetzung erfolgt über ARP. Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 25 Routing • Was ist Routing? – Router können aufgrund der Ziel-IP-Adresse im ankommenden Paket entscheiden, in welche Richtung das 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 26 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“ Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 27 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 28 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 29 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 30 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 einfache 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 31 Deutsches Wissenschaftsnetz (B-WiN) • Verbund der deutschen L&F-Gemeinde, Teil des Internet-Backbone • Organisiert und betrieben vom DFN-Verein (Verein zur Förderung des deutschen Forschungsnetzes e.V.) • Mehr als 400 Anschlüsse (128kBit/s, 2MBit/s, 34MBit/s, 155MBit/s), darunter auch ISPs wie XLink, Eunet, ECRC und Nacamar • Netzprotokolle: ATM (PVC) und IP • Anschluß der FAU: 155MBit/s Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 32 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 (ab 06/2000): 622MBit/s Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 33 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 34 Einfache UNIX-Kommandos • • • • • • • • • netstat ifconfig inetd route routed, in.routed nslookup ping traceroute arp Grundlagen von TCP/IP 2000-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 35 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-05-24 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] 36 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-05-24 netstat -rn netstat -s netstat -s -P tcp netstat -in 10 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 37 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-05-24 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] 38 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 39 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 40 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 41 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 42 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-05-24 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-05-24 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-05-24 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-05-24 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 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-05-24 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] 47 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 48 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 49 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-05-24 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 50