Go to main content
マニュアルページ セク ション 1M: シ ステム管理コマン ド

印刷ビューの終了

更新: 2016年12月6日
 
 

in.routed(1M)

名前

in.routed, routed - ネットワークルーティングデーモン

形式

/usr/sbin/in.routed [-AdghmnqsStVz] [-T tracefile [-v]]
 [-F net[/mask ][,metric]] [-P params]

説明

デーモン in.routed (routed と呼ばれることが多い) は、ネットワークルーティングテーブルを管理するためにブート時に呼び出されます。それは、ルーティング情報プロトコル RIPv1 (RFC 1058)、RIPv2 (RFC 2453)、およびインターネットルーター発見プロトコル (RFC 1256) を使用してカーネルルーティングテーブルを維持します。RIPv1 プロトコルは、参照 4.3BSD デーモンに基づいています。

in.routed は、サービス管理機能 (SMF) により、障害管理リソース識別子 (FMRI) を使用して管理されます。

svc:/network/routing/route:default

このデーモンは、route サービス (services(4) を参照) の udp ソケット上でルーティング情報プロトコルのパケットを待機します。また、マルチキャストのルーター発見 ICMP メッセージの送信および受信も行います。ホストがルーターである場合、in.routed はそのルーティングテーブルのコピーを、直接接続されているすべてのホストおよびネットワークに定期的に提供します。また、ルーター発見 ICMP メッセージを使用してデフォルト経路の通知または要請も行います。

起動時 (またはネットワークインタフェースがあとでオンになったとき) に、in.routedAF_ROUTE アドレスファミリ機能を使用して、そのような直接接続されているインタフェースのうち、システム内に構成され、「up」のマークが付いているものを検索します。それらのインタフェースに必要な経路をカーネルルーティングテーブルに追加します。最初に起動された直後に、RIP が無効になっていないインタフェースが 1 つでもあれば、in.routed はカーネルテーブル内の既存の非静的経路をすべて削除します。カーネルテーブル内の静的経路は保持され、それらが有効な RIP メトリックを持っている場合は RIP 応答に含められます (route(1M) を参照)。

複数のインタフェースが存在する場合 (ループバックインタフェースはカウントしない)、そのホストが、接続されているネットワーク間でパケットを転送するものと想定されます。新しいインタフェースで RIP リクエストとルーター発見通知または要請を転送したあと、デーモンはループに入り、ほかのホストからの RIP リクエストパケットと応答パケット、およびルーター発見パケットを待機します。

リクエストパケットが受信されると、in.routed はその内部テーブルで維持されている情報に基づいて応答を作成します。生成された応答パケットには既知の経路のリストが含まれており、それぞれに「ホップ数」メトリックのマークが付けられています (16 以上の数は「無限大」とみなされる)。通知されたメトリックはインタフェースに関連付けられているメトリックを反映しているため (ifconfig(1M) を参照)、インタフェースにメトリックを設定することはトラフィックを誘導するのに効果的な方法です。

ある程度のスプリットホライズンを実装するため、応答には、リクエストしているネットワーク上に最初のホップがある経路は含められません。rtquery(1M) などのクエリープログラムからのリクエストは、完全なテーブルで応答されます。

デーモンによって維持されるルーティングテーブルには、障害のあるルーターからの復旧をすみやかに行えるように、宛先ごとにいくつかのゲートウェイ用の領域が備わっています。受信された RIP 応答パケットが現在認識されているいくつかのゲートウェイのいずれかから送られてきたものであるか、それらのパケットが既存のゲートウェイの少なくとも 1 つよりも優れたメトリックを通知するのであれば、それらのパケットを使ってルーティングテーブルが更新されます。

更新が適用されると、in.routed はその変更を独自のテーブルに記録し、宛先への最適な経路が変更された場合にカーネルルーティングテーブルを更新します。カーネルルーティングテーブル内の変更は、送信される次の応答パケットのバッチに反映されます。次の応答がしばらく予定されていない場合は、最近変更された経路のみを含むフラッシュ更新応答が送信されます。

in.routed では、着信パケットを処理するほかに、ルーティングテーブルエントリの定期的なチェックも行います。3 分間かけても更新が完了しなかったエントリのメトリックは、無限大に設定され、削除対象としてマークされます。ローカルインターネット全体に無効化が確実に伝搬されるようにするため、無限大のメトリックを使った経路の通知が完了するまで、削除は遅延されます。これはポイズンリバースの一種です。

ICMP リダイレクトメッセージの結果として追加または変更されるカーネルテーブル内の経路は、ブラックホールを最小限に抑えるためにしばらくしてから削除されます。TCP 接続がタイムアウトを検出すると、カーネルは in.routed に通知します。in.routed は、リダイレクトされたすべての経路を関係しているゲートウェイ経由で削除し、代替手段を選択できるようにすべての RIP 経路の有効期間をゲートウェイ経由で通知し、関係のあるルーター発見プロトコルのデフォルト経路の有効期間も通知します。

インターネットワークルーターとして動作するホストは、そのルーティングテーブルを、直接接続されているすべてのホストとネットワークに 30 秒ごとに無償で提供します。これらの RIP 応答は、ブロードキャストをサポートしているネット上のブロードキャストアドレス、ポイントツーポイントリンク上の着信先アドレス、およびその他のネットワーク上のルーター独自のアドレスに送信されます。RIPv2 が有効になっている場合は、マルチキャストをサポートしているインタフェース上にマルチキャストパケットが送信されます。

リモートインタフェースで応答が受信されない場合、応答の送信中にエラーが発生した場合、入力または出力よりもエラーの数が多い場合 (netstat(1M) を参照) は、ケーブル、またはインタフェースのほかの何らかの部分が切断されたり損傷していることが考えられるため、経路が適切に調整されます。

インターネットルーター発見プロトコルも同様に処理されます。このデーモンは、RIP 経路を提供しているときに、ルーター発見要請の待機や通知の送信も行います。出力を生成せず、ほかの RIP ルーターを待機しているときに、要請を送信して、通知を待機します。正常な通知を受信し、それがマルチホームのものでない場合は、ブロードキャストまたはマルチキャスト RIP 応答の待機を停止します。現在選択されているルーターが停止した際に迅速に復旧できるように、通知中のいくつかのルーターを追跡します。検出されたルーターがすべて消滅した場合、デーモンは RIP 応答の待機を再開します。すべてのインタフェースが確実に使用されるようにマルチホームになっている場合は、ルーター発見を使用しながら RIP の待機を続けます。

ルーター発見標準では、通知に 30 分というデフォルトの「有効期間」が設けられている必要があります。これは、万一何かが発生しても、クライアントが 30 分間は適切な経路なしでいられることを意味します。コマンド行で –P rdisc_interval=45 を使用するか、/etc/gateways ファイルの rdisc_interval=45 を使用して、そのデフォルトを 45 秒に短縮するのも一案です。gateways(4) を参照してください。

ルーター発見 (システムに 1 つのネットワークインタフェースが備わっていて、ルーター発見通知が受信されるとデフォルトで発生するもの) を使用しているときは、カーネルテーブルの中に 1 つのデフォルト経路と可変数のリダイレクトされたホスト経路が含まれています。複数のネットワークインタフェースを備えたホストでは、このデフォルト経路はそれらのインタフェースのいずれか 1 つのみを経由します。このため、–q で実行されているマルチホームホストには、後述する no_rdisc 引数が必要になる場合があります。

RIPv2 でもルーター発見でも処理できない「レガシー」システムをサポートする場合は、/etc/gateways に含まれる pm_rdisc パラメータを使用できます。gateways(4) を参照してください。

デフォルトでは、ルーター発見通知も要請もポイントツーポイントリンク (PPP など) 経由では送信されません。Solaris OE では、すべて 1 で構成されているネットマスク (255.255.255.255) をポイントツーポイントリンクで使用します。

in.routed は、「遠隔」のパッシブまたはアクティブゲートウェイという概念をサポートしています。デーモンが起動されると、それはファイル /etc/gateways を読み取って、ルーティングソケットからの情報だけでは特定できないような遠隔ゲートウェイを検索したり、一部のローカルゲートウェイがパッシブであるかどうかを判定したり、ほかのパラメータを取得したりします。この方法で指定されたゲートウェイには、それらがルーティング情報を交換しないことが予想される場合はパッシブのマークが付けられます。一方、アクティブのマークが付けられたゲートウェイは RIP パケットを進んで交換するはずです。パッシブゲートウェイを介した経路は、起動時に一度だけカーネルのルーティングテーブルに組み込まれますが、転送された RIP 応答には含められません。

遠隔のアクティブゲートウェイは、ネットワークインタフェースのように扱われます。RIP 応答は遠隔のアクティブゲートウェイに送信されます。応答が受信されない場合は、関連付けられた経路がカーネルテーブルから削除され、RIP 応答はほかのインタフェース経由で通知されます。遠隔ゲートウェイが RIP 応答の送信を再開した場合は、関連付けられた経路が復元されます。

遠隔のアクティブゲートウェイは、ブロードキャストやマルチキャストをサポートしていないメディアで役立つことがありますが、それ以外の場合は従来の共有メディア (一部の ATM ネットワークなど) のように動作します。一連の「ホスト」回線を使用して、/etc/gateways に含まれている、HIPPI または ATM ネットワーク上で到達可能な RIP ルーターをすべて一覧表示できます。そのような状況で RIPv2 を使用して、推測されるホスト経路のリストを生成しないようにするのは通常は望ましいことです。

外部のマークが付けられたゲートウェイもパッシブですが、カーネルルーティングテーブルには置かれず、ルーティング更新にも含められません。外部エントリの機能は、別のルーティングプロセスが必要に応じてそのような経路を設置することと、その宛先へのほかの経路が in.routed によって設置されるべきではないことを通知することです。そのようなエントリが必要となるのは、両方のルーターが同じ宛先への経路を認識した可能性がある場合のみです。

オプション

使用可能なオプションを次に示します。提供されているほかの引数は、in.routed のアクションが記録されるファイルの名前とみなされます。トレースファイルの名前をコマンドに追加する代わりに、–T (後述されている) を使用するのが良い方法です。これらのオプションに関連した SMF プロパティーも記載されており、次の形式のコマンドで設定できます。

# routeadm -m route:default name=value
–A

RIPv2 認証に関心がない場合でも RIPv2 認証を無視しません。このオプションは、RFC 2453 に準拠するために必要です。ただし、このマシンが認証を考慮しないときに、認証を伴う RIPv2 パケットをすべて無視することは意味がなく、それによって RIP を発見プロトコルとして使用できなくなります。このオプションは、ignore_auth プロパティーの値を false に設定することと同じです。

–d

バックグラウンドで実行しません。このオプションは、対話形式で使用するように作られており、SMF の下では使用できません。

–F net[/mask][,metric]

net (ネットワーク番号)/mask (ネットマスク) に一致するアドレスを持つインタフェース経由の伝送に含まれる経路を最小限に抑え、metric を使ってこのマシンへのデフォルト経路を合成します。その目的は、RIP 情報の入った多数の大きな UDP パケットを、「擬似的な」デフォルト経路を含む 1 つの小さなパケットに置き換えることで、PPP リンクなどの低速のポイントツーポイントリンク上の RIP トラフィックを減らすことです。metric が指定されていない場合は、値 14 が「擬似的な」デフォルト経路の拡大を抑えるために使われます。これは危険を伴う機能であり、十分に注意して使用しないと、ルーティングループが発生する可能性があります。指定されたネットワーク番号とマスクに一致するインタフェースが複数存在する可能性があることにも注意してください。–g も参照してください。このオプションの使用は、minimize_routes プロパティーを設定することと同じです。

–g

インターネットワークルーター上で、「デフォルトの」宛先への経路を提供するために使用されます。これは –F 0/0,1 と同等であり、ほとんど歴史的な理由で存在しています。コマンド行で –P pm_rdisc を実行するか、/etc/gateways ファイルの pm_rdisc を使用するのが良い方法です。後者の代替手段の方が大きなメトリックが使用されるため、危険を伴う可能性のあるデフォルト経路の拡大を抑えられます。–g (または –P) オプションは通常、インターネットへのゲートウェイ、または経路がほかのローカルルーターに報告されない別のルーティングプロトコルを使用するゲートウェイで使用されます。メトリック 1 が使用されるため、この機能には危険が伴うことに注意してください。それを使用すると、問題が解決するよりもルーティングループを伴う混乱が発生することの方が多くなります。このオプションの使用は、offer_default_route プロパティーを true に設定することと同じです。

–h

同じ方向に進むネットワーク経路がある場合に、ホストまたはポイントツーポイント経路が通知されないようにします。これは、ある種のかぎられたアグリゲーションです。このオプションは、ほかのゲートウェイマシンが SLIP などのポイントツーポイントリンクに接続されている LAN へのゲートウェイ上で役に立ちます。このオプションの使用は、advertise_host_routes プロパティーを false に設定することと同じです。

–m

マシンがホストまたはポイントツーポイント経路をそのプライマリインタフェースに通知するようにします。これは、NFS サーバーなどのマルチホームマシンで役に立ちます。このオプションは、それによって生成されるホスト経路にかかる費用がサーバーの普及によって正当化される場合以外は使わないようにしてください。それが効果的なのは、インタフェースが複数存在するために、マシンがルーティング情報を提供している場合のみです。ホスト経路を通知するというかぎられた範囲内で、–m オプションは –q オプションをオーバーライドします。このオプションの使用は、advertise_host_routes_primary プロパティーを true に設定することと同じです。

–n

経路をカーネルに組み込みません。デフォルトでは、経路はカーネルに組み込まれます。このオプションの使用は、install_routes プロパティーを false に設定することと同じです。

–P params

パラメータ行 params/etc/gateways ファイルに追加することと同じです。parameters プロパティーを使って設定することもできます。

–q

–s オプションの反対です。インタフェースが 1 つしか存在しない場合は、これがデフォルトになります。この明示的なオプションを使用すると、デーモンは RIP に対して常に「静寂モード」となり、ほかのコンピュータにルーティング情報を提供しません。このオプションの使用は、quiet_mode プロパティーを true に設定することと同じです。

–s

in.routed に、ルーティング情報を提供するよう強制します。複数のネットワークインタフェースが存在し、そのインタフェース上で RIP またはルーター発見が無効になっていない場合、および (ipadm(1M) によって) グローバルな IPv4 転送がオンになっている場合は、これがデフォルトになります。このオプションの使用は、supply_routes プロパティーを true に設定することと同じです。

–S

in.routed がインターネットワークルーターとして動作しておらず、代わりにルーティングテーブル全体をカーネルに入力している場合は、インターネットワークルーターごとにデフォルトの経路のみが入力されます。これにより、ルーティングの信頼性を失わずにメモリー要件が軽減されます。このオプションは以前の RIPv1 専用の in.routed との互換性のために提供されています。このオプションを使用するのは一般的に望ましくありません。このオプションの使用は、default_routes_only プロパティーを true に設定することと同じです。

–t

フォアグラウンドで実行し (–d と同様)、受信されたパケットの内容を記録します (–zz と同様)。これは以前の Solaris バージョンとの互換性のためにあり、SMF と同等ではありません。

–T tracefile

デバッグレベルを少なくとも 1 に増やし、デバッグ情報がトレースファイルに追加されるようにします。セキュリティー上の問題のため、トレースがファイルに送られる状態で in.routed を日常的に実行しないでください。このオプションの使用は、log_file プロパティーを trace file path に設定することと同じです。

–v

デバッグを有効にします。–z と似ていますが、–ztrace_level を増分し、–vtrace_level を 1 に設定する点が異なります。また、–v には –T オプションが必要です。このオプションの使用は、debug プロパティーを true に設定することと同じです。

–V

このデーモンのバージョンを表示します。

–z

デバッグレベルを増やします。これにより、–T で指定されたトレースファイルまたは標準出力に詳細な情報が記録されます。デバッグレベルは、SIGUSR1 または SIGUSR2 シグナル、または rtquery(1M) コマンドを使って増減できます。

ファイル

/etc/defaultrouter

このファイルが存在し、デフォルトルーターのアドレスが含まれている場合、システム起動スクリプトは in.routed を実行しません。defaultrouter(4) を参照してください。

/etc/gateways

in.routed 用の遠隔ゲートウェイと一般的な構成オプションのリスト。gateways(4) を参照してください。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/network/routing

関連項目

ipadm(1M), route(1M), routeadm(1M), rtquery(1M), svcadm(1M), ioctl(2), inet(3SOCKET), defaultrouter(4), gateways(4), attributes(5), icmp(7P), inet(7P), udp(7P)

『Internet Transport Protocols』、XSIS 028112、Xerox System Integration Standard

「Routing Information Protocol, v2」(RFC 2453、STD 0056、1998 年 11 月)

「RIP-v2 MD5 Authentication」(RFC 2082、1997 年 1 月)

「Routing Information Protocol, v1」(RFC 1058、1988 年 6 月)

「ICMP Router Discovery Messages」(RFC 1256、1991 年 9 月)

意図された設計に沿って、このデーモンは 2 つの注目すべき点で RFC 2453 から外れています。

  • デフォルトでは、in.routed は RIP 認証が構成されていない場合でも認証済みの RIPv2 メッセージを破棄しません。RIPv1 リスナーが認証済みパケットを進んで処理するときに、それらをドロップすることで得られる利益はほとんどありません。–A オプションを使用すると、このような場合に in.routed は RFC に準拠します。

  • 認証されていない RIP リクエストは、RIP 認証が構成されている場合でも破棄されることはありません。転送テーブルは秘密ではなく、テストトラフィックなどのほかの方法で推測できます。RIP はもっとも一般的なルーター発見プロトコルでもあるため、ホストは応答されるクエリーを送信する必要があります。

in.routed は、ネットワークインタフェースで発生する単方向の障害 (出力側が失敗する場合など) を必ずしも検出するとはかぎりません。