LPIC102/109.1 Grundlagen von Internetprotokollen

Aus Foxwiki
Version vom 28. Mai 2023, 22:17 Uhr von Dirkwagner (Diskussion | Beiträge) (Textersetzung - „bzw.  “ durch „bzw. “)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Wichtigste Wissensgebiete

  • Verständnis von Netzmasken und der CIDR-Notation
  • Wissen über die Unterschiede zwischen privaten und öffentlichen Dotted-Quad-IP-Adressen
  • Wissen über gängige TCP- und UDP-Ports (20, 21, 22, 23, 25, 53, 80, 110, 123, 139, 143, 161, 162, 389, 443, 465, 514, 636, 993, 995)
  • Wissen über die Unterschiede und wesentlichen Eigenschaften von UDP, TCP und ICMP
  • Wissen über die wesentlichen Unterschiede zwischen IPv4 und IPv6
  • Wissen über die grundlegenden Eigenschaften von IPv6

Liste wichtiger Dateien, Verzeichnisse und Anwendungen

  • /etc/services
  • IPv4, IPv6
  • Subnetting
  • TCP, UDP, ICMP

Allgemeines

  • Da es sich bei Linux um ein ausgesprochenes Netzwerkbetriebssystem handelt, müssen Sie darauf vorbereitet sein, Fragen zum Thema Netzwerk, insbesondere TCP/IP, beantworten zu können
  • Auch Fragen, die sich auf historische Hintergründe beziehen, kommen vor, weshalb diese hier auch näher betrachtet werden
  • Sie müssen natürlich nicht auswendig wissen, dass TCP/IP etwa Ende 1974 entwickelt wurde, aber Sie dürfen auch nicht denken, das Protokoll wäre von Bill Gates persönlich erfunden worden

TCP/IP-Geschichte kurz gefasst

  • Schon dem Namen dieses Protokolls (oder dieser Protokollfamilie) können Sie entnehmen, wo es seine Wurzeln hat: IP – das Internetprotokoll
  • Allerdings ist es eigentlich eher so, dass sich der Name des Internets von diesem Protokoll ableitet und nicht umgekehrt
  • Das Internet ist der direkte Nachfolger des alten ARPANET
  • Man kann heute noch in den Konfigurationsdateien und auch Zonendaten eines DNS-Servers sehen, wo dieser seine Ursprünge hat. Das dokumentiert der folgende Ausschnitt aus einer /etc/named.conf-Datei:
zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.zone";
};
  • Sie sehen, dass selbst bei der Deklaration der Reverse-Lookup-Zone für das Loopback-Netzwerk eine Syntax aus ARPANET-Zeiten verwendet wird. Aber woher kommt nun eigentlich das ARPANET?
    • Am 04. Oktober 1957 sendete der russische Satellit Sputnik 1 seine ersten Funksignale zur Erde
    • Als Reaktion darauf wurde vom amerikanischen Verteidigungsministerium DoD (Department of Defence) die Organisation ARPA (Advanced Research Projects Agency) ins Leben gerufen, um neue, für das Militär nutzbare Technologien zu entwickeln
    • Die ARPA entwickelte diese Technologien jedoch nicht selbst, sondern delegierte diese Forschungsarbeiten an verschiedene Universitäten innerhalb der USA
    • Gegen Ende 1969 wurde von vier Universitäten das erste Netzwerk mit vier Knoten in Betrieb genommen. Dieses frühe ARPANET verband folgende Forschungsorganisationen:
      • University of California Los Angeles (UCLA)
      • University of California Santa Barbara (UCSB)
      • Stanford Research Institute (SRI)
      • University of Utah
  • Das ARPANET wuchs schnell heran, und schon bald konnten die alten Protokolle die Netzlast nicht mehr verwalten
  • Ein neues Protokoll wurde erforderlich, und gegen Ende 1974 wurde TCP/IP entwickelt
  • Die weitere Entwicklung und Integration von TCP/IP in UNIX-Systeme wurde u. a. durch die University of California in Berkeley betrieben. Hier wurde auch BIND entwickelt – der Berkeley Internet Name Daemon

Das DoD-Modell

  • Das DoD-Modell wurde nach dem amerikanischen Department of Defence benannt und dient der modellhaften Beschreibung des TCP/IP-Protokolls tapels
  • Das ebenfalls bekannte OSI-Referenzmodell wurde erheblich später entwickelt und ermöglicht aufgrund seiner höheren Komplexität die modellhafte Umsetzung fast aller bekannten Netzwerkprotokolle
  • Zum Verständnis von TCP/IP ist das DoD-Modell normalerweise ausreichend
  • Während das OSI-Modell in sieben Schichten aufgeteilt ist, kommt das DoD-Modell mit vier Schichten aus. Diese wären von oben nach unten:
    • Anwendungsschicht (Application Layer) – in dieser Schicht liegen die Netzwerkanwendungen. Beispiele: HTTP, FTP, SMTP, DNS, Telnet usw
    • Host zu Host (Host to Host) – hier befinden sich u. a. TCP und UDP. Diese Schicht wird heutzutage als Transportlayer bezeichnet
    • Internetschicht (Internetlayer) – in dieser Schicht befindet sich IPv4, IPv6, RIP, OSPF, ARP, IGMP, ICMP
    • Netzwerk-Zugriff (Network Access) – dies beinhaltet u. a. die Protokolle Ethernet, MAC, HDLC, PPPoE, Token Ring und FDDI. Die Protokolle dieser Schicht sind für Ihre Prüfung nicht von Belang und sollen deshalb auch hier nicht weiter behandelt werden. Die modernere Bezeichnung für diese Schicht lautet Link-Layer
  • Sie werden feststellen, dass sich die Positionierung der Protokolle von Modell zu Modell leicht unterscheidet
  • Das ist aber nicht besorgniserregend, weil es sich ja nur um ein Modell handelt. Es ist wie mit allen Modellen: Man kann damit einfach nicht alles lückenlos darstellen

Protokolle der dritten Schicht

  • Die dritte Schicht ist die Host-zu-Host-Schicht
  • Die hier vertretenen Protokolle haben die Aufgabe, die aus der Anwendungsschicht bereitgestellten Daten in Segmente bzw
  • Datagramme zu verpacken und an die darunter gelegene Internetschicht weiterzureichen
  • Umgekehrt nehmen diese Protokolle auch Segmente und Datagramme aus der zweiten Schicht entgegen und ordnen diese dann den entsprechenden Anwendungen zu
  • TCP (Transmission Control Protocol) ist ein verbindungsorientiertes Protokoll
    • Esstellt die Integrität der Verbindung sicher, indem es eventuell beschädigte Datenpakete neu anfordert oder deren Reihenfolge reorganisiert
    • Deshalb wird es von vielen Anwendungen verwendet, insbesondere wenn größere Datenmengen ausgetauscht werden
  • UDP (User Datagram Protocol) ist ein verbindungsloses Protokoll
    • UDP wird von Programmen verwendet, die geringen Datenverkehr verursachen (z. B. DNS, NTP)
    • Auch Anwendungen, die keine Antworten erwarten (Broadcasts, Multicasts), verwenden UDP
  • Damit die Zustellung der Datenpakete und Datagramme an die richtige Anwendung erfolgen kann, verwenden Netzwerkanwendungen sogenannte Ports
  • Die Kenntnis der gängigsten TCP- und UDP-Portnummern ist für einen Administrator Basiswissenund für die Prüfung unverzichtbar. Sie sollten wenigstens die folgenden Ports auswendig kennen:
ftp-data         20/tcp+udp
ftp              21/tcp
ssh              22/tcp+udp
telnet           23/tcp+udp
smtp             25/tcp+udp
dns              53/tcp+udp
http             80/tcp+udp
pop3            110/tcp+udp
ntp             123/tcp+udp
netbios-ssn     139/tcp+udp
imap            143/tcp+udp
snmp            161/tcp+udp
snmp-trap       162/tcp+udp
ldap            389/tcp+udp
https           443/tcp+udp
igmpv3lite      465/udp
shell           514/tcp+udp
ldaps           636/tcp+udp
imaps           993/tcp
pop3s           995/tcp
  • Es sind insgesamt 65.536 Ports verfügbar. Die ersten 1.024 Ports werden als Well Known Ports bezeichnet
  • Das Betriebssystem wird über die Konfigurationsdatei /etc/services darüber informiert, welche Dienste mit welchen Ports korrespondieren
  • Sie können die Datei natürlich auch in Kombination mit grep als kleines Nachschlagewerk verwenden
  • Wenn Sie etwa vergessen haben, welchen Port üblicherweise https verwendet, liefert Ihnen das folgende Kommando die richtige Antwort:
# grep ^https /etc/services
https           443/tcp    # http protocol over TLS/SSL
https           443/udp    # http protocol over TLS/SSL
  • Um andersherum für einen bekannten Port den zugehörigen Dienst zu ermitteln, kann folgendes Kommando eine sauber gefilterte Ausgabe liefern:
# grep " 389/" /etc/services
ldap       389/tcp    # Lightweight Directory Access Protocol
ldap       389/udp    # Lightweight Directory Access Protocol
  • Um festzustellen, an welchen Ports Ihr System aktuell lauscht, können Sie nmap verwenden
  • Der Vorteil gegenüber einer Überprüfung mittels netstat ist zumindest in diesem Fall die Übersichtlichkeit der Ausgabe, wie das Beispiel zeigt:
# nmap localhost
Starting Nmap 6.47 ( http://nmap.org ) at 2018-04-21 20:42 CEST
Interesting ports on localhost (127.0.0.1):
(The 1646 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
443/tcp  open  https
3128/tcp open  squid-http
  • Wenn Sie einen Webbrowser verwenden um eine Webseite anzuzeigen, wird im Normalfall eine Verbindung eingerichtet, bei der der Zielport 80 (http) oder 443 (https) ist
  • Für diese Verbindung wird außerdem ein Quellport erstellt, damit Antwortpakete eindeutig zugeordnet werden können
  • Wenn Sie gleich nach dem Zugriff auf die Webseite netstat verwenden, können Sie diese Zu ordnungen sehen
  • Dank Werbeeinblendungen u. ä. können deutlich mehr Verbindungen eingerichtet werden, als man erwartet:
# netstat -an |grep 443
tcp    0    0 192.168.178.25:33634    216.58.210.14:443    ESTABLISHED
tcp    0    0 192.168.178.25:37922    157.240.20.52:443    ESTABLISHED

Protokolle der zweiten Schicht

  • IPv4 (Internet Protocol Version 4)
    • Fügt den Segmenten oder Datagrammen zur Adressierung einen IP-Header hinzu. Dieser Header enthält u. a. die Informationen über die Ziel- und die Quelladresse eines Datenpaketes, damit dieses korrekt zugestellt werden kann
    • Die von IPv4 verwendeten Adressen haben eine Länge von 32 Bit.
  • IPv6 (Internet Protocol Version 6)
    • Entspricht vom Verwendungszweck her IPv4, weist aber einen Adressraum von 128 Bit auf
  • RIP (Routing Information Protocol)
    • Ist ein dynamisches Routing-Protokoll, das dem Austausch von Informationen zwischen Routern dient
  • ARP (Address Resolution Protocol)
    • Stellt den Zusammenhang zwischen der IP-Adresse und der MAC-Adresse (Media Access Control) eines Netzwerkadapters her
  • ICMP (Internet Control Message Protocol)
    • Wird überwiegend von Routern verwendet, um die Verfügbarkeit eines Gateways zu prüfen bzw. zu propagieren
    • Ausnahmen stellen Diagnoseprogramme wie ping oder traceroute dar. Diese prüfen die Verfügbarkeit von Routern bzw. Ziel-Hosts
  • IGMP (Internet Group Management Protocol)
    • Wird verwendet, wenn Nachrichten für eine bestimmte Gruppe von Hosts bestimmt sind
    • Diese benötigen dann auch eine IGMP-taugliche IP-Adresse
    • Typische Anwendungen sind Videokonferenzen und Anwendungen, die für Präsentationen eingesetzt werden
  • Es gibt auch noch weitere, weniger wichtige Protokolle in dieser Schicht, die hier aber vernachlässigt werden
  • Ein besonderes Augenmerk muss aber noch auf die beiden Internetprotokolle IPv4 und IPv6 gerichtet werden
  • Besonders Kenntnisse des erstgenannten Protokolls sind für die Prüfung unabdingbar.

Protokolle der ersten Schicht

  • Wenn es um TCP/IP aus der Sicht eines Administrators geht, ist in der ersten Schicht hauptsächlich Media Access Control (MAC) relevant
  • Die Datenpakete werden hier zu Frames, die mit einer Quell- und einer Ziel-MAC-Adresse versehen sind
  • Wenn ein Datenpaket innerhalb desselben Netzwerksegments zugestellt werden soll, wird zunächst eine ARP-Anfrage gestellt
  • Der sendende Rechner fragt hierbei den Zielcomputer nach seiner MAC-Adresse
  • Im Idealfall antwortet der Zielrechner auf diese Frage
  • Das Ergebnis der Anfrage wird im ARP-Cache des anfragenden Rechners zwi-schengespeichert und der Frame mit der MAC-Adresse des Zielsystems abgeschickt
  • Wenn ein Paket für ein anderes Netzwerksegment bestimmt ist, wird stattdessen die MAC-Adresse des nächstgelegenen Routers bei der Adressierung verwendet
  • Dieser kümmert sich dann auf dieselbe Art und Weise um die Weiterleitung des Pakets an den nächsten Router oder das Zielsystem. Sie können den Inhalt des ARP-Cache einsehen, wie folgt:
root@router1:~# arp -a
? (172.18.1.39) at <incomplete> on eth2
? (172.18.1.74) at 00:19:99:43:91:5a [ether] on eth2
? (172.18.1.211) at ee:ce:03:d8:04:9c [ether] on eth2
? (172.18.1.92) at <incomplete> on eth2
? (172.18.1.229) at b8:27:eb:fd:21:2f [ether] on eth2
? (172.18.1.59) at 00:19:99:3a:e6:86 [ether] on eth2
? (172.18.1.26) at b8:27:eb:a0:2f:a4 [ether] on eth2
? (172.18.1.77) at 94:0c:6d:86:4a:3b [ether] on eth2
...

Standardgateway

  • Dem Thema Routing wird in den folgenden Abschnitten eine Menge Platz gewidmet. Deshalb soll das Thema Standardgateway hier nur kurz und knapp umrissen werden
  • Ein Host sendet Datenpakete immer dann an das Standardgateway (genauer gesagt: an die MAC-Adresse des Standardgateways), wenn er diese Pakete nicht selber zustellen und auch aufgrund keines anderen Eintrages in der Routing-Tabelle zuordnen kann
  • Die Reihenfolge der Verarbeitung sieht folgendermaßen aus:
    • Der Host ermittelt durch UND-Verknüpfung mit seiner Subnetzmaske, ob sich der Ziel-Host in demselben Subnetz befindet wie er selbst. Bei Erfolg wird der Ziel-Hostdirekt kontaktiert und das Paket wird an die MAC-Adresse des Ziel-Hosts gesendet. Wenn nicht, ...
    • ... überprüft dieser Host seine Routing-Tabelle. Findet er einen passenden Eintrag, so stellt der Host eine Verbindung über das entsprechende Gateway her, indem er das Datenpaket an die MAC-Adresse des Gateways sendet. Wenn nicht, ...
    • ... versucht der Rechner den Ziel-Host über das Standardgateway zu kontaktieren, indem er das Datenpaket an die MAC-Adresse des Standardgateways adressiert.
  • Ein Gateway – und das gilt auch und insbesondere für das Standardgateway – muss sich immer in demselben Netzwerk bzw. Subnetz befinden, in dem sich auch der Host befindet
  • Ansonsten kann der Host das Gateway nicht erreichen.

Kontrollfragen

Frage 1

Antwort

Frage 2

Antwort

Frage 3

Antwort

Frage 4

Antwort

Frage 5

Antwort