Comment virbr0-nic est créé?

11

Comment puis-je créer une interface réseau virtuelle comme virbr0-nic? J'essaie de trouver un moyen de créer une carte réseau comme virbr0-nicmais tout ce que je peux trouver sur Internet est de savoir comment créer une interface attachée à l'interface physique comme eth0:0. Quand j'écris

# brctl show
bridge name bridge id       STP enabled interfaces
virbr0      8000.525400e0af01   yes virbr0-nic
virbr1      8000.525400e8a6b1   yes virbr1-nic
                            vnet1

Il en virbr0est de même du pont auquel virbr0-nicest attaché. Alors, comment sont virbr0-nic-ils vnet1créés?

cosimo
la source
généralement associé à quelque chose comme un pont spécifique à un peu de logiciel. Qu'essayez-vous vraiment de faire?
Journeyman Geek
J'ai installé KVM et remarqué qu'il a créé une nouvelle carte réseau virbr0-nic. Je me demande simplement comment créer ma propre carte réseau comme celle-ci.
cosimo

Réponses:

10

Ce sont des appareils factices. Tu peux courir

modprobe dummy

Pour créer une interface réseau appelée dummy0.

Si vous voulez plus d'un appareil, vous pouvez créer disons 5 avec

modprobe dummy numdummies=5

Vous pouvez ensuite contrôler ces appareils comme n'importe quel autre appareil réseau.

Donnez-lui une adresse MAC avec

ip link set dummy0 address aa:aa:aa:bb:bb:bb

Donnez-lui une adresse IP avec

ip addr add 10.0.0.1/24 dev dummy0

Ajoutez-le à votre pont existant avec

brctl addif virbr0 dummy0

Configurez-le, déposez-le, désactivez-le, etc.

suprjami
la source
1
Cette réponse semble être plus correcte que l'alternative mais il manque de détails sur la création d'une interface équivalente à celle des configurations KVM par défaut (virbr0-nic).
pepper_chico
L'affiche de la question semble comprendre ce que fait le pont et ce que fait le dispositif factice, il voulait juste savoir comment créer des interfaces similaires. Vous êtes invités à améliorer la réponse si vous pensez que cela pourrait être mieux.
suprjami
6

La libvirt utilise le périphérique TUN à cet effet. Vous pouvez créer manuellement ce périphérique en suivant la commande:

# /usr/bin/tunctl -t virbr0-nic
Max A.
la source
3

virbr0-nic signifie Virtual bridge NIC.

Il s'agit essentiellement d'un pont entre votre carte réseau physique et la carte réseau virtuelle de votre machine virtuelle.

Pour gérer l'interface pontée, vous pouvez utiliser la brctlcommande. Vous pouvez lister toutes vos interfaces pontées avec

brctl show 

et ajoutez ou modifiez des ponts en fonction de vos besoins. Pour créer un nouveau pont, utilisez

brctl addbr <name>

<name>sera le nom de votre nouveau pont (comme virbr0-nic). Ensuite, vous pouvez ajouter des interfaces au pont avec

brctl addif <brname> <ifname>

Vous pouvez vous référer à la page de manuel pour plus d'informations.

Giorgio Previtera
la source
1
En fait, cela ne parle pas de la création d'un nouveau "virbr1-nic", juste d'un nouveau "virbr1" dont l'interface à définir ("virbr1-nic") est supposée exister précédemment.
pepper_chico
Je ne pense pas non plus que ce soit un pont entre le physique et le virtuel. Je dois faire du masquage entre virbr0 et le physique pour que les paquets soient routés.
Pete Ashdown
2

On ne sait pas exactement quels types d'appareils virbr0-nicet vnet1sont dans votre configuration. Il existe quelques types de périphériques virtuels qui peuvent être utiles à inclure dans un pont, dont certains peuvent être créés à l'aide de la ipcommande.

Un type de périphériques virtuels vethcrée des paires d'interfaces Ethernet virtuelles connectées.

ip link add veth0 type veth peer name veth1

Dans cet exemple veth0et veth1sont des noms d'interface arbitraires que j'ai trouvé pour l'exemple. Cette méthode peut par exemple être utile si vous souhaitez déplacer l'une des deux interfaces vers un espace de noms réseau différent.

Un autre type d'interface virtuelle consiste vlanà créer une seule interface Ethernet virtuelle attachée à une balise 802.1q spécifique sur une interface physique:

ip link add link eth0 name eth0.10 type vlan id 10

Il y a une page de manuel avec des informations sur encore plus de types d'interfaces virtuelles qui peuvent être créées avec la ipcommande. Le nom de la page de manuel dépend de la version que vous avez installée, je l'ai vue nommée ip-linkou juste ip.

De plus, si vous utilisez une virtualisation, il existe des interfaces virtuelles connectant l'hôte et la machine virtuelle. Les détails de ceux-ci dépendent de la solution de virtualisation que vous utilisez.

kasperd
la source
1

mais je n'ai pas cette chose / usr / bin / tunctl -t virbr0-nic qui est installée à partir du cockpit et je ne trouve pas d'option de suppression quand j'utiliserai une machine virtuelle est-ce bien quand elle existe mais pour le réseautage avec systemd-networkd j'ai beaucoup de problèmes avec ça. Cockpit utilisera Network-Manager et les fichiers de configuration de celui-ci. après l'installation, mon réseau est en panne, tous les appareils et applications montent en panne.

Si vous cochez «ifconfig -a» après une nouvelle installation du système RHEL / CentOS 6,7, vous trouverez le nom des interfaces virbr0. Voici un exemple du système CentOS 7 fraîchement installé.

ifconfig -a

....

virbr0: flags=4099[UP,BROADCAST,MULTICAST]  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0-nic: flags=4098[BROADCAST,MULTICAST]  mtu 1500
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Qu'est-ce que l'interface virbr0 L'interface de pont virbr0 est créée par la configuration réseau par défaut de libvirtd. libvirtd est le service qui fournit une base pour que l'hôte agisse comme un hyperviseur. Donc, si vous n'utilisez pas la virtualisation xen, vous pouvez soit empêcher le réseau par défaut de libvirtd d'être activé au démarrage, soit empêcher libvirtd lui-même de s'activer au démarrage. Le premier empêchera tout invité VM connecté au réseau par défaut de libvirtd d'avoir une connectivité réseau et le second empêchera les VM de fonctionner. Ce qui est bien si vous ne l'utilisez pas. Désactiver le réseau par défaut de libvirtd

  1. Vous pouvez désactiver temporairement le réseau par défaut de libvirtd à l'aide de la commande virsh. Cela ne persistera pas lors du redémarrage.

    virsh net-destroy par défaut

  2. Pour désactiver définitivement la création du réseau par défaut libvirtd au démarrage:

    virsh net-autostart default --disable

Supprimer le réseau par défaut de libvirtd Pour supprimer définitivement le réseau par défaut de libvirtd:

virsh net-undefine default

Pour désactiver définitivement le service libvirtd à partir du démarrage sur RHEL5 et RHEL6:

chkconfig libvirtd off

Pour désactiver définitivement le service libvirtd à partir du démarrage sur RHEL7:

systemctl disable libvirtd.service
Aktony
la source