KVM / Libvirt桥接/路由networking不适用于较新的客户内核

我有一个运行Debian 6的专用服务器,Libvirt(0.9.11.3)和Qemu-KVM(qemu-kvm-1.0 + dfsg-11,Debian)。
我有一个问题,使桥接/路由networking工作在更新的内核(> 2.6.38)的KVM客人。 NATtednetworking工作正常。
较老的内核也工作得很好。
主机内核版本是3.2.0-2-amd64,问题也出现在较旧的主机内核上。
主机的/etc/network/interfaces (ip被删除)的内容:

 #环回设备:
汽车
 iface lo inet loopback

 #桥
自动br0
 iface br0 inet static
  地址176.9.xx.xx
  广播176.9.xx.xx
  networking掩码255.255.255.224
  网关176.9.xx.xx
   pointopoint 176.9.xx.xx
   bridge_ports eth0
   bridge_stpclosures
   bridge_maxwait 0
   bridge_fd 0
   up route add -host 176.9.xx.xx dev br0#VM IP
   post-up mii-tool -F 100baseTx-FD br0

 #默认路由访问子网
 up route add -net 176.9.xx.xx netmask 255.255.255.224 gw 1​​76.9.xx.xx br0

主机上ifconfig -a的输出:

 br0 Link encap:Ethernet HWaddr 54:04:a6:8a:66:13  
           inet addr:176.9.xx.xx Bcast:176.9.xx.xx Mask:255.255.255.224
           inet6地址:fe80 :: 5604:a6ff:fe8a:6613/64范围:链接
          广播运行多播MTU:1500公制:1
           RX数据包:20216729错误:0丢弃:0超出:0帧:0
           TX数据包:19962220错误:0丢弃:0超限:0载波:0
          碰撞:0 txqueuelen:0 
           RX字节:14144528601(13.1 GiB)TX字节:7990702656(7.4 GiB)

 eth0 Link encap:Ethernet HWaddr 54:04:a6:8a:66:13  
          广播运行多播MTU:1500公制:1
           RX数据包:26991788错误:0丢弃:12066超出:0帧:0
           TX数据包:19737261错误:270082丢弃:0超载:0载波:270082
          碰撞:1686317 txqueuelen:1000 
           RX字节:15459970915(14.3 GiB)TX字节:6661808415(6.2 GiB)
          中断:17内存:fe500000-fe520000 

链路封装:本地环回  
           inet addr:127.0.0.1掩码:255.0.0.0
           inet6 addr::: 1/128范围:主机
           UP LOOPBACK RUNNING MTU:16436公制:1
           RX数据包:6240133错误:0丢弃:0超出:0帧:0
           TX数据包:6240133错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:0 
           RX字节:6081956230(5.6 GiB)TX字节:6081956230(5.6 GiB)

 virbr0 Link encap:Ethernet HWaddr 52:54:00:79:e4:5a                                                                                                                                                                                                                        
           inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0                                                                                                                                                                                                   
          广播运行多播MTU:1500公制:1                                                                                                                                                                                                                   
           RX数据包:225016错误:0丢弃:0超限:0帧:0                                                                                                                                                                                                              
           TX数据包:412958错误:0丢弃:0超载:0载波:0                                                                                                                                                                                                            
          碰撞:0 txqueuelen:0                                                                                                                                                                                                                                            
           RX字节:16284276(15.5 MiB)TX字节:687827984(655.9 MiB)                                                                                                                                                                                                         

 virbr0-nic链接encap:以太网HWaddr 52:54:00:79:e4:5a                                                                                                                                                                                                                       
           BROADCAST MULTICAST MTU:1500公制:1                                                                                                                                                                                                                              
           RX包:0个错误:0个丢弃:0个超限:0个帧:0个                                                                                                                                                                                                                   
           TX数据包:0错误:0丢弃:0超载:0载波:0                                                                                                                                                                                                                 
          碰撞:0 txqueuelen:500                                                                                                                                                                                                                                          
           RX字节:0(0.0 B)TX字节:0(0.0 B)                                                                                                                                                                                                                               

 vnet0链接封装:以太网HWaddr fe:54:00:93:4e:68                                                                                                                                                                                                                        
           inet6地址:fe80 :: fc54:ff:fe93:4e68 / 64作用域:链接                                                                                                                                                                                                                    
          广播运行多播MTU:1500公制:1                                                                                                                                                                                                                   
           RX数据包:607670错误:0丢弃:0超出:0帧:0                                                                                                                                                                                                              
           TX数据包:5932089错误:0丢弃:0超限:0载波:0                                                                                                                                                                                                           
          碰撞:0 txqueuelen:500                                                                                                                                                                                                                                          
           RX字节:83574773(79.7 MiB)TX字节:1092482370(1.0 GiB)                                                                                                                                                                                                          

 vnet1 Link encap:Ethernet HWaddr fe:54:00:ed:6a:43                                                                                                                                                                                                                        
           inet6 addr:fe80 :: fc54:ff:feed:6a43 / 64范围:链接                                                                                                                                                                                                                    
          广播运行多播MTU:1500公制:1                                                                                                                                                                                                                   
           RX数据包:922132错误:0丢弃:0超出:0帧:0                                                                                                                                                                                                              
           TX数据包:6342375错误:0丢弃:0超载:0载波:0                                                                                                                                                                                                           
          碰撞:0 txqueuelen:500 
           RX字节:251091242(239.4 MiB)TX字节:1629079567(1.5 GiB)

 vnet2 Link encap:Ethernet HWaddr fe:54:00:0d:cb:3d  
           inet6地址:fe80 :: fc54:ff:fe0d:cb3d / 64作用域:链接
          广播运行多播MTU:1500公制:1
           RX包:9461错误:0丢弃:0超限:0帧:0
           TX数据包:665189错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:500 
           RX字节:4990275(4.7 MiB)TX字节:49229647(46.9 MiB)

 vnet3 Link encap:Ethernet HWaddr fe:54:cd:83:eb:aa  
           inet6地址:fe80 :: fc54:cdff:fe83:ebaa / 64作用域:链接
          广播运行多播MTU:1500公制:1
           RX数据包:1649错误:0丢弃:0超出:0帧:0
           TX包:12177错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:500 
           RX字节:77233(75.4 KiB)TX字节:2127934(2.0 MiB)

guest虚拟机的/etc/network/interfaces ,在这种情况下运行Ubuntu 12.04(ip被移除):

 #此文件描述您的系统上可用的networking接口
 #以及如何激活它们。 有关更多信息,请参阅接口(5)。

 #环回networking接口
汽车
 iface lo inet loopback

 auto eth0
 iface eth0 inet static
        地址176.9.xx.xx
        networking掩码255.255.255.248
        网关176.9.xx.xx#主机IP
         pointopoint 176.9.xx.xx#主机IP
         dns-nameservers 8.8.8.8 8.8.4.4

来宾上ifconfig -a的输出:

 eth0 Link encap:Ethernet HWaddr 52:54:cd:83:eb:aa  
           inet addr:176.9.xx.xx Bcast:0.0.0.0 Mask:255.255.255.255
           inet6地址:fe80 :: 5054:cdff:fe83:ebaa / 64作用域:链接
          广播运行多播MTU:1500公制:1
           RX包:14190错误:0丢弃:0超限:0帧:0
           TX数据包:1768错误:0丢弃:0超限:0载波:0
          碰撞:0 txqueuelen:1000 
           RX字节:2614642(2.6 MB)TX字节:82700(82.7 KB)

链路封装:本地环回  
           inet addr:127.0.0.1掩码:255.0.0.0
           inet6 addr::: 1/128范围:主机
           UP LOOPBACK RUNNING MTU:16436公制:1
           RX数据包:954错误:0丢弃:0超出:0帧:0
           TX数据包:954错误:0丢弃:0超载:0载波:0
          碰撞:0 txqueuelen:0 
           RX字节:176679(176.6 KB)TX字节:176679(176.6 KB)

客户端的ping -c4输出:

 PING google.nl(173.194.35.151)56(84)字节的数据。
来自muc03s01-in-f23.1e100.net(173.194.35.151)的64个字节:icmp_req = 1 ttl = 55时间= 14.7ms
从static.174.82.xx.xx.clients.your-server.de(176.9.xx.xx):icmp_seq = 2redirect主机(新的下一个:static.161.82.9.176.clients.your-server.de(176.9.82.161 ))
来自muc03s01-in-f23.1e100.net(173.194.35.151)的64个字节:icmp_req = 2ttl = 55时间= 15.1ms
从static.198.170.9.176.clients.your-server.de(176.9.170.198)icmp_seq = 3目标主机不可访问
来自static.198.170.9.176.clients.your-server.de(176.9.170.198)icmp_seq = 4目标主机不可访问

 --- google.nl ping统计---
 4个数据包传输,2个接收,+2个错误,50%丢包,时间3002ms
 rtt min / avg / max / mdev = 14.797 / 14.983 / 15.170 / 0.223ms,pipe道2

static.174.82.xx.xx.clients.your-server.de (176.9.xx.xx)是主机的IP地址。
我已经尝试过的每个客户操作系统都遇到过这个问题,比如Fedora,Ubuntu(服务器/桌面)以及带有升级内核的Debian。 我也尝试编译客户内核自己,无济于事。
我没有任何问题重新编译内核,虽然主机不能承受任何停机时间。
任何关于这个问题的想法都非常受欢迎。

编辑:我可以从客人内部ping主机。

好的,我自己find了解决办法。 显然, Hetzner wiki上的文章并不完整。 redirect仍在发送,导致Hetzner(我们有我们的服务器)阻止stream量。 我不确定客户端运行的是什么内核版本,如果有人能解释我非常希望听到这个消息。

您可以通过执行以下命令来了解是否遇到同样的问题:

 用于`find / proc / -iname send_redirects`中的文件; 做echo $ file; 猫$文件;  DONE 

其输出如下所示:

 的/ proc / SYS /网/的IPv4 / conf目录/所有/ send_redirects
 0
的/ proc / SYS /网/的IPv4 / conf目录/默认/ send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/ LO / send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/为eth0 / send_redirects
 0
的/ proc / SYS /网/的IPv4 / conf目录/ BR 0 / send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/ vnet1 / send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/ vnet0 / send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/ virbr0 / send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/ virbr0网卡/ send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/ vnet2 / send_redirects
 1
的/ proc / SYS /网/的IPv4 / conf目录/ vnet3 / send_redirects
 1 

我不得不承认我不知道哪一个应该是0,但是我已经把它们全部设置为0,现在它工作的很好,所以我将把它留在那里。

 用于`find / proc / -iname send_redirects`中的文件; 做echo 0> $ file;  DONE 

我有同样的问题,感谢您分享您的解决scheme。 我认为只需要在物理和网桥接口(eth0和br0)上进行设置。 您可以将更改设置为/etc/sysctl.d/

 #/etc/sysctl.d/10-no-icmp-redirects.conf # Hetzner says: # Because of our network setup, the Host machine could send ICMP # "redirect" messages to all guests, telling them to find the Hetzner # gateway directly. That is impossible: Hetzner would throw away the # traffic from the virtual interfaces because of their non registered # MAC addresses (ie different from the main interface). net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.eth0.send_redirects=0 net.ipv4.conf.br0.send_redirects=0 net.ipv4.conf.default.send_redirects=0