У меня есть следующие настройки:
Hypervisor host 1 | Hypervisor host 2
|
------------------ |
| VM | |
| 10.244.140.10 | |
| GW 10.244.140.1| | Route to 10.244.8.0/24
------------------ | goes through br1
| |
/--------------\ /-------------\ | /-------------\ /--------------\
| br0 | | br1 | | | br1 | | br0 |
|10.244.140.254| | 10.244.8.21 | | | 10.244.8.1 | | 10.244.140.1 |
| | | .... | | | 10.244.8.33 | | |
\--------------/ \-------------/ | \-------------/ \--------------/
| | | | |
eth0 eth1------------------eth1 eth0
| | |
\--------------------------------------------------------/
Два хоста с виртуальными машинами. Определено несколько подсетей: 10.244.140.0/24 на мостах br0 , 10.244.8.0/24 на мостах br1 . Мосты br1 имеют несколько IP-адресов. Нет правил сетевого фильтра. Политики Netfilter ПРИНИМАЮТСЯ. ip_forward
установлен.
ВМ подключена к br0 на хосте 1. Он пингует 10.244.8.21, адрес, который находится в другой подсети, но находится на том же хосте 1. Шлюз по умолчанию для виртуальной машины 10.244.140.1 и находится на хосте 2.
Мое наивное ожидание: пакет эхо-запроса отправляется br0 на host2, так как br0 имеет адрес шлюза. Затем пакет направляется на br1 и обратно на host1.
Реальность: пакет приходит, как и ожидалось. Однако это не маршрутизируется. С другой стороны, пакеты, отправленные на 10.244.8.33, прибывают в br1 на хосте 2, и эхо-ответы возвращаются.
Где я не прав? И что еще более важно: как я могу это исправить?
Хосты гипервизора работают с OpenSuse Leaf 15 и KVM.
РЕДАКТИРОВАТЬ: Поскольку у меня недостаточно репутации, чтобы добавлять комментарии, я поставил ответы на вопрос. Спасибо за вашу заботу.
Клык: ваш пакет прибывает "как ожидалось", он прошел границы подсети и, таким образом, был маршрутизирован. Извините, мое описание было неполным. Он прибывает в br0 на хосте 2 в той же подсети и далее не маршрутизируется.
Grawity: Думаю, на твой первый вопрос уже есть ответ. Какой MAC-адрес назначения имеет пакет, когда он пересекает br0 на host1? MAC-адрес маршрутизатора, то есть MAC-адрес br0 на хосте 2. Он знает это из-за ARP, на который он получает ответ.