L'hôte dispose d'une seule adresse IP externe disponible, j'ai donc configuré mes invités KVM avec NAT.
Comment configurer une redirection de port pour transmettre certaines des demandes de l'extérieur aux invités?
Je n'ai trouvé aucune documentation à ce sujet. La réponse la plus proche est probablement cette réponse , mais il est également mentionné qu'il existe un moyen plus facile de le faire dans libvirt 0.8.3. Quelqu'un connaît-il une façon plus actuelle de procéder?
Réponses:
Voici une meilleure façon de configurer la redirection de port, en utilisant un script de raccordement ( source ).
Dans
/etc/libvirt/hooks/qemu
:Vous devez définir les quatre variables en haut pour qu'elles correspondent à votre configuration libvirt.
Vous devrez redémarrer libvirt-bin, ce qui se fait sur Ubuntu avec:
alors vous devrez redémarrer l'invité. Sur Ubuntu, vous devrez vous ajuster
/etc/apparmor.d/usr.sbin.libvirtd
pour permettre au script hook de s'exécuter:À côté de
ajouter
Rechargez ensuite l'apparmeur:
Il y a probablement un moyen de configurer automatiquement en
$GUEST_IPADDR
utilisant virsh / dumpxml / iface-dumpxml, mais je ne l'ai pas trouvé. Alternativement, l'IP peut être définie statiquement dans la documentation réseau xml : .Pour autant que je sache, les filtres réseau ne peuvent être utilisés que pour restreindre ce qui se passe sur le réseau virtuel, et ils ne sont pas utiles pour la redirection de port.
la source
/etc/libvirt/hooks/** rmix,
dans le fichier de configuration apparmor par défaut, et il semble avoir le même effet. J'ai pu exécuter le script sans modifier la configuration de l'apparmeur.Je suis dans une situation similaire. J'ai un serveur Windows fonctionnant en KVM dans le réseau NAT privé qui est connecté sur l'hôte via l'interface virbr0. Je veux accéder à la machine virtuelle via un bureau distant. Je dois donc transférer le trafic vers le port 3389 (RDP) vers le port VM 3389. J'y suis parvenu avec quelques règles iptables.
HOST-IP, VM-IP et VM-NET doivent bien sûr être adoptés. Cependant, jouer avec iptables et libvirt est délicat. En ce moment, je recherche une solution pour accéder à Internet sur ma machine virtuelle que j'ai perdue en raison des règles iptables :-(
la source
Je crois que la réponse que vous mentionnez montre toujours des règles iptables appropriées. Cependant, vous pouvez désormais utiliser un hook de script pour créer et détruire des règles lorsque les machines virtuelles sont démarrées et arrêtées. Comme Isaac l'a dit dans la réponse précédente, il existe également des filtres réseau dans libvirt actuel, mais je ne sais pas comment ni même s'ils peuvent être utilisés pour ouvrir des ports pour les invités NAT.
la source
comment le réseau invité est-il configuré? s'il est ponté, il vous suffit de transmettre les ports aux adresses IP des invités. Si vos invités sont derrière un autre NAT, celui que libvirt met en place, alors ça se complique
mais dans tous les cas, ici, vous traitez simplement les VM comme vous le feriez pour une machine physique
la source