
systemd-networkd
최근에 (nuked 및 Network Manager) 에서 직접 네트워크를 관리하는 서버를 설정하고 netplan.io
다음과 같은 고정 IP를 제공했습니다.
/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
다시 시작한 후 systemd-networkd.service
기본 경로는 다음과 같습니다.
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
^^^
NIC가 여러 개 있고 선호하는 NIC를 만들고 싶기 때문에 eno1
경로를 다음과 같이 배치하고 싶습니다.
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
^^^^^^^^^^
값 이 없으면 metric
기본값은 0입니다. 즉, 모든 경로가 동일한 우선순위(가장 높음)를 가지므로 이를 피하고 싶습니다.
나는 이 설정을 시도했습니다:
[Route]
Gateway=192.168.1.1
Metric=100
그러나 그것은 단지추가의원래 메트릭(누락)이 여전히 남아 있는 동안 원하는 메트릭으로 라우팅합니다 metric
.
Systemd 240에서 실행 중입니다. 어떻게 해야 합니까?
답변1
이 스레드에서는 개발자들이 작동 방식과 작동 방식에 대해 이야기하는 것을 볼 수 있습니다.https://github.com/systemd/systemd/issues/928
그들은 몇 가지 예를 제시합니다:
경로 태그 아래
[Route]
Destination=192.168.0.0/24
Metric=2048
DHCP 태그 아래
[DHCP]
RouteMetric=1024
다음과 같이 설명됩니다.
서브넷 경로는 IP를 얻을 때 networkd-address.c의 address_configure를 통해 메트릭 없이 구성되며 메트릭이 있는 dhcp 제공 경로는 나중에 networkd-dhcp4.c의 link_set_dhcp_routes를 통해 처리됩니다.
또한 다음과 같은 주의 사항이 있습니다.
RouteMetric은 라우팅된 패킷에는 작동하지만 로컬 서브넷에 남아 있는 패킷에는 작동하지 않습니다.
제가 인용한 티켓이 현재 열려 있으므로 원하는 정확한 기능이 아직 존재하지 않을 수도 있습니다. 개발자에게 직접 피드백을 제공하고 이것이 어떻게 작동해야 하는지에 대한 아이디어가 있다고 생각되면 토론에 참여하세요.