История изменений
Исправление iliyap, (текущая версия) :
Более элегантное решение – не использовать eth1-lan вообще. eth0-lan добавить в бридж br-lan. IP-адрес 10.0.0.254/24 удалить с eth0-lan и добавить на br-lan. br-lan использовать как устройство моста виртуалок. Адреса виртуалкам выдавать по DHCP, точно так же, как хостам в локалке:
+---------------------+
| 10.0.0.254/24|
(internet)-eth2-wan---[router]--[br-lan]----eth0-lan-(LAN)
| | | |
| vnet0 vnet1 |
| | | |
| [vm0] [vm1] |
+---------------------+
В терминах systemd-networkd:
# /etc/systemd/network/br-lan.netdev
[NetDev]
Name=br-lan
Kind=bridge
[Bridge]
STP=false
# /etc/systemd/network/br-lan.network
[Match]
Name=br-lan
[Network]
Address=10.0.0.254/24
IPv4Forwarding=yes
IPv6Forwarding=yes
DHCPServer=yes
# /etc/systemd/network/eth0-lan.network
[Match]
Name=eth0-lan
[Network]
Bridge=br-lan
# /etc/systemd/network/eth2-wan.network
[Match]
Name=eth2-wan
[Network]
IPMasquerade=ipv4
Исходная версия iliyap, :
Более элегантное решение – не использовать eth1-lan вообще. eth0-lan добавить в бридж br-lan. IP-адрес 10.0.0.254/32 удалить с eth0-lan и добавить на br-lan. br-lan использовать как устройство моста виртуалок. Адреса виртуалкам выдавать по DHCP, точно так же, как хостам в локалке:
+---------------------+
| 10.0.0.254/24|
(internet)-eth2-wan---[router]--[br-lan]----eth0-lan-(LAN)
| | | |
| vnet0 vnet1 |
| | | |
| [vm0] [vm1] |
+---------------------+
В терминах systemd-networkd:
# /etc/systemd/network/br-lan.netdev
[NetDev]
Name=br-lan
Kind=bridge
[Bridge]
STP=false
# /etc/systemd/network/br-lan.network
[Match]
Name=br-lan
[Network]
Address=10.0.0.254/24
IPv4Forwarding=yes
IPv6Forwarding=yes
DHCPServer=yes
# /etc/systemd/network/eth0-lan.network
[Match]
Name=eth0-lan
[Network]
Bridge=br-lan
# /etc/systemd/network/eth2-wan.network
[Match]
Name=eth2-wan
[Network]
IPMasquerade=ipv4