Port forwarding iptables avec une vagrant

Ca manque d’une section sysadmin ici :slight_smile:

J’ai déployé un serveur des dev au boulot sur lequel je fais tourner des vagrants (provider VBox). Le but étant : les dev au boulot bosse sur le FS du serveur et accèdent à leurs vms via une adresse IP virtuelle (plusieurs IP sur la même interface).
Les vagrant ont 2 interfaces : une en NAT avec quelques forwards (80, 3306, …) et une en private network pour communiquer directement avec l’host.
Jusqu’ici, tout va bien. Maintenant, j’aimerais pouvoir débugger mes app (web) avec xdebug. Il est activé sur les vms, configuré pour le remote debug sur le port 9000. Evidemment, mon IDE tourne sur ma machine et non pas sur le serveur de dev. Du coup, via iptables, j’aimerais que les connexions de ma vm vers l’host sur le 9000, soient redirigées vers mon laptop. J’ai donc créé 2 régles iptables PRE/POSTROUTING:

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9000 to:192.168.50.69:9000

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       tcp  --  0.0.0.0/0            192.168.50.69        tcp dpt:9000 to:192.168.50.161

où 192.168.50.69 correspond à mon laptop, et 192.168.50.161 à l’ip virtuelle du serveur de dev sur lequel je me connecte.

Evidemment, le debug ne fonctionne pas. Du coup, pour tester mon forward iptables, j’ai lancé un netcat sur le port 9000 sur mon la laptop, puis lancé un wget depuis la vm pour voir si le forward était bon. Côté netcat, je vois rien, côté wget en passant par l’ip 192.168.50.161 j’ai un : HTTP request sent, awaiting response… No data received. En passant par l’ip de l’host interne : 10.0.2.2, j’ai un Network is unreachable.

N’étant pas un sysadmin à la base, je sèche totalement, du coup je viens crier oskour ici. Si quelqu’un entend mes cris mes sos, … 

EDIT : A la demande de lony, les machines (toutes) tournent sous linux. serveur + laptop archlinux, vms sous gentoo

truc à la con , t’as bien mis le ip_forward à 1 dans tes configs ? ( dans /proc/sys/net/ blabla )

Ouaip.

et le proxy_arp  ?

tout ce qui touche à l’arp est désactivé :

net.ipv4.conf.eth0.arp_accept = 0
net.ipv4.conf.eth0.arp_announce = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.eth0.arp_notify = 0
net.ipv4.conf.eth0.proxy_arp = 0
net.ipv4.conf.eth0.proxy_arp_pvlan = 0

J’ai pas assez d’info sur la structure pour t’aider.
Je t’ai fait un schéma par rapport a ce que j’ai compris de ta structure mais.
_J’ai pas compris dans quels réseaux tu étais
_J’ai pas compris ou tu avais mis les règles iptables (sur une VM? Le serveur?)
_Quel config réseau sur VB? Bridge? NAT?

Si tu veux completer le schema directement au format DIA, file moi ton mail par PM et je t’envoie le fichier dia original.

LoneWolf
Structuration de la question

Je la refait

Le but étant que VBOXn communique avec laptop m via le port 9000 en passant par dev server.
actuellement, avec du forwarding nat vbox j’accede a vbox n depuis laptop m via 192.168.50.161:xxxx Maintenant, je cherche à faire l’inverse : communiquer depuis vbox n vers laptop m.
Plus clair ?

quand , depuis ton laptop m, tu tapes 192.168.50.161:xxxx, tu accèdes à la vbox 1 ou 2 au hasard ? ou bien spécifiquement à la 1( ou2 )? 

[quote=« mono, post:8, topic: 56312 »][/quote]
On a réglé le problème sur irc: ca tourne :slight_smile:
C’était un problème de redirection inutile :slight_smile:

LoneWolf
Redirecteur d’octets depuis 1999

arf ça m’interesse bien le sujet :wink: du coup tu pourrais me résumé la réponse ?

[quote=« mono, post:10, topic: 56312 »][/quote]
En gros, le sens VM → externe fonctionne de base, c’est juste qu’il y a eu un problème (que je ne connais pas) qui a fait que ca ne fonctionnait pas. L’ajout de redirection a empiré les choses et c’était tout buggé.
Tu rajoutes a ça le fait que les tests qu’il faisait exploitait de mauvaise manière « nc » (nc -l 9000 ne marche pas, il faut faire nc -lp 9000, contrairement a ce que préconise plusieurs manpages sur le net) et ca aide pas!

Donc on a tout nettoyé, on a fait des trucs simple et ça marchait, donc il a pu réessayer avec son logiciel :slight_smile:

LoneWolf
Pourquoi faire simple quand on peut faire compliqué? :slight_smile:

Ok thanks :) 

Ouais alors j’ai tout viré le forwarding sur l’host, et effectivement, suffisait de taper sur la bonne ip depuis la vm qui a bien access à l’extérieur, et voila… La prise de tête inutile. :cassetete: