LPI-Zertifizierung 1.112.1: TCP/IP-Grundlagen Quellen: http://www.lpi.org Copyright ( ) 2008 by Andreas Grupp This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.0/de/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
1.112.1 Inhalte Gewichtung: 4 Ziele: Die Kandidaten sollen ein richtiges Verständnis der Netzwerkgrundlagen zeigen können. IP-Adressen u. Netzmasken Netzwerkklassen und klassenlosen Subnetze (CIDR) Reservierten Adressen für private Netzwerke Funktion und Anwendung der Default-Route Grundlegende Internet-Protokolle (IP, ICMP, TCP, UDP) und der üblichen TCP- und UDP-Ports Dateien: /etc/services Befehle: ftp, telnet, host, ping, dig, traceroute, whois
LAN-Adressierung Damit Rechner untereinander kommunizieren können, benötigen sie im LAN eine Hausnummer - eine Rechner- Adresse. Um zielgerichtet kommunizieren zu können, muss diese Adresse eindeutig sein. Hallo 4 hier hast Du was! Hallo 1, Danke für die Botschaft! 1 2 3 4 5 Nur der angesprochene Rechner reagiert. Alle anderen Rechner ignorieren Message.
Adress. bei mehreren Netzen A.1 A.2 A.3 A.4 A.5 B.1 B.2 B.3 B.4 B.5 A.6 Gateway/ Router Netz A Campus Area Network Metropolitan Area Network Wide Area Network (WAN) z.b. Internet Gateway's/Router verbinden LANs/WANs Mehrdeutige Adressen werden durch einen Netzwerk- Identity-Prefix verhindert. Netz B So ist es wieder möglich, dass der Rechner A.3 zielgerichtet mit dem Rechner B.5 kommuniziert. B.6
IP-basierende Netzwerke (IPV4) Verwenden eine 32-Bit-Rechneradresse. Rechneradresse enthält Netwerk-ID und Rechner-ID. Beispiel: 11011011101000111001011111011001 Netz-ID Rechner-ID Trennlinie für beide ID's wird durch eine überlagerte 32-Bit Netz-Maske realisiert u. angegeben. 11111111111111111111111100000000
Darstellung von IP-Adressen 32-Bit-Ziffern sind schlecht zu merken. Zur einfacheren Darstellung werden die einzelnen Bytes (4x8 Bit) deshalb getrennt...... und als Dezimalzahl geschrieben. Zur Trennung wird jeweils ein Dezimalpunkt verwendet. 11011011 10100011 10010111 11011001 219 163 151 217 Damit ergibt sich für dieses Beispiel die IP-Adresse 219.163.151.217.
Darstellung der Netzmaske Für die Netzmaske gibt es wie bei den IP-Adressen die Variante "dotted-decimal"/"dotted-quad" um eine übersichtlicher Darstellung zu erhalten. Im vorigen Beispiel wäre dies also die Netzmaske 255.255.255.0 Gesamt: 219.163.151.217/255.255.255.0 Die einfache Struktur einer Netzmaske erlaubt eine noch einfachere Art der Darstellung. Dabei wird nur die Anzahl der 1 -Bit's angegeben. Beispiel: 219.163.151.217/24 Diese Variante wird auch als CIDR-Darstellung bezeichnet.
Broadcast- und Netz-Adresse Die unterste Adresse eines Netz-Adressbereichs sollte/kann nicht für einen Rechner verwendet werden. Gründe: Historisch da FreeBSD die als Broadcast- Adresse verwendet hat. Die oberste Adresse eines Netz-Bereichs darf nicht für einen Rechner verwendet werden da sie (jetzt per RFC- Definition) die Broadcast-Adresse ist. Ein Datenpaket mit der Broadcast-Adresse als Zieladresse wird von allen Rechnern im LAN empfangen und verarbeitet. Im vorigen Beispiel (24-Bit Netzmaske) wäre die Broadcast-Adresse also 219.163.151.255 und die Netz- ID 219.163.151.0
Gateway, Default Route Rechner: Ziel-IP "log. UND" eigene SN-Maske => Netz-ID mit eigener Netz-ID identisch? Falls ja: IP-Paket wird auf LAN-Ebene direkt an Empfänger adressiert (via MAC-Adresse Empfänger) Falls nein: IP-Paket wird auf LAN-Ebene an Gateway gesendet (via MAC-Adresse des Gateways) Zuordnung IP <=> MAC via ARP
Gateway, Default Route r-andreas:~ # ping -c 1 172.16.0.3 PING 172.16.0.3 (172.16.0.3) 56(84) bytes of data. 64 bytes from 172.16.0.3: icmp_seq=1 ttl=64 time=3.10 ms r-andreas:~ # ping -c 1 www.gmx.de PING www.gmx.de (217.72.204.254) 56(84) bytes of data. 64 bytes from www.gmx.net (217.72.204.254): icmp_seq=1 ttl=54 time=20.7 ms r-andreas:~ # arp -n Address HWtype HWaddress Flags Mask Iface 172.16.0.1 ether 00:0D:88:FC:C0:5F C eth0 172.16.0.3 ether 00:09:52:01:21:3A C eth0 r-andreas:~ # route -n Kernel IP Routentabelle Ziel Router Genmask Flags Metric Ref Use Iface 172.16.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth0
Netzklassen Präfix Adressbereich NM Netze Hosts A 0... 0.0.0.0 127.255.255.255 8 128 16.777.214 B 10... 128.0.0.0 191.255.255.255 16 16.384 65.534 C 110... 192.0.0.0 223.255.255.255 24 2.097.152 254 D 1110... 224.0.0.0 239.255.255.255 Multicast-Adr. E 1111... 240.0.0.0 255.255.255.255 Reserviert Netzklassen haben praktisch keine Bedeutung mehr! Mehr oder weniger Auflösung mit Einführung von Variable Length Subnet Mask (VLSM) und Classless Inter Domain Routing (CIDR)
Private IP-Bereiche Reserviert für private Netze: 10.0.0.0/8 172.16.0.0/16 172.31.0.0/16 (od. 172.16.0.0/12) 192.168.0.0/24 192.168.255.0/24 (od. 192.168.0.0/16) Link Local für autom. private Netze (APIPA, Zeroconf): Gesamter "Link Local" Bereich ist 169.254.0.0/16 169.254.1.0/24 169.254.254.0/24 für APIPA frei 169.254.0.0/24 u. 169.254.255.0/24 von IANA reserviert. Hosts aus "privaten Adressbereichen" benötigen für den Zugang zum Internet eine "Network Address Translation (NAT)".
Localhost IP-Adresse 127.0.0.1 auf eigenen Rechner abgebildet Wird normalerweise auf Loopback-Interface gelegt Erreichbarkeits-Test z.b. mit einem ping testet "nur" den lokalen TCP/IP-Stack aber keine Netzwerkkarte. "localhost" als zugeordneter Namen für 127.0.0.1 Für lokalen Rechner sogar ganzes Netzwerk 127.0.0.0/8 reserviert (siehe auch zugehörige Route unter Linux). Unter Linux kommunizieren etliche Dienste untereinander über die localhost-adresse.
Datenfluss im Netz Kapselung Routing Entkapselung Modifizierte Grafiken von "Kbrose" - Wikipedia
Wichtigste Protokolle im TCP/IP Transport-Layer TCP, RFC793 Verbindungsorientiert Segmente als PDU Zuverlässig Geordnete Datenrekonstruktion beim Empfänger (Reassemblierung) Flusskontrolle Overhead min. 20 Octets Bsp.: http, smtp, ftp UDP, RFC768 Verbindungslos (Transaktionsorientiert) Datagramme als PDU "Best effort" Ansatz Kleiner Overhead von 8 Octets Bsp.: DNS, VoIP, Videostr., Spiele, SNMP, TFTP, DHCP, RIP
Applikations-"Multiplexing" Ports bis 1023 sind "well known ports" Ports von 1023 bis 65535 werden vom OS dynamisch zugewiesen od. können vom User für spezifische Server-Applikationen verwendet werden sieher hierzu auch die Datei /etc/services Layer 5-7 ftp telnet smtp dns http dns Application-Layer der DOD- Protocol-Suite tftp snmp syslog rip Ports 21 23 25 53 80 53 69 161 514 520 Layer 4 TCP Transport-Layer UDP Layer 3 DOD-Internet-Layer (IP-Protocol)
/etc/services... finger 79/tcp # Finger finger 79/udp # Finger # David Zimmerman <dpz&rutgers.edu> http 80/tcp # World Wide Web HTTP http 80/udp # World Wide Web HTTP www 80/tcp # World Wide Web HTTP www 80/udp # World Wide Web HTTP www-http 80/tcp # World Wide Web HTTP www-http 80/udp # World Wide Web HTTP # Tim Berners-Lee <timbl&w3.org> http 80/sctp # HTTP # IETF TSVWG # Randall Stewart <rrs&cisco.com> # [RFC4960] # 81 Unassigned (Removed on 2007-09-06)... Dient u.a. C-Funktionen wie getservbyname() zur Zuordnung eines Protokollbezeichners zu einem Port Aufgeführte Ports bedeuten nicht, dass hier ein Dienst läuft!
ICMP das Internet Control Message Protocol Ein paar Messagetypen: Host confirmation (echo-request u. -Reply, z.b. ping) Unreachable Destination oder Service mit Codes 0 = net unreachable 1 = host unreachable 2 = protocol unreachable 3 = port unreachable Time exceeded (gezielte Ausnutzung bei traceroute)... Achtung: Firewalls sperren manche ICMP-Typen (Windows-Firewall sperrt sogar echo-request)
ping Sendet ICMP ECHO_REQUESTs an Zielhost Wartet auf ICMP ECHO_REPLY und zeigt Round-Trip- Time (RTT) an Linux-ping sendet dauerhaft (Abbruch mit Strg + C) Vielzahl an Parametern (siehe man-page) -t Time to live einstellen -c Anzahl der pings begrenzen -Q Quality of service -s Größe des Datenbereichs (Default 56)
traceroute traceroute testet jeden Hop (Router) auf dem Weg von der Quelle zum Ziel über UDP-Datenpaket mit gezielt gesetztem TTL-Wert: Time to live -Wert (TTL) wird pro Hop dekrementiert Bei TTL=0 sendet Hop-Router normalerweise eine ICMP Time to live exceeded Meldung an Quelle zurück. traceroute startet mit TTL=1 und inkrementiert dann den TTL-Wert fortlaufend (je 3 Proben pro Hop) Misst wie ping die Round-Trip-Time (RTT) Div. Security-Appliances verweigern Erzeugung von Time-to-live-exceeded Meldungen * in traceroute
traceroute Auch traceroute hat eine Fülle an Optionen: -p um Zielport für Testpacket festzulegen -f Startwert für TTL festlegen (Default ist 1) -n Nummerische Darstellung ohne Namensaufl. -m maximale Hopanzahl (Default 30) Üblicherweise nur für root verfügbar (in sbin-verzeichnis) andreas@r-andreas:~> traceroute -n www.gmx.de traceroute to www.gmx.de (217.72.204.254), 30 hops max, 40 byte packets 1 172.16.0.1 (172.16.0.1) 0.303 ms 0.166 ms 0.315 ms 2 192.168.2.1 (192.168.2.1) 0.666 ms 0.913 ms 0.623 ms 3 * * * 4 217.0.68.202 (217.0.68.202) 15.071 ms 14.987 ms 15.327 ms 5 62.154.16.182 (62.154.16.182) 82.863 ms 79.653 ms 74.884 ms 6 62.156.138.62 (62.156.138.62) 20.013 ms 19.581 ms 19.629 ms 7 212.227.120.9 (212.227.120.9) 22.359 ms 22.349 ms 21.879 ms 8 212.227.121.218 (212.227.121.218) 20.170 ms 20.611 ms 20.273 ms 9 217.72.204.254 (217.72.204.254) 23.152 ms 22.434 ms 23.208 ms
DNS-Utilities & Co. host, dig (oder auch nslookup) dienen für Anfragen an das Domain Name System (DNS) Da viele Dienste namensbasierend arbeiten gehören diese Werkzeuge zur Standardfehlersuche host ist ein relativ einfaches DNS-Lookup-Tool. Zusatzoptionen erlauben aber auch Detailausgaben dig erlaubt wesentlich komplexere Abfragen (auch gezielt an eine bestimmten DNS-Server) whois gehört genau genommen nicht direkt zu den DNS-Tools. Über das WHOIS-Protokoll (RFC3912) werden zu einer Domain div. Daten aus WHOIS- Datenbank extrahiert.
Bsp.-Anwendungen telnet User-Frontend für das Telnet-Protokoll. Wird meist für Remote-Zugang zu Server verwendet. Kann aber auch für Protokolltests auf andere Dienste verwendet werden z.b.: telnet www.server.private 80 Ansonsten als extrem unsicher einzustufen da Kommunikation unverschlüsselt (Passwörter!!!)
File Transfer Protocol - ftp Das File Transfer Protocol dient zur Übertragung von Dateien im Netzwerk über TCP/IP. Es nutzt die TCP- Ports 21 (Kommandokanal) und 20 (Datenkanal). Die wichtigsten Befehle von FTP sind: open <Hostname> Stellt eine Verbindung zum gewünschten Host her. Dabei wird Username und Passwort abgefragt. close Schließt eine bestehende Verbindung dir Zeigt das aktuelle Inhaltsverzeichnis cd <Verzeichnis> Wechselt in das angegebene Verzeichnis. lcd <Verzeichnis> Wechselt das Verzeichnis auf der Client Seite (local change dir).
ftp-kommandos (Fortsetzung) pwd Print Working Dir - aktuelles Server-Verzeichnis get Datei Kopiert eine Datei vom Server zum Client. mget Dateien Kopiert viele Dateien vom Server zum Client. put Datei Kopiert eine Datei vom Client zum Server. mput Dateien Kopiert viele Dateien vom Client zum Server. del Datei Löscht eine Datei auf dem Server. binary Wechselt in den Binärmodus. ascii Wechselt in den Textmodus. quit Beendet FTP. Viele ftp-server erlauben den Zugriff auch für nicht authentifizierte User. Der Login geschieht mit User anonymous, Passwort sollte dann die eigene Mailadresse sein.