이 두 가지 명령 형식은 서로 다른 결과를 제공한다는 것을 알았습니다.
$ 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 파일에는 route
CIDR 형식이 유효해야 한다고 명시되어 있습니다.
경로 [-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
.