[TFTP] Des paquets non transmis

Bonjour,

Tout d’abord résumons l’architecture:

  • J’ai une machine Debian directement derrière une box (connectée à internet), qui joue le role de passerelle entre la box et mon réseau local. Celle-ci joue le rôle de NAT pour une connexion internet à tous les PC locaux
  • J’ai installé un serveur tftp sur l’un de mes pc locaux
  • J’ai un autre PC local qui joue le rôle de client

Dans un premier temps, j’ai testé le serveur tftp dans mon réseau local, la passerelle ne filtre rien car c’est censé être digne de confiance, et donc les transferts ont bien lieu.

Maintenant, je voudrais avoir accès depuis le net au serveur tftp de mon réseau local. Pour cela j’ai:

  • Rediriger le port UDP 69 de ma box vers la passerelle Debian
  • Configurer iptables de la passerelle pour rediriger le flux vers mon pc local serveur
  • J’ai chargé le module ip_conntrack_tftp

Et le soucis en traçant via wireshark:

  • Un pc local client demande un transfert de fichier en s’adressant directement à l’adresse public de la box
  • Cette demande traverse la box, la passerelle debian
  • le PC local serveur TFTP recoit bien la demande de transfert d’un fichier sur son port 69 et envoie en conséquence le premier bloc de donnée
    A noter que son port source n’est pas 69 mais un port source aléatoirement choisi par le serveur pour effectuer le tranfert.
  • Ce paquet émis traverse la passerelle Debian à destination de l’adresse privée de la box
  • Le pc local client ne reçoit jamais le paquet avec le premier bloc de donnée et refait une requête pour obtenir le fichier et ainsi de suite…

Il semblerait que la box ne transmettent pas le paquet émis par le pc local serveur tftp, auriez vous une idée de comment remédier à cela? De l’explication du problème?
Où ais je fait une erreur ou un oubli?

Merci.

Bien j’ai simplifié un petit peu le principe. Pour cela j’ai installé le serveur tftp directement sur ma machine debian et non sur un pc serveur local. Ainsi je ne m’occupe pas de la redirection.

Au sein de la machine debian j’ai ajouté rapidement les règles iptables correspondantes pour gérer l’UDP pour tftp.
D’ailleurs en passant, quelqu’un saurai t’il ce qu’il faut mettre dans le fichier de configuration tftp pour définir un “port range”?

Bref, le résultat au final est le même, mon serveur répond à la trame UDP émise par le client. Ce premier bloc de donnée émis par le serveur (avec port source différent) est envoyé vers la box mais la box ne reroute apparemment pas le paquet vers le client.

Je commence à me demander sérieusement si la box configurée en NAT peut gérer ce protocole?