На моей машине я запускаю несколько контейнеров LXC, некоторые из которых имеют свои собственные IP-адреса вне сети, доступной для хоста. Этот IP-адрес, а также соответствующая маска сети и шлюз были предоставлены мне моим провайдером. Я использую systemd 238 и попробовал следующую конфигурацию [1]:
[Match]
Name=enpXsY
[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
IPForward=yes
[Route]
Destination=10.0.0.64/29
Gateway=10.0.0.65
В журналах systemd-networkd
я вижу следующую ошибку: Could not set route: Network is unreachable
, но я не могу это объяснить. Если я не укажу шлюз, ядро сможет нормально маршрутизировать эту сеть. Таким образом, я предполагаю, что он также сможет направлять трафик к шлюзу через тот же интерфейс. Это даже не работает, если я указываю маршрут с Destination=10.0.0.65/32
перед маршрутом к 10.0.0.64/29
, чтобы взять ядро за руку и объяснить, как добраться до этой сети.
ОБНОВЛЕНИЕ: Тем временем я значительно изменил конфигурацию сети хоста, но это были адреса IPv4 и маршруты, с которыми он был настроен [1]:
# ip -4 address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enpXsY: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 192.168.0.2/24 brd 192.168.0.255 scope global enpXsY
valid_lft forever preferred_lft forever
4: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 10.10.10.1/24 brd 10.10.10.255 scope global lxcbr0
valid_lft forever preferred_lft forever
# ip -4 route
default via 192.168.0.1 dev enpXsY proto static
192.168.0.0/24 dev enpXsY proto kernel scope link src 192.168.0.2
10.10.10.0/24 dev lxcbr0 proto kernel scope link src 10.10.10.1
[1]: Я перевел фактические IP-адреса в аналогичные адреса в не маршрутизированных сетях из соображений конфиденциальности.