Titel - The Digital Brotherhood

Werbung
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
Herunterladen