routed(8) FreeBSD 一般コマンドマニュアル

routed

前のページ 上に戻る 次のページ

routed


     routed [-sqdghmpAtv] [-T tracefile] [-F net[/mask[,metric]]] [-P parms]


解説

     routed はネットワークのルーティングテーブルを管理するデーモンで、システム
     のブート時に起動されます。デーモンはカーネルのルーティングテーブルを管理
     するために、ルーティング情報プロトコル (Routing Information Protocol) の
     RIPv1 (RFC 1058), RIPv2 (RFC 1723) および Internet Router Discovery Pro-
     tocol (RFC 1256) を用います。 RIPv1 プロトコルは 4.3BSD のデーモンのもの
     をベースとしています。

     デーモンはルーティング情報プロトコルのパケットを待つために、 route(8) サ
     ービス (services(5) 参照) 用の udp(4) ソケットを listen します。また、マ
     ルチキャストによる Router Discovery の ICMP メッセージの送受信も行いま
     す。ホストがルータだった場合、 routed は直接接続されている全てのホストと
     ネットワークに、ルーティングテーブルの複製を定期的に提供します。また、
     Router Discovery の ICMP メッセージを用いてデフォルトルートの広告や要求を
     行います。

     routed が動作し始めると (または、ネットワークインタフェースがオンになる
     と)、 routed は AF_ROUTE アドレスファミリを用いて、システムに直結されてい
     てコンフィギュレーションされているインタフェースのうちで "up" とマークさ
     れているものを探します。そしてそのインタフェースに必要な経路をカーネルの
     ルーティングテーブルに追加します。スタート直後で、RIP が無効になっていな
     いインタフェースが少なくとも 1 つある場合、 routed はカーネルのテーブル内
     に既に存在する静的でない経路を全て削除します。カーネルのテーブル内にある
     静的な経路は保存され、有効な RIP metric を持っているものは RIP レスポンス
     に含められます (route(8) 参照)。

     複数のインタフェース (ループバックインタフェースは含めません) が存在する
     場合、そのホストは接続されているネットワーク間でパケットを中継するものと
     みなされます。RIP リクエストと Router Discovery の広告や要求を新しいイン
     タフェース上で送信した後、デーモンはループに入り、他のホストからの RIP リ
     クエスト、RIP レスポンス、 Router Discovery のパケットを listen します。

     リクエストパケットを受信すると、 routed は内部テーブルに持っている情報か
     らリプライを作成します。作成された レスポンスパケットは既知の経路のリスト
     を含み、各経路に "hop count" metric がつきます (16 以上は "無限大" とみな
     されます)。広告した metric はインタフェースに設定した metric を反映するた
     め (ifconfig(8) 参照)、トラフィックを制御するにはインタフェースの metric
     を設定するのが良い方法です。

     split-horizon をある程度実装しているため、レスポンスはリクエストしてきた
     ネットワークの 1 hop 先の経路を含みません。 rtquery(8) のような問い合わせ
     プログラムからのリクエストに対しては、テーブル全体から答を導き出します。

     ルータの故障から素早く復旧できるようにするため、デーモンが管理するルー
     ティングテーブルには各到達先用のゲートウェイをいくつか覚えておくための空
     間があります。受けとった RIP レスポンスパケットがルーティングテーブルの更
     新に使用されるのは、現在認識しているゲートウェイのうちの 1 つから提供され
     た場合、もしくは現在あるゲートウェイのうちの少なくとも 1 つよりもよい
     metric を広告している場合です。

     カーネルのテーブル内の経路のうちで ICMP Redirect メッセージの結果として追
     加や変更されたものは、 black-holes を最小にするために、しばらく経ってから
     削除されます。 TCP コネクションのタイムアウトが起こると、カーネルは
     routed に対し、そのゲートウェイを通る全てのリダイレクトされた経路を削除
     し、そのゲートウェイを通る全ての RIP の経路の年齢を増やすことで他のゲート
     ウェイが選択されるようにし、関連する全ての Router Discovery Protocol のデ
     フォルトルートの年齢を増やします。

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

     リモートインタフェース上でレスポンスが受信されない場合や、レスポンスを送
     信中にエラーが起こった場合や、エラーが入力や出力よりも多い場合
     (netstat(1) 参照) は、ケーブルやインタフェースの他の部分が接続されていな
     いか壊れているとみなされ、その経路は適切に変更されます。

     Internet Router Discovery Protocol も同様に扱われます。デーモンが RIP の
     経路を配っている時は、 Router Discovery の要求の listen と Router Discov-
     ery の広告の送信も行います。デーモンが静かな状態で他の RIP ルータからのパ
     ケットを listen している時には、 Router Discovery の要求を送信し
     て、Router Discovery の広告を listen します。デーモンは信頼できる広告を受
     信して、かつ複数のホームを持たない場合に、 RIP レスポンスのブロードキャス
     トやマルチキャストを listen するのをやめます。現在利用中のルータが死んだ
     場合に障害のある状態から短時間で修復できるよう、広告されているルータのい
     くつかを追跡します。もし発見しておいたルータが全て見えなくなった場合、デ
     ーモンは RIP レスポンスの listen を再開します。デーモンは、複数のホームを
     持つ場合にすべてのインタフェースが使用されていることを確実にするため、
     Router Discovery の使用中は RIP の listen を継続します。

     Router Discovery の仕様では、広告の "存続期間" をデフォルトで 30 分とする
     ことを要求しています。これは、何かが起こった場合にクライアントに 30 分間
     よい経路がなくなる可能性があることを意味しています。コマンドラインで -P
     rdisc_interval=45 と指定したり /etc/gatewaysrdisc_interval=45 と書く
     ことでデフォルトを 45 秒にするのは良い考えです。

     Router Discovery を利用している場合 (システムが持っているネットワークイン
     タフェースが 1 つだけでかつ Router Discovery の広告を受けた場合にはこれが
     デフォルトです)、カーネルのテーブル内にはデフォルトルートは 1 つだけで、
     ホストへの経路は可変個数となります。複数のネットワークインタフェースを持
     つホストでは、このデフォルトルートはそのインタフェースのうちの 1 つだけを
     経由します。このため、複数のホームを持つホストで -q つきで動作しているも
     のは、以下に示す no_rdisc が必要です。

     RIPv2 と Router Discovery のどちらも扱うことができない "遺物の" システム
     をサポートするためには、以下に記述してある pm_rdisc を参照して下さい。

     デフォルトでは、point to point リンク (たとえば PPP) には Router Discov-
             は RIP に対して常に "quiet-mode" となり、ルーティング情報を他のコ
             ンピュータに提供しません。

     -d      バックグラウンドでは動作しません。このオプションは対話的に使用す
             るためのものです。

     -g      ネットワーク間ルータにおいて "default" の到達先への経路を設けるた
             めに使われます。これは -F 0/0,1 と同じ意味を持ち、主として歴史的
             理由のために存在します。これよりは、 -P pm_rdisc をコマンドライン
             で指定するか、 pm_rdisc/etc/gateways で指定するほうがよいで
             しょう。大きな metric を使用すれば、潜在的に危険なデフォルトルー
             トが広まる可能性を減らせます。これは、典型的にはインターネットへ
             のゲートウェイで用いられるか、経路を他のローカルルータに対して報
             告しない、別のルーティングプロトコルを利用しているゲートウェイで
             用いられます。 metric には 1 が使われるため、この機能は危険です。
             このオプションは一般に、問題を解決するよりも、ルーティングのルー
             プによる混乱を引き起こしがちです。

     -h      ホストルートまたは point-to-point ルートを広告しません。これらは
             同一方向へ向かうネットワークルートであると規定されます。これは特
             別な性質を持つ集合です。このオプションは、 SLIP のような point-
             to-point リンクで他のゲートウェイマシンを接続させている Ethernet
             へのゲートウェイにおいて有効です。

     -m      マシンが、そのプライマリインタフェースへのホストルートや point-
             to-point ルートを広告するようになります。これは NFS サーバのよう
             な複数のホームを持つマシンにおいて有効です。このオプションは、作
             成したホストルートのコストがサーバの人気で正当化される場合を除い
             て、使うべきではありません。これは、マシンがルーティング情報を供
             給していて、複数のインタフェースを持っている場合にのみ効果があり
             ます。 -m オプションは、 -q オプションを無効にして、ホストルート
             の広告を限定した範囲に制限します。

     -A      RIPv2 の認証に注意を払わない場合に、RIPv2 の認証を無視しません。
             RFC 1723 に準拠するためにはこのオプションが必要です。しかしなが
             ら、これは意味がなく、マシンが認証について注意を払わない場合に認
             証を運ぶ全ての RIPv2 パケットを無視する目的で検出プロトコルとして
             RIP を使うことの妨げとなります。

     -t      デバッグレベルを増やします。 -T で指定したトレースファイルや標準
             出力に対し、より詳細な情報を記録するようになります。デバッグレベ
             ルは SIGUSR1 シグナルや SIGUSR2 シグナルや rtquery(8) で増減でき
             ます。

     -T tracefile
             デバッグレベルを最低でも 1 まで上げ、デバッグ情報をトレースファイ
             ルに書き加えるようにします。セキュリティ上の都合により、 routed
             がファイルへのトレースを日常的に行うようにはしないのが賢明です。

     -v      デーモンのバージョンを表示して記録します。

     -F net[/mask][,metric]

     提供された他の引数は、 routed の動作を記録するファイルの名前として解釈さ
     れます。トレースファイルの名前をコマンドに追加するよりは、 -T を使った方
     がよいでしょう。

     上記の機能に加えて、 routed は "遠隔にある" passive もしくは active なゲ
     ートウェイという概念をサポートします。 routed は動作を開始すると、
     /etc/gateways を読み込んで、ルーティングソケットからの情報だけでは突き止
     められない可能性を持つ遠隔のゲートウェイを見つけ、ローカルのゲートウェイ
     が passive かどうかを知り、そしてその他のパラメータを取得します。このよう
     にして指定したゲートウェイには、ルーティング情報を交換するつもりがない場
     合には passive 、 RIP パケットを交換しても構わない場合には active のマー
     クを付ける必要があります。 passive ゲートウェイを通る経路は、起動時に一度
     だけカーネル内の経路表に設定され、送出される RIP レスポンスには含められま
     せん。

     遠隔の active ゲートウェイは、ネットワークインタフェースと同様に扱われま
     す。 RIP レスポンスを遠隔の active ゲートウェイに送出します。応答がない場
     合、カーネルのテーブルと他のインタフェースから広告される RIP レスポンスか
     らその経路を削除します。遠隔のゲートウェイが RIP レスポンスの送出を再開し
     た場合は、その経路を再び追加します。

     このようなゲートウェイは、ブロードキャストやマルチキャストはサポートしな
     いがそれ以外は Ethernet のような伝統的な共有メディア同様にふるまう、 ATM
     ネットワークなどのメディアで有効です。 HIPPI や ATM のネットワーク上にあ
     る到達可能な全ての RIP ルータを /etc/gateways の "host" 行を使って記述す
     ることができます。通常、そのような状況では、推定されたホスト経路のリスト
     生成を避けるために RIPv2 の使用が望ましいことに注意してください。

     external マークをつけたゲートウェイは passive と同様の扱いになりますが、
     カーネル内のルーティングテーブルに載ることはなく、ルーティングの更新時に
     その情報が含められることもありません。 external エントリの機能は、別のル
     ーティングプロセスがそのような経路を必要時に追加する可能性があり、 routed
     がその到達先への他の経路を設定すべきでないことを知らせることです。 exter-
     nal エントリは、2 つのルータが同じ到達先への経路を覚えてもよい場合にのみ
     必要です。

     /etc/gateways ファイルは、各行が以下の 2 つのフォーマットのどれか、または
     後述のパラメータからなる行で構成されます。空行と '#' で始まる行はコメント
     です。

     net Nname[/mask] gateway Gname metric value <passive | active | extern>

     host Hname gateway Gname metric value <passive | active | extern>

     キーワード NnameHname は、到達先のネットワークもしくはホストの名前で
     す。これはネットワークのシンボル名または "ドット" 表記によるインターネッ
     トアドレスのどちらでも構いません (inet(3) 参照)。(もし名前の場合は、
     /etc/networks または /etc/hosts で定義されているか、 routed の動作開始前
     に named(8) が起動されていなければなりません。)

     mask は省略可能な数値で、 Nname のネットマスクを表す 1 から 32 までの値を
     タフェースを作成します。 remote インタフェースや external インタフェース
     のパラメータ設定をするには、その行を if=alias(Hname)if=remote(Hname)
     等で始める必要があります。

     "net" と "host" のどちらでも始まらない行は、以下のようなパラメータ設定で
     なければなりません。これは 1 つでも複数でもよく、複数の場合はコンマや空白
     で区切ります:

     if=ifname
             その行にある他のパラメータが、名前が ifname のインタフェースに適
             用されることを示します。

     subnet=nname[/mask][,metric]
             ネットワーク nname への経路をマスク mask と指定された metric (デ
             フォルトは 1) で広告します。これは CIDR の確保において "穴" を埋
             めるのに有効です。このパラメータはその行にそれだけで出現しなけれ
             ばなりません。ネットワーク番号は、例えば 192.0.2 ではなく
             192.0.2.0 の様に、 32 ビットの完全な値を指定する必要があります。

             この機能を不必要に使ってはいけません。危険です。

     ripv1_mask=nname/mask1,mask2
             nname/mask1 がサブネットであるネットワークのネットマスクを mask2
             とする様に指定します。例えば ripv1_mask=192.0.2.16/28,27 は
             192.0.2.16/28 を 192.0.2.0/24 ではなく 192.0.2.0/27 のサブネット
             としてマークします。このファシリティを使わずに、 ripv2_out を用い
             て RIPv2 を有効にするのが、より望ましい方法です。

     passwd=XXX[|KeyID[start|stop]]
             RIPv2 の生のパスワードを指定します。これは、送信される全ての
             RIPv2 レスポンスに含められ、受信した全ての RIPv2 レスポンスで
             チェックされます。パスワード内の空白、タブ文字、コン
             マ、'#'、'|'、NULL 文字は、バックスラッシュ (\) でエスケープしな
             ければなりません。よく使われる \n, \r, \t, \b, \xxx などのエスケ
             ープシーケンスは、それぞれ通常の意味を持っています。 KeyID は一意
             でなければなりませんが、生のパスワードの場合は無視されます。
             startstop がある場合、これはタイムスタンプで、
             year/month/day@hour:minute の形式をとります。これらはパスワードの
             有効期限を指定します。出力パケットで使われるパスワードには、期限
             が最も遠い将来まで設定されているパスワードが使われます。ただし、
             全てのパスワードの期限が切れてしまった場合には、最も最近期限切れ
             になったパスワードが使われます。また、パスワードがどれもまだ有効
             でない場合には、パスワードは出力されません。到着パケットは有効な
             パスワードを運んでくる可能性があります。ここで有効とは、未来の 24
             時間内で有効になるものか、過去 24 時間内で有効であったものを指し
             ます。秘密を守るため、パスワードの設定は /etc/gateways 内のものだ
             けが有効であり、かつ、このファイルが UID 0 でのみ読み込み可能でな
             ければなりません。

     md5_passwd=XXX|KeyID[start|stop]
             RIPv2 の MD5 パスワードを指定します。 KeyID が必須であること以外
             は、このキーワードは passwd と同様です。
             covery デーモンとして動作します。

             rdisc_adv または -s で明示的に Router Discovery の広告を行うよう
             に指示せずに RIP を行わないようにすると、 routed は広告を行わない
             Router Discovery デーモンとして動作することに注意して下さい。

     no_rip_mcast
             RIPv2 パケットをマルチキャストせずにブロードキャストします。

     no_ripv1_in
             受信した RIPv1 レスポンスを無視します。

     no_ripv2_in
             受信した RIPv2 レスポンスを無視します。

     ripv2_out
             可能な場合にマルチキャストができるよう、 RIPv2 の出力を有効にして
             RIPv2 による広告を行います。

     ripv2   no_ripv1_inno_ripv1_out を指定した場合と同じです。 RIPv2 を有
             効にします。

     no_rdisc
             Internet Router Discovery Protocol を無効にします。

     no_solicit
             Router Discovery の要求を送信しません。

     send_solicit
             たとえ point-to-point リンクであっても Router Discovery の要求を
             送信します。デフォルトでは Router Discovery のメッセージを聞くだ
             けです。

     no_rdisc_adv
             Router Discovery の広告の送信を行いません。

     rdisc_adv
             たとえ point-to-point リンクであっても Router Discovery の広告を
             送信します。デフォルトでは Router Discovery のメッセージを聞くだ
             けです。

     bcast_rdisc
             Router Discovery のパケットをマルチキャストせずにブロードキャスト
             します。

     rdisc_pref=N
             Router Discovery の広告の優先度を整数 N に設定します。優先度のデ
             フォルトは 0 です。クライアントは、より小さな、あるいはより負の優
             先度を持つデフォルトルートを選択します。

     rdisc_interval=N
             Router Discovery の広告を行う上での名目の送信間隔を N 秒に設定

     trust_gateway=rname[|net1/mask1|net2/mask2|...]
             指定したルータや他の trust_gateway キーワードで指定したルータから
             の RIP パケットを受け付け、これら以外のルータからのパケットを無視
             します。ネットワークを指定した場合、他のネットワークへの経路は指
             定したルータからは無視されます。

     redirect_ok
             システムがルータとして動作してパケットのフォワードを行っている場
             合に、 RIP が ICMP Redirect メッセージを許可するようになります。
             そうでなければ、ICMP Redirect メッセージは無効にされます。


関連ファイル

     /etc/gateways  遠隔ゲートウェイについての情報を記述するファイル。


関連項目

     icmp(4), udp(4), rtquery(8)

     Internet Transport Protocols, XSIS 028112, Xerox System Integration
     Standard.


バグ

     出力方向にのみ失敗するなどの、ネットワークインタフェースの一方向の失敗を
     常に検出できるとは限りません。


歴史

     routed コマンドは 4.2BSD から登場しました。

4.4BSD                           June 1, 1996                           4.4BSD

ABELNET VPSサービス