© The digital brotherhood / [SoDB]|thrawn
TCP/IP NetworkingBasics
by [SoDB]|thrawn
© 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 Betriebssystem-spezifischen Implementierung
• Details zu auf TCP/IP basierenden Diensten
• Einführung in Netzwerk-Hardware
© The digital brotherhood / [SoDB]|thrawn
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
© 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:
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 16 NNN.NNN.HHH.HHH
C 24 8 NNN.NNN.NNN.HHH
© The digital brotherhood / [SoDB]|thrawn
Netzwerkklassen - Unterscheidung
• Können anhand des ersten Oktettes erkannt werden:
KlasseAnfang Ende
Binär Dezimal Binär Dezimal
A 00000001 1 01111111 127
B 10000000 128 10111111 191
C 11000000 192 11011111 223
© The digital brotherhood / [SoDB]|thrawn
Netzwerkklassen - Zusammenfassung
Nicht erlaubt:– 127.x.x.x (Loopback)
– Nur aus 0en oder 1en bestehende Host- oder Netz-Ids (Broadcast) z.B. 191.255.255.255
Klasse 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
© 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 - 192.168.255.255
© The digital brotherhood / [SoDB]|thrawn
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-MaskBeispiel
• AND-Verknüpfung:beide 1 -> 1ansonsten -> 0
• Zerlegung einer Class C-Adresse:198.53.147.45 11000110 00110101 10010011 00101101
255.255.255.0 11111111 11111111 11111111 00000000
Resultat:
198.53.147.011000110 00110101 10010011 00000000
© The digital brotherhood / [SoDB]|thrawn
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 unterzubringentheoretisch 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 # 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
© The digital brotherhood / [SoDB]|thrawn
DNS und ARP
Logische Adressierung DNS foo.orgIP-Adresse Internet 123.123.123.1Physische 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
© The digital brotherhood / [SoDB]|thrawn
Protokollstapel
FTP
TCP UDP
IP
ICMPIGMP
ARP
NDIS
Netzwerkkarten-Treiber
Anwendungsschicht
Transportschicht
Internetschicht
Netzzugangsschicht
Telnet HTTP
© The digital brotherhood / [SoDB]|thrawn
Enkapsulierung
Enkapsulierung -> Abstrahierung:Jede Schicht fügt den Daten ihren header hinzu und übergibt an die nächste Schicht:
DATENHeader
DATEN
DATENHeaderHeader
Anwendungsschicht
Transportschicht (TCP)
Internetschicht (IP)
Netzzugangschicht (Ethernet) DATENHeaderHeaderHeader
DATEN Header
DATEN
DATEN Header Header
DATEN Header Header Header
© The digital brotherhood / [SoDB]|thrawn
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
© 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 ACK=0,SYN=1
ACK=1,SYN=1
ACK=1,SYN=0
ACK=1,SYN=0
SERVER
© The digital brotherhood / [SoDB]|thrawn
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 Internet-
Verbindung verwendet (Gateway versieht Pakete der Clients mit untersch. Port-Nummern -> gemeinsame Nutzung einer IP)
© The digital brotherhood / [SoDB]|thrawn
NAT - Beispiel
10.0.0.66
10.0.0.1
152.61.72.14
Quelladresse: 10.0.0.66
Quellport: 1985
Quelladresse: 152.61.72.14
Quellport: 1780
166.75.19.12Zieladresse: 152.61.72.14
Zielport: 1780
Zieladresse: 10.0.0.66
Zielport: 1985
© The digital brotherhood / [SoDB]|thrawn
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
© 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)