Come viene creato virbr0-nic?


11

Come posso creare un'interfaccia di rete virtuale come virbr0-nic? Sto cercando di trovare un modo per creare una NIC come, virbr0-nicma tutto ciò che posso trovare su Internet è come creare un'interfaccia collegata all'interfaccia fisica come eth0:0. Quando scrivo

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

Così virbr0è il ponte a cui virbr0-nicè attaccato. Quindi, come sono virbr0-nice vnet1creati?


di solito è associato a qualcosa come un bridge specifico per un po 'di software. Cosa stai davvero cercando di fare?
Journeyman Geek,

Ho installato KVM e ho notato che ha creato la nuova NIC virbr0-nic. Mi sto solo chiedendo come posso creare la mia scheda NIC come questa.
Cosimo,

Risposte:


10

Questi sono dispositivi fittizi. Puoi correre

modprobe dummy

Per creare un'interfaccia di rete chiamata dummy0.

Se vuoi più di un dispositivo, puoi creare dire 5 con

modprobe dummy numdummies=5

È quindi possibile controllare questi dispositivi come qualsiasi altro dispositivo di rete.

Dagli un indirizzo MAC con

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

Dagli un indirizzo IP con

ip addr add 10.0.0.1/24 dev dummy0

Aggiungilo al tuo bridge esistente con

brctl addif virbr0 dummy0

Impostalo, impostalo, NAT spento e così via.


1
Questa risposta sembra essere più corretta dell'alternativa, ma manca di dettagli sulla creazione di un'interfaccia equivalente a ciò che KVM imposta di default (virbr0-nic).
pepper_chico,

Il poster della domanda sembra capire cosa fa il bridge e cosa fa il dispositivo fittizio, voleva solo sapere come creare interfacce simili. Puoi migliorare la risposta se ritieni che potrebbe essere migliore.
suprjami,

6

La libvirt sta usando il dispositivo TUN per questo scopo. È possibile creare manualmente questo dispositivo con il seguente comando:

# /usr/bin/tunctl -t virbr0-nic

3

virbr0-nic sta per Virtual Bridge NIC.

È fondamentalmente un ponte tra la tua scheda di rete fisica e la scheda di rete virtuale della tua macchina virtuale.

Per gestire l'interfaccia con bridge è possibile utilizzare il brctlcomando. Puoi elencare tutte le tue interfacce con bridge

brctl show 

e aggiungere o modificare i ponti in base alle proprie esigenze. Per creare un nuovo bridge utilizzare

brctl addbr <name>

dove <name>sarà il nome del tuo nuovo bridge (come virbr0-nic). Quindi puoi aggiungere interfacce al bridge con

brctl addif <brname> <ifname>

È possibile fare riferimento alla pagina man per ulteriori informazioni.


1
Questo in realtà non dice della creazione di un nuovo "virbr1-nic", solo un nuovo "virbr1" la cui interfaccia da impostare ("virbr1-nic") è implicita esistere in precedenza.
pepper_chico,

Non credo sia neanche un ponte tra fisico e virtuale. Devo fare il mascheramento tra virbr0 e il fisico per instradare i pacchetti.
Pete Ashdown,

2

Non è chiaro esattamente quali tipi di dispositivi virbr0-nice vnet1nella tua configurazione. Esistono alcuni tipi di dispositivi virtuali che possono essere utili da includere in un bridge, alcuni dei quali possono essere creati utilizzando il ipcomando.

Un tipo di dispositivi virtuali è quello vethche crea coppie di interfacce Ethernet virtuali connesse.

ip link add veth0 type veth peer name veth1

In questo esempio veth0e veth1sono nomi di interfaccia arbitrari che ho trovato per l'esempio. Ad esempio, questo metodo può essere utile se si desidera spostare una delle due interfacce in uno spazio dei nomi di rete diverso.

Un altro tipo di interfaccia virtuale è la vlancreazione di un'unica interfaccia Ethernet virtuale collegata a un tag 802.1q specifico su un'interfaccia fisica:

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

C'è una pagina man con informazioni su ancora più tipi di interfacce virtuali che possono essere create con il ipcomando. Il nome della pagina man dipende dalla versione installata, l'ho vista nominata ip-linko semplicemente ip.

Inoltre, se si utilizza qualsiasi virtualizzazione, esistono interfacce virtuali che collegano host e VM. Le specifiche dipendono dalla soluzione di virtualizzazione che si sta utilizzando.


1

ma non ho questa / usr / bin / tunctl -t virbr0-nic cosa che viene installata dalla cabina di pilotaggio e non riesco a trovare un'opzione di eliminazione quando userò una macchina virtuale va bene quando esiste ma per il networking con systemd-networkd ho molti problemi con esso. Cockpit utilizzerà Network Manager e i file di configurazione da esso. dopo l'installazione la mia rete sta andando in crash tutti i dispositivi e le applicazioni aumentano con molti guasti.

Se si controlla 'ifconfig -a' dopo una nuova installazione del sistema RHEL / CentOS 6,7, si trova il nome virbr0 delle interfacce. Ecco un esempio del sistema CentOS 7 appena installato.

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

Che cos'è l'interfaccia virbr0 L'interfaccia del ponte virbr0 è creata dalla configurazione di rete predefinita di libvirtd. libvirtd è il servizio che fornisce una base affinché l'host funga da hypervisor. Quindi, nel caso in cui non si stia utilizzando la virtualizzazione xen, è possibile impedire l'attivazione della rete predefinita di libvirtd all'avvio, oppure è possibile impedire l'attivazione stessa di libvirtd all'avvio. Il primo impedirà a qualsiasi guest VM collegato alla rete predefinita di libvirtd di avere connettività di rete e il secondo impedirebbe l'esecuzione delle VM. Va bene se non lo stai usando. Disabilita la rete predefinita di libvirtd

  1. Puoi disabilitare temporaneamente la rete predefinita di libvirtd usando il comando virsh. Questo non persisterà durante il riavvio.

    virsh net-destroy predefinito

  2. Per disabilitare permanentemente la creazione della rete predefinita libvirtd all'avvio:

    virsh net-autostart default --disable

Rimuovi la rete predefinita di libvirtd Per rimuovere definitivamente la rete predefinita di libvirtd:

virsh net-undefine default

Per disabilitare permanentemente il servizio libvirtd dall'avvio su RHEL5 e RHEL6:

chkconfig libvirtd off

Per disabilitare permanentemente il servizio libvirtd dall'avvio su RHEL7:

systemctl disable libvirtd.service
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.