Я мог упустить что-то очевидное, так как я не мог найти ничего, что объясняло бы, почему я не могу заставить это работать. Я не новичок в 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?
Я буду рад поделиться дополнительной информацией, если это необходимо.