Forum Linux.debian/ubuntu LXC et interfaces multiples

Posté par . Licence CC by-sa.
Tags : aucun
0
8
fév.
2013

Bonjour,

Je suis en train de jouer avec LXC sur Debian Sid (avec systemd). Voilà mon réseau :

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:f1:6c:68 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.245/24 brd 192.168.122.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:d8:ef:e7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.175/24 brd 192.168.122.255 scope global eth1

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.122.1   0.0.0.0         UG    0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

Maintenant, je créé un container toto, et nomme son interface externe “toto” :

lxc.utsname = toto
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = toto
lxc.network.name = eth0
lxc.network.ipv4 = 192.168.5.2/30

je fais ifconfig toto 192.168.5.1/30 pour associer une adresse IP de mon coté. À l’intérieur de container je met 192.168.5.1 comme gateway.

Et pareil pour tutu :

lxc.utsname = tutu
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = tutu
lxc.network.name = eth0
lxc.network.ipv4 = 192.168.5.6/30

je fais ifconfig tutu 192.168.5.5/30. À l'intérieur du container je met 192.168.5.5 comme gateway.

Je me retrouve avec :

eth0 192.168.122.245
eth1 192.168.122.175

Ma question est la suivante, je voudrait NATer toto et tutu sur eth1. Pour que vu de l’extérieur ils aient, l'IP 192.168.122.175 (celle de eth1 quoi).
J'aimerai aussi faire en sorte que tout paquets arrivant sur eth1 sur le port 80 soit redirigé vers tutu, et les paquets arrivant sur eth1 sur le port 25 soient redirigés vers toto. Je veux garder eth0 comme interface de sortie par défaut pour l'hôte.

Je n'utilise pas de bridge (peut être à tort), car je ne veux pas que toto et tutu ne communique entre eux.

Comment dois-je faire ?

  • # probleme de reseau, adresse et masque

    Posté par . Évalué à 2.

    dans ton cas, il ne te manquerait alors plus que :

    • les regles de parefeu sur ton serveur pour envoyer le port 80 de l'IP 192.168.122.175 vers le port 80 de la machine 192.168.5.2
    • les regles de parefeu pour envoyer le port 25 vers la machine 192.168.5.6
    • l'activation de l'ip_forward

    meme si j'ai comme un doute sur le fonctionnement à cause des tutu et toto
    qui viennent au milieu là ou moi j'ai un lxcbridge qui configurer par defaut avec un serveur dhcp

    les cartes des containers vont par defaut dessus en dhcp, ce qui n'empeche pas de creer un container avec une IP fixe.

    • [^] # Re: probleme de reseau, adresse et masque

      Posté par . Évalué à 1.

      le problème c'est que les containers vont utiliser eth0 et non eth1 pour sortir. J'aimerai faire une route conditionnelle : si ça vient de l'interface tutu ou toto, faire sortir par l'interface eth1.

      Ruby est le résultat d'un gamin qui apprend le Java, puis jette un œil à Perl et se dit « je peux le réparer! »

      • [^] # Re: probleme de reseau, adresse et masque

        Posté par . Évalué à 2. Dernière modification le 08/02/13 à 14:33.

        tu fais tourner tes LXC sur la carte eth1, donc y a pas de raison que ca sorte par eth0

        d'ailleurs chez moi le network.link c'est la carte reseau de mon serveur que je veux utiliser.

        donc dans ton cas, ca devrait etre un alias de ton eth1 (que tu as appelé tutu et toto)
        qui ont une IP dans le reseau de tes containers.

        il ne te reste plus alors qu'a faire les bonnes regles de parefeu sur ton serveur pour diriger l'entrant et surtout le sortant vers l'IP de eth1

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.