UDP-Protokoll

socket-api-4-590x375Das UDP gehört zur IP-Protokoll – Familie und ist nach TCP das wichtigste Protokoll. Es benutzt genau die selben Kommunikationsports wie TCP.

Das verbindungslose UDP Protokoll (User Datagramm Protokoll) durchläuft nicht den 3-Way-Handshake und besitzt demnach keine Transmissions-Kontrolle (beides different zu TCP). Es findet also keine Kontrolle statt, ob die Netzwerkpakete ankommen oder nicht.

Vorteile:

  • hohe Übertragungsgeschwindigkeit, da keine Paketüberprüfung stattfindet
  • kein Aufbau einer Verbindung
  • kein Abbau einer Verbindung
  • kein Timeout bei Übertragungsfehler (auf den gewartet werden muss)

Nachteile:

  • keine Möglichkeit zur Überprüfung ob eine Verbindung besteht
  • verbindungsabhängig; je besser die Netzwerkverbindung desto zuverlässiger das Protokoll oder je schlechter, desto…

Anwendungen die UDP verwenden (Beispiele)

  • der DNS-Dienst, setzen das UDP voraus. Dies ist auch nicht verwunderlich. Würde das TCP-Protokoll für die DNS Abfrage eingesetzt werden, müsste bei einer Nichtantwort des Servers erst den Verbindungs-Timeout abgewartet werden, bevor ein alternativer Server angefragt werden könnte.
  • VoIP verwendet UDP für die Übertragung der Sprachdaten. Ein Paketverlust von 5% wird dabei überhaupt vom Benutzer nicht wahrgenommen.
  • Multicast Anwendungen wie beispielsweise CloneZilla DRBL (Link) oder auch Symantec Ghost (Link). Diese Anwendungen lassen eine Installation von einem bzw. mehreren Rechnern über das Netzwerk zu. Im Regelfall wird mit einem schlanken MS-DOS Betriebssystem gestartet, welches die Netzwerkkarten-Treiber und die Multicast-Treiber beinhaltet. Über diese Software kann der Client an einer Multicast Sitzung teilnehmen. Beim Start der Übertragung wird eine Image-Datei, welche die Installation des Betriebssystems enthält, mittels UDP über das Netzwerk übertragen. Eine Paketüberprüfung muss von der Software selbst übernommen werden. Ist die Übertragung z. B. eines Clients fehlerhaft, so steigt nur dieser Client aus der Übertragung aus und beeinflusst die anderen Clients nicht.

Praxis-Aufgabe

  • Implementieren Sie nun den DHCP-Server auf dem zentralen Internet Router.
  • Die Router der Bankreihen sollen nur die Anfragen mittels DHCP-Helpers zum Server weiterleiten.
  • Jede Bankreihe konfiguriert den Helper und ihr eigenes Subnet auf dem Internet-Server. Nach Einstellung des automatischen Bezugs der IP-Adressen, sollte die Konnektivität hergestellt sein.

Bei einer Änderung der Einträge in der Datei etc/default/dhcp-helper, muss der DHCP-Helper neu gestartet werden mit dem Befehl:

etc/init.d/dhcp-helper restart 

Erkenntnis

  • Der DHCP-Relay-Agent ist so zu konfigurieren, dass mindestens das Device deklariert wird, an welches Subnet er die Anfragen des Clients bedienen soll.
  • Hin und wieder muss auch die IP-Adresse des zentralen DHCP-Servers angegeben werden. Dies ist aber nicht immer zwingend. Das Subnet, auf das der zentrale DHCP-Server hören soll bzw. an den er angeschlossen wird, muss deklariert werden. Dies ist auch so, wenn eben dieses Subnet gar nicht mit IP-Adressen bedient werden soll. Hier erleben wir eine Verzerrung durch den DHCP-Server.
  • Im Regelfall bedient ein DHCP-Server nur das Subnet, an das er auch angeschlossen ist.
  • Beim DNS-Server sind eine sogenannte Reverse Domain und vier Forward Domains einzurichten. Alle diese Domains sind sogenannte Master-Zonen. Eine z. B. Slave Zone würde nur einen Abgleich der Zonen über einen sogenannten Master-Server zu Folge haben. Dieser sog. Zonentransfer, also der Austausch von Master- zum Slave-Server, läuft oftmals, je nach Server, auf dem TCP-Port 53. Da wir keinen Slave-Server haben, behandeln wir nur die Master-Zone. Es ist deshalb eine Reverse-Zone notwendig, da beim DNS-Server nur Byteweise gearbeitet wird. Das heißt in unserem Fall betrifft der Reverse lookup das letzte Byte der IP-Adresse, also 172.20.15.xxx Dieses letzte Byte umfasst aber in unserem Fall vier Subnets.Die Forward-Zones hingegen sollten vier sein, damit pro Domain (br1.fiu13ws.lan, br2.fiu13ws.lan, etc.) eine eigene Master-Domain erstellt wird. Zu beachten ist, dass wenn eine Kommunikation zwischen den Bankreihen stattfinden soll, der FQDN (Fully Qualified Domain Name) angegeben werden muss. Innerhalb einer Domain jedoch reicht der Rechnername im Regelfall.
    Beispiel:
    von Bankreihe1 auf BR2: ping siedler.fiu13ws.lan
    innerhalb der BR2: ping siedler
  • Weiterhin ist festzustellen, dass wenn ein Bankreihenübergreifender nslookup gestartet wird, dass der Rückgabewert der Servers den Zusatz „non-authoritative-answer“ enthält. Dies liegt daran, dass nur das Subnet in der sich der Host befindet eine authoritative-answer von DNS-Server bedient werden kann.

Daher sind auch im Webmin-Menü “Einstellungen” bei den Zonenstandards die Subnetze, die bedient werden sollen, einzustellen. Dies geschieht unter dem Unterpunkt “allow udpates from”.

Bei den DHCP-Einstellungen wäre es möglich, mehrere DNS-Suffixe bei den Client-Einstellungen zu übergeben, in diesem Fall würden an den Rechnernamen wie z. B. Siedler, alle bekannten Suffixe, in Reihenfolge angehängt und getestet werden.

Beim Webmin-Menupunkt „Weiterleitung und Transfers“ können die sogenannten „Forwarder“ eingetragen werden. Dies sind Aufrufe, welche vom lokalen DNS-Server nicht aufgelöst werden können. Sie werden zu den genannten Servern weitergeleitet; die schnellstens Server sollten in der Liste ganz oben stehen.

Eine Erwähnenswerte Besonderheit…

…ist der FTP-Dienst. Die Dienste wurden bereits am Freitag näher behandelt. Allerdings ist der nervenaufreibendste Dienst, besonders für Firewall-Administratoren, der FTP-Dienst. Das File Transfer Protocoll wird sehr gerne für den Datenaustausch und z. B. zur Pflege von Websites verwendet. Es werden für das FTP-Protokoll fatalerweise zwei TCP-Ports benötigt:

  • Port 21: Er wird für die Überprüfung von Benutzernamen und Passwort benötigt. Man spricht auch vom Control-Channel.
  • Port 20: ist der Data-Channel. Über diesen werden die Daten übertragen.

Beide Ports haben also miteinander zu tun, was ja aber nicht gleich offensichtlich ist. Das Fatale daran ist, dass beim aktiven FTP die Verbindung der Data-Connection vom Server zum Client hin aufgebaut werden muss. Das heißt eine Clientseitige Firewall müsste für eingehende Verbindungen auf den Port 20 geöffnet werden. Dies widerspricht den Voreinstellungen aller vorkonfigurierter „Fritz-Boxen“ und deren Ablegern.

Die für den Client bessere Variante wäre der passive Modus. Hier werden beide Verbindungen vom Client aus initiiert. Der Nachteil ist jedoch, dass für die Data Connection ein wahlfreier Highport zwischen Client und Server aufgebaut wird. Es muss also erst von der Firewall erkannt werden, welchen Port der Client und der Server ausgehandelt haben, um eine Relation herzustellen. Manche Firewalls sind damit überfordert. Ein schematischer Verbindungsaufbau für beide Varianten könnte so aussehen:

aktivesFTP

passivesFTP

Beide Varianten, sowohl das aktive FTP mit seiner eingehenden Data-Connection und das passive FTP mit seiner freien Portwahl haben ihre Tücken in Bezug auf die Sicherheit des Netzwerkes. Bei einem Netzwerkprotokoll, welches sich auf das Kriterium der Sicherheit, sondern der Konnektivität entwickelt wurden, stellen solche Dienste zuzulassen, ohne eine gleichzeitig die Gefährdung des LANs ins Uferlose zu treiben, eine besondere Herausforderung dar.

Für eine Linux Firewall stehen hier besondere Kernel-Module, also Hardware Treiber zu Verfügung. Es ist das sogenannte FTP-ConnTrack Modul. Hier können Beziehungen zwischen den Control- und der Data Connection gemacht werden.

Praxis-Aufgabe

Bauen Sie versuchshalber mit einem FTP-Client (z.B. FileZilla) eine FTP-Verbindung zu z.B. ftp.kernel.org auf. Schneiden Sie den Traffic mit Wireshark mit und identifizieren Sie die verwendeten  TCP-Ports. Versuchen sie herauszufinden, ob es sich um das aktive oder passive FTP handelt.

[pageview url=“http://blog.simon-duerr.de/2013/10/netzwerktechnik-14-udp-ftp-14-10-2013/“ title=“Simons NotizBlog“ scrolling=“yes“]

Print Friendly, PDF & Email

Schreibe einen Kommentar