Verbinden von zwei in KVM laufenden VMs

Verbinden von zwei in KVM laufenden VMs

Kurz:Bringen Sie zwei VMs dazu, auf demselben Hypervisor miteinander zu kommunizieren.

Ich habe zwei VMs, die unter KVM laufen, und versuche, sie über Cockpit zu verwalten.

Der Hypervisor und die VMs laufen unter Ubuntu 20.04.

VMs werden mit br0 (192.168.1.248/24) konfiguriert, das auf enp2s0 verweist.

Sie erhalten ihre eigenen lokalen LAN-IPs wie: 192.168.1.152 192.168.1.220

Diese können im lokalen LAN gesehen und angepingt werden. Sie können sich jedoch nicht gegenseitig anpingen oder sehen.

Wie kann ich sie verbinden?

Detail:

Sie müssen nicht unbedingt über 192.168.* miteinander verbunden sein, es kann über ein virtuelles Netzwerk auf dem KVM-Host erfolgen. Sie müssen jedoch im LAN erreichbar bleiben. Ich habe versucht, ein virtuelles Netzwerk über die Cockpit-Schnittstelle zu erstellen.

Versucht: Erstellen eines virtuellen Netzwerks über die VM-Schnittstelle, aber die VMs scheinen die virtuelle Schnittstelle nicht über ifconfig anzuzeigen - nur lokal und enp1so

Aktualisieren:

Ich bin nicht sicher, ob das damit zusammenhängt (ich werde dadurch auch in der Cockpit-Oberfläche blockiert, wenn ich versuche, virtuelle Netzwerke zu erstellen).

sudo systemctl status libvirtd
    ● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-29 13:46:24 PDT; 6h ago
TriggeredBy: ● libvirtd.socket
             ● libvirtd-admin.socket
             ● libvirtd-ro.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 1068 (libvirtd)
      Tasks: 20 (limit: 32768)
     Memory: 32.0M
     CGroup: /system.slice/libvirtd.service
             ├─  1068 /usr/sbin/libvirtd
             ├─ 52826 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/virtual0.conf --leasefile-ro --dhcp-script=/usr/lib/libv>
             └─182682 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/virtual1.conf --leasefile-ro --dhcp-script=/usr/lib/libv>

Aug 29 19:45:25 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:25 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:32 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:33 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:33 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:33 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:39 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:40 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:40 dio libvirtd[1068]: internal error: No more available PCI slots
Aug 29 19:45:40 dio libvirtd[1068]: internal error: No more available PCI slots
~
~

Diskussion:

Ausführen auf den VMs und dem Host

sudo ebtables-save
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
sudo nft list ruleset
table bridge filter {
        chain INPUT {
                type filter hook input priority filter; policy accept;
        }

        chain FORWARD {
                type filter hook forward priority filter; policy accept;
        }

        chain OUTPUT {
                type filter hook output priority filter; policy accept;
        }
}
ip -d link

für br0

4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 4c:cc:6a:06:f3:8b brd ff:ff:ff:ff:ff:ff promiscuity 1 minmtu 68 maxmtu 65535
    bridge forward_delay 1500 hello_time 200 max_age 2000 ageing_time 30000 stp_state 0 priority 32768 vlan_filtering 0 vlan_protocol 802.1Q bridge_id 8000.4c:cc:6a:6:f3:8b designated_root 8000.4c:cc:6a:6:f3:8b root_port 0 root_path_cost 0 topology_change 0 topology_change_detected 0 hello_timer    0.00 tcn_timer    0.00 topology_change_timer    0.00 gc_timer  280.62 vlan_default_pvid 1 vlan_stats_enabled 0 vlan_stats_per_port 0 group_fwd_mask 0 group_address 01:80:c2:00:00:00 mcast_snooping 1 mcast_router 1 mcast_query_use_ifaddr 0 mcast_querier 0 mcast_hash_elasticity 16 mcast_hash_max 4096 mcast_last_member_count 2 mcast_startup_query_count 2 mcast_last_member_interval 100 mcast_membership_interval 26000 mcast_querier_interval 25500 mcast_query_interval 12500 mcast_query_response_interval 1000 mcast_startup_query_interval 3124 mcast_stats_enabled 0 mcast_igmp_version 2 mcast_mld_version 1 nf_call_iptables 0 nf_call_ip6tables 0 nf_call_arptables 0 addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 64000 gso_max_segs 64

Lösung: Dies führte letztendlich dazu, dass Docker parallel auf dem System ausgeführt wurde. Stellen Sie sicher, dass Sie Docker nicht ausführen, wenn Sie KVM installieren, da dies die gesamte Kommunikation zwischen virtuellen Hosts blockiert.

verwandte Informationen