Netplan은 기본 라우팅 테이블에서 다른 라우팅 정책으로 경로를 (재)이동합니다.

Netplan은 기본 라우팅 테이블에서 다른 라우팅 정책으로 경로를 (재)이동합니다.

대략적인 개요는 다음과 같습니다. 두 개의 인터페이스(및 주소)가 있는 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주 후에 이 방법을 허용된 솔루션으로 표시하겠습니다.

관련 정보