Мостовая сеть — проблема с эхо-запросом виртуальных машин

Я работаю с KVM/VirtualBox и OVS. У меня есть два моста на хост-машине, br0 и br1. ВМ подключена к br0. ВМ может пинговать br0, но также может пинговать br1, к которому она не подключена. Кроме того, я сделал сервер iperf на виртуальной машине и клиент на хост-компьютере, и когда я дал IP-адрес br0, было установлено соединение и данные были переданы, но когда я дал IP-адрес br1, соединение было установлено, но данные не были в состоянии перевести. Все ips находятся в одной подсети. Может кто-нибудь объяснить, что происходит?


person S. Salman    schedule 17.06.2016    source источник
comment
Если вы собираетесь проголосовать против, не могли бы вы объяснить, почему вы это сделали?   -  person S. Salman    schedule 17.06.2016
comment
Что вы имеете в виду под подключением. Какой режим iperf вы используете?   -  person Dmitry Poroh    schedule 17.06.2016
comment
Я использовал udp и tcp. Предположим, что br0 имеет ip/сетевую маску 192.168.1.10/255.255.255.0, а br1 имеет ip/сетевую маску 192.168.1.20/255.255.255.0, и мы подключили виртуальную машину к br0, когда запускаем iperf на хост-машине, а клиент на vm говорит, что на стороне сервера установлено соединение с 192.168.1.10 для обоих мостов. Но для моста, к которому подключено соединение, он выдает отчет сервера, а для другого моста сообщает, что подтверждение не получено.   -  person S. Salman    schedule 17.06.2016
comment
Последнее поведение я не могу объяснить без сетевого файла pcap. В любом случае, использование адресов из одной IP-сети в разных локальных сетях (обозначенных как br0 и br1) является плохой практикой.   -  person Dmitry Poroh    schedule 17.06.2016


Ответы (1)


Я могу объяснить, почему адрес br1 пингуется. Это связано с тем, что в Linux, когда пакет обрабатывается как пакет «локальной доставки», он принимается в общей точке, где исходный интерфейс не важен. Таким образом, пакет на ЛЮБОЙ локальный интерфейс может быть получен с любого сетевого интерфейса.

person Dmitry Poroh    schedule 17.06.2016
comment
Есть ли способ избежать этой проблемы? Я вообще-то хочу, чтобы мой трафик направлялся через br0 и потом через определенные точки попадал в br1, а не в этот. - person S. Salman; 17.06.2016
comment
Я предполагаю, что невозможно направить трафик на IP-адрес, принадлежащий хосту Linux, где-то за его пределами. Это вопрос классификации IP-трафика - когда ядро ​​решает, должен ли пакет быть маршрутизирован или доставлен локально. Я не знаю механизмов предотвращения такого поведения. - person Dmitry Poroh; 17.06.2016
comment
Мое решение аналогичной проблемы состояло в том, чтобы поместить целевой адрес в другую виртуальную машину. Так что линуксом можно маршрутизироваться. - person Dmitry Poroh; 17.06.2016