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

mrouted

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

mrouted




解説

     mrouted は、Distance-Vector Multicast Routing Protocol (DVMRP) の実装で
     す。 DVMRP の以前のバージョンは RFC1075 で規定されています。本コマンドは
     distance-vector routing protocol (RIP に似たプロトコルであり、RFC1058 に
     記述されています) を使うことで、ネットワークトポロジに関する情報を管理
     し、そのプロトコルの上で、Reverse Path Multicasting と呼ばれるマルチキャ
     ストデータグラムフォワーディングアルゴリズムを実装しています。

     mrouted は、マルチキャストデータグラムを、データグラムが生成されたサブ
     ネットを幹として樹状に構成されるパス上に、パスの最短距離を通過するように
     して送出します。マルチキャストツリーは目的のグループを含むサブネットを越
     えないブロードキャストツリーと考えることができます。したがって、データグ
     ラムはマルチキャストの受け手がいない枝には送出されません。さらに、マルチ
     キャストデータグラムパケットの生存時間によっては、到達できる範囲が限定さ
     れる場合もあります。

     IP マルチキャストをサポートしない (ユニキャスト) ルータを介したサブネット
     間で、マルチキャストを実現するために、 mrouted の実装にはトンネリングのサ
     ポートも含まれます。トンネリングとは、インターネットのあらゆるところにて
     稼働しているマルチキャストルータの組の間で仮想的なポイントツーポイントリ
     ンクを確立する技術です。 IP マルチキャストパケットは、トンネルを通過する
     ところでカプセル化されます。間にあるルータ及びサブネットにとっては、カプ
     セル化されたパケットは、通常のユニキャストデータグラムに見えます。トンネ
     ルの入口でカプセル化が行われ、トンネルの出口でカプセルが取り外されます。
     パケットは、IP-in-IP プロトコル (IP プロトコル番号 4) を用いることでカプ
     セル化を行ないます。古いバージョンの mrouted のトンネリングは、 IP ソース
     ルーティングを用いたものですが、これはルータによっては大きな負荷をかける
     ことになります。本バージョンでは、IP ソースルーティングを用いたトンネリン
     グはサポートしません。

     トンネリング機構の実装により、 mrouted は、実際のインターネットとは独立
     の、マルチキャストパケットのみを扱う広範囲の自立システムに跨る仮想インタ
     ーネットを構築できます。この機能は、普通の (ユニキャスト) ルータによるマ
     ルチキャストルーティングの広範囲なサポートがなされるまで、インターネット
     マルチキャスティングのみを実験的にサポートするように意図したものです。
     mrouted は distance vector ルーティングプロトコルが持つよく知られたスケー
     リングの問題の影響を被りますし、階層的なマルチキャストルーティングを (ま
     だ) サポートしていません。

     mrouted はマルチキャストルーティングのみを扱いますので、同じ機械の上でユ
     ニキャストルーティングソフトが走っていてもいなくても構いません。トンネリ
     ングを利用すれば、 mrouted はマルチキャストフォワーディングのためにひとつ
     より多くの物理的なサブネットにアクセスする必要がありません。

     次のオプションを使用可能です:

     -c config_file
             別の設定コマンドファイルを指定します。デフォルトは
             /etc/mrouted.conf です。

     -d [debug_level]
             routing
                     送受信した経路更新パケットに関し、更なる情報を表示しま
                     す。

             route_detail
                     経路更新に関し、過度に詳細な程表示します。大概の場合、情
                     報が多すぎるでしょう。

             neighbors
                     隣接ルータ発見に関し、情報を表示します。

             cache   カーネルのフォワーディングキャッシュに関し、挿入・削除・
                     更新を表示します。

             timeout
                     タイムアウトと定期処理をデバッグします。

             interface
                     インタフェースとその設定に関し、情報を表示します。

             membership
                     物理インタフェースにおけるグループメンバシップに関し、情
                     報を表示します。

             traceroute
                     このルータを通過するマルチキャスト経路追跡要求に関し、情
                     報を表示します。

             igmp    グループメンバシップおよび問い合わせ者選出を含む IGMP 操
                     作を表示します。

             icmp    ICMP 操作を監視します。

             rsrr    RSRR 操作を監視します。

             起動にともない、 mrouted はそのプロセス ID を
             /var/run/mrouted.pid ファイルに書き出します。


初期設定

     mrouted は、自動的にすべてのマルチキャスト可能なインタフェース、つま
     り、IFF_MULTICAST フラグがセットされたインタフェース (ループバックインタ
     フェースは除きます) に対して初期化を行い、別の DVMRP ルータに直接接続可能
     なインタフェースを探索します。デフォルトの設定を上書きする、あるいは別の
     マルチキャストルータに対するトンネルリンクを付加するには、
     /etc/mrouted.conf (もしくは -c オプションによって指定されるファイル) を編
     集します。

     ファイルの形式は自由です。すなわち、空白文字 (改行も含みます) は意味を持
     ちません。 mrouted の操作全体またはデフォルト設定に適用されるコマンドか
     ら、ファイルは開始します。

     cache_lifetime secs
             する状態は少なくなりますが、ブロードキャストの頻度が高くなるとい
             う弊害があります。隣接ルータのリブート判定に DVMRP の世代 ID を使
             用しないルータがあります (例えば 3.3 以前の mrouted と、cisco の
             IOS の現在知られている全バージョン)。リブートからの回復時間を短縮
             するために、これらの隣接ルータに送信した枝苅りを保持する時間は短
             くすべきです。このような状況で使用する場合、後述するように
             prune_lifetime キーワードをインタフェースに指定すると良いでしょ
             う。

     noflood
             mrouted は DVMRP 最適化を使用し、各隣接ルータに対して個々にルー
             ティングテーブルを持つことを避けます。接続されている個々のサブ
             ネットに対し、自己がフォワーダであると開始時に仮定することも、こ
             の最適化の一部です。ちょうど今開始したルータと正しいフォワーダの
             両方がトラフィックをフォワードすることにより、短期間 (およそ経路
             報告間隔 1 回分) 重複が生じることがあります。この動作は noflood
             キーワードを指定することにより停止できます。 mrouted が自己をフォ
             ワーダであると仮定しなくなるためです。 noflood を指定すると、再開
             時におよそ経路報告間隔 1 回分、ブラックホールを生じさせることがあ
             ります。 noflood キーワードは個々のインタフェースに指定可能です。

     rexmit_prunes [on|off]
             デフォルトでは、 mrouted は枝苅りを全ポイントツーポイントインタ
             フェース (トンネル含む) に対して再フォワードしますが、マルチアク
             セスインタフェースに対しては行いません。本オプションを使用する
             と、全インタフェースに対してデフォルトをオン (またはオフ) にしま
             す。 rexmit_prunes キーワードもまた個々のインタフェースに指定可能
             です。

     name boundary-name scoped-addr/mask-len
             boundary-namescoped-addr/mask-len で記述される境界に関連付
             け、設定ファイルにおいて、インタフェース設定を読み易くし、繰り返
             しを減らします。

     設定ファイルの第 2 の部分は、空でも構いませんが、物理インタフェースに適用
     されるオプションを記述します。

     phyint local-addr|ifname
             phyint コマンド自身は何もしません。単なる埋め草であり、この後にイ
             ンタフェース固有のコマンドが続きます。インタフェースのアドレスま
             たは名前を指定します。

     disable
             本インタフェースにおけるマルチキャストのフォワーディングを無効に
             します。デフォルトでは、 mrouted はローカルに接続されたマルチキャ
             スト可能なインタフェースをすべて発見し、それらすべてに対してフォ
             ワードします。

     netmask netmask
             カーネルの netmask がサブネットを正確に反映していない場合 (例えば
             IP サブネット化の代りに代理 ARP 使用の場合)、 netmask コマンドを
             使用して実際の netmask を記述してください。

     更に、後述する共通の vif コマンドを phyint に対してすべて使用可能です。

     設定ファイルの第 3 の部分は、これも空でも構いませんが、このルータが持つ
     DVMRP トンネルの設定を記述します。

     tunnel local-addr|ifname remote-addr|remote-hostname
             このコマンドは、このホスト ( local-addr または ifname で記述され
             るインタフェース) とリモートホスト ( remote-addr または
             remote-hostname で識別されます) との間の DVMRP トンネルを確立しま
             す。リモートのホスト名は、単一の IP アドレスにマップされる場合の
             み使用可能です。トンネルは、使用前に、両方のルータ上で構成されて
             いる必要があります。

             リモートアドレスへのユニキャスト経路が、 local-addr|ifname で指定
             されるインタフェースから出て行くように気を付けてください。
             mrouted が扱うパケットのソースアドレスを、送出インタフェースのア
             ドレスに書き換えてしまう UNIX カーネルがあります。安全第一のため
             には、静的なホスト単位の経路を使用してください。

     次の共通の vif コマンドを tunnel や phyint に対してすべて使用可能です。

     metric m
             metric は、指定したインタフェースもしくはトンネルでデータグラムを
             受信するための「コスト」であり、経路選択に影響を与えるために使用
             します。 metric のデフォルト値は 1 です。metric は可能なかぎり小
             さくすべきです。なぜなら、 DVMRP は metric の合計が 31 を越える経
             路を通ることができないからです。

     advert_metric m
             advert_metric は、指定したインタフェースもしくはトンネルでデータ
             グラムを送信するための「コスト」であり、経路選択に影響を与えるた
             めに使用します。 advert_metric のデフォルト値は 0 です。リンクの
             実際の metric は一端の metric ともう一端の advert_metric との和で
             す。

     threshold t
             threshold は最小の IP の生存時間であり、この要件を満たすマルチ
             キャストデータグラムは指定したインタフェースもしくはトンネルに
             フォワードされます。このパラメータは、マルチキャストデータグラム
             の到達範囲を定めるために使用します。 (フォワードされたパケットの
             TTL は threshold と比較されるだけで、 threshold だけ TTL を減らす
             というわけではありません。すべてのマルチキャストルータは TTL を丁
             度 1 づつ減らします。) threshold のデフォルト値は 1 です。

             特定のサブネットやトンネルへ接続される全マルチキャストルータは、
             そのサブネットやトンネルに対し、一般的にはすべて同じ metric と
             threshold を持つべきです。

     rate_limit r
             rate_limit オプションによって、マルチキャストトラフィック用に何キ
             ロビット毎秒のバンド幅を割り当てるかを、ネットワーク管理者は指定
             バは送りませんので、リンクをアップ状態に保つということはありませ
             ん。トンネルの両端でこのオプションを指定すると、トンネルはいつに
             なっても使えないでしょう。

     noflood
             前述の通りですが、このインタフェース/トンネルに対してのみ適用され
             ます。

     prune_lifetime secs
             前述の通りですが、このインタフェース/トンネルに対してのみ適用され
             ます。

     rexmit_prunes [on|off]
             前述の通りですが、このインタフェース/トンネルに対してのみ適用され
             ます。枝苅りの再送信のデフォルトは、ポイントツーポイントリンクと
             トンネルではオンであり、マルチアクセスリンクではオフです。

     allow_nonpruners
             デフォルトでは、枝苅りをサポートしないと主張する DVMRP 隣接ルータ
             とは mrouted は仲間にはなりません。本オプションを使用すると、本イ
             ンタフェースにおいて、このようなルータとも仲間となります。

     notransit
             経路フィルタリングの特殊ケースです。 "notransit" とマークされたイ
             ンタフェースから学習された経路は、他の "notransit" とマークされた
             インタフェースにおいて広告されません。単一のインタフェースのみを
             "notransit" とマークしても、意味はありません。

     accept|deny (route/mask-len [exact])+ [bidir]
             accept および deny のコマンドにより、原始的な経路フィルタリングが
             可能となります。 accept コマンドにより、設定されたインタフェース
             に関してリストされた経路のみ、 mrouted は受け付けます。 deny コマ
             ンドにより、リストされた経路以外のすべての経路を、 mrouted は受け
             付けます。ひとつのインタフェースには、 accept または deny のどち
             らかのみ使用可能です。

             accept と deny のキーワードの後には、経路のリストが続きます。経路
             の後にキーワード exact が続くと、その経路のみがマッチします。指定
             しない場合には、その経路とより具体的な経路がマッチします。例え
             ば、 deny 0/0 はすべての経路を拒否しますが、 deny 0/0 exact はデ
             フォルト経路のみ拒否します。デフォルト経路は default キーワードで
             指定することも可能です。

             bidir キーワードは双方向の経路フィルタリングを可能にします。フィ
             ルタは、出力および入力の両方の経路に適用されます。 bidir キーワー
             ドを指定しないと、 accept および deny のフィルタは、入力に対して
             のみ適用されます。 Poison reverse 経路は、フィルタにより取り除か
             れることはありません。

     mrouted は 2 つ以上の有効な vif (仮想インタフェース) が無いときには実行を
     開始しません。 vif はマルチキャスト可能な物理インタフェースもしくはトンネ
     ルです。すべての仮想インタフェースがトンネルの場合は警告が記録されます。
     #     ローカルグループはそちらにフォーワードしません。
     phyint le1 boundary EE
     #
     # le2 は classroom ネット上の我々のインタフェースであり、
     #     4 つの異なった長さのサブネットがあります。
     # IP アドレスでもインタフェース名でも使えることに注意。
     phyint 172.16.12.38 boundary EE altnet 172.16.15.0/26
             altnet 172.16.15.128/26 altnet 172.16.48.0/24
     #
     # atm0 は我々の ATM インタフェースであり、
     #     マルチキャストを正しくサポートしません。
     phyint atm0 disable
     #
     # これは、別の EE サブネットに対する内部トンネルです。
     # トンネルはイーサネット上にあるので、
     #     トンネルのデフォルトのレート制限を取り除きます。
     tunnel 192.168.5.4 192.168.55.101 metric 1 threshold 1
             rate_limit 0
     #
     # これは外世界に対する我々のトンネルです。
     # これらの境界には注意してくださいね、Eugene (訳注: ユージーン; 人名)。
     tunnel 192.168.5.4 10.11.12.13 metric 1 threshold 32
             boundary LOCAL boundary EE


シグナル

     mrouted は次のシグナルに反応します。

     HUP     mrouted を再スタートします。設定ファイルは再度読み込まれます。

     INT     後かたづけをしてから実行終了します (たとえば、隣接するルータすべ
             てにさよならのメッセージを送ります)。

     TERM    INT と同じです。

     USR1    内部ルーティングテーブルを /var/tmp/mrouted.dump にダンプします。

     USR2    内部キャッシュテーブルを /var/tmp/mrouted.cache にダンプします。

     QUIT    内部ルーティングテーブルを stderr にダンプします。ただし、
             mrouted が 0 以外の debug level の時のみです。

     シグナルを送る際の便宜のために、 mrouted は開始時に自身のプロセス ID を
     /var/run/mrouted.pid に書き出します。


使用例

     ルーティングテーブルは次のようになります:

     Virtual Interface Table
      Vif  Local-Address                    Metric  Thresh  Flags
       0   36.2.0.8      subnet: 36.2/16       1       1    querier
                         groups: 224.0.2.1
                                 224.0.0.4

                        pkts in: 34545433
                       pkts out: 234342

       3   36.2.0.8      tunnel: 36.6.8.23     3       16

     Multicast Routing Table (1136 entries)
      Origin-Subnet   From-Gateway    Metric Tmr In-Vif  Out-Vifs
      36.2                               1    45    0    1* 2  3*
      36.8            36.8.0.77          4    15    2    0* 1* 3*
      36.11                              1    20    1    0* 2  3*
      .
      .
      .

     この例では、4 つの vif が 2 つのサブネットと 2 つのトンネルにつながってい
     ます。 vif 3 がつながったトンネルは使われていません (peer アドレスが有り
     ません)。 vif 0 と vif 1 がつながったサブネットにはいくつかのグループが有
     ります。トンネルにはグループは有りません。この例の mrouted は、 "querier"
     フラグが示すように、定期的なグループメンバシップの問い合わせを vif 0 およ
     び vif 1 サブネットにて送出する責任が有ります。境界のリストは当該インタ
     フェースのアドレス範囲が示されます。入力及び出力パケット数が各インタフェ
     ースに対して示されます。

     マルチキャストデータグラムの起源となりうるサブネットに関連して表示される
     情報は、直前のホップのルータのアドレス(サブネットが直接接続されていない場
     合)、起源までのパスの metric、当該サブネットから最後に更新を受信してから
     経過した時間、当該起源からのマルチキャストが入力される vif、出力 vif 一覧
     です。 "*" は、起源を根とするブロードキャストツリーの葉に、当該出力 vif
     が接続していることを意味します。宛先グループのメンバが当該葉にいる時の
     み、当該起源からのマルチキャストデータグラムを当該出力 vif からフォワード
     します。

     mrouted はカーネル内のフォワーディングキャッシュテーブルも管理します。エ
     ントリの生成及び削除は mrouted が行います。

     キャッシュテーブルは次のようなものです:

     Multicast Routing Cache Table (147 entries)
      Origin             Mcast-group     CTmr  Age Ptmr IVif Forwvifs
      13.2.116/22        224.2.127.255     3m   2m    -  0    1
     >13.2.116.19
     >13.2.116.196
      138.96.48/21       224.2.127.255     5m   2m    -  0    1
     >138.96.48.108
      128.9.160/20       224.2.127.255     3m   2m    -  0    1
     >128.9.160.45
      198.106.194/24     224.2.135.190     9m  28s   9m  0P
     >198.106.194.22

     各エントリは起源のサブネット番号、マスク、宛先マルチキャストグループにて
     区別します。

     ルータに対して枝刈メッセージが送信されます。この場合、vif 番号の後に "P"
     が付けられます。

     'Forwvifs' フィールドはソースグループに属するデータグラムがフォワードされ
     るインタフェースを表します。 "p" は、このインタフェースを介してフォワード
     されるデータグラムが存在しないことを表します。リストされないインタフェー
     スは葉のサブネットであり、特定のグループのメンバを当該サブネットに持ちま
     せん。インタフェースにおける "b" の表示は、当該インタフェースが境界インタ
     フェースであることを表します。すなわち、範囲内のアドレスのトラフィックは
     当該インタフェースを介してフォワードされないことを意味します。

     ">" を最初の文字として表示する追加の行は、当該サブネット上のソースを表し
     ます。 1 つのサブネット上に複数のソースが存在可能であることに注意して下さ
     い。 "<" を最初の文字として表示する追加の行は、このサブネットもしくはグル
     ープに関して、下流の隣接ルータから受信した枝苅りを表示します。


関連ファイル

     /etc/mrouted.conf
     /var/run/mrouted.pid
     /var/tmp/mrouted.dump
     /var/tmp/mrouted.cache


関連項目

     map-mbone(8), mrinfo(8), mtrace(8)

     DVMRP は、他のマルチキャスト経路制御アルゴリズムと共に、 ACM SIGCOMM '88
     コンファレンスのプロシーディングに、 S. Deering が "Multicast Routing in
     Internetworks and Extended LANs" として記述しています。


作者

     Steve Deering,
     Ajit Thyagarajan,
     Bill Fenner

FreeBSD 4.4                       May 8, 1995                      FreeBSD 4.4

ABELNET VPSサービス