由 SuKai October 29, 2024
-
问题现象
-
排查原因
-
解决方法
-
问题现象
KubeVirt虚拟机Linux工作正常,Windows系统远程桌面内网可以正常连接,公网映射以后无法连接,报事件20499错误。Windows系统应用无法正常使用网络,报连接超时。
远程桌面服务花赛了太长时间为用户 Administrator 加载服务器 \WIN-DNRLMIUJ4AH 中的用户配置
- 排查原因
当刚遇到远程桌面无法连接时,怀疑是Windows系统配置问题,但经过各种配置修改,无法解决。当发现系统应用无法正常使用网络时,认为这不是一个系统配置问题,应该排查虚拟机和物理主机网络。
查看物理主机内核日志信息,发现MTU过大导致丢包
[3726832.278168] net_ratelimit: 7 callbacks suppressed
[3726832.278191] 200ca1e3bdc6_h: dropped over-mtu packet: 1500 > 1400
[3726839.766777] 200ca1e3bdc6_h: dropped over-mtu packet: 1500 > 1400
[3726989.204844] 200ca1e3bdc6_h: dropped over-mtu packet: 1472 > 1400
[3726989.467581] 200ca1e3bdc6_h: dropped over-mtu packet: 1472 > 1400
[3726997.614904] net_ratelimit: 11 callbacks suppressed
[3726997.614928] 200ca1e3bdc6_h: dropped over-mtu packet: 1472 > 1400
查看物理主机和虚拟机网卡MTU,物理主机网卡MTU值为1500,br-vmnet网桥MTU值为1400。虚拟机网卡MTU为1400。
root@rack2-worker89:~$ ip a|grep -i mtu
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
4: ens4f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
11: br-int: <BROADCAST,MULTICAST> mtu 1400 qdisc noop state DOWN group default qlen 1000
18: br-vmnet: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN group default qlen 1000
22: 843c5eba6dc2_h@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue master ovs-system state UP group default qlen
查看Kube-OVN文档资料,使用Underlay网络时,Pod应该会使用与主机网卡MTU一致数值,也就是应该是1500才对。
Since Overlay encapsulation requires additional space, Kube-OVN will adjust the MTU of the container NIC based on the MTU of the selected NIC when creating the container NIC. By default, the Pod NIC MTU is the host NIC MTU - 100 on the Overlay Subnet, and the Pod NIC and host NIC have the same MTU on the Underlay Subnet.
- 解决方法
修改Underlay Subnet的MTU值,在Subnet中添加mtu参数,关闭再启动虚拟机让配置生效,虚拟机MTU值为1500。
apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
name: vmnet
spec:
protocol: IPv4
cidrBlock: 10.11.0.0/16
gateway: 10.11.0.1
u2oInterconnection: true
excludeIps:
- 10.11.1.1..10.11.1.100
- 10.11.1.150..10.11.1.255
vlan: vmvlan
logicalGateway: false
namespaces:
- beijing
mtu: 1500
在检查我另一个集群时,发现同样的版本并未出现不致的情况,只是安装方式不一样。在通过KubeSpray安装Kube-OVN再创建Underlay的Provider时,出现这个问题。另一个集群使用的脚本手工安装时,未发现问题。