`ip Route add`는 중복 항목을 허용하지 않습니다. 이에 의존할 수 있습니까?

`ip Route add`는 중복 항목을 허용하지 않습니다. 이에 의존할 수 있습니까?

경로를 추가하면

ip route add 172.10.1.0/24 via 10.0.0.100 dev eth0

그런 다음 경로가 이미 존재하므로 동일한 명령을 두 번째로 실행하면 실패합니다.

이 동작은 어디에도 문서화되어 있지 않습니다. 이 동작에 의존하는 것이 안전합니까? 아니면 다른/향후 버전의 Linux에서 중복 라우팅을 허용합니까?

라우팅 테이블을 구성하는 bash 스크립트를 작성 중입니다. 스크립트를 여러 번 실행해도 안전하게 만들고 싶습니다.

두 가지 옵션이 있습니다.

  • 명령을 run 문에 넣고 ip route add정규식을 사용하여 경로가 올바른지 확인하세요.ifip route list

  • 그냥 실행하세요. ip route add경로가 이미 존재하기 때문에 실패하면 무시하세요.

첫 번째는 의존해야 하기 때문에 별로 강력해 보이지 않습니다 ip route list. 두 번째는 문서화되지 않은 동작에 의존하는 것 같습니다.

답변1

ip route replace대신 사용할 수 있습니다 add.

add이는 동일한 매개변수를 사용하지만 경로가 현재 존재할 때 실패하지 않습니다.

man ip-route우리에게 말한 대로

IP 경로 교체
변경 또는 새로 추가

경로가 아직 설정되지 않은 경우 자동으로 경로를 추가하고 지정한 경로로 "변경"(교체)합니다.

관련 정보