¿Cómo se crea virbr0-nic?

11

¿Cómo puedo crear una interfaz de red virtual como virbr0-nic? Estoy tratando de encontrar una manera de crear una NIC, virbr0-nicpero todo lo que puedo encontrar en Internet es cómo crear una interfaz conectada a la interfaz física eth0:0. Cuando yo escribo

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

Así virbr0es el puente al que virbr0-nicestá unido. Entonces, ¿cómo están virbr0-nicy se vnet1crean?

cosimo
fuente
generalmente eso está asociado con algo como un puente específico para un poco de software. ¿Qué estás intentando REALMENTE hacer?
Journeyman Geek
He instalado KVM y noté que creó una nueva NIC virbr0-nic. Me pregunto cómo puedo crear mi propia NIC como esta.
cosimo

Respuestas:

10

Estos son dispositivos ficticios. Tu puedes correr

modprobe dummy

Para crear una interfaz de red llamada dummy0.

Si desea más de un dispositivo, puede crear digamos 5 con

modprobe dummy numdummies=5

Luego puede controlar estos dispositivos como cualquier otro dispositivo de red.

Dale una dirección MAC con

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

Dale una dirección IP con

ip addr add 10.0.0.1/24 dev dummy0

Agréguelo a su puente existente con

brctl addif virbr0 dummy0

Configúrelo, configúrelo, NAT apagado, etc.

suprjami
fuente
1
Esta respuesta parece ser más correcta que la alternativa, pero carece de detalles sobre la creación de una interfaz que sea equivalente a la configuración predeterminada de KVM (virbr0-nic).
pepper_chico
El cartel de la pregunta parece entender lo que hace el puente y lo que hace el dispositivo ficticio, solo quería saber cómo crear interfaces similares. Puede mejorar la respuesta si cree que podría ser mejor.
suprjami
6

El libvirt está utilizando el dispositivo TUN para este propósito. Puede crear este dispositivo manualmente siguiendo el comando:

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

virbr0-nic significa puente virtual NIC.

Básicamente es un puente entre su tarjeta de red física y la tarjeta de red virtual de su máquina virtual.

Para administrar la interfaz en puente, puede usar el brctlcomando. Puede enumerar todas sus interfaces puenteadas con

brctl show 

y agregue o modifique puentes de acuerdo a sus necesidades. Para crear un nuevo puente use

brctl addbr <name>

donde <name>estará el nombre de su nuevo puente (como virbr0-nic). Luego puede agregar interfaces al puente con

brctl addif <brname> <ifname>

Puede consultar la página de manual para obtener información adicional.

Giorgio Previtera
fuente
1
En realidad, esto no dice acerca de la creación de un nuevo "virbr1-nic", solo un nuevo "virbr1" cuya interfaz que se establecerá ("virbr1-nic") implica que existe previamente.
pepper_chico
Tampoco creo que sea un puente entre lo físico y lo virtual. Tengo que enmascarar entre virbr0 y lo físico para que los paquetes se enruten.
Pete Ashdown
2

No está claro exactamente qué tipos de dispositivos virbr0-nicy qué vnet1hay en su configuración. Hay algunos tipos de dispositivos virtuales que pueden ser útiles para incluir en un puente, algunos de los cuales se pueden crear con el ipcomando.

Un tipo de dispositivos virtuales es el vethque crea pares de interfaces Ethernet virtuales conectadas.

ip link add veth0 type veth peer name veth1

En este ejemplo veth0y veth1son nombres de interfaz arbitrarios que se me ocurrió para el ejemplo. Este método puede ser útil, por ejemplo, si desea mover una de las dos interfaces a un espacio de nombres de red diferente.

Otro tipo de interfaz virtual es vlandonde crea una única interfaz Ethernet virtual conectada a una etiqueta 802.1q específica en una interfaz física:

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

Hay una página de manual con información sobre aún más tipos de interfaces virtuales que se pueden crear con el ipcomando. El nombre de la página de manual depende de la versión que haya instalado, la he visto nombrada ip-linko simplemente ip.

Además, si está utilizando una virtualización, hay interfaces virtuales que conectan el host y la VM. Los detalles específicos dependen de la solución de virtualización que esté utilizando.

kasperd
fuente
1

pero no tengo esto / usr / bin / tunctl -t virbr0-nic, lo que está instalado desde la cabina y no puedo encontrar una opción de eliminación cuando usaré una máquina virtual, está bien cuando existe, pero para redes con systemd-networkd tengo muchos problemas con él. Cockpit utilizará Network-Manager y los archivos de configuración del mismo. Después de la instalación, mi red deja de funcionar y todos los dispositivos y aplicaciones aumentan con muchos errores

Si marca 'ifconfig -a' después de una nueva instalación del sistema RHEL / CentOS 6,7, encontrará el nombre de las interfaces virbr0. Aquí hay un ejemplo del sistema CentOS 7 recién instalado.

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é es la interfaz virbr0 La interfaz de puente virbr0 se crea mediante la configuración de red predeterminada de libvirtd. libvirtd es el servicio que proporciona una base para que el host actúe como hipervisor. Entonces, en caso de que no esté utilizando la virtualización xen, puede evitar que la red predeterminada de libvirtd se active durante el arranque, o puede evitar que la propia libvirtd se active durante el arranque. El primero evitará que cualquier invitado de VM conectado a la red predeterminada de libvirtd tenga conectividad de red y el segundo evitará que las VM se ejecuten en absoluto. Lo cual está bien si no lo está usando. Deshabilitar la red predeterminada libvirtd

  1. Puede deshabilitar la red predeterminada de libvirtd temporalmente usando el comando virsh. Esto no persistirá durante el reinicio.

    virsh net-destroy predeterminado

  2. Para desactivar permanentemente la red predeterminada libvirtd para que no se cree en el arranque:

    virsh net-autostart default --disable

Eliminar la red predeterminada de libvirtd Para eliminar permanentemente la red predeterminada de libvirtd:

virsh net-undefine default

Para desactivar permanentemente el servicio libvirtd para que no se inicie en el arranque en RHEL5 y RHEL6:

chkconfig libvirtd off

Para desactivar permanentemente el servicio libvirtd para que no se inicie en el arranque en RHEL7:

systemctl disable libvirtd.service
Aktony
fuente