Как и на диаграмме ниже, физическая сеть - 192.168.99.0/24. veth0
живет в отдельном пространстве имен сети. Я хочу, чтобы он напрямую подключался к физической сети, поэтому node1
и veth0
могут общаться друг с другом через физическую сеть без каких-либо NAT.
Что я пробовал это:
- создать Linux-мост BR0
- подключить veth1 к br0
- подключите eth0 (физический NIC узла 2) к br0
Оказывается, если мы пропингуем с 192.168.99.3 до 192.168.99.1, то пакеты arp
приходят от veth0
, проходят через veth1
до br0
, а затем транслируются на node2
eth0
и, наконец, получаются node1
eth0
.
Однако, когда node1
отвечает, пакет, отправленный на veth0
-адрес veth0, не будет получен eth0
узла2 (несоответствие mac, я думаю), таким образом, veth0
не получит пакеты ответа arp, и ping завершится неудачно.
Итак, если я не понимаю этого неправильно, кто-нибудь может дать мне какие-нибудь идеи о том, как сделать эту мостовую сеть?
ОБНОВИТЬ
Я перестраиваю эту тестовую среду на голых железных машинах, оказывается, все работает отлично. Возможно, что-то не так с сетью виртуальных ящиков.