Jeden host, dwie maszyny wirtualne, które nie mogą pingować się nawzajem. Jak rozwiązać

10

Mamy maszyny wirtualne działające w KVMśrodowisku. Jeden konfigurujemy jako serwer deweloperski Apacheitp., A drugi jako Windowsśrodowisko programistyczne.

Oba środowiska są skonfigurowane i działają poprawnie. Nie mogą się jednak pingować. Zastanawiam się, czy istnieje na to jasne rozwiązanie.

Tak się dzieje.

Z hosta:

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

Z dowolnej maszyny wirtualnej:

  Cannot ping host
  Cannot ping each other

Z innych urządzeń sieciowych (na przykład mojego laptopa z sieci mojej firmy)

  Successfully ping host at 192.168.0.64
  Successfully ping VM1 (Linux) 192.168.0.43
  Successfully ping VM2 (Windows) 192.168.0.84
Jay Lepore
źródło
4
Czy masz więcej informacji na temat konfiguracji sieci swoich maszyn wirtualnych? Czy jesteś całkowicie pewien, że kiedy inne maszyny sieciowe pingują twoje maszyny wirtualne, nie pingują innych losowych komputerów w sieci? (np. czy rzeczywiście można uruchomić serwer apache za pomocą przeglądarki?).
GregHNZ
Myślę, że to może być twój most. Iptables jądra zablokują twoją maszynę przed mówieniem do siebie, chyba że: echo "1"> / proc / sys / net / ipv4 / ip_forward; Być może w każdym razie.
mikeserv
Jakiego polecenia używasz do uruchamiania maszyn wirtualnych?
jobin
Czy masz inne maszyny w tej samej sieci (która nie znajduje się na tym samym hoście)? Czy te maszyny są w stanie pingować te maszyny?
Sree
1
Czy używasz interfejsu macvtap ( wiki.libvirt.org/page/… ) dla gościa?
nkms,

Odpowiedzi:

1

To dość oczywiste, że maszyny komunikują się w trybie mostu, ponieważ można pingować hosta i obie maszyny wirtualne spoza środowiska KVM.

Twoim problemem jest ochrona przed fałszowaniem w jądrze, która upuszcza pakiety z miejscem docelowym innym niż adres IP hosta.

W przypadku środowiska wykonawczego wykonaj to w wierszu komend serwera hosta:

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

Aby przetrwał rozruch, dodaj następujące wiersze do /etc/sysctl.conf:

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

Z komentarzy na temat /etc/sysctl.conf(nieznacznie zmieniony):

rp_filter: włącza ochronę przed fałszowaniem (filtr odwrotnej ścieżki).

Weryfikacja adresu źródłowego we wszystkich interfejsach, aby zapobiec niektórym atakom fałszowania

Rui F. Ribeiro
źródło
Wiem, że pytanie jest stare ...
Rui F Ribeiro
0

Ogólnie, o ile wiem, typem połączenia powinien być NAT. Tak więc w ustawieniach za pomocą kliknięcia prawym przyciskiem myszy na konkretnej maszynie wirtualnej możesz zmienić typ sieci.

PS: ukrywanie komputera przed pingiem w sieci lokalnej, myślę, że nie jest to możliwe. Ale warto to zobaczyć.

rɑːdʒɑ
źródło
Możliwe jest ukrywanie komputerów przed pingami ICMP. Możesz wyłączyć tę funkcję w jądrze lub utworzyć reguły zapory, aby ją zablokować. Mam Xen i hosty bhyve w trybie mostka i działają dobrze.
Rui F Ribeiro