Um host, duas máquinas virtuais que não podem executar ping um ao outro. Como resolver


10

Temos máquinas virtuais operando no KVMambiente. Nós configuramos um como um servidor dev executando Apacheetc., e o outro como um Windowsambiente de desenvolvimento.

Os dois ambientes estão configurados e funcionando bem. No entanto, eles não podem executar ping um no outro. Gostaria de saber se existe uma solução clara para isso.

É isso que está acontecendo.

Do host:

  Cannot ping either of 2 VM's (one `Linux`, one `Windows`)

De qualquer uma das VMs:

  Cannot ping host
  Cannot ping each other

De outras máquinas de rede (por exemplo, meu laptop na rede da minha empresa)

  Successfully ping host at 192.168.0.64
  Successfully ping VM1 (Linux) 192.168.0.43
  Successfully ping VM2 (Windows) 192.168.0.84

4
Você tem mais informações sobre a configuração de rede de suas máquinas virtuais? Você tem certeza absoluta de que quando suas outras máquinas de rede fazem ping em suas VMs, elas não estão fazendo ping em outra máquina aleatória na rede? (por exemplo, você pode realmente acessar o servidor apache com um navegador?).
GregHNZ

Eu acho que pode ser sua ponte. O iptables do kernel impedirá que sua máquina se comunique a menos que você: echo "1"> / proc / sys / net / ipv4 / ip_forward; Possivelmente, de qualquer maneira.
mikeserv

Qual comando você usa para inicializar as VMs?
Jobin

Você tem outras máquinas na mesma rede (que não residem no mesmo host)? Essas máquinas conseguem executar ping nessas máquinas?
Sree

1
Você usa uma interface macvtap ( wiki.libvirt.org/page/… ) para o convidado?
Nkms 29/08/2015

Respostas:


1

É bastante óbvio que as máquinas estão se comunicando no modo de ponte, pois é possível executar ping no host e nas duas VMs fora do ambiente KVM.

Seu problema é a proteção anti-spoofing no kernel, que descarta pacotes com um destino diferente do endereço IP do host.

Para tempo de execução, faça isso na linha de comandos do servidor host:

 sudo sysctl -w net.ipv4.conf.default.rp_filter=0
 sudo sysctl -w net.ipv4.conf.all.rp_filter=0

Para sobreviver à inicialização, adicione as seguintes linhas a /etc/sysctl.conf:

 net.ipv4.conf.default.rp_filter=0
 net.ipv4.conf.all.rp_filter=0

Dos comentários em /etc/sysctl.conf(ligeiramente alterado):

rp_filter: ativa a proteção de falsificação (filtro de caminho reverso).

Verificação do endereço de origem em todas as interfaces para evitar alguns ataques de falsificação


Eu sei que a pergunta é antiga ...
Rui F Ribeiro

0

Geralmente, o tipo de conexão deve ser NAT, tanto quanto eu sei. Portanto, nas configurações do mouse, clique com o botão direito do mouse na VM específica e você pode alterar o tipo de rede.

PS: ocultando um computador de ping na rede local especificamente eu acho que não é possível. Mas vale a pena dar uma olhada.


É possível ocultar computadores dos pings do ICMP. Você desativa a funcionalidade no kernel ou cria regras de firewall para bloqueá-lo. Eu tenho hosts Xen e bhyve no modo bridge, e eles funcionam bem.
Rui F Ribeiro
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.