TCP/IP Networking Basics by [SoDB]|thrawn thrawn@thedigitalbrotherhood.org
Was erwartet Euch? Adressen und Adressklassen Teilnetze, Subnet- und Network-Masks DNS und ARP TCP/IP und UDP/IP-Protokollstapel Aufbau von Paketen Dienste und Ports NAT
Was erwartet euch nicht? Installationsanleitungen Informationen zur Betriebssystem-spezifischen Implementierung Details zu auf TCP/IP basierenden Diensten Einführung in Netzwerk-Hardware
Kurze Geschichte Entstammt der Forschung des US-Verteidigungsministerium im Bereich packet-switched networks. 1969 erstmals im Arpanet eingesetzt Entwicklung des heutigen Protokollsatzes in den frühen 80ern Aktuell verbreitete Version: IPv4
Adressen TCP/IP(v4)-Adresse = 32Bit-Nummer Wird zur besseren Leserlichkeit als Dezimaladresse mit 4 durch . getrennten Oktetten (8Bit-Zahlen) dargestellt. z.B.: 00001010 00000000 00000000 00000001 = 10.0.0.1 IP-Adresse = Kombination von Netz-ID und Host-ID 3 Klassen: A, B und C: unterscheiden sich in der Anzahl der Oktette, die zur Netzwerkidentifikation verwendet werden
Exkurs: das Binärsystem Zeichenvorrat von lediglich 2 Zeichen: 0 und 1 Jede Position repräsentiert den doppelten Wert der ihr vorhergehenden: 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 z.B. 0 1 0 0 0 0 1 0 = 66 Konversion: Binär -> Dezimal: Addition der Positionswerte Dezimal -> Binär:
Adressklassen - Überblick Adressklassen unterscheiden sich in der Anzahl der Oktette zur Netzwerkidentifikation: Anzahl Netzwerke -> Anzahl Hosts Anzahl Hosts -> Anzahl Netzwerke Klasse Netz-ID Bits Host-ID Bits Adress-Schema A 8 24 NNN.HHH.HHH.HHH B 16 NNN.NNN.HHH.HHH C NNN.NNN.NNN.HHH
Netzwerkklassen - Unterscheidung Können anhand des ersten Oktettes erkannt werden: Klasse Anfang Ende Binär Dezimal A 00000001 1 01111111 127 B 10000000 128 10111111 191 C 11000000 192 11011111 223
Netzwerkklassen - Zusammenfassung von bis # Netzwerke # Hosts A 1.0.0.0 126.255.255.255 126 16777214 B 128.255.255.255 191.255.255.255 16384 65534 C 192.0.0.0 223.255.255.255 2097152 254 Nicht erlaubt: 127.x.x.x (Loopback) Nur aus 0en oder 1en bestehende Host- oder Netz-Ids (Broadcast) z.B. 191.255.255.255
Adressen für die interne Verwendung Werden von der IANA (Internet Assigned Numbers Authority) keiner Organisation zugewiesen und im Internet nicht geroutet (=ignoriert) 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255
Die Subnet-Mask Dient zur Zerlegung einer Adresse in Netz-ID und Host-ID. Es werden die Bits der Netz-ID mit 1 maskiert, die Host-ID-Bits sind auf 0 gesetzt Durch eine logische AND-Verknüpfung von Subnet-Mask und Adresse kann die Netz-ID ausgelesen werden. Wichtig für Routing: wird z.B. verwendet, um auf einfache Weise zu ermitteln, ob sich der Zielrechner im lokalen Netz befindet
Subnet-Mask Beispiel AND-Verknüpfung: beide 1 -> 1 ansonsten -> 0 Zerlegung einer Class C-Adresse: 198.53.147.45 11000110 00110101 10010011 00101101 255.255.255.0 11111111 00000000 Resultat: 198.53.147.0
Standard Subnet-Masks Klasse Standard-Subnetmask A 255.0.0.0 B 255.255.0.0 C 255.255.255.0
Teilnetze und Network-Mask Zur besseren Nutzung des Adressraumes und besseren Organisation großer Netze z.B.: Class A-Netz: 16777214 mögliche Hosts alle in einem Netzwerksegment unterzubringen theoretisch und praktisch unmöglich `-> Aufteilung in unabhängige Teilnetze Subnet-Mask wird um zusätzliche Bits erweitert um Host-ID-Bits als zusätzliche Netz-ID-Bits zu verwenden -> Network-Mask. Anzahl Teilnetze -> Anzahl Hosts Anzahl Hosts -> Anzahl Teilnetze
Teilnetze-Beispiel 1 Class A-Netz soll in Teilnetze aufgeteilt werden: Network-Mask: # Teilnetze # Hosts 255.0.0.0 (Standard) 1 16777214 255.128.0.0 2 8388606 255.192.0.0 4 4194302 255.255.0.0 256 65534
DNS und ARP DNS = Domain name system: Logische Adressierung DNS foo.org IP-Adresse Internet 123.123.123.1 Physische Adressierung Ethernet 00:00:0C:07:AC:E0 DNS = Domain name system: Dient zur Namensauflösung, findet also zu jedem Domainnamen die entsprechende IP zu. ARP = Adress Resolution protocol: Ordnet IP-Adressen die entsprechende MAC-Adresse der lokalen Netzwerkkarte zu, findet also den Zielrechner im Ethernet DNS ARP
Netzwerkkarten-Treiber Protokollstapel Anwendungsschicht FTP Telnet HTTP TCP UDP Transportschicht ICMP IGMP IP Internetschicht ARP NDIS Netzzugangsschicht Netzwerkkarten-Treiber
Enkapsulierung Enkapsulierung -> Abstrahierung: Jede Schicht fügt den Daten ihren header hinzu und übergibt an die nächste Schicht: Anwendungsschicht DATEN DATEN Transportschicht (TCP) Header DATEN DATEN Header Internetschicht (IP) Header Header DATEN DATEN Header Header Netzzugangschicht (Ethernet) Header Header Header DATEN DATEN Header Header Header
Wichtige Informationen im IP-Header IP-Quelladresse IP-Zieladresse IP-Protokolltyp: Gibt den Protokolltyp an, um den es sich beim IP-Body handelt (TCP,UDP,ICMP..) IP-Optionen: z.B. Source-Routing, allerdings fast immer leer
Informationen im TCP-Header TCP-Quellport TCP-Zielport TCP-Flags: URG (Urgent) ACK (acknowledgement) PSH (push) RST (reset) SYN (synchronize) FIN (finish)
TCP-Handshake CLIENT SERVER ACK=0,SYN=1 ACK=1,SYN=1 ACK=1,SYN=0
Dienste und Ports Um mehreren Applikationen den Zugriff zu ermöglichen bzw. mehrere TCP/IP-Dienste auf einem Rechner anbieten zu können Unterschiedliche Dienste auf unterschiedlichen Ports -> eingehende Pakete können einer Verbindung zugeordnet werden Paketfilter-Firewalls leiten u.a. nur Pakete an bestimmte Ports weiter
NAT (=IP-Masquerading) NAT = Native Adress Translation Router verändert Daten in Paketen, um die Netzwerkadressen anzupassen Adressen auf der anderen Seite werden verborgen Häufig zur gemeinsamen Nutzung einer Internet-Verbindung verwendet (Gateway versieht Pakete der Clients mit untersch. Port-Nummern -> gemeinsame Nutzung einer IP)
NAT - Beispiel Quelladresse: 152.61.72.14 Quellport: 1780 Quelladresse: 10.0.0.66 Quellport: 1985 10.0.0.1 152.61.72.14 Zieladresse: 10.0.0.66 Zielport: 1985 Zieladresse: 152.61.72.14 Zielport: 1780 166.75.19.12 10.0.0.66
IPv6 – kurzer Ausblick 128Bit Adressraum (2128 Adressen sollten ausreichen um jeder Glühbirne auf unserem Planeten eine IP für einen embedded webserver zu verpassen ;-) Flows: virtuelle Verbindungen auf IP-Ebene Verschlüsselung u. Authentifizierung auf IP-Ebene Dynamische Konfiguration und source routing Noch stärker („next protocol-field“) geschachtelte Header PROBLEM: IPv4-Hardware nicht kompatibel, muß getunnelt werden -> Verbreitung nur langsam
Ressourcen Entsprechende RFCs (z.B. von www.internic.net) Newsgroup comp.protocols.tcp-ip Div. HOWTOs (z.B. von http://www.linuxdoc.org) Diverse Bücher, z.B.: Hunt, Craig: TCP/IP Netzwerk-Administration (O‘Reilly) Einrichten von Internet Firewalls (O‘Reilly)