Quelle est la différence entre virbr # et vnet #?

11

J'utilise KVM sur RHEL6 et j'y ai créé plusieurs machines virtuelles. La ifconfigcommande émise sur la ligne de commande du système hôte affiche une liste de virbr0, virbr1 ... et vnet0, vnet2 ... S'agit-il des adresses IP du système d'exploitation invité? Quelles sont les différences entre virbr # et vnet #?

xczzhh
la source

Réponses:

21

Ce sont des interfaces réseau, pas des adresses IP. Une interface réseau peut avoir des paquets de n'importe quel protocole échangés sur eux, y compris IPv4 ou IPv6, auquel cas ils peuvent recevoir une ou plusieurs adresses IP.

virbrsont des interfaces de pont. Ils sont virtuels dans la mesure où aucune carte d'interface réseau ne leur est associée. Leur rôle est d'agir comme un véritable pont ou commutateur, c'est-à-dire des paquets de commutation (au niveau de la couche 2) entre les interfaces (réelles ou autres) qui y sont attachées, tout comme le ferait un véritable commutateur Ethernet.

Vous pouvez attribuer une adresse IP à ce périphérique, ce qui donne essentiellement à l'hôte une adresse IP sur ce sous-réseau auquel le pont se connecte. Il utilisera ensuite l'adresse MAC de l'une des interfaces attachées au pont.

Le fait que leur nom commence par virne les distingue pas de n'importe quelle autre interface de pont, c'est juste que ceux-ci ont été créés par ceux libvirtqui réservent cet espace de nom aux bridgeinterfaces

vnetles interfaces sont d'autres types d'interfaces virtuelles appelées tapinterfaces. Ils sont attachés à un processus (dans ce cas, le processus s'exécute dans l' qemu-kvmémulateur). Ce que le processus écrit sur cette interface apparaîtra comme ayant été reçu sur cette interface par l'hôte et ce que l'hôte transmet sur cette interface est disponible pour lecture par ce processus. qemul'utilise généralement pour son interface réseau virtualisée dans l'invité.

En règle générale, un vnetsera ajouté à une interface de pont, ce qui signifie brancher la machine virtuelle sur un commutateur.

Stéphane Chazelas
la source
Merci beaucoup pour la réponse! Mais, s'il virbrs'agit d'une interface de pont, et comme les ponts sont des périphériques de couche deux, pourquoi a-t-il besoin d'une adresse IP (il y a des adresses IP après chaque interface virbr #)?
xczzhh
J'ai mis à jour la réponse. L'idée est de donner à l'hôte une adresse IP sur ce réseau.
Stéphane Chazelas
Merci encore pour la réponse. Je sais que deux OS invités différents créés par KVM peuvent partager la même chose virbr, mais que faire si j'ai un troisième OS invité qui est connecté à un autre virbr, et que ces deux virbrsont dans des réseaux IP différents, que dois-je faire pour que ces deux réseaux peut communiquer entre eux?
xczzhh
la même chose que vous feriez avec de vrais interrupteurs. Une machine, généralement l'hôte, car elle a une adresse IP sur les deux réseaux, serait acheminée entre les deux réseaux. Il le fait probablement par défaut, mais vous devrez peut-être modifier la configuration du pare-feu sur l'hôte.
Stéphane Chazelas
Oui, j'ai essayé, mais le problème est que l'OS A peut cingler l'OS B, mais l'OS B ne peut pas cingler l'OS A. Savez-vous quel pourrait être le problème ...? Merci encore :)
xczzhh