Один хост, две виртуальные машины, которые не могут пропинговать друг друга. Как решить


10

У нас есть виртуальные машины, работающие в KVMсреде. Мы настроили один как работающий сервер разработки Apacheи т. Д., А другой - как Windowsсреду разработки.

Две среды настроены и работают нормально. Однако они не могут пинговать друг друга. Мне интересно, есть ли четкое решение для этого.

Это то, что происходит.

От хозяина:

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

От любой из виртуальных машин:

  Cannot ping host
  Cannot ping each other

С других сетевых компьютеров (например, мой ноутбук из сети моей компании)

  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
У вас есть больше информации о конфигурации сети ваших виртуальных машин? Вы абсолютно уверены, что когда другие сетевые машины проверяют ваши виртуальные машины, они не проверяют другие случайные машины в сети? (например, можете ли вы на самом деле поразить сервер apache браузером?).
GregHNZ

Я думаю, что это может быть ваш мост. Iptables ядра заблокирует вашу машину от общения с самим собой, если только вы: echo "1"> / proc / sys / net / ipv4 / ip_forward; Возможно, в любом случае.
mikeserv

Какую команду вы используете для загрузки виртуальных машин?
Jobin

У вас есть другие машины в той же сети (которая не находится на том же хосте)? Могут ли эти машины пинговать эти машины?
Сри

1
Используете ли вы интерфейс macvtap ( wiki.libvirt.org/page/… ) для гостя?
2015 года

Ответы:


1

Совершенно очевидно, что машины взаимодействуют в режиме моста, так как вы можете пропинговать хост и обе виртуальные машины вне среды KVM.

Ваша проблема - защита от спуфинга в ядре, которая отбрасывает пакеты с адресатом, отличным от IP-адреса хоста.

Для времени выполнения сделайте это в командной строке хост-сервера:

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

Чтобы выжить при загрузке, добавьте следующие строки в /etc/sysctl.conf:

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

Из комментариев /etc/sysctl.conf(немного изменено):

rp_filter: включает защиту от подделки (фильтр обратного пути).

Проверка адреса источника во всех интерфейсах, чтобы предотвратить некоторые спуфинговые атаки


Я знаю, что вопрос старый ...
Rui F Ribeiro

0

Насколько я знаю, тип соединения должен быть NAT. Таким образом, в настройках мыши щелкните правой кнопкой мыши на конкретной виртуальной машине, вы можете изменить тип сети.

PS: скрыть компьютер от пинга в локальной сети конкретно я считаю невозможным. Но стоит посмотреть.


Можно скрыть компьютеры от пингов ICMP. Вы либо отключаете функциональность в ядре, либо создаете правила брандмауэра, чтобы заблокировать его. У меня есть хосты Xen и bhyve в режиме моста, и они работают хорошо.
Руи Ф Рибейру
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.