TFTP-Server zero-padded-Dateinamen

Moin,

welcher Client macht denn sowas?

Ich kenne allerdings keine Möglichkeit (mal abgesehen von einem Eingriff 
in die Sourcen). Warum auch, nach dem Null-terminiertem Dateinamen kommt 
ja noch der, ebenfalls Null-terminierte, Mode-String. Danach können noch 
beliebig viele Nullen kommen, die werden ignoriert (Option-Felder).

timpi.
(Firma: Schweigstill IT) Persönliche Seite
Der Aufbau des RRQ/WRQ-Pakets ist in RFC 1350 definiert, und zwar mit 
genau einem NUL-Byte als Trennzeichen zwischen Dateiname und Mode-Feld 
und genau einem NUL-Byte nach dem Mode-Feld. Alles andere wäre eben kein 
TFTP. Natürlich kann das UDP-Paket, dass diesen Request enthält, 
wesentlich länger sein, aber das Längenfeld der Nutzdaten darf im 
UDP-Header natürlich nur die Länge des Requests umfassen.
OP (Firma: dm2sh)
Ich habe es doch noch lösen können. Falls es noch jemand braucht, 
schreibe ich die Lösung.

Stefan L. schrieb:
> welcher Client macht denn sowas?

so ca. 50 % aller PXE-Clients! Nur wenige halten sich an den Standard. 
Andere liefern eine <NUL> nach dem Name zuviel, wieder andere hängen 
über 1000 <NUL>-Bytes an.

Andreas S. schrieb:
> Der Aufbau des RRQ/WRQ-Pakets ist in RFC 1350 definiert

Naja, ist ja kein Standard nur ein Request for Comment ;)

Lösung:

https://github.com/TheTesla/pxe_salt

Man muss tftpd-hpa mit der Option für regex starten:

tftpd-hpa -m regex_tftpd

Die Datei regex_tftpd mit dem regex drin anlegen:

rg  [^[:print:]]

Es ersetzt nicht druckbare Zeichen gegen nichts. Man muss das regex 
wirklich so formulieren. [ [:cntrl:]] ging nicht, obwohl es korrekt ist.

Für die Suchmaschine:

PXE-T00 filename too long
PXE-T01 file not found
Vielen Dank, gut zu wissen.

> so ca. 50 % aller PXE-Clients!

Na, da hab' ich wohl bislang fast immer die anderen 50% erwischt. Ein 
Problem hatte ich zwar mal mit dem Dateinamen, das wurde aber gelöst 
indem ich auf DHCP-Serverseite den Bootfilenamen <NUL>-terminiert habe 
(statt "pxelinux.0"  "pxelinux.0\000" eingetragen).

timpi.
Stefan H. schrieb:
> Andreas S. schrieb:
>> Der Aufbau des RRQ/WRQ-Pakets ist in RFC 1350 definiert
>
> Naja, ist ja kein Standard nur ein Request for Comment ;)

Doch, dass ist ein Standard. Auch fast jedes andere Protokoll, inklusive 
TCP, IP, UDP, etc. existiert als RFC, dass ist nicht nur eine 
empfehlung, sonst würde ja garnichts richtig funktionnieren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.