名前 | 形式 | 機能説明 | オプション | オペランド | ファイル | 属性 | Trusted Solars での変更点 | 関連項目 | 診断 | 注意事項
route は、ネットワークルーティングテーブルを手動で操作するためのユーティリティです。これらのテーブルは、通常、システムルーティングデーモン、 routed(1M) 、またはデフォルトの経路およびルーターからのリダイレクトメッセージによって保守されます。
このユーティリティの一般的なオプションの数は限られていますが、このユーティリティでは強力なコマンド言語がサポートされます。ユーザーは、route(7P)で説明するプログラム的なインタフェースを使って行うような任意の要求を指定できます。
route では、ルーティングソケットと、新しいメッセージタイプ RTM_ADD、RTM_DELETE、RTM_GET、および RTM_CHANGE を使用します。
ルーティングテーブル上の destination で指定された特定のホストやネットワークに対し直接操作を行ったり、ルーティングソケットのデバイス型特殊ファイル /dev/rts への DAC アクセス権を取得するには、route が sys_net_config
特権を継承していなければなりません。
Solaris オペレーティング環境の場合と同じように、Trusted Solaris 環境では、管理者がルーティングを「静的」(静的ファイルのルーターや経路の記述で決まる) または「動的」(ルーティング時に決まる) なものとして構成できます。デフォルトでは、動的ルーティングが使用されます。両環境ともデフォルトのゲートウェイ (ルーター) を設定する静的ルーティングファイルは /etc/defaultrouter です。
Trusted Solaris 環境では、管理者が特定ネットワークのゲートウェイやデフォルトのゲートウェイをファイル /etc/tsolgateways に設定できます。 ルーティングの決定は次の順序で行われます。
ファイル /etc/tsolgateways のルーティング情報を取得する。
このファイルが存在しない場合は、ファイル /etc/defaultrouter のルーティング情報を取得する。
このファイルが存在しない場合は、動的ルーティングを開始する。
トラステッドルーティングを行うには、経路にセキュリティ属性を関連付ける必要があります。追加のセキュリティルーティング情報 (SRI) には、機密ラベル範囲、CIPSO DOI、RIPSO ラベル、および RIPSO エラーがあります。トラステッドルーティングに必要な拡張メトリック (extended_metric) は、SRI と単純メトリックからなります。
extended_metric に -e を指定すると、拡張メトリック値を指定する一連の行からなるファイルからメトリックと SRI が返されます。-e オプションと -m オプションは同じ形式です。読みやすくするために、1 行形式を 2 行で示します。
metric= val,min_sl=val,max_sl=val,doi= val, ripso_label= val,ripso_error=val,ripso_only,cipso_only,msix_only
メトリックの val は 0 から 15 までの整数です。min_sl と max_sl の val は 16 進数か文字列形式の機密ラベルです。doi の val はゼロ以外の整数です。ripso_label の val は、分類、1 つのスペース、それにセミコロン (;) で区切られた一連の保護からなります。分類と保護は 16 進数か文字列形式です。ripso_error の val はセミコロン (;) で区切られた一連の保護です。保護は 16 進数か文字列形式です。val にスペースを含める場合は、二重引用符で囲む必要があります。
3 つのキーワード ripso_only、cipso_only、および msix_only に値はありません。これらのキーワードは、それぞれの経路で RIPSO、CIPSO、または MSIX ラベルをもつパケットしか転送できないことを示します。経路に SUN_RIPSO、SUN_CIPSO、または SUN_MSIX ゲートウェイが含まれている場合は、これらの指定が必要です。
キーワードには必須のものと任意のものがあります。拡張メトリック情報の指定には、次の規則が適用されます。
metric、min_sl、max_sl は必須です。
ripso_label と ripso_error は両方とも指定するか、両方とも指定しない必要があります。
cipso_only を指定したら、doi を指定する必要があります。この場合には、ripso_label、ripso_error、ripso_only、および msix_only は指定できません。
ripso_only を指定したら、ripso_label と ripso_error を指定する必要があります。この場合には、doi、cipso_only、msix_only は指定できません。
msix__only を指定したら、doi、ripso_label、ripso_error、cipso_only、ripso_only は指定できません。
-e オプションを使用すると、経路に対し拡張メトリックが生成されます。これらの拡張メトリックは、経路を選択するときの認可チェックに使用されます。
-e オプションを指定しないと、拡張メトリックは生成されません。このコマンドでリモート経路が追加された場合、拡張メトリックがないため、経路を選択するときの認可チェックにはゲートウェイのテンプレートが使用されます。
すべてのゲートウェイエントリのルーティングテーブルをフラッシュします。上記のコマンドにこれを指定すると、route はコマンドを実行する前にゲートウェイをフラッシュします。
このオプションを使用するには、route を uid 0 で実行する必要があります。さらに、file_dac_read
と file_dac_write
特権が必要です。
アクションの報告でホスト名やネットワーク名をシンボリック名で出力しないようにします。これは、たとえば、ローカルネットワークのすべてのネームサーバーが停止しているときや、経路がわからないとネームサーバーにアクセスできない場合に使用します。
(冗長) 詳細を出力します。
すべての出力を抑制します。
file1 から拡張メトリック情報を取得します。file1 の形式は /etc/tsolgateways と同じです。
route は、destination までの経路上で 4 つの commands のどれかを実行します。さらに、すべてのルーティング情報に対し他の 2 つの commands をグローバルに実行します。これら 6 つのコマンドは次のとおりです。
経路を追加します。
このコマンドには、file_dac_read
、file_dac_write
、および sys_net_config
特権が必要です。呼び出し元プロセスの uid が 0 の場合は、sys_net_config
特権が必要です。
経路のいろいろな要素 (ゲートウェイなど) を変更します。
このコマンドには、file_dac_read
、file_dac_write
、および sys_net_config
特権が必要です。呼び出し元プロセスの uid が 0 の場合は、sys_net_config
特権が必要です。
特定の経路を削除します。
このコマンドには、file_dac_read
、file_dac_write
、および sys_net_config
特権が必要です。呼び出し元プロセスの uid が 0 の場合は、sys_net_config
特権が必要です。
ルーティングテーブルからすべてのゲートウェイエントリを削除します。
このコマンドには、file_dac_read
、file_dac_write
、および sys_net_config
特権が必要です。呼び出し元プロセスの uid が 0 の場合は、sys_net_config
特権が必要です。
宛先の経路を検索および表示します。
このコマンドには、file_dac_read
、file_dac_write
、sys_net_config
特権が必要です。呼び出し元プロセスの uid が 0 の場合は、sys_net_config
特権が必要です。
ルーティング情報ベースの変更、ルーティング検索の失敗、ネットワークパーティション分割の可能性を常に監視し、報告します。
このコマンドには、file_dac_read
、file_dac_write
、および sys_net_config
特権が必要です。呼び出し元プロセスの uid が 0 の場合は、sys_net_config
特権が必要です。
追加、削除、および変更コマンドの構文は次のとおりです。
route [ -fnvq ] command [ -net | -host ] destination gateway [ extended_metric ]
route は、これらのコマンドを宛先までの経路上で実行します。
destination または gateway に指定されたすべてのシンボリック名は最初、ホスト名とみなされ、gethostbyname(3N) を使ってホスト名が検索されます。これに失敗すると、ネットワークの名前とみなされ、getnetbyname(3N) を使ってネットワーク名が検索されます。
destination の前にオプションの修飾子が指定されていると、route は宛先を次のように解釈します。
宛先をホストと解釈します。
宛先をネットワークと解釈します。
特定のホストへの経路なのか、ネットワークへの経路なのかを、destination に指定するインターネットアドレスで区別できる場合があります。destination が INADDR_ANY の「ローカルアドレス部分」を含んでいるか、destination がネットワークのシンボリックリンク名であると、経路はネットワークへの経路とみなされます。それ以外は、ホストへの経路とみなされます。
128.32 is interpreted as -host 128.0.0.32 128.32.130 is interpreted as -host 128.32.0.130 -net 128.32 is interpreted as 128.32.0.0 -net 128.32.130 is interpreted as 128.32.130.0
宛先が、ゲートウェイとしての中継システムを必要としないインタフェースによって直接到達可能なことを示すには、次の例のように、宛先の後にオプションの修飾子 interface を指定するか metric として 0 を指定します。
route add default hostname interface route add default hostname 0 |
hostname は、すべてのパケットが送信されるネットワークインタフェースに関連する名前か IP アドレスです。ネットワークインタフェースが 1 つだけのホストでは、hostname は通常 uname -n で返されるノード名と同じです ( uadmin(1) を参照)。
上の例では、経路は、ゲートウェイを指すのではなく、マシンのインタフェースの 1 つを指しています。このような経路に合致する宛先には、gateway アドレスで識別されるインタフェースからパケットが送信されます。ARP プロトコルを使用するインタフェースの場合は、このタイプの経路を使って「すべての宛先がローカルである」ことを指定します。つまり、ホストは、上のコマンドのどちらかを使ってデフォルト経路を追加することにより、すべてのアドレスに対し ARP を使用する必要があります。
オプションの -netmask 修飾子は、暗黙のネットワークインタフェースのものとは異なるネットマスクでサブネット経路を手動で追加するときに使用します。AF_INET の場合に生成される暗黙のネットワークマスクを置き換えるには、宛先パラメータの後にこのオプションと (ネットワークマスクとして解釈される) アドレスパラメータを指定します。
経路には、経路と合致する宛先に送信するときにプロトコルの操作に影響を与えるフラグがあります。フラグを設定したり、時は消去したりするには、コマンド行に次の修飾子を指定します。
修飾子 | フラグ | 説明 |
-cloning | RTF_CLONING | 使用時に新しい経路を生成します。 |
-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 を設定します。 |
-llinfo | RTF_LLINFO | プロトコルアドレスを有効なリンクアドレスに変換します。 |
オプションの次の修飾子は、
-rtt, -rttvar、 -sendpipe、 -recvpipe、 -mtu、 -hopcount、 -expire、 -ssthresh |
TCP などトランスポートレベルのプロトコルがルーティングエントリに保持する数値の初期値となります。これらの修飾子を個別にロックするには、ロックする修飾子の前に -lock メタ修飾子を指定します。あるいは、後に続くすべてのメトリックをロックするには -lockrest メタ修飾子を使用します。
change や add コマンドで、宛先やゲートウェイだけでは経路を特定できない場合は (たとえば、いくつかのインタフェースが同じアドレスである場合)、-ifp や -ifa 修飾子を使ってインタフェースやインタフェースアドレスを特定できます。
ホスト名とネットアドレスのリスト
ネットワークの名前とアドレスのリスト
デフォルト経路のリスト
トラステッドゲートウェイおよびメトリックのリスト
トラステッドデバイス用のポリシー
次の属性の説明については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |
destination で指定された特定のホストやネットワークのルーティングテーブルに対し直接操作を行ったり、ルーティングソケットのデバイス型特殊ファイル /dev/rts への DAC アクセス権を取得するには、route が sys_net_config
特権を継承していなければなりません。
Trusted Solaris 環境では、ファイル /etc/tsolgateways とそれを読み取るための -t オプションが追加されます。さらに、セキュリティルーティング情報を扱うために extended_metric 引数が追加されます。
ルーティングソケットのデバイス型特殊ファイル (/dev/rts) をオープンするには、route コマンドが sys_net_config
特権を継承し、DAC アクセス権を備えていなければなりません。DAC アクセス権は、有効 uid が 0 で sys グループに属している (またはどちらか)、または特権 file_dac_read
と file_dac_write
が備わっている場合に提供されます。/dev/rts のアクセスポリシーはファイル /etc/security/tsol/device_policy に指定されます。
route コマンドの 6 つのサブコマンドには、file_dac_read
、file_dac_write
、sys_net_config
特権が必要です。呼び出し元プロセスの uid が 0 の場合には、sys_net_config
特権が必要です。
指定された経路がテーブルに追加されます。出力される値は、ioctl(2) に指定されたルーティングテーブルエントリの情報です。使用されたゲートウェイアドレスがゲートウェイのプライマリアドレス (gethostbyname(3N) から返される最初のアドレス) でない場合は、ゲートウェイアドレスは数値とシンボリック名で出力されます。
エントリが削除されることを除けば、上と同じです。
-f フラグを指定したり、flush コマンドを使用する場合は、削除されたルーティングテーブルエントリは、この形式のメッセージで明示されます。
指定されたゲートウェイが、直接接続されたネットワークにないため、経路を追加するコマンドは失敗しました。代わりに次のホップのゲートウェイを指定します。
テーブルにないエントリ削除操作が行われました。
追加操作が行われましたが、システムは、新しいエントリを作成するメモリーを割り当てることができませんでした。
「すべての宛先がローカルである」場合には、ルーターにプロトコル proxy arp が実装されているものとみなされます。通常は、proxy arp よりも router discovery ( in.rdisc(1M) のマニュアルページを参照) を使用する方が信頼性は高くなります。
「すべての宛先がローカルである」経路とサブネット経路やネットワーク経路を結合すると、予期しない結果になることがあります。「すべての宛先がローカルである」経路と関連して行われる検索順序は未定義であり、リリースによって変わることがあります。
名前 | 形式 | 機能説明 | オプション | オペランド | ファイル | 属性 | Trusted Solars での変更点 | 関連項目 | 診断 | 注意事項