平只能工作两次

我在xen主机里创build了一个虚拟机。 按照本指南 ,我已经设法ping通www.google.com,但在获得“ Destination Host Unreachable之前,它只能ping通两次。 如果我重新启动虚拟机,我可以重新ping两次失败之前。

 $ - ping www.google.com PING www.google.com (216.58.208.228) 56(84) bytes of data. 64 bytes from par10s22-in-f4.1e100.net (216.58.208.228): icmp_seq=1 ttl=51 time=17.3 ms 64 bytes from par10s22-in-f4.1e100.net (216.58.208.228): icmp_seq=2 ttl=51 time=17.4 ms From static.12.166.76.144.clients.your-server.de (144.76.166.12): icmp_seq=3 Redirect Host(New nexthop: 144.76.166.1) 64 bytes from 216.58.208.228: icmp_seq=3 ttl=51 time=17.3 ms From wservervm (144.76.166.25) icmp_seq=4 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=5 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=6 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=7 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=8 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=9 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=10 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=11 Destination Host Unreachable From wservervm (144.76.166.25) icmp_seq=12 Destination Host Unreachable 

主机的IP(外部用于从外部访问服务器)用作vm的默认网关。 我不知道还有什么其他的信息。 这可能是什么原因?

客人arp -n输出是:

 Address HWtype HWaddress Flags Mask Iface 144.76.166.12 ether d4:3d:7e:ec:ef:f8 C eth0 144.76.166.1 (incomplete) eth0 

并为主持人

 Address HWtype HWaddress Flags Mask Iface 144.76.166.27 (incomplete) xenbr0 144.76.166.1 ether cc:e1:7f:ac:52:96 C xenbr0 144.76.166.25 ether 00:16:3e:b0:23:21 C xenbr0 144.76.166.28 (incomplete) xenbr0 144.76.166.29 (incomplete) xenbr0 

/ etc / network / interfaces的主机

 # loopback auto lo iface lo inet loopback # physical network interface auto eth0 iface eth0 inet manual # bridge public auto xenbr0 iface xenbr0 inet static address 144.76.166.12 netmask 255.255.255.224 gateway 144.76.166.1 bridge_ports eth0 bridge_stp off # disable Spanning Tree Protocol bridge_waitport 0 # no delay unless port available bridge_fd 0 # no forwarding delay # up route add -net 188.40.103.64 netmask 255.255.255.192 gw 188.40.103.65 eth0 # bridge internal auto xenbr1 iface xenbr1 inet static address 10.0.10.1 broadcast 10.0.10.255 netmask 255.255.255.0 pre-up brctl addbr xenbr1 # ipv6 iface eth0 inet6 static address 2a01:4f8:200:420b::2 netmask 64 gateway fe80::1 

brctl显示:

 bridge name bridge id STP enabled interfaces xenbr0 8000.d43d7eeceff8 no eth0 vif6.0 xenbr1 8000.000000000000 no 

我认为这里主要关注的是它在失败之前成功地进行了两次乒乓球比赛。

在提供对域的访问时,您可以进行路由或桥接。 看起来你正试图同时进行这两个操作,而且由于你的防火墙规则,触发redirect和间接断开连接的机会。

考虑以下情况:

  • 你做桥接。 数据包通过iptables FORWARD链运行,并直接从主机发送给guest虚拟机,无需实际路由。 重要的是要知道,FORWARD链默认情况下也适用于桥接。 通常,提供商会要求您绑定一个特定的虚拟MAC地址,以便安全起见(欺骗和欺骗)。

  • 你做路由。 数据包通过iptables FORWARD链运行,然后使用内核路由表路由到正确的目的地。 通常这意味着你正在使用不同子网的地址或/ 32个单一地址,并且提供商特定地处理路由。

在这里,你正在做一些:

  • 你有一个连接DomU到主机连接的桥梁
  • 然而,DomU尝试通过主机路由到达提供商网关
  • 提供商意识到这一点,也许是因为它没有使用指定的虚拟MAC地址,如果你已经设置了一个,并发送一个ICMP REDIRECT消息来通知客户发生了什么事情

我不确定为什么这不起作用,考虑到ICMPredirect在几乎所有主要的Linux发行版中都是禁用的,即使不对称路由可以带来问题也应该能够工作。 这可能是一个问题,供应商的网关过于挑剔ARP和MAC的变化…

无论哪种方式,因为你的Dom0和DomU的IP地址都在同一个networking掩码,你必须做你的情况完全桥接。 只需将DomU的网关地址修改为指向提供商网关.1即可。 不要忘记根据需要调整防火墙规则,因为默认情况下,即使桥接数据包也通过FORWARD链。

来源:我在一个testing盒上运行Xen,根据域通过NAT,桥接和路由提供对不同域的访问

它看起来像你的防火墙阻止连接。

尝试closures防火墙(暂时),然后尝试再次ping,看看它是否超过了两次。