systemd-networkd를 사용하여 기본 게이트웨이의 순서를 변경하는 방법

systemd-networkd를 사용하여 기본 게이트웨이의 순서를 변경하는 방법

두 개의 네트워크 인터페이스(systemd-networkd 사용)로 구성된 lxd 컨테이너가 있습니다.

첫 번째에는 고정 IP 주소가 있습니다.

testuser@lxd-7e5cbece-180b-427f-a8b1-b2c12f6e9d79:~$ cat /etc/systemd/network/20-net0.network 
[Match]
Name=net0

[Network]
Address=162.132.242.249/26
Gateway=162.132.192.252
DNS=162.132.192.252
DNS=162.132.170.6

lxd의 기본 인터페이스(DHCP 사용):

testuser@lxd-7e5cbece-180b-427f-a8b1-b2c12f6e9d79:~$ cat /etc/systemd/network/eth0.network 
[Match]
Name=eth0

[Network]
DHCP=ipv4

[DHCP]
SendHostname=True

이제 문제는 라우팅 테이블이 162.132.192.252(net0에서) 기본 게이트웨이로 사용하여 생성되지만 eth0의 게이트웨이를 기본 게이트웨이로 사용하고 싶다는 것입니다.

testuser@lxd-7e5cbece-180b-427f-a8b1-b2c12f6e9d79:~$ sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         162.132.242.252 0.0.0.0         UG    0      0        0 net0
0.0.0.0         10.245.111.1    0.0.0.0         UG    1024   0        0 eth0
10.245.111.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.245.111.1    0.0.0.0         255.255.255.255 UH    1024   0        0 eth0
162.132.242.192 0.0.0.0         255.255.255.192 U     0      0        0 net0

1) 라우팅 테이블은 왜 이런 순서로 생성되나요? (먼저 net0, 그다음 eth0)

2) 기본 게이트웨이 순서를 변경할 수 있나요?

답변1

동일한 문제에 직면한 사람이라면 실제로 지표를 사용하여 이 작업을 수행할 수 있습니다. [Network] 섹션에서 기본 게이트웨이를 정의하는 대신 정적 인터페이스에 더 낮은 메트릭을 사용하여 기본 경로를 추가할 수 있습니다.

[Match]
Name=net0

[Network]
Address=162.132.242.249/26
DNS=162.132.192.252
DNS=162.132.170.6

[Route]
Gateway=162.132.192.252
Destination=0.0.0.0/0
Metric=1024

그런 다음 DHCP 인터페이스를 사용하여 동일한 작업을 수행할 수 있습니다. 게이트웨이는 DHCP 서버에서 제공되므로 정의할 필요가 없습니다.

[Match]
Name=eth0

[Network]
DHCP=ipv4

[DHCP]
SendHostname=True
UseDomains=True

[Route]
Destination=0.0.0.0/0
Metric=1000

이제 eth0 인터페이스를 기본 게이트웨이로 사용하여 원하는 라우팅 테이블을 갖게 되었습니다.

> ip route list
default dev eth0 proto static metric 1000 
default dev net0 proto static metric 1024 
default via 10.245.111.1 dev eth0 proto dhcp src 10.245.111.96 metric 1024 
10.245.111.0/24 dev eth0 proto kernel scope link src 10.245.111.96 
10.245.111.1 dev eth0 proto dhcp scope link src 10.245.111.96 metric 1024 
162.132.242.192/26 dev net0 proto kernel scope link src 162.132.242.249 

답변2

이것은 실제로 프로그래밍 질문이 아닙니다. StackExchange Unix 및 Linux에서 이와 같은 질문을 하는 것이 좋습니다.

DHCP를 사용하는 여러 인터페이스로 인해 여러 기본 경로가 발생하는 비슷한 상황이 발생했습니다.

여러분에게도 효과가 있을 수 있는 제가 한 일은 DHCP 경로가 필요하지 않다고 인터페이스에 알리는 것입니다. .network인터페이스 파일 에 UseRoutes=false다음 예와 같이 DHCP 옵션을 추가합니다.

[Match]
Name=eno3

[Network]
DHCP=ipv4

[DHCP]
UseRoutes=false

관련 정보