Ping só funciona duas vezes

2

Eu criei um vm dentro de um host xen. Ao seguir este guia , consegui fazer o ping em www.google.com, mas ele só pingou duas vezes antes de obter% código%. Se eu reiniciar o vm, eu posso novamente pingar duas vezes antes de falhar.

$ - 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

O ip do host (o externo que é usado para acessar o servidor de fora) é usado como um gateway padrão para o vm. Eu não sei que outras informações para dar. Qual poderia ser a razão disso?

A saída de Destination Host Unreachable para o guest é:

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

e para o host :

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 do host

# 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

show de brctl:

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

Eu acho que a principal coisa a se concentrar aqui é que ele pingue com sucesso duas vezes antes de falhar.

    
por SteveL 08.03.2016 / 12:30

2 respostas

1

Você está encaminhando ou criando pontes ao fornecer acesso a um domínio. Parece que você está tentando fazer as duas coisas ao mesmo tempo e as chances são de que acione o redirecionamento e interrompa indiretamente a conectividade por causa das regras de firewall.

Considere os seguintes casos:

  • Você faz o Bridging. Pacotes são executados através da cadeia FORWARD do iptables e entregues diretamente do seu host para guest, sem roteamento real. É importante saber que a cadeia FORWARD se aplica mesmo para a ponte por padrão. Normalmente, os provedores solicitarão que você vincule um endereço MAC Virtual específico para que isso funcione por motivos de segurança (spoofing & al).

  • Você faz o roteamento. Pacotes são executados através da cadeia FORWARD do iptables e então roteados usando a tabela de roteamento do kernel para o destino correto. Geralmente, isso significa que você está usando endereços de uma sub-rede diferente ou / 32 endereços únicos com roteamento manipulado especificamente pelo provedor.

Aqui, você está fazendo um pouco dos dois:

  • Você tem uma ponte conectando o DomU à conexão do host
  • No entanto, o DomU tenta rotear o host para alcançar o gateway do provedor
  • O provedor percebe isso, talvez porque não use o endereço MAC virtual indicado, se você tiver definido um, e envia uma mensagem REDIRECIONAR ICMP para notificar o convidado sobre o que está acontecendo

Não sei por que isso não funciona exatamente, considerando que o ICMP Redirect está desabilitado em quase todas as principais distribuições Linux e deve funcionar apesar dos problemas que o roteamento assimétrico pode trazer. Este é provavelmente um problema com o gateway do provedor sendo muito exigente com ARP & MAC muda de alguma forma ...

De qualquer forma, como os seus endereços IP Dom0 e DomU estão na mesma máscara de rede, você precisa fazer uma ponte completa no seu caso. Simplesmente corrija o endereço do gateway do DomU para apontar para .1, o gateway do provedor. Não se esqueça de ajustar as regras de firewall como necessárias, pois os pacotes com ponte passam pela cadeia FORWARD por padrão.

Fonte: executo o Xen em uma caixa de teste que fornece acesso a diferentes domínios por meio de NAT, Bridging e roteamento, dependendo do domínio

    
por 09.03.2016 / 09:44
0

Parece que seu firewall está bloqueando a conexão.

Tente desativar o firewall (temporariamente) e tente executar o ping novamente e veja se ele faz isso mais de duas vezes.

    
por 08.03.2016 / 12:43