Ipsec prerouting perte ip publique

Bon réussi :slight_smile: :slight_smile: :slight_smile:
il manquer sur le proxmox

iptables -t nat -A POSTROUTING -s '176.y.y.0/24' -o gre1 -j MASQUERADE

ne pas oublier de rajouter sur la VM les DNS du fournisseur de l’ip 176

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=108 time=18.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=108 time=18.3 ms

root@CT100:~# curl http://www.cpanel.net/showip.cgi
176.y.y.y

La commande « ip rule » sur la tête de pont est aberrante et ne sert à rien, et du coup la table de routage avancé « GRE » ne sert à rien non plus.
Quel est l’intérêt du double DNAT si les adresses de destination initiale et finale sont identiques (à part contourner les erreurs de configuration) ?
Je ne vois pas comment la règle iptables MASQUERADE peut faire ce que tu veux : la VM sort déjà avec l’adresse source 176.y, et la règle la remplace par l’adresse de gre1 (10.0.0.2).

Je ne vois aucune redirection des ports 500 et 4500 qui sont pour IPSec, pas GRE. Le protocole GRE n’a pas de ports.

euhhh oui j’ai viré la rule sur la tête de pont

Si je fait pas du MASQUERADE j’ai pas de de réponse c’est chelou j’avoue, la VM sort effectivement avec l’adresse 176.y sans MASQUERADE pas de résultat, la tête de pont ne transfert pas la requête de gre1 vers eth pourquoi mystère

Pour les ports 4500 et 5000 c’est effectivement pour ipsec j’ai bien dit que je voulais faire du ipsec over gre

Je vais refaire un poste complet sans les coquilles

Comment est gérée cette adresse sur la tête de pont ? Elle est configurée sur une interface ? Elle a une route ?

[Edit] D’après ton message initial elle est configurée sur l’interface ethernet, donc ça ne peut pas marcher. Deux machines avec la même adresse (tête de pont et VM), ça ne va pas. Mon soupçon que le double DNAT sert à contourner une erreur de configuration se confirme.

la tête de pont, je rappel que 176.y c’est une ip failover

allow-hotplug eth0
iface eth0 inet dhcp

auto eth0:1
iface eth0:1 inet static
    address 176.y.y.y/32
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward

ip r
default via 51.x.x.x dev eth0 
51.x.x.1 dev eth0 scope link 

ce qui et bizarre c’est que depuis le Proxmox sans le MASQUERADE en faisant

 curl http://www.cpanel.net/showip.cgi --interface 10.0.0.2

ca marche

si je fais le curl depuis la VM il traverse le gre mais ne va pas sur eth

Bon avec insistance j’ai réussi a faire quelque chose propre qui marche comme je veux

ip tunnel add gre1 mode gre local 51.x.x.x remote  82.x.x.x ttl 255
ip addr add 10.0.0.1/30 dev gre1
ip link set gre1 up
iptables -t nat -A POSTROUTING -s 10.0.0.0/30 ! -o gre1 -j SNAT --to-source 176.y.y.y
iptables -t nat -A PREROUTING -d 176.y.y.y/32 ! -i gre1 -j DNAT --to 10.0.0.2


ip tunnel add gre1 mode gre local 192.168.1.155 remote 51.x.x.x ttl 255
ip addr add 10.0.0.2/30 dev gre1
ip link set gre1 up
ip rule add from 10.0.0.0/30 table GRE
ip route add default via 10.0.0.1 table GRE
ip rule add from 176.y.y.y/32 table GRE
iptables -t nat -A PREROUTING -d 10.0.0.0/30  -i gre1 -j DNAT --to-destination 176.y.y.y 
iptables -t nat -A POSTROUTING -s 176.y.y.y/32 -o gre1 -j SNAT --to 10.0.0.2

Il me reste a faire l’ipsec j’ai suivi le tuto https://www.equantum.fr/fr/linux/interconnexion-de-sites-par-un-vpn-tunnel-gre-ipsec

En mode transport il monte pas Grrrrr