![`ip Route add`는 중복 항목을 허용하지 않습니다. 이에 의존할 수 있습니까?](https://linux55.com/image/165102/%60ip%20Route%20add%60%EB%8A%94%20%EC%A4%91%EB%B3%B5%20%ED%95%AD%EB%AA%A9%EC%9D%84%20%ED%97%88%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EC%9D%B4%EC%97%90%20%EC%9D%98%EC%A1%B4%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
경로를 추가하면
ip route add 172.10.1.0/24 via 10.0.0.100 dev eth0
그런 다음 경로가 이미 존재하므로 동일한 명령을 두 번째로 실행하면 실패합니다.
이 동작은 어디에도 문서화되어 있지 않습니다. 이 동작에 의존하는 것이 안전합니까? 아니면 다른/향후 버전의 Linux에서 중복 라우팅을 허용합니까?
예
라우팅 테이블을 구성하는 bash 스크립트를 작성 중입니다. 스크립트를 여러 번 실행해도 안전하게 만들고 싶습니다.
두 가지 옵션이 있습니다.
명령을 run 문에 넣고
ip route add
정규식을 사용하여 경로가 올바른지 확인하세요.if
ip route list
그냥 실행하세요.
ip route add
경로가 이미 존재하기 때문에 실패하면 무시하세요.
첫 번째는 의존해야 하기 때문에 별로 강력해 보이지 않습니다 ip route list
. 두 번째는 문서화되지 않은 동작에 의존하는 것 같습니다.
답변1
ip route replace
대신 사용할 수 있습니다 add
.
add
이는 동일한 매개변수를 사용하지만 경로가 현재 존재할 때 실패하지 않습니다.
man ip-route
우리에게 말한 대로
IP 경로 교체
변경 또는 새로 추가
경로가 아직 설정되지 않은 경우 자동으로 경로를 추가하고 지정한 경로로 "변경"(교체)합니다.