在 Ubuntu 20.04 LTS 上运行 KVM 的虚拟机客户机上,SSH/HTTPS 连接时出现间歇性故障 - 发送 ping 后,SSH/HTTPS 可以正常工作

在 Ubuntu 20.04 LTS 上运行 KVM 的虚拟机客户机上,SSH/HTTPS 连接时出现间歇性故障 - 发送 ping 后,SSH/HTTPS 可以正常工作

第一次发帖。

连接到客户虚拟机的 SSH/HTTPS 时出现间歇性故障的奇怪问题。

如何重现问题:

  1. 启动主机和客户机,等待几个小时。

  2. 通过 SSH/HTTPS 进入访客从外面,无连接。

  3. SSH 到访客来自主机总是有效。

  4. 通过 SSH 连接到主机从外面总是有效

  5. Ping 客人来自从外面,然后通过 SSH/HTTPS 连接到访客从外面,始终有效

  6. 等待几个小时,然后通过 SSH/HTTPS 连接到访客从外面- 再次失败。

我尝试了各种方法来看看是否能找到问题所在,但其他人发布的建议“修复”似乎都不适合我的情况,而且对我的问题没有作用。

设置:

Ubuntu 20.04 LTS 服务器带有 qemu qemu-kvm libvirt-clients libvirt-daemon-system virtinst bridge-utils,位于具有 2 个网络接口的物理机上。

1 个桥接接口和 1 个直接连接的接口。

桥接接口用于主机和客户机,直接接口仅用作客户的第二个接口。

Guest 是 Debian 11.1 服务器安装

桥接接口连接到标准非管理型交换机

主机 IP 为 192.168.1.26/24 网关 192.168.1.254 客户 IP 为 192.168.1.27/24 网关 192.168.1.254

直连的第二个接口设置为192.168.10.1/24,无网关(用于VLAN)。

为了确保防火墙不会干扰访客访问,br_netfilter已启用并加载以下内容:

net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
net.bridge.bridge-nf-call-arptables=0

有人指出,如果主机的 IP 与客户机的 IP 位于同一子网中,则可能会出现问题。我需要设置额外的路由条目吗?

其他人认为 ARP 问题与 MAC 地址有关。

我已使用建议范围内的 MAC 地址设置了固定 MAC 地址。这是必需的,因为此来宾的上游需要知道 MAC 地址,以便对主机和来宾进行出站访问控制。

主机上的 ip a 输出:

eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br1 state UP group default qlen 1000
    link/ether 00:18:1c:04:04:5c brd ff:ff:ff:ff:ff:ff
 eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br2 state UP group default qlen 1000
    link/ether 00:18:1c:04:04:5d brd ff:ff:ff:ff:ff:ff
 br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:18:1c:04:04:5c brd ff:ff:ff:ff:ff:ff
    inet 169.254.2.83/16 brd 169.254.255.255 scope link noprefixroute br1
       valid_lft forever preferred_lft forever
 br2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:18:1c:04:04:5d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.26/24 brd 192.168.1.255 scope global noprefixroute br2
       valid_lft forever preferred_lft forever
 6: macvtap0@br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 500
    link/ether 52:54:00:e9:15:a1 brd ff:ff:ff:ff:ff:ff
 vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br2 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:e9:15:b2 brd ff:ff:ff:ff:ff:ff

主机上的 ip route 输出:

default via 192.168.1.254 dev br2 proto static metric 425
169.254.0.0/16 dev br1 proto kernel scope link src 169.254.2.83 metric 426
192.168.1.0/24 dev br2 proto kernel scope link src 192.168.1.26 metric 425
224.0.0.0/4 dev br1 proto static scope link metric 426

ip a 在客户机上输出:

 enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:e9:15:a1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.1/24 brd 192.168.10.255 scope global enp1s0
       valid_lft forever preferred_lft forever
 enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP group default qlen 1000
    link/ether 52:54:00:e9:15:b2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.27/24 brd 192.168.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
 enp1s0.73@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP group default qlen 1000
    link/ether 52:54:00:e9:15:a1 brd ff:ff:ff:ff:ff:ff

客户机上的 ip route 输出:

default via 192.168.1.254 dev enp2s0 onlink
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.27
192.168.10.0/24 dev enp1s0 proto kernel scope link src 192.168.10.1 

这个问题让我的头发比以前更白了——花了好几天时间阅读所有我可能错过的东西,但没有发现任何明显的内容。

任何指点都将不胜感激。

相关内容