Un host, due macchine virtuali che non possono eseguire il ping l'un l'altro. Come risolvere


10

Abbiamo macchine virtuali che operano all'interno KVMdell'ambiente. Installiamo uno come server di sviluppo in esecuzione Apacheecc. E l'altro come Windowsambiente di sviluppo.

I due ambienti sono configurati e funzionano correttamente. Tuttavia, non possono eseguire il ping a vicenda. Mi chiedo se esiste una soluzione chiara a questo.

Questo è quello che sta succedendo.

Dall'host:

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

Da una delle VM:

  Cannot ping host
  Cannot ping each other

Da altre macchine di rete (ad esempio il mio laptop all'interno della mia rete aziendale)

  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
Hai maggiori informazioni sulla configurazione di rete delle tue macchine virtuali? Sei del tutto sicuro che quando le altre tue macchine di rete eseguono il ping delle tue VM, non eseguono il ping di altre macchine casuali sulla rete? (ad esempio puoi effettivamente colpire il server Apache con un browser?).
GregHNZ,

Penso che potrebbe essere il tuo ponte. Gli iptables del kernel impediranno al tuo computer di parlare con se stesso a meno che tu: echo "1"> / proc / sys / net / ipv4 / ip_forward; Forse, comunque.
Mikeserv,

Quale comando usi per avviare le macchine virtuali?
Jobin

Hai altre macchine nella stessa rete (che non risiede nello stesso host)? Queste macchine sono in grado di eseguire il ping di quelle macchine?
Sree,

1
Usi un'interfaccia macvtap ( wiki.libvirt.org/page/… ) per l'ospite?
nkms

Risposte:


1

È piuttosto ovvio che le macchine comunicano in modalità bridge, poiché è possibile eseguire il ping dell'host ed entrambe le macchine virtuali dall'esterno dell'ambiente KVM.

Il tuo problema è la protezione anti-spoofing nel kernel, che elimina i pacchetti con una destinazione diversa dall'indirizzo IP dell'host.

Per il runtime, farlo nella riga di comando del server host:

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

Per sopravvivere all'avvio, aggiungere le seguenti righe a /etc/sysctl.conf:

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

Dai commenti su /etc/sysctl.conf(leggermente modificato):

rp_filter: abilita la protezione da spoofing (filtro del percorso inverso).

Verifica dell'indirizzo di origine in tutte le interfacce per prevenire alcuni attacchi di spoofing


So che la domanda è vecchia ...
Rui F Ribeiro,

0

In genere, per quanto ne so, il tipo di connessione dovrebbe essere NAT. Pertanto, nelle impostazioni del mouse, fare clic con il pulsante destro del mouse sulla VM specifica per modificare il tipo di rete.

PS: nascondere un computer dal ping nella rete locale in particolare penso che non sia possibile. Ma vale la pena dare un'occhiata.


È possibile nascondere i computer dai ping ICMP. Puoi disabilitare la funzionalità nel kernel o creare regole del firewall per bloccarlo. Ho host Xen e Bhyve in modalità bridge e funzionano bene.
Rui F Ribeiro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.