我在 Windows 2008 Server R2 上遇到了一个奇怪的网络问题,它在 KVM-Qemu 主机下以客户机身份运行。主机是 CentOS 6.3 x86_64。它的网络设置如下:
# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=static
BROADCAST=xx.xx.xx.63
IPADDR=xx.xx.xx.4
NETMASK=255.255.255.192
NETWORK=xx.xx.xx.0
ONBOOT=yes
TYPE=Bridge
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
BRIDGE=br0
IPV6INIT=yes
IPV6_AUTOCONF=yes
# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=my.hostname
GATEWAY=xx.xx.xx.1
# cat /etc/sysctl
net.ipv4.ip_forward = 1 # tried to set it to 0 without any changes
net.ipv4.conf.default.rp_filter = 1 # tried to set it to 0 without any changes
net.ipv4.conf.default.accept_source_route = 0 # tried to set it to 1 without any changes
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
xx.xx.xx.0 0.0.0.0 255.255.255.192 U 0 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 br0
0.0.0.0 xx.xx.xx.1 0.0.0.0 UG 0 0 0 br0
节点 IP 是 xx.xx.xx.4,客户机 IP 是 xx.xx.xx.24,主机和客户机都在同一个网络 (/26) 中。节点上有几个运行良好的 Linux 客户机 (centos、debian、ubuntu、arch),甚至 Windows 2003 x86 也运行良好。但 Win2008 却不行。我想知道这有什么区别。从 Win2008 客户机我无法 ping 通任何内容:无论是网关还是其他任何 IP,即使它们在同一个子网中。从外部我也无法 ping 通客户机。几乎。如果我从同一子网中的另一台服务器 ping 它,则几乎无法 ping 通,丢失了 90% 以上的数据包。客户机上的防火墙已完全关闭。尝试手动和 DHCP 设置网络,但没有成功(顺便说一句,DHCP 设置了正确的网络设置)。我怀疑这是一种路由问题,但我花了一整天时间仍然无法弄清楚。如能得到任何帮助我将不胜感激。
答案1
最后我自己解决了。问题出在 sysctl 中的 Proxy ARP 设置中。默认情况下它是关闭的。我只是添加了/etc/sysctl.conf
如下字符串:
net.ipv4.conf.all.proxy_arp = 1
现在它运行完美。