広告
広告
https://www.7key.jp/nw/routing/rooting_table.html#routingt
経路制御表、又は単に経路表と呼ばれることもあります。「ARP の話」や「ネットワーク層」で簡単に触れましたが、ここではもう少し詳しく初めから解説しようと思います。
ネットワークの世界では、パケットを他の端末に届けようとする際に、伝言ゲームのようなことが行われます。例えば、Webサイトを見るときはどうでしょう。目の前の端末からブラウザにURLを入力した際に、ブラウザは次のようなリクエストを作成します。
「私(A)宛にあなた(B)の○○というファイルを転送して下さい」
このようなリクエスト(パケット)が、端末Aから端末Bに送られるのですが、ここで伝言ゲームが始まります。まず、端末Aはルータにこのリクエストを送信します。リクエストを受け取ったルータは、更に別のルータにそのリクエストを送信し、更にそのルータは別のルータにリクエストを送信し、と、端末Bにリクエストが届くまでに何個もの端末を中継するのが当たり前です。このパケットを次から次へと渡して行く過程を伝言ゲームに見立てているのですが、通常の伝言ゲームと少し違う点があります。それは、伝言ゲームに関係ないものまで多数参加していると言うことです。最初にリクエストを受け取ったルータは、LANにもWANにも繋がっているでしょう。また、LANに繋がっている端末は、端末Aだけではなく、複数の端末がルータ配下に繋がっている場合がほとんどだと思います。ルータは受け取ったリクエスト(IPパケット)を見て、次は誰に渡すかを判断しなければなりません(もっと正確に言えば、誰に渡せば一番効率的か)。そのために使われるのがルーティングテーブルと呼ばれるものです。
ここまで読んで頂いた方は、「ルーティングテーブルはルータ内にあるメモリー領域」と勘違いされるかもしれませんが、ルーティングテーブルは、端末(パソコン)内にもあるのです。IPヘッダを作成する際に、IPは宛先アドレスと送信元アドレスをヘッダ内に書き込みます。宛先アドレスは、ネットワーク層より上位層(ほとんどの場合応用層)で確定されますので、そのアドレスを書き込むのですが、送信元アドレスはどうでしょう。当然、その端末に割り当てられたアドレスが書き込まれるのですが、ここが落とし穴となっています。LANアダプタ等の通信用インターフェースが一つだけの場合は、無条件にそのインターフェースのアドレスを送信元アドレスとして割り振れば良いでしょうが、端末には通常、複数のインターフェースが搭載されています。LANアダプタが複数ささっている端末もあれば、モデムカードが搭載されている端末もあるでしょう。このような場合には、どのIPアドレスを送信元として使用するかをまず判断してやる必要が出てきます(つまりは、どのインターフェースを使って通信を行うか、ということです)。この判断の際に使われるのもルーティングテーブルとなっています。
補足として付け加えますと、実は上の二つの例(ルータの例と端末の例)は同じことを表しています。ルータを、通信用インターフェースを複数搭載した端末と思って下さい。要は、送信元となるか、中継点となるかの違いはあるにしろ、「どのインターフェースを使って、次にどこにパケットを送るのか」という、ルーティングテーブルの使用目的は同じなのです。(詳しくは「ルータの話」で解説します。)
https://www.7key.jp/nw/routing/rooting_table.html#routingtable
では、実際にルーティングテーブルがどのようなものか見てみましょう。ご使用の端末がWindowsならば、「Windows2000でのRouteコマンド」も参考にして下さい。以下の表のようなものが表示されるはずです。
C:\>route print =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x1000003 ...00 0c 6e 3c 16 d2 ...Intel 8255x-based Integrated Fast Ethernet =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 1 -1 192.168.1.0 255.255.255.0 192.168.1.100 192.168.1.100 1 -2 192.168.1.100 255.255.255.255 127.0.0.1 127.0.0.1 1 -3 192.255.255.255 255.255.255.255 192.168.1.100 192.168.1.100 1 -4 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 -5 224.0.0.0 224.0.0.0 192.168.1.100 192.168.1.100 1 -6 255.255.255.255 255.255.255.255 192.168.1.100 192.168.1.100 1 -7 Default Gateway: 192.168.1.1 =========================================================================== Persistent Routes: None
まず、宛先アドレスとして指定されているIPアドレスが、ルーティングテーブルの左端の欄(NetworkDestination)のどこに該当するかを探します。例えば、「192.168.1.101」という宛先にパケットを送る場合、「192.168.1.0」というIPネットワークに所属しますので、上から2行目に該当することになります。該当する行が見つかったならば、次に左から3番目(Gateway)と左から4番目(Interface)の行を調べます。GatewayはそのIPアドレスを持つルータにパケットを渡せば、そのルータが目的の端末までパケットを中継してくれることを表します。また、Interfaceは、そのインターフェースからパケットを送信することを表します。もしこのGatewayとInterfaceが同じアドレスだったならば、ルータを介さず直接パケットを届けることになります。ここで、一行目を見て下さい。宛先IPアドレスとサブネットマスクが「0.0.0.0」で表されています。これは「他に該当する行がない場合は、この行が有効」ということを表しています。この一行目のことを「デフォルト経路」、一行目のGatewayのことを「デフォルトゲートウェイ」と呼びます。このデフォルトゲートウェイを設定することにより、全ての経路をルーティングテーブルに登録しておく必要がなくなるのです。
ルーティングテーブルのことを「経路制御表」「経路表」「FIB」【Forwarding Information Base】とも言います。
広告