`route`가 CIDR 형식의 대상 매개변수를 허용하지 않는 이유는 무엇입니까?

`route`가 CIDR 형식의 대상 매개변수를 허용하지 않는 이유는 무엇입니까?

이 두 가지 명령 형식은 서로 다른 결과를 제공한다는 것을 알았습니다.

$ sudo route -v add -net <IP> netmask 255.255.255.255 gw <gateway>
# succeeds without outputting text

$ sudo route -v add -net <IP>/32 gw <gateway>
SIOCADDRT: Invalid argument

man 파일에는 routeCIDR 형식이 유효해야 한다고 명시되어 있습니다.

경로 [-v] [-A 제품군] 추가 [-net|-host] 대상 [netmaskNm] [gw Gw]...

[...]

대상: 대상 네트워크 또는 호스트. 점으로 구분된 십진수 표기법으로 IP 주소 또는 호스트/네트워크 이름을 제공할 수 있습니다.

그렇다면 내가 무엇을 놓치고 있는 걸까요?

참고: 또한 자세한 정보 표시 옵션은 이 명령에 유용하지 않은 것 같습니다.

답변1

차이점은 라우팅 명령에 의해 수행된 매개변수 분석에 있어야 합니다. 첫 번째 명령의 결과는 호스트에 대한 경로를 설정하고 해당 호스트를 네트워크에 대한 경로로 지정하려고 하기 때문에 부적절할 수 있는 두 번째 명령의 오류가 아닌 것 같습니다.

-net을 -host로 바꾸면 두 번째 명령이 허용됩니다.

$ route -v add -host <IP>/32 gw <gateway>

어쨌든, 다음을 통해 경로를 추가할 수 있는 ip 명령을 사용하는 것이 좋습니다.

$ ip route add <IP>/32 via <gateway>

또는

$ ip route add <IP> via <gateway>

답변2

혼란스러운 점이 있다고 생각합니다.

점으로 구분된 십진수 IP 주소 또는 호스트/네트워크 이름을 제공할 수 있습니다.

host/network이름이 그런 것 같긴 CIDR한데, 써야 할 것 같아요.호스트 이름 또는 네트워크 이름하나는 알게 될 것입니다 /etc/hosts and /etc/networks.

관련 정보