ROUTE(8) | FreeBSD System Manager's Manual | ROUTE(8) |
名称
route — マニュアルで経路表を操作する書式
route | [ -dnqtv] command [ [ modifiers] args] |
解説
route ユーティリティは、ネットワークの経路表 (ルーティングテーブル) を手動で操作するために使用されます。それは、 routed(8) ようなシステム経路表管理デーモンが、この仕事の面倒を見るべきなので、通常、必要ではありません。route ユーティリティは、制限された数の一般的なオプションをサポートしますが、 route(4) で議論されたプログラムのインタフェースを通して配布することができたあらゆる任意の要求を指定することをユーザに有効にして、豊富なコマンド言語をサポートしています。
次のオプションが使用可能です:
- -d
- デバッグのみのモードで実行します、すなわち、実際に経路表を修正しません。
- -n
- アクションを報告するとき、ホストとネットワーク名をシンボルで印刷 (表示) する試みを回避します。 (シンボル名と数値の等価なものの間で変換するプロセスは、かなりの時間を消費するかもしれず、ネットワークの正確な動作を要求します。したがって、特にネットワークの動作を修理することを試みるとき、これを忘れることは都合が良いかもしれません)。
- -t
- テスト専用モードで実行します。 /dev/null が、ソケットの代わりに使用されます。
- -v
- (冗長モード) 追加の詳細を印刷 (表示) します。
- -q
- add, change, delete と flush コマンドからのすべての出力を抑制します。
route ユーティリティは、次のコマンドを提供しています:
- add
- 経路 (ルート) を追加します。
- flush
- すべての経路を削除します。
- delete
- 指定された経路を削除します。
- del
- delete コマンドの別の名前。
- change
- (ゲートウェイのような) 経路の局面を変更します。
- get
- 宛先のための経路を検索して、表示します。
- monitor
- 経路情報ベースへのあらゆる変更、経路制御検索間違いまたは疑わしいネットワーク分割を連続的に報告します。
- show
- get コマンドの別の名前。
monitor コマンドには、次の構文があります:
flush コマンドには、次の構文があります:
flush コマンドが指定されるなら、 route は、すべてのゲートウェイのエントリの経路表を ``フラッシュ'' します。アドレスファミリが -osi, -xns, -atalk, -inet6 または -inet 修飾子のいずれかによって指定されているとき、区別されたファミリのアドレスがある宛先を持つ経路だけが削除されます。 -fib オプションが指定されるとき、操作は、指定された FIB (経路表) に適用されます。
その他のコマンドには、次の構文があります:
ここで、 destination は、宛先のホストまたはネットワークで、 gateway は、パケットが経路制御されるべきである間の次の中継点です。特別のホストへの経路は、 destination 引数として指定されるインターネットアドレスを解釈することによって、ネットワークへの経路と区別されます。オプションの修飾子 -net と -host によって、宛先は、それぞれネットワークまたはホストとして強制的に解釈されます。そうでなければ、 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
として解釈されます。
default (デフォルト) の destination (宛先) は、デフォルトの経路と同義語です。 IPv4
に対して、 -net -inet 0.0.0.0
であり、 IPv6
に対して、 -net -inet6 ::
です。
宛先がゲートウェイとして動作する中間のシステムがないことを要求するインタフェースを通して直接到達可能であるなら、 -interface 修飾子が指定されるべきです。与えられたゲートウェイは、送信のために使用されるインタフェースを示し、共通のネットワークでの、このホストのアドレスです。代わりに、インタフェースがポイントツーポイントのインタフェース自体の名前であるなら、その場合に、たとえローカルまたはリモートアドレスが変わっても、経路は、有効なままです。
オプションの修飾子 -xns, -osi, -atalk と -link は、すべての続くアドレスが、 XNS, OSI または AppleTalk アドレスファミリである、またはリンクレベルのアドレスとして指定され、名前が、シンボル名ではなく、数値によって指定されなければならないことを指定します。
オプションの -netmask 修飾子は、マスクオプションで OSI ESIS の効果を上げるか、または (ほかの、OSPF または ISIS の経路制御プロトコルを使用して、通信されるように) 暗黙のネットワークインタフェースのものと異なるネットマスクがあるサブネットの経路を手動で追加することを目的としています。 (ネットワークマスクとして解釈される) 追加の続くアドレスパラメータを指定します。 AF_INET の場合に生成された暗黙のネットワークマスクは、宛先パラメータに続くこのオプションを確かめることによって上書きすることができます。
AF_INET6 について、 -prefixlen 修飾子は、連続的でないマスクが IPv6 で許可されないので、 -mask 修飾子の代りに利用可能です。例えば -prefixlen 32
は、使用される ffff:ffff:0000:0000:0000:0000:0000:0000
のネットワークマスクを指定します。 prefixlen のデフォルト値は、集約可能な (aggregatable) アドレスとうまくやる 64 です。しかし、 default が指定されたなら、0 が仮定されます。修飾子は、 AF_INET6 アドレスファミリのためだけで動作することに注意してください。
経路は、経路によって一致される宛先に送信するとき、プロトコルの操作に影響を及ぼすフラグを関連付けます。これらのフラグは、次のような対応する修飾子を示すことによって設定 (または、ときどきクリア) されます。
-xresolve RTF_XRESOLVE - (外部の検索のために) 使用に関するメッセージを 発行する -iface ~RTF_GATEWAY - 宛先は直接到達可能 -static RTF_STATIC - 手動で追加された経路 -nostatic ~RTF_STATIC - カーネルまたはデーモンによって追加された偽り の経路 -reject RTF_REJECT - 一致したとき, ICMP 到達不可能を発行する -blackhole RTF_BLACKHOLE - (更新の間に) 静かにパケットを破棄する -proto1 RTF_PROTO1 - プロトコル特有の経路制御フラグ #1 を設定する -proto2 RTF_PROTO2 - プロトコル特有の経路制御フラグ #2 を設定する
オプションの修飾子 -rtt, -rttvar, -sendpipe, -recvpipe, -mtu, -hopcount, -expire と -ssthresh は、TCP と TP4 のような、トランスポートレベルのプロトコルによって経路制御エントリで保守される数量の初期値を提供します。これらは、 -lock メタ修飾子によってロックされる、そのような修飾子に先行することによって個別にロックされるか、またはすべての続くメトリクスは、 -lockrest メタ修飾子によってロックされることを指定することができます。
オプションの修飾子 -fib number は、コマンドがデフォルトでない FIB に適用されることを指定します。 number は、 net.fibs sysctl(8) MIB より小さくなければなりません。この修飾子が指定されないか、または負の数が指定されるとき、 net.my_fibnum sysctl(8) MIB で示されるデフォルトの FIB が使用されます。
number は、コンマで区切られたされたリストおよび範囲指定によって複数の FIB を許可します。“ -fib 2,4,6
”は、FIB 番号 2、4 と 6 を意味します。“ -fib 1,3-5,6
”は、1、3、4、5 と 6 を意味します。
(いくつかのインタフェースに同じアドレスがある ISO 場合のように) 宛先とゲートウェイが経路を指定するのには十分でないところの change と add コマンドで、 -ifp または -ifa 修飾子は、インタフェースまたはインタフェースアドレスを決定するために使用されます。
destination または gateway のために指定されたすべてのシンボル名は、 gethostbyname(3) を使用して、ホスト名として最初に検索されます。この検索が失敗するなら、 getnetbyname(3) は、ネットワークの名前として名前を解釈するために使用されます。
route ユーティリティは、経路制御ソケットと新しいメッセージタイプ RTM_ADD, RTM_DELETE, RTM_GET と RTM_CHANGE を使用します。そのため、スーパユーザだけが経路表を修正することができます。
終了ステータス
The route utility exits 0 on success, and >0 if an error occurs.使用例
ネットワークの経路表にデフォルトの経路を追加します。これは、192.168.1.1 でデフォルトゲートウェイへの経路表で利用可能でない宛先のためにすべてのパケットを送信します:
route add -net 0.0.0.0/0 192.168.1.1
デフォルトの経路を追加するより短いバージョンも、次のように書くことができます:
route add default 192.168.1.1
172.16.1.1 ゲートウェイを経由して 172.16.10.0/24 のネットワークに静的な経路を追加します:
route add -net 172.16.10.0/24 172.16.1.1
経路表に既に確立している静的な経路のゲートウェイを変更します:
route change -net 172.16.10.0/24 172.16.1.2
宛先のネットワークのための経路を表示します:
route show 172.16.10.0
経路表から静的な経路を削除します:
route delete -net 172.16.10.0/24 172.16.1.2
経路表からすべての経路を削除します:
route flush
診断
- add [host | network ] %s: gateway %s flags %x
- 指定された経路が、テーブルに追加されています。印刷 (表示) された値は、 ioctl(2) 呼び出しで供給された経路表のエントリからです。使用されるゲートウェイのアドレスがゲートウェイのプライマリ (primary) アドレス ( gethostbyname(3) によって返される最初のもの) でなかったなら、ゲートウェイのアドレスは、シンボルと同様に数値で印刷 (表示) されます。
- delete [ host | network ] %s: gateway %s flags %x
- エントリを削除するときを除いて、上記の通りです。
- %s %s done
- flush コマンドが指定されるとき、削除された各経路表のエントリは、この形式のメッセージで示されます。
- Network is unreachable
- リストされたゲートウェイが直接接続しているネットワークになかったので、経路を追加する試みが、失敗しました。次の中継点のゲートウェイが与えられなければなりません。
- not in table
- delete 操作が、テーブルに存在しないエントリに対して試みられました。
- routing table overflow
- add 操作が試みられましたが、システムは、リソースが少なく、新しいエントリを作成するためのメモリを割り付けることができませんでした。
- gateway uses the same route
- change 操作が、ゲートウェイが変更されているものと同じ経路を使用する経路の結果となりました。次の中継点のゲートウェイは、異なる経路を通って到達可能であるべきです。
歴史
route ユーティリティは、 4.2BSD で登場しました。バグ
最初の段落は、 routed(8) の能力をわずかに過大評価されています。現在、 RTF_BLACKHOLE フラグが設定されている経路は、あらゆる効果があるフラグのために -iface オプションを使用する lo(4) ドライバのインスタンスに設定されたゲートウェイがある必要があります。 IP fast forwarding が有効でないなら、その場合に、フラグの意味は、常に尊敬されます。
November 17, 2012 | FreeBSD |