Das TFTP Protokoll - Ein leichtes FTP für den Bootvorgang und die Fehleranalyse

Autor:   |  21.08.2019


TFTP erklärtEine der wichtigsten Funktionen eines Server oder Client in einem Netzwerk ist das Übertragen von Dateien, um Inhalte auf dem entfernten Gerät lesen, schreiben oder verändern oder ein Backup erstellen zu können. Im laufenden Betrieb und bei komplexen Operationen dient dafür das File Transfer Protokoll (FTP), das sich hervorragend für zahlreiche Aufgaben eignet - von dem Datenaustausch über das Backup wichtiger Dateien bis zu dem Zugriff auf ein hierarchisches Filesystem. Weniger komplex und sehr einfach zu implantieren ist hingegen das Trivial File Transfer Protokoll (TFTP), das gegenüber FTP einige Vor- und Nachteile aufweist.

Wichtige Unterschiede zwischen FTP und TFTP

Als Werkzeug für die Administration besitzt FTP zahlreiche Befehle, deren Verwendung zu einem großen Teil eine Authentifizierung des Nutzers voraussetzt. Im Unterschied dazu beschränkt sich die Auswahl von TFTP auf lediglich elf Kommandos, die ebenfalls zu der Ausstattung von FTP zählen, aber keine erweiterten Operationen wie die Änderung von Zugriffsrechten einschließen. Sein Hauptzweck besteht in der schnellen, einfachen und zuverlässigen Dateiübertragung, ohne dass Aspekte wie erhöhte Sicherheit oder komplexe Funktionen wie ein Backup von Verzeichnissen berücksichtigt werden.

Dieser Umstand zeigt sich beispielsweise in der Tatsache, dass TFTP im Gegensatz zu FTP auf eine Authentifizierung des Nutzers verzichtet. Es unterstützt keinen geschützten Login über Passwörter und setzt Grenzen beim Zugriff ausschließlich aufgrund der Schreib- und Leserechte einer Datei im Betriebssystem. Praktisch führt dies dazu, dass TFTP ausschließlich in Verzeichnissen und mit Dateien operiert, die für alle Nutzer freigegeben wurden und global gelesen und geschrieben werden können. Wegen der mangelnden Sicherheit darf TFTP anders als FTP ausschließlich in lokalen und abgeschirmten Netzwerken eingesetzt werden.

Ein weiterer Unterschied zu FTP besteht bei TFTP darin, dass es ausschließlich auf das verbindungslose UDP Protokoll aufbaut und keine permanente Verbindung über TCP/IP ermöglicht. Dieser vermeintliche Nachteil gegenüber FTP ermöglicht in der Praxis die Verwendung sehr kleiner, effizienter und zuverlässiger Clients, die beispielsweise in die Bootumgebung eingebunden sind und nach einem Serverausfall eine Erreichbarkeit selbst ohne funktionsfähiges Betriebssystem oder lokales Backup gewährleisten.

Eine Gemeinsamkeit zwischen TFTP und FTP liegt hingegen in dem Umstand, dass der verwendete Port ausschließlich als Kommandoport dient und die Übertragung der Dateien auf einem anderen, zufällig gewählten Port zwischen 1024 und 65535 erfolgt. Dieses Vorgehen ermöglicht einen permanenten Kontakt zwischen Server und Client während der Übertragung und beugt einem Serverausfall bei Fehlern vor.

Aufbau einer Verbindung über TFTP

Für die Dateiübertragung über TFTP sucht der Client nach einem aktiven Server und sendet diesem eine Anfrage nach einer bestimmten Datei wie beispielsweise einem Backup. Diese erste Kontaktaufnahme erfolgt über vorgeschriebene Parameter, zu denen verbindlich der Port 69 und das Protokoll UDP zählen. Der Ablauf einer Kommunikation für das Lesen einer Datei unterschiedet sich von FTP und sieht zum Beispiel wie folgt aus:

  • Client wählt einen zufälligen Port für die Verbindung.
  • Client sendet von diesem Port über UDP Protokoll an Port 69 die Anfrage für Datei namen.typ
  • Server erhält Anfrage und gewährt oder verweigert Zugriff.
  • Bei Erlaubnis wählt der Server ebenfalls einen beliebigen Port.
  • Server schickt von seinem Port das erste Datenpaket an Client Port.
  • Client bestätigt Empfang durch Senden von ACK an den Server Port.
  • Server schickt weitere, nummerierte Pakete an den Client, sobald der Empfang des vorhergehenden bestätigt wird.
  • Bei einem Paketverlust sendet der Server ein Backup, bis er ein ACK erhält
  • Bei Fehlern sendet der Client eine Error Meldung und der Transfer wird abgebrochen.
  • Ein Datenpaket mit kleinerer Größe als der Standard signalisiert das Ende der Übertragung

Verwendung von TFTP für Booten oder Servermonitoring

Primäre Verwendung findet TFTP nicht wie FTP für die Übertragung von Dateien durch Nutzer, sondern für das Booten über das Netzwerk. Ist dieses als feste Instanz im BIOS aktiviert, kann ein Rechner selbst bei einem Serverausfall oder einem Versagen des Systemlaufwerks automatisch ein minimales Betriebssystem laden und von diesem aus das Rettungssystem starten. Dadurch sind eine Schadensanalyse und ein Servermonitoring ohne lokalen Zugang möglich. Steht zum Beispiel das Booten über TFTP direkt hinter dem primären Bootmedium, wird der Computer nach einem Serverausfall infolge eines Laufwerksschadens bei seinem anschließenden Neustart automatisch ein Rettungsimage von einem laufenden Server anfordern.

Obwohl TFTP kein eigenes Servermonitoring oder Backup ermöglicht, kann dieses durch das Bereitstellen eines speziellen Systems über einen TFTP Server realisiert werden. Diese Aufgabe ist über FTP nicht möglich, da der dafür verwendete FTP Client zu speicherintensiv und komplex für das Einbetten in das BIOS eines Computers wäre. Fast jeder moderne Computer ermöglicht heute das Booten über die Preboot Execution Environment (PXE), die TFTP für das Laden des Betriebssystems nutzt.

Eine weitere Verwendung von PXE und TFTP ist die Installation von Betriebssystemen auf zahlreichen, meist baugleichen Computern oder Servern - zum Beispiel in einem Rechenzentrum. Bei einer entsprechenden Konfiguration kann ein einzelnes und über FTP gesichertes Backup als Quelle auf allen angeschlossenen Servern aufgespielt werden. Durch die Vergabe von individuellen Dateinamen kann ein Backup auch individuell zugeordnet werden, so dass nach einem Serverausfall ein Computer oder das Servermonitoring das Betriebssystem automatisch abruft und sich neu aufsetzt.

In der Vergangenheit wurde TFTP ebenfalls für den Betrieb von Terminals und Arbeitsplätzen ohne eigenes Speichermedium verwendet. In diesem Fall lädt der Computer bei einem Start das Backup seines Betriebssystems von einem zentralen Server und richtet einen direkten Zugriff auf dessen Speicherressourcen ein. Diese Verwendung hat angesichts der gesunkenen Preise für Laufwerke heute seine Bedeutung nahezu verloren und spielt nur noch in speziellen Umgebungen wie einem Servercluster mit zentralem Speichermanagement und Servermonitoring einzelner Instanzen eine Rolle.

Foto: dlohner pixabay.com