Satu host, dua mesin virtual yang tidak bisa saling ping. Bagaimana menyelesaikan

10

Kami memiliki Mesin Virtual yang beroperasi di KVMlingkungan. Kami menyiapkan satu sebagai server dev yang menjalankan Apachedll, dan yang lainnya sebagai Windowslingkungan pengembangan.

Kedua lingkungan diatur dan berjalan dengan baik. Namun, mereka tidak bisa saling ping. Saya bertanya-tanya apakah ada solusi yang jelas untuk ini.

Inilah yang sedang terjadi.

Dari Host:

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

Dari Salah satu VM:

  Cannot ping host
  Cannot ping each other

Dari mesin jaringan lain (misalnya laptop saya dari dalam jaringan perusahaan saya)

  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
sumber
4
Apakah Anda memiliki informasi lebih lanjut tentang konfigurasi jaringan mesin virtual Anda? Apakah Anda sepenuhnya yakin bahwa ketika mesin jaringan Anda yang lain mem-ping VM Anda, mereka tidak mem-ping beberapa mesin acak lainnya di jaringan? (mis. bisakah Anda benar-benar menekan server apache dengan browser?).
GregHNZ
Saya pikir itu mungkin jembatan Anda. Kernel iptables akan memblokir mesin Anda untuk tidak berbicara sendiri kecuali Anda: echo "1"> / proc / sys / net / ipv4 / ip_forward; Mungkin saja.
mikeserv
Perintah apa yang Anda gunakan untuk mem-boot VM?
jobin
Apakah Anda memiliki mesin lain di jaringan yang sama (yang tidak berada di host yang sama)? Apakah mesin ini dapat melakukan ping ke mesin tersebut?
Sree
1
Apakah Anda menggunakan antarmuka macvtap ( wiki.libvirt.org/page/… ) untuk tamu?
nkms

Jawaban:

1

Cukup jelas mesin berkomunikasi dalam mode bridge, karena Anda dapat melakukan ping host, dan kedua VM dari luar lingkungan KVM.

Masalah Anda adalah perlindungan anti-spoofing di kernel, yang menjatuhkan paket dengan tujuan selain alamat IP host.

Untuk runtime, lakukan ini di baris perintah dari server host:

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

Agar bisa selamat dari boot, tambahkan baris berikut ke /etc/sysctl.conf:

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

Dari komentar di /etc/sysctl.conf(sedikit diubah):

rp_filter: mengaktifkan perlindungan Spoof (filter jalur balik).

Verifikasi Alamat Sumber di semua antarmuka untuk mencegah beberapa serangan spoofing

Rui F Ribeiro
sumber
Saya tahu pertanyaannya sudah tua ...
Rui F Ribeiro
0

Secara umum jenis koneksi harus NAT sejauh yang saya tahu. Jadi dalam pengaturan dari klik kanan mouse pada VM tertentu Anda dapat mengubah jenis jaringan.

PS: menyembunyikan komputer dari ping di jaringan area lokal secara khusus saya pikir tidak mungkin. Tapi itu patut dilihat.

rɑːdʒɑ
sumber
Dimungkinkan untuk menyembunyikan komputer dari ping ICMP. Anda menonaktifkan fungsi di kernel, atau membuat aturan firewall untuk memblokirnya. Saya memiliki host Xen dan bhyve dalam mode bridge, dan mereka bekerja dengan baik.
Rui F Ribeiro