Faire du NAT avec Proxmox
Posté le dim. 15 octobre 2017
L'idée est d'utiliser qu'une seule adresse ip public pour plusieurs VM. Comme à la maison vous avez des adresses ip en 192.168.x.x notre serveur proxmox peut faire la même chose.
Ip Public de proxmox : 11.22.33.44 Ip Privé de proxmox : 10.0.0.254
Je me connect en ssh à Proxmox et je modifie le fichier /etc/network/interfaces
j'ajoute à la fin du fichier :
auto vmbr2
iface vmbr2 inet static
address 10.0.0.254
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
On peut également ajouter si on veut différents ports qu'on ouvre vers l'exterieur vers tel ou tel VM ou conteneur. Par exemple j'ouvre le port 22 de mon conteneur avec l'ip 10.0.0.1 sur le port 8022 de mon ip public :
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8022 -j DNAT --to 10.0.0.1:22
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 8022 -j DNAT --to 10.0.0.1:22
Ensuite enregistrer le fichier /etc/network/interfaces
puis relancer les
interfaces réseaux
service networking restart
Lorsque vous allez faire la configuration réseau d'une VM ou d'un conteneur, il suffit de renseigner une adresse ip de la plage 10.0.0.0/24
Exemple :
auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
Puis faites un ping depuis votre conteneur vers l'ip 10.0.0.254, puis vers un site internet duckduckgo.com par exemple.