ROUTE(8)

명칭
route - 메뉴얼로 routing table를 조작한다

서식
route [-dnqtv] command [ [modifiers] args]

해설
route 유틸리티는 네트워크 routing table를 수동으로 조작합니다. 통상은, routed(8) (와)과 같은 시스템 routing table 관리 demon가 메인트넌스를 하고 있으므로, 메뉴얼에서의 조작은 필요 없습니다.

route 유틸리티는 지정할 수 있는 옵션은 소수입니다만, 강력한 명령어를 서포트하고 있습니다. 유저는 route(4) 에 두어 해설되고 있는 프로그램 가능한 인터페이스를 통해, 임의의 요구를 지정할 수가 있습니다.

이하의 옵션을 사용 가능합니다:

-n  리포트의 출력에 대해, 호스트명과 네트워크명의 심볼명에서의 표시를 억제합니다. (심볼명으로 숫자에 의한 주소의 변환 처리에는 시간이 걸려, 또 네트워크가 정상적으로 동작하고 있을 필요가 있습니다. 그 때문에, 특히 네트워크의 동작의 수정중에는, 변환 처리를 행하지 않는 것이 형편상 좋을지도 모릅니다. )

-v  (장황 모드) 상세한 정보를 출력합니다.

-q  add, delete, flush 명령로부터의 모든 출력을 억제합니다.

route 유틸리티에서는 이하의 6 개의 명령을 제공하고 있습니다.

add 루트를 추가합니다.
flush
    모든 루트를 삭제합니다.
delete
    지정된 루트를 삭제합니다.
change
    루트의 속성 (게이트웨이등)을 변경합니다.
get 어느 행선지에 대한 루트를 검색해, 표시합니다.
monitor
    루팅 정보 베이스의 변경, 루팅 검색의 실패, 네트워크 분할의 혐의등의 정보를 계속적으로 보고합니다.

monitor 명령은 이하의 서식입니다.

route [-n] monitor

flush 명령은 이하의 서식입니다.

route [-n] flush [family]

flush 명령이 지정되면(자), route (은)는 모든 게이트웨이의 엔트리에 있어서의 routing table를 삭제합니다. 주소 패밀리가 -osi, -xns, -atalk, -inet6, -inet 의 몇개의 수식자에 의해 지정되어 있는 경우, 그 주소 패밀리의 행선지를 가지는 루트만이 삭제됩니다.

그 외의 명령은 이하의 서식입니다.

route [-n] command [-net | -host] destination gateway [netmask]

여기서 destination (은)는 행선지의 호스트 혹은 네트워크입니다. gateway (은)는 패킷이 루트 되어야 할 다음의 중계점입니다. 어느 특정의 호스트에의 루트는, destination 그리고 지정된 인터넷 주소를 해석하는 것에 의해, 네트워크에의 루트와 구별됩니다. 옵션의 수식자 -net, -host 하지만 지정되면(자), destination (을)를 각각 네트워크 혹은 호스트로서 강제적으로 해석합니다. 이러한 수식자가 없으면, destination 에 INADDR_ANY (0.0. 0.0) 의 “로컬 주소부” 하지만 포함될까 destination 하지만 네트워크의 심볼명인 경우는 네트워크에의 루트, 그 외의 경우는 호스트에의 루트와 상정합니다. destination (은)는, net/bits 의 서식에서도 지정 가능합니다.

예를 들면, 128.32 하 -host 128.0. 0.32 (으)로서 해석됩니다. 128.32. 130 하 -host 128.32. 0.130 (으)로서 -net 128.32 하 128.32. 0.0 (으)로서 -net 128.32. 130 하 128.32. 130.0 (으)로서 해석됩니다. 192.168. 64/20 하 -net 192.168. 64 -netmask 255.255. 240.0 (으)로서 해석됩니다.

destination 에 대한다 default 지정은, -net 0.0. 0.0 (와)과 같은 의미이며, 디폴트 경로입니다.

행선지가 게이트웨이로서 동작하는 중계점없이, 어느 인터페이스로부터 직접 도달 가능한 경우, -interface 수식자를 지정하지 않으면 안됩니다. 이 경우, 지정된 게이트웨이는 공통된 네트워크상의 로컬 호스트의 주소가 되어, 그 인터페이스가 전송에 사용되는 것을 나타냅니다. 또, 인터페이스가 point to point 접속의 경우, 인터페이스를 그 이름으로 지정할 수 있습니다. 이 경우, 로컬이나 리모트의 주소가 변경되어도 그 루트는 유효인 채 남습니다.

옵션의 수식자 -xns, -osi, -atalk, -link (은)는 거기에 계속되어 지정되는 주소가, 각각 XNS, OSI, AppleTalk 주소 패밀리이다, 혹은 링크 레벨의 주소인 것을 지정합니다. 이러한 경우, 이름은 심볼명이 아니고, 숫자에 의해 지정을 행하지 않으면 안됩니다.

옵션의 수식자 -netmask (은)는 넷 마스크 옵션포함의 OSI ESIS 프로토콜에 의한 리디렉트의 효과를 실현하기 위한 것입니다. 즉, 네트워크 인터페이스의 암묵의 넷 마스크와는 다르다 넷 마스크를 가지는 서스네트워크를 수동으로 추가합니다. (이 방법에 따르지 않는 경우는, OSPF 나 ISIS routing protocol에 의해 통신합니다. ) 이 수식자에 이어, 주소 파라미터 (이것은 네트워크 마스크로서 해석됩니다)(을)를 지정합니다. AF_INET 의 경우에 생성되는 암묵의 네트워크 마스크는, 이 옵션을 destination 파라미터에 이어 지정하는 것에 의해, 덧쓰기할 수가 있습니다.

AF_INET6 그럼, -mask 수식자대신에 -prefixlen 수식자가 사용 가능합니다. IPv6 에서는 비연속인 마스크가 용서되지 않기 때문입니다. 예를 들면 -prefixlen 32 (은)는 네트워크 마스크 ffff:ffff:0000:0000:0000:0000:0000:0000 의 사용을 지정합니다. prefixlen 의 기본값은 64 이며, 집약 가능 (aggregatable) 주소와 함께 동작 가능해지고 있습니다. 다만, default 지정시에는 0 이 가정됩니다. 이 수식자는 AF_INET6 주소 패밀리만으로 동작 가능한 일로 주의해 주세요.

루트에는 몇개의 플래그가 있어, 그 루트를 사용하는 행선지에 데이터를 송신할 때의 프로토콜의 동작에 영향을 미니다. 이러한 플래그는 이하의 수식자에 의해 세트 (혹은 클리어) 할 수 있습니다.

    -cloning   RTF_CLONING    - 사용중의 루트를 새롭게 하나 생성한다.
    -xresolve  RTF_XRESOLVE   - (외부로부터의 검색에 대해서) 사용중인 취지의 멕
                                세이지를 발행한다.
    -iface    ~RTF_GATEWAY    - 행선지가 직접 도달 가능.
    -static    RTF_STATIC     - 수동으로 루트를 추가한다.
    -nostatic ~RTF_STATIC     - 커널이나 demon에 의해 루트가 추가되었다
                                같게 행동한다.
    -reject    RTF_REJECT     - 매치했을 경우에 ICMP unreachable 를 출력한다.
    -blackhole RTF_BLACKHOLE  - (갱신중에) 아무것도 보고하지 않고 패킷을 버린다.
    -proto1    RTF_PROTO1     - 프로토콜에 특유의 플래그 #1 를 세트 한다.
    -proto2    RTF_PROTO2     - 프로토콜에 특유의 플래그 #2 를 세트 한다.
    -llinfo    RTF_LLINFO     - 프로토콜 주소로부터 링크 주소에의 변환의
                                정당성을 체크한다.

옵션의 수식자 -rtt, -rttvar, -sendpipe, -recvpipe, -mtu, -hopcount, -expire, -ssthresh 에 의해 TCP 나 TP4 의 트랜스폴트 레벨의 프로토콜에 의한다 루팅의 엔트리중에서 메인트넌스 되는 값의 초기치를 지정합니다. 이것들은 각각의 수식자의 전에 -lock 메타 수식자를 지정하는 것에 의해, 개별적으로 그 값을 잠글 수가 있습니다. 또 -lockrest 메타 수식자를 붙이는 것에 의해, 그 후에 계속되는 모든 값을 잠글 수도 있습니다.

change 혹은 add 명령에 대해, destination 혹은 gateway 하지만 루트를 특정하는데 불충분할 경우 (예를 들어 ISO 의 케이스에 대해, 복수의 인터페이스가 같은 주소를 가지고 있는 것 같은 경우), -ifp (이)나 -ifa 수식자를 사용하는 것에 의해, 인터페이스나 인터페이스 주소를 특정할 수가 있습니다.

옵션의 -proxy 수식자를 지정하면(자), RTF_LLINFO 경로표 엔트리가, “공표되었다 (대리만의)” ARP 엔트리가 되어, arp(8) (은)는 그처럼 보고합니다.

destination (이)나 gateway 그리고 지정된 모든 심볼명은, 우선 호스트명으로서 gethostbyname(3) (을)를 사용해 검색됩니다. 검색에 실패했을 경우는, 그 이름을 네트워크명으로 봐 getnetbyname(3) 에 의해 검색됩니다.

route 유틸리티는 루팅 소켓과 새로운 메세지 타입이다 RTM_ADD, RTM_DELETE, RTM_GET, RTM_CHANGE (을)를 사용합니다. routing table의 변경은 슈퍼 유저만이 행할 수가 있습니다.

진단

add [host | network ] %s: gateway %s flags %x 지정된 루트가 테이블에 추가되었습니다. 출력된 값은 ioctl(2) 의 소환 중(안)에서 사용된 routing table의 엔트리로부터의 것입니다. 지정된 게이트웨이 주소가 그 게이트웨이의 프라이머리 주소 ( gethostbyname(3) 에 의해 돌려주어지는 최초의 것)이 아니었던 경우, 게이트웨이 주소가 심볼명에 가세해, 숫자에서도 표시됩니다.

delete [ host | network ] %s: gateway %s flags %x 지정된 루트가 테이블에서 삭제되었습니다.

%s %s done flush 명령이 지정되었을 경우, 삭제된 각 routing table 엔트리가 이 형식의 메세지로 보고됩니다.

Network is unreachable 지정된 게이트웨이가 직접 도달 가능한 네트워크상에 없기 위해(때문에), 루트의 추가에 실패했습니다. hop 수가 1 인 게이트웨이를 지정하지 않으면 안됩니다.

not in table 테이블에 없는 엔트리를 삭제하려고 했습니다.

routing table overflow 루트의 추가를 시도했습니다만, 시스템의 자원이 적고, 새로운 엔트리를 작성하기 위한 메모리를 할당할 수 없었습니다.

gateway uses the same route change 조작의 결과 변경된 경로는, 그 게이트웨이가 사용하는 경로와 동일합니다. 다음 호프의 게이트웨이가 다른 경로로부터 도달 가능해야 합니다.

관련 항목
netintro(4), route(4), arp(8), IPXrouted(8), routed(8)

역사
route 유틸리티는 4.2BSD (으)로부터 등장했습니다.

버그
최초의 단락은 다소 routed(8) 의 능력을 과장되게 쓰고 있습니다.