Гость виртуальной машины не может связаться с машинами локальной сети через macvtap

550
ChubbyPixel

Я мог упустить что-то очевидное, поскольку я не мог найти ничего, что объясняло бы, почему я не могу заставить это работать. Я не новичок в libvirt, kvm, qemu, просто в macvtap. Честно говоря, я не могу понять, почему macvtap более выгоден, чем настройка гостей для использования изолированных сетей и сетей NAT, что довольно просто. Если бы кто-то тоже мог это уточнить, это было бы потрясающе.

Моя ситуация такова: у меня есть хост Arch Linux, на котором я настраиваю нескольких гостей Debian в качестве лаборатории. Мой физический интерфейс на хосте - wi0это беспроводной интерфейс, который подключен к моей локальной сети, 192.168.1.0/24. У моего гостя «debian_01» (192.168.1.251) есть следующий раздел, с которым он связан macvtap0:

<interface type='direct'> <mac address='52:54:00:cb:a4:08'/> <source dev='wi0' mode='bridge'/> <target dev='macvtap0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/> </interface> 

(Обмен bridgeс vepaне имеет никакого значения; я попробовал их обоих.)

(«Debian_02» имеет похожий раздел с другим MAC-адресом, macvtap1, net1.)

Таблица маршрутизации на «debian_01» имеет соответствующую запись:

192.168.1.0/24 dev ens16 proto kernel scope link src 192.168.1.251 

Оба гостя (debian_01, debian_02) могут нормально пинговать друг друга; однако, пинг чего-либо в локальной сети кажется неудачным из-за ARP. Вот что я вижу на своем хосте Arch, когда пытаюсь пропинговать мой маршрутизатор локальной сети:

HOST$ tcpdump -nnnqti macvtap0 ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28 ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28 ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28 ARP, Request who-has 192.168.1.254 tell 192.168.1.251, length 28 

Iptables был обновлен до -j ACCEPTчего-либо, приходящего либо из macvtap0, либо из 192.168.1.251 (debian_01), но без кубиков.

sysctl на хосте:

net.ipv4.conf.all.forwarding = 1 

Что еще нужно сделать, чтобы эти гости могли общаться с другими машинами в моей локальной сети через свои macvtaps?

Я буду рад поделиться дополнительной информацией, если это необходимо.

1

0 ответов на вопрос