Forum Linux.général Réseau: vlan qui se connecte avec à la fois wlan0 et eth0

Posté par  . Licence CC By‑SA.
Étiquettes :
0
29
oct.
2017

Bonjour.

Je viens de faire l'acquisition d'un PC portable, et bien entendu, j'ai bien l'intention de m'en servir pour programmer et faire joujou avec des choses que je ne connais pas encore (cfengine, notamment).
Du coup, comme c'est un portable, j'ai 2 interfaces réseau: wlan0 et eth0.

J'aimerai pouvoir créer une 3ème interface (via /etc/network/interfaces pour le moment, mais si je pouvais apprendre à le faire de manière distro voire OS -agnostique, ça m'intéresserait beaucoup aussi) virtuelle et configurer l'hôte pour se comporter comme un routeur entre ces 3 interfaces, sachant que, au moins pour mes usages actuels, wlan0 et eth0 sont intermittents: soit je me connecte au LAN via wifi, soit via du filaire, et du coup ces interfaces sont sur le même réseau (domestique).

Pour une machine avec une seule interface, je sais faire, en gros, installer vlan, ajouter eth0.0 dans le fichier interfaces, activer l'ip forwarding dans le kernel (sysctl.conf), rediriger le traffic de certains "ports physiques" vers des machines précises du VLAN et c'est à peu près tout (il y a aussi une règle pour faire le routage inverse, je l'ai dans un fichier mais pas sous le coude).

La ou est ma question, et c'est quelque chose que je n'arrive pas à trouver sur le net, c'est comment faire pour que le VLAN utilise l'interface physique qui a une IP, sachant que ces IPs sont fournies par le DHCP domestique et que je n'ai pas, à l'heure actuelle, besoin de gérer le cas ou les 2 interfaces physiques ont une IP en même temps (ça serait pas mal, c'est sûr, mais déjà mettre en place un truc "simple" avant de passer à un truc vraiment propre).

  • # j'ai pas tout compris

    Posté par  . Évalué à 2.

    si tu veux faire une interface n°3
    et faire du "routage" entre les 3 interfaces,

    si tu utilises les vrais vlan (eth0.Z, eth0.X)
    tes interfaces eth0.Z et eth0.X ne peuvent pas acceder à ton DHCP (enfin celui de ta box) car celui-ci ne repond que sur le vlan par defaut (le 1, eth0 ou eth0.1)

    si tu fais un alias (eth0:0, eth0:1, eth0:2…) ce n'est qu'un alias, et tu fais ce que tu veux avec,
    tu definis un autre adressage reseau, et tu fais ton routage entre le LAN et cette interface ou entre le wifi et cette interface.

    enfin si ton but c'est que les 3 interfaces soient toutes connectées sur ton reseau de la maison et gérée comme une seule interface qui aurait toujours la meme IP, ce n'est plus du routage, c'est du bonding (aggregat) ou du bridge (pont) qui vont regrouper tes interfaces comme une seule,
    puis c'est cette interface que tu met sur le reseau

    • [^] # Re: j'ai pas tout compris

      Posté par  . Évalué à 2.

      Je vais essayer d'être plus clair:

                        +--- eth0 ---+
      LAN domestique ---+            +--- PC --- VLAN --- VM_1
                        +--- wlan0 --+
      

      Ce que je voudrai, c'est configurer PC pour que VM_1 puisse accéder au LAN domestique dès lors que soit eth0 soit wlan0 y est connecté.

      Je ne connais pas trop le réseau (ça s'est vu, j'imagine :)) du coup je me suis peut-être trompé sur les noms, voire, très probable, je me mélange totalement les pinceaux.

      D'habitude, avec juste une seule interface (sur eth0 qui est configurée en client dhcp, le routeur domestique étant en 192.168.1.1), je procède ainsi:
      J'ajoute dans /etc/network/interfaces:

      auto eth0.0
      iface eth0.0 inet static
        address 10.0.0.1
        network 255.0.0.0
        gateway 192.168.1.1
      

      Puis au démarrage de la machine iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE et ensuite pour chaque machine avec un service que je veux rendre accessible sur le LAN domestique iptables -t nat -A PREROUTING -i eth0 -d <ip externe> -p tcp --dport <port externe> -j DNAT --to <IP:port interne>. Bon, forcément, ça dépend de l'ip d'eth0, c'est loin d'être parfait, mais ça fonctionne.

      Je doute fortement que dupliquer ça avec wlan0 fonctionnerait…

      • [^] # Re: j'ai pas tout compris

        Posté par  . Évalué à 3.

        • quel systeme de virtualisation utilises-tu ?

          • virtualbox fait cela tres bien avec une carte virtuelle que tu regles en NAT, à ce moment là peut importe la config du PC physique (lan ou wifi) la VM a son reseau, nat derriere la machine physique
          • kvm : il faut mettre une carte virtuelle, et là aussi faire un NAT entre la carte virtuelle est l'une des cartes physiques
        • si tu veux juste mettre ta VM sur la LAN, tu peux aussi utiliser les modes PONT (bridge)

          • virtualbox te demandera sur quelle carte faire le pont, il faut modifier la config à chaque changement d'interface entre le wifi et le lan
          • kvm : idem, tu vas monter un bridge entre la carte virtuelle et la carte physique (wlan ou lan) qu'il faudra adapter à chaque demarrage.

        du coup, on le voit, il y a quand meme une petite manip à faire à chaque fois, sauf en NAT sous virtualbox

        tu dois aussi pouvoir faire ce que tu envisages avec ton schema

        1°) faire un bond de tes interfaces wlan0 et lan0 (vues alors comme l'interface bond0) c'est cette interface que tu mettras en dhcp

        2°) monter la VM en bridge ou en nat par dessus bond0

        • [^] # Re: j'ai pas tout compris

          Posté par  . Évalué à 2.

          Pour le moment, j'utilise virtualbox, mais je t'avoue qu'a terme j'aimerai finir par en utiliser un autre, d'une part pour ne pas être enfermé dans une seule techno, et d'autre part parce que je trouve son interface en ligne de commande mal foutue.

          Par ailleurs, il me semblait que le réglage NAT de virtualbox ne permets pas à la machine hôte d'accéder aux machines virtuelles?

          tu dois aussi pouvoir faire ce que tu envisages avec ton schema

          À vue nez, c'est ce que je voudrais faire. Je vais essayer de chercher par moi-même maintenant que tu m'as passé quelques mots-clés (bond, notamment).

          Il faudrait vraiment que j'arrive à prendre le temps d'étudier le fonctionnement des réseaux moi…

          • [^] # Re: j'ai pas tout compris

            Posté par  . Évalué à 2.

            Par ailleurs, il me semblait que le réglage NAT de virtualbox ne permets pas à la machine hôte d'accéder aux machines virtuelles?

            suffit d'aller dans le panneau de configuration des redirections de ports.

            tu peux aussi creer un sous reseau dédié où tu vires le dhcp pour mettre tes machines en IPs derriere ton NAT

        • [^] # Re: j'ai pas tout compris

          Posté par  . Évalué à 1.

          Bonjour Neox, Bonjour Freem,

          J'en profites pour poser une question qui n'est pas forcément directement en rapport avec ce que veut faire freem mais qui reste dans le sujet et peut, je le penses avoir un intérêt dans la compréhension du sujet.

          J'ai tenté de monter un NextCloud (QEMU-KVM) pour synchroniser mes contacts, calendriers, fichiers, sms etc entre mon PC et mon smartphone. Pour cela il faut que le smartphone puisses communiquer avec la VM et l'idée était de mettre cette VM directement sur mon lan (disons 192.168.1.0/24) via un pont. L'idée été que ma VM comme le PC hôte aient tous les deux une IP du LAN (disons 192.168.1.1 pour l'hôte et 192.168.1.2 pour la VM) mais je n'arrivais jamais à ce résultat, c'était soit l'un avait une IP, soit l'autre avait une ip mais jamais les 2 en même temps.
          Je me suis dis que je devais mal m'y prendre et qu'à l'occasion il faudrait que je demande de l'aide. J'avais envisagé la piste du routage via NAT mais là aussi sans savoir comment m'y prendre car moi aussi je n'y connais pas grand choses en réseau :-).
          Je notes ta technique freem qui pourrait me permettre de router ma VM NextCloud et m'a fait faire un bond (sans jeux de mots) dans la compréhension du routage internet. En parallèle j'aimerai bien comprendre si mon approche de pont pouvait me permettre via un serveur dhcp (freebox) d'allouer une IP (dynamique forcément) du même LAN à mes 2 (ou plus) machines.

          Notes : en rédigeant ce commentaire, je viens de comprendre qu'il s'agit peut être d'un problème de comprenette. Je croyais qu'un pont reliait plusieurs objets réseaux alors qu'en fait, on pourrait plutôt voir qu'un pont enjambe un objet, en occurrence l'interface réseau de ma VM enjambe l'interface réseau de mon hôte pour accéder directement au port ethernet ?

          Julien_c'est_bien (y'a pas que Seb)

          • [^] # Re: j'ai pas tout compris

            Posté par  . Évalué à 2.

            Notes : en rédigeant ce commentaire, je viens de comprendre qu'il s'agit peut être d'un problème de comprenette. Je croyais qu'un pont reliait plusieurs objets réseaux alors qu'en fait, on pourrait plutôt voir qu'un pont enjambe un objet, en occurrence l'interface réseau de ma VM enjambe l'interface réseau de mon hôte pour accéder directement au port ethernet ?

            c'est exactement ca,
            normalement en mode pont, ta VM accedes à ton reseau comme si tu avais 2 PCs physiques,
            c'est ensuite alors l'adresse MAC de la VM qui fait que le serveur dhcp et les machines du reseau voit que c'est une machine differente,
            et alors le dhcp donne une IP differente,

            le fait que les 2 machines obtiennent la meme IP est tres etrange et il doit y avoir une erreur dans le parametrage du pont

            • [^] # Re: j'ai pas tout compris

              Posté par  . Évalué à 1.

              Non, elles n'avait pas la même IP, seule l'une des 2 avait une IP et pouvait trafiquer sur le réseau, pas l'autre.
              De ce que j'ai pu me renseigner sur le net, il s'agissait bien d'avoir 2 IPs du LAN différentes sur les 2 machines. Tu confirme donc.
              Entre temps j'ai dû ré-installer ma machine (problème d'hibernation avec lvm over Luks, j'ai réinstallé sans lvm pour simplifier - j'ai fait une partition pour / et basta, mon Home et le reste sont sauvegardés et pour les bidouilles, y'a les VM) je vais ré-essayer.

              Julien_c'est_bien (y'a pas que Seb)

      • [^] # Re: j'ai pas tout compris

        Posté par  (site web personnel) . Évalué à 2.

        Teaming

        pour ce que tu veux faire il y a plusieurs solution, teaming, bonding, brigding, il y a peu de différence en teaming et bonding et une très grosse différence avec le bridging.

        ce que tu peux faire c'est une interface de bonding (ou teaming) entre eth0 et wlan0 en mode failover, et ensuite de faire un bridge avec cette interface team0 (par exemple) dans lequel tu ajoute les interfaces de tes VM.

        ainsi chaque interface qui intégrera le bridge sera aiguillé et passera par l'interface de ton choix eth0/wlan0.

        ensuite je t conseil vivement d utiliser systemd-networkd pour cela parce que l'avenir c'est déjà du passé, que systemd c'est bien,… :D

        la doc de arch est bien détaillée pour ca, meme si tu n'est pas sous arch

        https://wiki.archlinux.org/index.php/systemd-networkd

        mais en gros cela revient à mettre quelque fichiers très simples dans /etc/systemd/network, et d activer systemd-netword au boot

        Perso, je trouve la config plus simple à gérer, et de plus c'est cross distrib :)

        Voila

Suivre le flux des commentaires

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