Router/Firewall und UDP
Hallo zusammen,
ich habe mal diesen Thread überflogen, weil ich eben vor demselben Problem stand, daß ein Firmware-Upgrade per TFTP nicht über meine Firewall funktionierte. Ich glaube, die tatsächliche Erklärung hier nicht gelesen zu haben. Verzeiht mir bitte, wenn es doch irgendwo dazwischen stand. Wer also außer mir keine Lust hat, mit einem eigenen TFTP-Server zu hantieren, sollte vielleicht weiterlesen.
TFTP benutzt UDP (und kein TCP). Als verbindungsloses Protokoll funktionieren mit UDP die üblichen Connection-Tracking-Methoden für TCP der gängigen Router nicht mehr: jedes eingehende UDP-Paket vom TFTP-Server wird sozusagen als neue eingehende Verbindung gewertet. TFTP funktioniert nicht über Standard-NAT! Ich will hier nicht ins Detail gehen (jedenfalls gehen die Antwortpakete des TFTP-Servers nicht an Port 69 und sie kommen auch nicht von Port 69), denn meine beiden Lösungsvorschläge sind eigentlich ganz einfach:
1. Für die Dauer des Upgrades alle von dem jeweiligen TFTP-Server eingehenden Pakete (oder zumindest UDP) an den ATA forwarden.
2. Meinem Linux-Router konnte ich ordentliches TFTP-Connection-Tracking ganz einfach durch Laden der beiden Module
ip_conntrack_tftp und
ip_nat_tftp beibringen.
Könnte sein, daß viele der Router im unteren Preissegment Lösung 1 nicht zulassen, weil sie eine spezifische Portangabe benötigen. Mein HT 486 "horchte" beim Upgrade auf Port 32874/udp, was aber durchaus von Firmware zu Firmware variieren könnte. Vielleicht läßt sich je nach Router der gesamte obere Portbereich kurzzeitig forwarden. Der Quellport des TFTP-Servers ist ziemlich sicher völlig unvorhersehbar.
Hoffentlich hilft Euch das weiter.
Grüße,
Christiane