두 개의 네트워크 인터페이스(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