Есть подход, описанный Вот, который предназначен для того, чтобы виртуальные машины и хост могли взаимодействовать друг с другом по сети. Он заключается в настройке интерфейса macvlan на хост-машине, и сценарий назначает тот же IP-адрес, что и физический адаптер, к которому он привязывается.
На самом деле этот скрипт меня не подводил из-за dhcp (я написал здесь: Скрипт для создания моста macvlan на хосте не работает, если он не запускается дважды - Unix.SE), но с этим разобрались.
Теперь я обнаружил, что переадресация портов на хост-машину не работает. Я просто решил это отключив Обновить: Проблема с переадресацией портов все еще присутствует при использовании другого IP-адреса для rp_filter
для интерфейса macvlan (из Как заставить iptables DNAT работать с macvlan - Ошибка сервера).macvlan0
интерфейс.
В любом случае, теперь я не уверен, продолжу ли я использовать тот же IP-адрес, что и физический адаптер (enp10s0
) или другой. Информация, кажется, отличается: ответ на Гость и хост не могут видеть друг друга при использовании linux-kvm и macvtap (Суперпользователь) говорит
Решение состоит в том, чтобы настроить интерфейс macvlan на гипервизоре с тем же IP-адресом, что и реальный аппаратный интерфейс (очень важно), и настроить маршрутизацию на хосте для его использования. (...)
а другой ответ на Два IP-адреса на одном сетевом адаптере через macvlan (Serverfault) говорит
(...) Однако назначать одну и ту же подсеть / IP виртуальным интерфейсам не рекомендуется, я бы предложил использовать отдельный vlan, например 192.168.2.x
Итак ... какому совету следует последовать?
(Примечание: мой текущий сценарий создает macvlan0
устройство при загрузке с предопределенным MAC-адресом - не тем же адресом, что и физический адаптер).