대략적인 개요는 다음과 같습니다. 두 개의 인터페이스(및 주소)가 있는 Impish Ubuntu 서버가 172.16.2.103/24
있습니다 10.1.2.10/24
. 기본 트래픽이 게이트웨이를 통과하도록 하고 싶습니다 172.16.2.254
. 그러나 소스 주소를 지정하면 10.1.2.10
게이트웨이가 10.1.2.254
. 다음은 99%의 시간 동안 작동 172.16.2.103
하지만 10.1.2.0/24
. 이것은 가능했지만 /etc/networks/interfaces
netplan을 사용하여 알아낼 수 없었습니다.
이것이 내 netplan 구성에 있는 것입니다.
network:
ethernets:
ens160:
addresses:
- 172.16.2.103/24
routes:
- to: 0.0.0.0/0
via: 172.16.2.254
nameservers:
addresses:
- 10.1.2.1
search:
- localdomain
optional: yes
ens192:
addresses:
- 10.1.2.10/24
routing-policy:
- from: 10.1.2.10
table: 10
routes:
- to: 0.0.0.0/0
via: 10.1.2.254
table: 10
optional: yes
version: 2
내가 말했듯이 이것은 대부분 잘 작동합니다. 나는 패킷의 소스 주소를 변경하면 10번 라우팅 테이블을 조회한다는 것을 의미하는 라우팅 정책(일명 IP 규칙)을 가지고 있습니다. 그러나 메인에서 제거하고 싶은 추가 경로가 있습니다.
라우팅 테이블을 확인해 보면 다음과 같습니다.
IN1: me@host:~$ ip route
OUT1: default via 172.16.2.254 dev ens160 proto static
OUT2: 172.16.2.0/24 dev ens160 proto kernel scope link src 172.16.2.103
OUT3: 10.1.2.0/24 dev ens192 proto kernel scope link src 10.1.2.10
IN2: me@host:~$ ip route list table 10
OUT5: default via 10.1.2.254 dev ens192 proto static
OUT3을 제거하거나 더 정확하게 10 라우팅 테이블로 이동하여 기본 라우팅 테이블에 10.1.2.0/24에 대한 레이어 2 링크가 없도록 하고 싶습니다. 다음과 같이 수동으로 수행할 수 있습니다.
me@host:~$ sudo ip route del 10.1.2.0/24 dev ens192
하지만 그것을 netplan에 포함시키는 방법을 알 수 없습니다. 이전에는 up 문을 추가했지만 /etc/network/interfaces
더 이상 옵션이 아닙니다.
미리 감사드립니다.
답변1
나는 이것을 해결책이라기보다는 해결 방법이라고 부르고 싶습니다. 내 문제는 원하지 않는 경로를 제거하고 싶었다는 것입니다. 해결 방법은 다음을 만드는 것입니다.또 다른우선 순위가 더 높은 경로!
network:
ethernets:
ens160:
addresses:
- 172.16.2.103/24
routes:
- to: 0.0.0.0/0
via: 172.16.2.254
# ** ADDITIONAL ROUTE **
- to: 0.0.0.0/0
via: 172.16.2.254
table: 172
# **********************
nameservers:
addresses:
- 10.1.2.1
search:
- localdomain
optional: yes
ens192:
addresses:
- 10.1.2.10/24
routing-policy:
- from: 10.1.2.10
table: 10
# ** ADDITIONAL ROUTING POLICY **
- to: 172.16.2.0/24
table: 172
# *******************************
routes:
- to: 0.0.0.0/0
via: 10.1.2.254
table: 10
optional: yes
version: 2
ens160 인터페이스에 대한 추가 라우팅 정책 및 경로를 참고하세요. 그러면 172라는 또 다른 라우팅 테이블이 생성되며 여기에는 기본 테이블의 기본 경로(172.16.2.254)와 동일한 기본 경로가 하나 있습니다. 이제 라우팅할 때에게172.16.2.0/24, 잘못된 경로의 기본 테이블을 경유하는 대신 172 라우팅 테이블을 경유합니다.
기본 테이블에서 경로를 삭제할 수 있는 방법이 있는지 알려주시면 감사하겠습니다. 하지만 이제 시스템이 작동하고 있으므로 2주 후에 이 방법을 허용된 솔루션으로 표시하겠습니다.