TCP/IP Networking Basics by [SoDB]|thrawn [email protected] © The digital brotherhood / [SoDB]|thrawn 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 © The digital brotherhood / [SoDB]|thrawn Was erwartet euch nicht? • Installationsanleitungen • Informationen zur Betriebssystemspezifischen Implementierung • Details zu auf TCP/IP basierenden Diensten • Einführung in Netzwerk-Hardware © The digital brotherhood / [SoDB]|thrawn Kurze Geschichte • Entstammt der Forschung des USVerteidigungsministerium im Bereich packet-switched networks. • 1969 erstmals im Arpanet eingesetzt • Entwicklung des heutigen Protokollsatzes in den frühen 80ern • Aktuell verbreitete Version: IPv4 © The digital brotherhood / [SoDB]|thrawn 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 © The digital brotherhood / [SoDB]|thrawn 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: © The digital brotherhood / [SoDB]|thrawn Adressklassen - Überblick • Adressklassen unterscheiden sich in der Anzahl der Oktette zur Netzwerkidentifikation: Klasse Netz-ID Bits Host-ID Bits A 8 24 B 16 16 C 24 8 Adress-Schema NNN.HHH.HHH.HHH NNN.NNN.HHH.HHH NNN.NNN.NNN.HHH • Anzahl Netzwerke -> Anzahl Hosts • Anzahl Hosts -> Anzahl Netzwerke © The digital brotherhood / [SoDB]|thrawn Netzwerkklassen - Unterscheidung • Können anhand des ersten Oktettes erkannt werden: Anfang Klasse Binär Dezimal A 00000001 1 B 10000000 128 C 11000000 192 © The digital brotherhood / [SoDB]|thrawn Ende Binär Dezimal 01111111 127 10111111 191 11011111 223 Netzwerkklassen - Zusammenfassung Klasse von bis A 1.0.0.0 126.255.255.255 B C 128.255.255.255 191.255.255.255 192.0.0.0 223.255.255.255 # Netzwerke # Hosts 126 16777214 16384 2097152 65534 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 © The digital brotherhood / [SoDB]|thrawn 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 - © The digital brotherhood / [SoDB]|thrawn 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 © The digital brotherhood / [SoDB]|thrawn 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 Resultat: 198.53.147.0 11000110 00110101 10010011 00000000 © The digital brotherhood / [SoDB]|thrawn 11111111 11111111 00000000 Standard Subnet-Masks Klasse Standard-Subnetmask A 255.0.0.0 B 255.255.0.0 C 255.255.255.0 © The digital brotherhood / [SoDB]|thrawn 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 © The digital brotherhood / [SoDB]|thrawn Teilnetze-Beispiel • 1 Class A-Netz soll in Teilnetze aufgeteilt werden: Network-Mask: # Teilnetze 255.0.0.0 (Standard) 1 # Hosts 16777214 255.128.0.0 2 8388606 255.192.0.0 4 4194302 255.255.0.0 256 65534 © The digital brotherhood / [SoDB]|thrawn DNS und ARP Logische Adressierung IP-Adresse Physische Adressierung DNS Internet Ethernet foo.org 123.123.123.1 00:00:0C:07:AC:E0 DNS ARP • 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 MACAdresse der lokalen Netzwerkkarte zu, findet also den Zielrechner im Ethernet © The digital brotherhood / [SoDB]|thrawn Protokollstapel FTP HTTP Telnet TCP UDP Anwendungsschicht Transportschicht ICMP IGMP Internetschicht IP ARP NDIS NetzwerkkartenTreiber © The digital brotherhood / [SoDB]|thrawn Netzzugangsschicht Enkapsulierung Enkapsulierung -> Abstrahierung: Jede Schicht fügt den Daten ihren header hinzu und übergibt an die nächste Schicht: Anwendungsschicht DATEN DATEN Header DATEN DATEN Header Header Header DATEN DATEN Header Header Header Header Header DATEN DATEN Header Header Header Transportschicht (TCP) Internetschicht (IP) Netzzugangschicht (Ethernet) © The digital brotherhood / [SoDB]|thrawn Wichtige Informationen im IPHeader • 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 © The digital brotherhood / [SoDB]|thrawn Informationen im TCP-Header • TCP-Quellport • TCP-Zielport • TCP-Flags: • • • • • • URG (Urgent) ACK (acknowledgement) PSH (push) RST (reset) SYN (synchronize) FIN (finish) © The digital brotherhood / [SoDB]|thrawn TCP-Handshake CLIENT © The digital brotherhood / [SoDB]|thrawn SERVER 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 © The digital brotherhood / [SoDB]|thrawn 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 InternetVerbindung verwendet (Gateway versieht Pakete der Clients mit untersch. PortNummern -> gemeinsame Nutzung einer IP) © The digital brotherhood / [SoDB]|thrawn NAT - Beispiel Quelladresse: 152.61.72.14 Quelladresse: 10.0.0.66 10.0.0.66 Zielport: 1985 © The digital brotherhood / [SoDB]|thrawn 152.61.72.14 Zieladresse: 10.0.0.66 10.0.0.1 Quellport: 1985 Quellport: 1780 Zieladresse: 152.61.72.14 Zielport: 1780 166.75.19.12 IPv6 – kurzer Ausblick • 128Bit Adressraum (2 128 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 © The digital brotherhood / [SoDB]|thrawn 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) © The digital brotherhood / [SoDB]|thrawn