Como adicionar uma rota estática no systemd-networkd?

Como adicionar uma rota estática no systemd-networkd?

Eu tenho um host que está 192.168.0.0/24com um IP de 192.168.0.13. Seu gateway fornecido por DHCP é 192.168.0.254.

A configuração é feita via systemd-networkde o problema abaixo está presente pelo menos até a versão 240(a versão que uso hoje - veja minha resposta sobre versões posteriores).

Preciso que esse host alcance 10.0.0.0/8redes disponíveis através de um 192.168.0.10gateway - isso pode ser feito adicionando uma rota estática:

# ip r add 10.0.0.0/8 via 192.168.0.10

Funciona bem (o tráfego passa).

Agora eu queria adicionar esta entrada à minha systemd-networkdconfiguração, adicionando um [Route]à minha definição atual

[Match]
Name=eth0

[Network]
DHCP=yes

# the entry below is added to ensure a static route

[Route]
Gateway=192.168.0.10
Destination=10.0.0.0/8

Não funciona:

  • nenhuma rota estática é adicionada
  • há uma mensagem de erro no log mencionando uma rede inacessível
Jan 17 11:29:32 rpi-dmz systemd[1]: Stopping Network Service...
Jan 17 11:29:32 rpi-dmz systemd[1]: Stopped Network Service.
Jan 17 11:29:32 rpi-dmz systemd[1]: Starting Network Service...
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: wlan0: Gained IPv6LL
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: eth0: Gained IPv6LL
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: Enumeration completed
Jan 17 11:29:33 rpi-dmz systemd[1]: Started Network Service.
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: eth0: Could not set route: Network is unreachable
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: eth0: DHCPv4 address 192.168.0.13/24 via 192.168.0.254

Como adicionar corretamente essa rota via systemd-networkd?

Responder1

Isso éum bug emsystemd, ainda presente na versão 240.

De acordo com o tópico acima, uma solução alternativa (ou solução, não tenho certeza sobre o status, pois o bug ainda está aberto) é adicionar GatewayOnlink=yesna [Route]seção:

[Match]
Name=eth0

[Network]
DHCP=yes

[Route]
Gateway=192.168.0.10
Destination=10.0.0.0/8
GatewayOnLink=yes

Este parâmetro está disponível na systemdversão ~237.

informação relacionada