Bonjour,
Je suis ingé en robotique et j'utilise beaucoup de capteurs qui sont souvent en Ethernet.
Dans mes robots j'ai plusieurs calculateurs (un gros CPU, un gros GPU, etc ...) et suivant le type de capteurs (caméra, laser, etc ...) les données ne sont pas traitées par le même CPU.
Ça fait un moment que je bricole avec iptables pour faire des routes nat pour rediriger mes flux (de l'UDP en général) un peu partout sur mon réseau interne.
Pour ça j'utilise des commandes iptables -t nat... pour faire mes routes, qui seront lancées au boot. Et tcpdump pour faire du debug.
Le scénario que j'ai souvent est le suivant :
- On me branche le capteur, le capteur (10.0.0.30) crache toutes ses tripes en UDP vers l'IP de mon calculo principal (10.0.0.1)
- Je regarde ce qu'il se passe avec tcpdump, j'en déduis que je dois rediriger les UDP du port 1234 qui viennent de 10.0.0.30 vers 10.0.0.2:2000 ( un second calculo, par exemple). Donc je tape la ligne suivante :
iptables -A PREROUTING -t nat -i eth0 --source 10.0.0.30/32 --dport 1234 -j DNAT --to-destination 10.0.0.2:2000
- Je me log sur mon calculo qui est en 10.0.0.2 et je fais un "tcpdump -i eth0 port 2000" et dans 800% du temps j'ai RIEN.
- Alors je balance ma nouvelle règle dans un script de boot et je reboot tout et en général là ça marche, mais pas toujours...
Mes questions :
- C'est vraiment pas possible de faire des routes à chaud ? Est ce que mon soucis c'est qu'il y a déjà des paquets qui correspondent à la règle qui sont passés dans le noyaux et du coup il veut pas appliquer ma règle ?
- Y a t'il un moyen de debug ce genre de chose, est ce qu'il y a quelque chose que je fais mal ?
- Dans le cas ou je m'y prendrais mal, quelle est LA bonne méthode pour faire ce genre de chose ?
Merci beaucoup pour votre aide
[iptables] comportement étrange
-
- newbie
- Messages : 9
- Inscription : mar. 10 déc. 2019, 15:34
- benjarobin
- Maître du Kyudo
- Messages : 17238
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [iptables] comportement étrange
Bonjour,
Les règles s’appliquent immédiatement. Par contre es tu sûr de ta règle ? Elle est valide ? En effet elle ne spécifie pas le protocole UDP
Je n'ai pas essayé (je ne sais pas si c'est valide), mais ceci ne serait pas mieux :
Les règles s’appliquent immédiatement. Par contre es tu sûr de ta règle ? Elle est valide ? En effet elle ne spécifie pas le protocole UDP
Je n'ai pas essayé (je ne sais pas si c'est valide), mais ceci ne serait pas mieux :
Code : Tout sélectionner
iptables -t nat -A PREROUTING -i eth0 -p udp --source 10.0.0.30/32 --dport 1234 -j DNAT --to-destination 10.0.0.2:2000
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
-
- newbie
- Messages : 9
- Inscription : mar. 10 déc. 2019, 15:34
Re: [iptables] comportement étrange
Merci pour ta réponse
Oui désolé, j'ai oublié la règle pour l'udp dans mon post, j'ai fait ça de tête.
Dans mes configs je ne l'oublie pas
Oui désolé, j'ai oublié la règle pour l'udp dans mon post, j'ai fait ça de tête.
Dans mes configs je ne l'oublie pas
Re: [iptables] comportement étrange
Bonjour,
Les paquets ip DNATés ont conservés l'ip source d'origine (celle du capteur) en sortie de la carte réseau du routeur. Il y a un conflit ARP avec 2 adresses mac pour une même ip sur le lan. Ajoute une règle iptables :
Vérifie également l'autorisation de faire suivre les paquets :
Les paquets ip DNATés ont conservés l'ip source d'origine (celle du capteur) en sortie de la carte réseau du routeur. Il y a un conflit ARP avec 2 adresses mac pour une même ip sur le lan. Ajoute une règle iptables :
Code : Tout sélectionner
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Code : Tout sélectionner
cat /proc/sys/net/ipv4/ip_forward