I would like to benchmark virtual networking of KVM-QEMU. For this purpose, I connect two servers (server 1, and server 2) with one wire. I use server 1 to run the QEMU VM and I want to access this VM from server 2.
Here's the overview of the configuration.
o ens5f0 (ip 192.168.11.12/24)
|
| (server 2)
------------------------- (Host/Network boundary)
"
"
------------------------- (Host/Network boundary)
| (server 1)
|
o ens5f0
|
o br0. (ip 192.168.11.11/24)
|
------------------------- (VM/Host boundary)
| (guest)
|
o (enp0s2) inside VM
(ip 192.168.11.77/24 (from dhcp))
I followed the documentation here. I configure a bridge on server 1 and add interface ens5f0
to it.
server 1
---------------------
ip link add br0 type bridge
ip link set ens5f0 master br0
ip addr flush dev ens5f0
ip addr add 192.168.11.11/24 dev br0
ip link set dev br0 up
dnsmasq --interface=br0 --bind-interfaces --dhcp-range=192.168.11.12,192.168.11.254
ip link set dev ens5f0 up
Then I launch QEMU using the following command.
server 1
---------------------
qemu-system-x86_64 \
-initrd initrd.img-5.4.0-84-generic \
-kernel vmlinuz-5.4.0-84-generic \
-nographic -monitor none -serial stdio\
-append 'root=/dev/vda1 console=ttyS0' \
-machine q35 -cpu host \
-drive "file=${disk_img_snapshot},format=qcow2,if=virtio" \
-nic bridge,br=br0,model=virtio-net-pci \
-enable-kvm \
-m 2G \
-smp 4 \
;
Inside the VM, interface enp0s2
gets ip address 192.168.11.77/24
.
VM
--------------------
~$ sudo ip addr show enp0s2
2: enp0s2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.77/24 brd 192.168.11.255 scope global dynamic noprefixroute enp0s2
valid_lft 3531sec preferred_lft 3531sec
The ping
command has access to this ip address from server 1 and the ip address 192.168.11.11 is also accessable from the VM.
On the second server, I configure the IP address to be static and equal to 192.168.11.12/24.
server 2
------------------------
$ ip addr add 192.168.11.12/24 dev ens5f0
$ ping 192.168.11.11
PING 192.168.11.11 (192.168.11.11) 56(84) bytes of data.
64 bytes from 192.168.11.11: icmp_seq=1 ttl=64 time=0.327 ms
64 bytes from 192.168.11.11: icmp_seq=2 ttl=64 time=0.153 ms
The issue is that ip address 192.168.11.77 could not be reached from server 2 and the VM cannot ping server 2. How could could I enable external access to the VM on this link?