Emulieren Sie das Abziehen eines Netzwerkkabels mit qemu-kvm

22

[Hintergrund: Ich möchte tatsächlich testen, wie eine statische Netzwerkschnittstelle heruntergefahren wird, wenn keine Verbindung besteht. ]

Ich richte mit libvirt (via virt-manager) eine virtuelle QEMU-KVM-Maschine ein . Ich habe zwei NICs darauf gelegt (beide virtio). Sie sind mit einer physischen Netzwerkkarte auf dem Host verbunden.

Ich möchte testen, was NetworkManager macht, wenn ich einen "ausziehe". Aber dafür gibt es im virt-manager weder einen Button / eine Checkbox noch eine schnelle Google-Suche.

Wie emuliere ich das Abziehen des Netzwerkkabels?

derobert
quelle
Virt-Manager ist nicht die beste GUI, die jemals gemacht wurde ...
Hauke ​​Laging
@HaukeLaging das ist definitiv wahr!
Derobert

Antworten:

27

Sie können dies in der Konsole tun mit:

virsh domif-setlink domain interface-device state

Und überprüfen Sie den Status mit:

virsh domifstat domain interface-device

Sie können die Netzwerkschnittstellen sehen, die konfiguriert sind mit:

virsh domifaddr domain

Weitere Informationen finden Sie auf der Manpage.


Hier ist ein Beispiel für einen typischen Workflow:

$ sudo virsh list
 Id    Name                           State
----------------------------------------------------
 24    ubuntu17.10                    running

$ sudo virsh domifaddr ubuntu17.10
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:d0:76:cb    ipv4         192.168.122.183/24

$ sudo virsh domif-getlink ubuntu17.10 vnet0
vnet0 up
$ sudo virsh domif-setlink ubuntu17.10 vnet0 down
Device updated successfully

$ sudo virsh domif-getlink ubuntu17.10 vnet0
vnet0 down
gerlos@mediavault[20:53]:~$ sudo virsh domif-setlink ubuntu17.10 vnet0 up  
Device updated successfully

gerlos@mediavault[20:53]:~$ sudo virsh domif-getlink ubuntu17.10 vnet0
vnet0 up
Hauke ​​Laging
quelle
Die Version von virsh, die ich auf meiner Distribution habe, ist ziemlich alt (1.2.2) und hat den domifaddrBefehl nicht. Ich musste domifliststattdessen verwenden.
Lacek