Je loue une machine chez un hébergeur (du côté de Roubaix) qui me propose des adresses IP fixes.
Je voudrais atteindre depuis l'extérieur un de mes conteneurs via une IP fixe.
C'est une configuration classique que j'avais déjà mise en place par le passé que je peine à faire retomber en marche.
J'ai mis en place LXC sur une Debian Jessie.
J'ai configuré un réseau interne avec libvirt pour joindre les conteneurs en interne et cela fonctionne.
Avec la seconde adresse IP (sans autre configuration) j'arrive à atteindre la machine (ça pingue, ça SSH).
Mais lorsque je mets en place les règles de NAT suivantes :
CAL_PUBLIC=XXX.XXX.XXX.XXX # IP publique
CAL_INTERNAL=192.168.122.101 # IP interne que je pingue bien une fois sur la machine
/sbin/iptables -t nat -A PREROUTING -d $CAL_PUBLIC -j DNAT --to-destination $CAL_INTERNAL
/sbin/iptables -t nat -A POSTROUTING -s $CAL_INTERNAL -o eth0 -j SNAT --to-source $CAL_PUBLIC
Ça coince :
ping XXX.XXX.XXX.XXX
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
From XXX.XXX.XXX.XXX icmp_seq=1 Destination Port Unreachable
ssh root @ XXX.XXX.XXX.XXX
ssh: connect to host XXX.XXX.XXX.XXX port 22: Connection refused # oui j'ai bien activé dans un premier temps le login avec root
Est-ce que l'un de vous a un embryon de piste ?
(je ne suis pas un pro du réseau et ne sais même pas vraiment où chercher)
Par avance merci !
# passerelle ?
Posté par NeoX . Évalué à 3.
tu appliques ces regles sur le serveur ou dans le conteneur ?
le conteneur a comme IP 192.168.122.101,
quel est sa passerelle (tu peux la connaitre avec la commande
ip r
)de plus, as-tu definis l'adresse IP publique sur ton serveur ?
avant d'appliquer les regles, le flux arrive-t-il sur le serveur (ping/ssh…)
[^] # Re: passerelle ?
Posté par Nim . Évalué à 1.
Sur le serveur.
En terme de passerelle.
Sur le serveur (avec YYY.YYY.YYY.YYY l'ip principale) :
$ ip r
default via YYY.YYY.YYY.254 dev eth0
YYY.YYY.YYY.0/24 dev eth0 proto kernel scope link src 178.32.219.174
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
Sur le conteneur :
$ ip r
default via 192.168.122.1 dev eth0
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.101
Oui (extrait de /etc/network/interfaces)
Oui.
[^] # Re: passerelle ?
Posté par NeoX . Évalué à 4.
ok.
et par defaut, ton conteneur, il accede à internet ?
probablement que non, car l'IP forwarding ne doit pas etre activé.
il faut faire un
echo 1> /proc/sys/net/ipv4/ip_forward
evidemment avec un SNAT pour les flux qui sortent du conteneur vers internet (avec l'IP du serveur, ou l'IP failover)
si ca marche, il faut placer cela pour que cela s'active au demarrage.
cela peut se regler dans /etc/sysctl.conf
[^] # Re: passerelle ?
Posté par Nim . Évalué à 2. Dernière modification le 03 décembre 2015 à 23:20.
Eh ben à vrai dire, oui. Je pingue sans souci (et peux mettre à jour le conteneur).
cat /proc/sys/net/ipv4/ip_forward
1
Cela ne semble pas être ça le problème.
# Et la non-solution est
Posté par Nim . Évalué à 1.
Je n'ai pas réussi à identifier mon problème mais je l'ai résolu.
J'ai enlevé la configuration via libvirt. C'est censé faciliter la vie mais ça semble faire des choses pas claire dans le dos.
À la place, je me suis rabattu sur une configuration de pont réseau à la main : https://wiki.debian.org/LXC/SimpleBridge
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.