Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 06-06-2012 11:39:47

pyrrha
Membre
Distrib. : Sid (Client) - Stable (Serveur)
(G)UI : Gnome
Inscription : 09-10-2010

Xen comme conteneur

Bonjour à tous,

J'ai un serveur "domestique", qui me sert à diverses choses, et il se trouve que j'aurai besoin d'isoler certains services. Il y a un an, j'utilisais FreeBSD, donc j'avais pu faire des jails qui fonctionnaient à merveille.

Là je suis sous Debian, et j'ai regardé du côté de OpenVZ et Vserver (qui me semble être assez comparables aux jails), mais il semble que ces deux solutions ne soient plus maintenues pas Debian à partir de Wheezy (je peux toujours les recompiler, mais bon, si on est sous Debian, c'est qu'on aime bien APT big_smile)

Du coup je m'intéresse à Xen (il permet en plus une gestion plus souple du réseau, et dans mon cas, au risque d'en faire frémir certains, faire du NAT entre le dom0 et les domU m'arrangerait beaucoup - toute façons, ce n'est pas un gros trafic, alors ça je change pas grand chose niveau performances).

Donc ma question : je n'ai pas très envie de migrer l'ensemble des services actuels de mon serveur sur différents domUs, ça fonctionne très bien comme ça (d'autant plus qu'il me sert de "gros" serveur de fichier local, donc si je fais ça, il serait préférable que j'utilise LVM pour les performances plutôt que des images disques pour les domUs, ce qui ne j'ai pas non plus envie de faire parce que ça chamboule pas mal de choses), est-il donc gênant, selon vous, d'utiliser Xen un peu comme un conteneur ?

J'entends par là que mes domU seraient que quelques services que je veux isoler, le dom0 ne jouant pas uniquement le rôle de machine hôte, mais aussi de vrai serveur applicatif (un peu comme on ferait de la virtualisation avec VirtualBox par exemple).

Niveau performances, je sais que ce n'est pas recommandé, car si le dom0 s'écroule, il fait tomber tous les domUs qui dépendent de lui, mais là, objectivement, la plupart des ressources seraient allouées au dom0, donc peut de chances que ça arrive.

Merci de m'avoir lu wink
pyrrha

Hors ligne

#2 06-06-2012 13:52:43

mortalius
Membre
Distrib. : Debian GNU/Linux stretch/sid
Noyau : Linux 4.0.0-2-amd64
(G)UI : Xfce 4.12
Inscription : 27-02-2012

Re : Xen comme conteneur

Bonjour,
As tu regardé du coté de LXC ?

Hors ligne

#3 06-06-2012 15:14:51

pyrrha
Membre
Distrib. : Sid (Client) - Stable (Serveur)
(G)UI : Gnome
Inscription : 09-10-2010

Re : Xen comme conteneur

Je ne connaissais pas du tout, et je n'ai pas vu ça dans mes recherches !
D'après ce que je viens de voir, ça correspond tout à fait à ce que je cherche, avec possibilité de faire du NAT avec les "invités".

Merci en tout cas, je vais essayer ça du coup ;-)

Hors ligne

#4 06-06-2012 15:18:03

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : Xen comme conteneur

Plop,
Oui, parce que Xen, dans ton cas, c'est un peu overkill, et les dégradations de performances risqueraient de se faire ressentir.

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#5 13-06-2012 22:09:01

pyrrha
Membre
Distrib. : Sid (Client) - Stable (Serveur)
(G)UI : Gnome
Inscription : 09-10-2010

Re : Xen comme conteneur

Merci pour vos réponses wink
J'ai eu le temps de tâtonner LXC, c'est vraiment ce qu'il me fallais (l'équivalent des jails BSD quoi !)

En revanche, je voudrais maintenant créer plusieurs conteneurs, et chacun de ces conteneurs ne doivent pas communiquer entre eux (par le réseau), mais ils doivent pouvoir communiquer avec l'hôte (et éventuellement communiquer entre eux en passant par l'hôte).

L'intérêt pour moi est de centraliser le filtrage sur la machine hôte et laisser toutes les chaînes de filtrage des invités en ACCEPT, plus simple à manipuler après.

D'un point de vue IP, pas de soucis, je me fais un adressage qui correspond à ce que je veux.
D'un point de vue Ethernet, c'est plus embêtant. Il y a bien la solution avec le bridge qui marche très bien, mais ça me force à créer un bridge par invité, un peu lourdingue, donc je préférais utiliser l'interface réseau qui est créé sur la machine hôte au lancement de l'invité (conteneur) directement.

en gros :

machine hôte
  -> if virt0 (10.0.0.0/31) -> invité 0 (10.0.0.1/31, dans le conteneur)
  -> if virt1 (10.0.1.0/31) -> invité 1 (10.0.1.1/31, dans le conteneur)
etc.

au lieux de
machine hôte
bridge1 (10.0.0.0/31) [dummy hote ; if invité0 ]
bridge2 (10.0.1.0/31) [dummy hote ; if invité1 ]
etc.
(désolé pour mes représentations "graphiques" un peu pourris big_smile)
       
Manuellement, ça fonctionne très bien, en adressant les interfaces "virtuelles" créé sur l'hôte au moment du lancement de conteneur, mais comment faire ça de façon automatique ?
À ma connaissance, ce n'est pas possible de créer cette interface avant le lancement d'un conteneur, ça ne correspondrait pas à grand chose...

Quelqu'un aurait-il une petite idée ?
La doc préconise les bridges, s'il y a pas moyen je ferai comme ça, mais bon... smile

Merci !
pyrrha

Dernière modification par pyrrha (13-06-2012 22:12:37)

Hors ligne

#6 18-06-2012 21:22:43

pyrrha
Membre
Distrib. : Sid (Client) - Stable (Serveur)
(G)UI : Gnome
Inscription : 09-10-2010

Re : Xen comme conteneur

Pas d'idée personne? Trop tordue mon idée? big_smile

Hors ligne

#7 18-06-2012 23:22:20

mortalius
Membre
Distrib. : Debian GNU/Linux stretch/sid
Noyau : Linux 4.0.0-2-amd64
(G)UI : Xfce 4.12
Inscription : 27-02-2012

Re : Xen comme conteneur

Bonsoir,

Tu cherche donc à faire du NAT ...
Une piste ? :
http://www.vislab.uq.edu.au/howto/lxc/lxcnetwork.html

Si j'ai un peu de temps ces jours ci j'y regarderai, ca m'intéresse aussi...

Hors ligne

#8 18-06-2012 23:39:36

pyrrha
Membre
Distrib. : Sid (Client) - Stable (Serveur)
(G)UI : Gnome
Inscription : 09-10-2010

Re : Xen comme conteneur

Bonsoir,
Merci pour ta réponse.

Le problème se situe d'avantage sur le fait que je cherche à me passer des bridges, pas tellement sur le fait de faire du NAT (pas de soucis de ce côté là).

En fait, comme je veux que chaque conteneur soit totalement isolé (au niveau couche 2, ethernet) des autres, et ne puisse (éventuellement) communiquer avec un autre uniquement en passant par la machine hôte (où je peux alors centraliser mes règles de filtrage, éventuellement faire du NAT si le conteneur est autorisé à sortir), je ne veux pas mettre tous mes conteneurs dans un bridge, que je relie à ma machine hôte, mais je veux relier directement chaque interface de chaque conteneur à ma machine hôte.

Techniquement, je pourrai le faire avec les bridges : il faudrait faire un bridge par conteneur, mais c'est pas idéal (un peu lourd à gérer)...

De plus, cette technique fonctionne : lorsqu'on lance un conteneur, une interface est créé sur la machine hôte, et le conteneur communique au niveau 2 avec cette interface (une capture de trame le prouve, un ping du conteneur vers l'hôte, il envoi bien la trame ethernet à l'adresse MAC de l'interface créé sur l'hôte au lancement de conteneur). Donc à ce moment là, j'active le routage, et je NAT éventuellement.
Le truc, c'est que cette interface ne se crée que lors du lancement du conteneur, et elle n'a pas d'IP à ce moment là. Or, je ne peux pas lui attribuer d'IP avant, vu qu'elle n'existe pas au préalable.

D'où ma question existentielle smile
En fait, on pourrait résumer tout ça par "est-il possible d'attribuer automatiquement une IP sur l'interface créée sur la machine hôte lors du lancement d'un conteneur ?"

Si je comprends bien la doc du lien que tu as mis, ils mettent les conteneurs dans un bridge, et mettent l'interface de ce bridge dans un second bridge contenant également l'interface physique. L’intérêt est de pouvoir faire du NAT pour tous les conteneurs, mais avec une IP différente que celle de la machine hôte (le NAT s'appliquant sur l'interface du premier bridge). C'est cool comme truc, mais pas vraiment ce que je cherche, merci quand même !

edit : heu en fait non, j'ai lu un peu vite... Il bridgent simplement l'interface de la machine hôte avec un second bridge (qui lui contient les if. des conteneurs), et tout est naté en sortie du bridge contenant le bridge des conteneurs et de l'interface physique de la machine hôte. Je comprends pas trop l’intérêt de faire ça du coup ?

Dernière modification par pyrrha (18-06-2012 23:53:45)

Hors ligne

#9 30-06-2012 15:25:38

pyrrha
Membre
Distrib. : Sid (Client) - Stable (Serveur)
(G)UI : Gnome
Inscription : 09-10-2010

Re : Xen comme conteneur

Non, personne ? tongue

Hors ligne

Pied de page des forums