将我的服务器更新到最新版本的 Xen(Debian 上为 4.11.1)后,我的主机系统上没有可用的互联网连接(来宾系统可以访问)。我不太确定问题是否与 Xen 更新或我同时执行的任何其他更新有关:-(
对于互联网访问,我使用一个xenbr0
连接到eth0
接口的桥 ( ),相当多的客户系统也使用该桥。访客系统确实可以使用此桥访问互联网。我确实有第二个桥(xenbr1
),它仅用于内部通信,不连接到任何外部接口。
# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.d6fc6a691328 no eth0
vif3.0
vif4.0
vif5.0
xenbr1 8000.b226a874c5c4 no vif1.0
vif2.0
vif4.1
vif6.0
因此eth0
接口没有IP配置,但xenbr0
接口有IP地址。
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 44:8a:5b:29:e6:40 txqueuelen 1000 (Ethernet)
xenbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 148.251.66.43 netmask 255.255.255.224 broadcast 148.251.66.63
inet6 fe80::d4fc:6aff:fe69:1328 prefixlen 64 scopeid 0x20<link>
inet6 2a01:4f8:202:302a::2 prefixlen 64 scopeid 0x0<global>
ether d6:fc:6a:69:13:28 txqueuelen 1000 (Ethernet)
xenbr1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.0.1 netmask 255.255.255.0 broadcast 172.16.0.255
inet6 fe80::b026:a8ff:fe74:c5c4 prefixlen 64 scopeid 0x20<link>
inet6 fd1a:1e62:cd84:83f8:172:16:0:1 prefixlen 64 scopeid 0x0<global>
ether b2:26:a8:74:c5:c4 txqueuelen 1000 (Ethernet)
默认路由是通过xenbr0
接口配置的。
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 148.251.66.33 0.0.0.0 UG 0 0 0 xenbr0
148.251.66.32 0.0.0.0 255.255.255.224 U 0 0 0 xenbr0
172.16.0.0 0.0.0.0 255.255.255.0 U 0 0 0 xenbr1
未配置 IP 转发,因为其他计算机正在使用公共地址(无 NAT)。
# cat /proc/sys/net/ipv4/ip_forward
0
防火墙未配置(nft list ruleset
没有输出,iptables
未安装)。
Ping 网关 ( 148.251.66.33
) 在来宾系统上有效,但在主机上无效。与 ping 任何外部地址一样。
运行以下版本:
# cat /proc/version
Linux version 5.2.0-2-amd64 ([email protected]) (gcc version 8.3.0 (Debian 8.3.0-21)) #1 SMP Debian 5.2.9-2 (2019-08-21)
# dpkg --list "xen-*"
ii xen-hypervisor-4.11-amd64 4.11.1+92-g6c33308a8d-2+b1 amd64 Xen Hypervisor on AMD64
ii xen-hypervisor-common 4.11.1+92-g6c33308a8d-2 all Xen Hypervisor - common files
ii xen-utils-4.11 4.11.1+92-g6c33308a8d-2+b1 amd64 XEN administrative tools
ii xen-utils-common 4.11.1+92-g6c33308a8d-2+b1 amd64 Xen administrative tools - common files
# brctl --version
bridge-utils, 1.6
# ip -V
ip utility, iproute2-ss190708
# nft -v
nftables v0.9.2 (Scram)
我缺少什么?非常感谢任何帮助!
答案1
我终于找到了解决方案。似乎与更新bridge-utils
或内核更新有关(不幸的是我无法将其确定为特定版本/更新)。
行为前是网桥自动使用接口的 MAC 地址,行为后更新是网桥分配一个随机生成的 MAC 地址(该地址在网络侧被阻止)。
设置网桥 ( ip link set xenbr0 address 44:8a:5b:29:e6:40
) 的 MAC 地址后,网络访问将再次按预期工作。