URL: https://linuxfr.org/forums/linux-general/posts/probleme-reseau-snat Title: Problème réseau SNAT Authors: ilip Date: 2016年03月11日T18:40:35+01:00 License: CC By-SA Tags: debian Score: 1 Bonjour, J'essai de mettre en place un hyperviseur de VM Proxmox avec en VM un firewall pfSense et une VM Debian comme serveur WEB. Je veux que tout le trafic de la VM passe par le firewall pfSense. J'ai donc comme réseaux virtuels sur Proxmox : **vmbr0** : en bridge sur eth0, avec l'IP publique **vmbr2** : réseau entre Proxmox (_10.0.0.1_) et pfSense (_10.0.0.2_) avec un masque _255.255.255.252_ **vmbr3** : réseau entre pfSense (_192.168.0.1_) et la VM (_192.168.0.3_) avec un masque à _255.255.0.0_ La VM a pour passerelle l'adresse IP du pfSense (_192.168.0.1_). Sur le pfSense j'ai activé le SNAT MASQUERADE pour le partage de connexion internet sur les VM. Pareil sur le Proxmox avec la règle "_iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE_". Ma VM peux bien pinger des adresses IP internet avec le cheminement suivant : _192.168.0.3 -> 192.168.0.1 -> 10.0.0.2 -> 10.0.0.1 -> Internet_ Mais lorsque je lance une connexion SSH depuis la VM vers un serveur SSH sur Internet, les trames passent bien par le même chemin, mais semble partir sur Internet avec comme adresse source l'adresse IP privée (_10.0.0.2_). Pourtant lorsque je lance la même connexion SSH depuis le pfSense, le SNAT fonctionne et le SSH marche. J'ai activé les logs sur la chaîne POSTROUTING (_iptables -t nat -I POSTROUTING 1 -j LOG --log-prefix "POSTROUTING : "_). On voit que si je lance la connexion SSH depuis le pfSense, les trames passent bien par le POSTROUTING : _Mar 11 18:49:39 ns358551 kernel: [ 1949.624047] POSTROUTING : IN= OUT=vmbr0 SRC=10.0.0.2 DST=IP\_PUBLIC\_SERVER\_SSH LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=38024 DF PROTO=TCP SPT=35135 DPT=22 WINDOW=65228 RES=0x00 SYN URGP=0_ Alors que si je lance la connexion SSH depuis la VM, les trames n'y passent pas. Ci-dessous les logs tcpdump : Connexion SSH depuis pfSense (fonctionne) : _root@ns358551:~# tcpdump -n -i vmbr0 listening on vmbr0, link-type EN10MB (Ethernet), capture size 262144 bytes 18:33:14.215276 IP IP\_PUBLIC\_PROXMOX.14100> IP\_PUBLIC\_SERVER\_SSH.22: Flags [S], seq 1256233084, win 65228, options [mss 1460,nop,wscale 7,sackOK,TS val 843403 ecr 0], length 0 18:33:14.215945 IP IP\_PUBLIC\_SERVER\_SSH.22> IP\_PUBLIC\_PROXMOX.14100: Flags [S.], seq 2629005040, ack 1256233085, win 5792, options [mss 1460,sackOK,TS val 2916305461 ecr 843403,nop,wscale 6], length 0_ Connexion SSH depuis la VM (ne fonctionne pas) : _root@ns358551:~# tcpdump -n -i vmbr0 listening on vmbr0, link-type EN10MB (Ethernet), capture size 262144 bytes 18:35:04.149057 IP **10.0.0.2**.40477> IP\_PUBLIC\_SERVER\_SSH.22: Flags [S], seq 3347059144, win 29200, options [mss 1460,sackOK,TS val 169537 ecr 0,nop,wscale 7], length 0_ On voit que la trame qui part sur Internet à l'ip locale **10.0.0.2**, je pense que c'est ça qui pose problème. Mais pourquoi cette trame ne passe pas par la règle SNAT ?