
Recientemente configuré un servidor con su red administrada directamente por systemd-networkd
(nuked netplan.io
y Network Manager) y le di direcciones IP estáticas como esta:
/etc/systemd/network/10-ethernet.network
[Match]
Name=eno1
[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=192.168.1.1
Después de reiniciar systemd-networkd.service
, las rutas predeterminadas se ven así:
default via 192.168.1.1 dev eno1 proto static
default via 172.16.0.1 dev eno2 proto static
default via 172.31.255.1 dev eno3 proto static
^^^
Debido a que hay varias NIC y quiero elegir eno1
la preferida, quiero que las rutas se presenten así:
default via 192.168.1.1 dev eno1 proto static metric 100
default via 172.16.0.1 dev eno2 proto static metric 300
default via 172.31.255.1 dev eno3 proto static metric 500
^^^^^^^^^^
Sin el metric
valor, el valor predeterminado es 0, lo que significa que todas las rutas tienen la misma prioridad (la más alta), lo cual quiero evitar.
Probé esta configuración:
[Route]
Gateway=192.168.1.1
Metric=100
Pero sólo genera unextraruta con la métrica deseada mientras aún quedan las originales (faltantes metric
).
Estoy ejecutando Systemd 240. ¿Cómo debo lograr esto?
Respuesta1
En este hilo puedes ver a los desarrolladores hablando sobre cómo funcionan las cosas y cómo deberían funcionar:https://github.com/systemd/systemd/issues/928
Dan un par de ejemplos:
Debajo de la etiqueta de ruta
[Route]
Destination=192.168.0.0/24
Metric=2048
Bajo la etiqueta DHCP
[DHCP]
RouteMetric=1024
Se explica que:
Las rutas de subred se configuran sin métricas a través de address_configure en networkd-address.c cuando se obtiene una IP y las rutas proporcionadas por dhcp con métricas se procesan más tarde a través de link_set_dhcp_routes en networkd-dhcp4.c
Además hay una advertencia:
RouteMetric funciona para paquetes enrutados, pero no para aquellos que permanecen en la subred local
Es posible que la funcionalidad exacta que desea no exista todavía, ya que el ticket que cité está actualmente abierto. No dudes en enviar comentarios directamente a los desarrolladores y unirte a la discusión si crees que tienes una idea sobre cómo debería funcionar.