Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/08/2012, à 16:54

Huge

[RÉSOLU] LXC / Réseau : Containers accessibles depuis le LAN

Bonjour,

Je suis en train de monter un serveur sous Ubuntu 12.04 server afin de servir de serveur de développement web.

Afin d'avoir des environnements proches de la production je veux utiliser une solution de virtualisation ou de confinement.
Cela me permet entre autre d'avoir des configurations des services spécifiques à chaque projet, ou encore de simuler une architecture avec plusieurs machines.

J'ai retenu à cette fin LXC, pour sa légerté mais aussi l'avantage de pouvoir tourner sur un kernel non modifié.
L'idée est de pouvoir rsync une ou des VM sur mon laptop, pour pouvoir bosser lorsque je suis en mobilité et de profiter de la puissance du serveur lorsque je suis au bureau.
(Je n'ambitionne pas encore d'uiliser LXC en prod même si ça serait relativement séduisant dans l'idée.)

Mon problème pour l'instant est que je n'arrive pas configurer le serveur et la première VM pour qu'elle soit joignable sur le réseau local et pas seulement depuis l'hôte.

J'ai besoin à minima de pouvoir joindre la VM pour le HTTP et le SSH et je voudrait trouver une solution qui :

1. Ne demande pas des actions manuelles systèmatiques pour chaque VM (genre SSH sur l'hôte puis sur la VM)
2. Fonctionne pour plusieurs VM en simultané (je ne veux pas rerouter tout les demandes sur le port 80 du serveur vers 1 seule VM)
3. Idéalement repose sur une configuration bas niveau du réseau et pas sur l'utilisation d'un énième service comme un reverse proxy.

La plus part des tutoriaux que je trouve ne semblent pas à jour avec l'implémentation de LXC sur la 12.04 et mes connaissances en réseau sont limitées.

=> Est-ce que ce que je veux faire est possible ?

J'ai essayé de modifier sur l'hôte /etc/default/lxc-net.conf en précisant l'adresse de mon routeur dans LXC_ADDR mais dans ce cas l'invité n'obtient pas de bail DHCP.

Dernière modification par Huge (Le 21/08/2012, à 16:25)

Hors ligne

#2 Le 20/08/2012, à 12:57

src

Re : [RÉSOLU] LXC / Réseau : Containers accessibles depuis le LAN

Salut,

Ce n'est pas un problème de virtualisation, mais un problème réseau.
En effet quand tu entres l'adresse d'un container LXC (qui est 10.0.3.x par défaut sous Ubuntu), depuis ton hôte ça va car il sait "où" se trouve ce réseau.
Or quand tu le fais depuis une autre machine, il ne connait pas ce réseau, il ne sait pas quel chemin prendre pour l'atteindre, du coup il se tourne vers la passerelle par défaut (typiquement, la *box), qui elle ne sait pas non plus.

La solution est d'ajouter une route statique dans ta box. Quelque chose du genre :
- Réseau de destination : 10.0.3.0/24
- Passerelle : IP de ton hôte

Dernière modification par src (Le 20/08/2012, à 12:57)


Actuellement sur Manjaro Xfce (amd64)

Hors ligne

#3 Le 21/08/2012, à 16:24

Huge

Re : [RÉSOLU] LXC / Réseau : Containers accessibles depuis le LAN

Salut,

Merci pour ces explications, j'ai pu régler le problème en 5 minutes !

Pour compléter les explications :
J'ai ajouté une route statique sur mon routeur :

Destination : 10.0.3.0 (réseau lxc par défaut) Masque 255.255.255.0
Gateway : 192.168.1.102 (mon serveur)

À ce stade le routeur redirrige bien vers le serveur mais ce dernier ne sais pas quoi faire de la requête entrante (j'ai démarré une VM qui a l'IP 10.0.3.145) :

huge@laptop:~$ ping 10.0.3.145
PING 10.0.3.145 (10.0.3.145) 56(84) bytes of data.
From 192.168.1.1: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.102)
From 192.168.1.1: icmp_seq=3 Redirect Host(New nexthop: 192.168.1.102)

J'ai donc ajouté une route sur le serveur :

huge@server:~$ sudo route add -net 10.0.3.0 netmask 255.255.255.0 lxcbr0

(lxcbr0 est le nom par défaut de l'interface virtuelle crée par/pour LXC)

Et la ça tout fonctione \o/ :

huge@laptop:~$ ping 10.0.3.145
PING 10.0.3.145 (10.0.3.145) 56(84) bytes of data.
64 bytes from 10.0.3.145: icmp_req=1 ttl=63 time=80.0 ms

Merci !

Hors ligne

#4 Le 21/08/2012, à 18:24

src

Re : [RÉSOLU] LXC / Réseau : Containers accessibles depuis le LAN

Il n'est pas nécessaire d'ajouter la route sur l'hôte, car il connait déjà le réseau cible (vu que l'interface lxcbr0 lui appartient).
Tu peux vérifier quelles sont les routes connues avec la commande "route". Tu devrais voir la 10.0.3.0 apparaitre.


Actuellement sur Manjaro Xfce (amd64)

Hors ligne

#5 Le 22/08/2012, à 18:14

Huge

Re : [RÉSOLU] LXC / Réseau : Containers accessibles depuis le LAN

Effectivement j'avais du coup la route en double.

Je l'ai supprimée et cela fonctionne toujours. Par contre je ne sais pas pourquoi cela ne fontionnait pas au début ?

Hors ligne