連接在 KVM 中運行的兩個 VM

連接在 KVM 中運行的兩個 VM

短的:讓兩個虛擬機器在同一虛擬機器管理程式上運作並相互通訊。

我有兩個虛擬機器在 KVM 下運行,我試圖透過 Cockpit 管理它們。

虛擬機器管理程式和虛擬機器運行的是 Ubuntu 20.04。

VM 使用指向 enp2s0 的 br0 (192.168.1.248/24) 進行設定。

他們獲得自己的本地 LAN IP,例如: 192.168.1.152 192.168.1.220

這些可以在本地 LAN 上看到並 ping 通。然而,他們無法 ping 或看到對方。

我怎樣才能連接它們?

細節:

它們不一定必須透過 192.168.* 相互連接,它可以透過 KVM 主機上的虛擬網路進行連接。但它們必須在區域網路上保持可訪問性。我嘗試透過 Cockpit 介面建立虛擬網絡

嘗試過: 透過VM介面建立虛擬網絡,但VM似乎沒有透過ifconfig顯示虛擬介面 - 僅顯示本機和enp1so

更新:

不確定這是否相關(當嘗試建立虛擬網路時,我在 Cockpit 介面中也被阻止)。

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
~
~

討論:

在虛擬機器和主機上運行

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

對於 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

解決方案: 最終 Docker 在系統上並行運行。確保安裝 KVM 時沒有執行 Docker - 因為它將阻止虛擬主機之間的所有通訊。

相關內容