Articles

ルーティングテーブル(TCP/IPネットワーク管理、第3版)

Book Home

PreviousPreviousPreviousPreviousPrevious49B9932884” src=”https://docstore.mik.ua/orelly/networking_2ndEd/gifs/txtpreva.gif”>

Previous 次

2.4。 ルーティングテーブル

ゲートウェイは、ネットワーク間でデータをルーティングしますが、すべてのnetworkdevices、ホスト、およびゲートウェイは、ルーティン ほとんどのホストでは、ルーティングの決定は簡単です:

  • 宛先ホストがローカルネットワーク上にある場合、データは宛先ホストに配信されます。

  • 宛先ホストがリモートネットワーク上にある場合、データはローカルゲートウェイに転送されます。

IPルーティングの決定は単にテーブルルックアップです。 パケットは、routingtable(forwardingtableとも呼ばれます)によって指示されるように、宛先にroutedtowardされます。 ルーティングテーブルは、IPがその宛先に到達するために使用する必要があるrouterおよびネットワークインターフェイスに宛先をマップします。Linuxシステム上のルーティングテーブルを調べると、これが表示されます。

Linuxシステムでは、routeコマンドに-nオプションを指定してルーティングテーブルを表示します。 -Nオプションは、IPアドレスをhostnamesに変換するルートを防ぎ、より明確な表示を提供します。 Red Hatシステムのサンプルからのルーティングテーブルは次のとおりです。

Thenetstatコマンドは、Solaris8システムのroutingtableを調べるために使用されます。 Solarisの例については、この章の後半で説明します。

# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface172.16.55.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0172.16.50.0 172.16.55.36 255.255.255.0 UG 0 0 0 eth0127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.0.0.0 172.16.55.1 0.0.0.0 UG 0 0 0 eth0

Linuxシステムでは、route-ncommandは次のフィールドを持つルーティングテーブルを表示します。

Destination

宛先IPアドレスが一致した値。

Gateway

指定された宛先に到達するために使用するルータ。

Genmask

Ipアドレスを宛先フィールドに示されている値と一致させるために使用されるアドレスマスク。

フラグ

このルートの特定の特性。可能なLinuxフラグの値は次のとおりです:p>

フラグR、M、C、I、および! Linuxに固有のものです。 その他のフラグは、ほとんどのtunixシステムで使用されます。p>

U

は、ルートが稼働していることを示します。

H

は、これが特定のホストへのルートであることを示します(ほとんどのルートはネットワークへのルートです)。

G

は、ルートがexternalgatewayを使用することを示します。 システムのネットワークインタフェースは、直接接続されたネットワークにルートを提供します。 他のすべてのルートは外部ゲートウェイを使用します。直接接続されたネットワークにはGフラグが設定されていません。

R

は、おそらくこのシステムで実行されているadynamic routing protocolによってインストールされたルートを示し、thereinstateオプションを使用します。

D

は、このルートがICMPリダイレクトメッセージのために追加されたことを示します。 システムがicmpリダイレクトのルートを学習すると、ルーティングテーブルにルートを追加して、その宛先にバインドされた追加パケットをberedirectedする必要はありません。 システムはDフラグを使用してこれらのルートをマークします。

M

は、おそらくこのシステムで実行されているadynamic routing protocolによって、themodオプションを使用して変更されたルートを示します。

A

は、ARPテーブルにassociatedentryを持つキャッシュされたルートを示します。

C

は、このルートがkernelroutingキャッシュからのものであることを示します。 ルーティング決定に使用されるため、関心のあるテーブルであるForwardingInformation Base(FIB)と、最近使用されたルーティングのソースと宛先を一覧表示するカーネルroutingcacheです。 このフラグは文書化されていますが、ルーティングキャッシュを一覧表示する場合でも、cフラグinaルーティングテーブルの一覧を見たことはありません。

L

は、thisrouteの宛先がこのコンピュータのアドレスのいずれかであることを示します。 これらの”localroutes”は、ルーティングキャッシュ内にのみ検出されます。

B

は、宛先がbroadcastaddressであるルートを示します。 これらの”ブロードキャストルート”は、ルーティングキャッシュにのみ見られます。 つまり、network172.16.255.255と172.16.0.0の両方がnetwork172.16.0.0/16に存在するSolarisシステムによってBフラグが与えられます。

I

は、ループバックネットワークのアドレス指定以外の目的でループバックインターフェースを使用するルートを示します。 これらの”内部ルート”は、ルーティングキャッシュ内にのみ検出されます。

!

は、thisdestinationにバインドされたデータグラムが拒否されることを示します。 Linuxでは、”負の”ルートを手動でインストールすることができます。 これらは、特定の宛先に明示的にブロックデータがバインドされたルートです。 これはLinux固有のものであり、まれに使用されますが、可能なフラグ設定です。

メトリック

ルートの”コスト”。 このメトリックは、表に重複するルートがある場合にソートするために使用されます。 これ以外にも、メトリックを使用するにはadynamicルーティングプロトコルが必要です。

Ref

ルートが接続を確立するために参照された回数。 この値はLinuxシステムでは使用されません。このルートがIPによって検索された回数を使用します。

Iface

このルートで使用されるネットワークインターフェイスの名前。

ネットワークインターフェイスは、IPが物理ネットワークと通信するために使用するnetworkaccessハードウェアとソフトウェアです。 詳細については、第6章”インターフェイスの設定”を参照してください。

ルーティングテーブルの各エントリは、adestination値で始まります。 宛先値はこれがIPアドレスに達するのに使用するべき正しいルートであるかどうか定めるためにIPアドレスが一致するthekeyです。 Destinationvalueは通常、”宛先ネットワーク”と呼ばれますが、ネットワークアドレスである必要はありません。 Destinationvalueには、ホストアドレス、マルチキャストアドレス、多くのネットワークの集約をカバーするアドレスblockthat、またはデフォルトルートまたはループバックアドレスの特別な値を指定できます。 ただし、すべての場合において、destinationフィールドには、IPパケットからの宛先アドレスが照合され、このルートを使用してipがデータグラムを配信する必要があ

Genmaskフィールドは、ipがパケットからのdestinationアドレスに適用されるビットマスクであり、アドレスがテーブル内のdestination値と一致するかどうかを確認します。 ビットマスクでビットがオンになっている場合、宛先アドレスの対応ビットは、アドレスのフォーマットに相当します。 したがって、アドレス172.16.50.183は、アドレスwith255.55.255をANDingするため、サンプルテーブルのsecondエントリと一致します。0 172.16.50.0

アドレスがテーブル内のエントリと一致すると、Gatewayfieldはipにspecifieddestinationに到達する方法を指示します。 ゲートウェイフィールドにarouterのIPアドレスが含まれている場合は、ルータが使用されます。 ゲートウェイフィールドにすべての0(routeが-nで実行されている場合は0.0.0.0)またはアスタリスク(*が-nで実行されている場合はroute)が含まれている場合、デスティネーションネットワークは直接接続されたネットワークであり、”ゲートウェイ”はコンピュータのネットワークインターフェイスです。 各テーブルエントリに表示される最後のフィールドは、ルートに使用されるネットワークインターフェースです。 この例では、最初のEthernetinterface(eth0)またはループバックインターフェイス(lo)のいずれかです。 宛先、ゲートウェイ、マスク、およびインターフェイスはルートを定義します。

残りの4つのフィールド(Ref、Use、Flags、Metric)には、ルートに関するサポート情報が表示されます。 これらの情報フィールドは限界値にすぎません。 いくつかのシステムはRefフィールドに正確なカウントを保持しています。Linuxなどの他のシステムは実際にはそれを使用しません。 LinuxはUsefieldを使用して、ipが必要なときにルーティングキャッシュになかったため、arouteを検索する必要があった回数をカウントします。 他のいくつかのシステムは、使用フィールドにルートを介して送信されたpacketstransmittedの数を示しています。 ルーティングテーブル内のすべてのルートが定義によりアップしているため、すべてのルートにUフラグが設定されており、Gフラグを検索せずにexternalgatewayが使用されているかどうかがゲートウェイフィールドで検索されます。 Metricvalueは、システム上でRoutingInformation Protocol(RIP)のsomeversionを実行する場合にのみ使用されます。 この情報を邪魔しないでください。 ルーティングテーブルの中心は、宛先、マスク、ゲートウェイ、およびインターフェイスで構成されるルートです。

IPは、ルーティングテーブル(転送テーブル)からの情報を使用して、アクティブな接続に使用されるルートを構築します。 アクティブな接続に関連付けられたroutesassociatedは、routingcacheに格納されます。 Linuxsystemsでは、コマンドラインに-C引数を追加することで、ルーティングキャッシュを調べることができます:

$ route -CnKernel IP routing cacheSource Destination Gateway Flags Metric Ref Use Iface127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo192.203.230.10 172.16.55.3 172.16.55.3 l 0 0 0 lo172.16.55.1 172.16.55.255 172.16.55.255 ibl 0 0 243 lo172.16.55.2 172.16.55.255 172.16.55.255 ibl 0 0 15 lo172.16.55.3 192.203.230.10 172.16.55.1 0 0 0 eth0127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo172.16.55.3 132.163.4.9 172.16.55.1 0 0 0 eth0172.16.55.2 172.16.55.3 172.16.55.3 il 0 0 149 lo172.16.55.3 172.16.55.2 172.16.55.2 0 1 0 eth0132.163.4.9 172.16.55.3 172.16.55.3 l 0 0 0 lo

ルーティングキャッシュは、確立されたルートを示しているため、ルーティングテーブルとは異なります。 ルーティングテーブルはルーティングの決定を行うために使用され、ルーティングキャッシュは決定が行われた後に使用されます。 ルーティングキャッシュは、ネットワーク接続の送信元と宛先、およびその接続を行うために使用されるgatewayとインターフェイスを示します。

Linuxはroutingtableの内容を示すための良い例を提供します。Linuxのrouteコマンドはtableを非常に明確に表示するためです。 Solarisシステムでは、routeコマンドの構文は非常に異なります。 Solarisを実行するときは、thenetstat-nrcommandを使用してルーティングテーブルの内容を表示します。 -Rオプションはnetstatにルーティングテーブルを表示させ、-nオプションはnetstatにテーブルを数値形式で表示させるように指示します。

Linuxはルーティングテーブルの表示にアドレスマスク情報を組み込みます。 Solaris8はアドレスマスクをサポートしていますが、ルーティングテーブルを表示するときには表示されません。p>

% netstat -nr Routing Table: IPv4 Destination Gateway Flags Ref Use Interface ----------- ----------- ----- ---- ----- --------- 127.0.0.1 127.0.0.1 UH 1 298 lo0 default 172.16.12.1 UG 2 50360 172.16.12.0 172.16.12.2 U 40 111379 dnet0 172.16.2.0 172.16.12.3 UG 4 1179 172.16.1.0 172.16.12.3 UG 10 1113 172.16.3.0 172.16.12.3 UG 2 1379 172.16.4.0 172.16.12.3 UG 4 1119

最初のテーブルエントリは、ローカルホストのループバックルートです。 これは、予約済みのネットワーク番号として前述したloopbackaddressです。 Everysystemはループバックルートを使用してデータグラムを自分自身に送信するため、ループバックインターフェイスのentryforはすべてのホストのルーティングテーブルにあHフラグが設定されているのは、Solarisがネットワーク全体(127.0.0.0)へのルートではなく、特定のホスト(127.0.0.1)へのルートを作成するためです。Kernelconfigurationとifconfigコマンドについて議論するときに、ループバック機能が再び表示されます。 しかし、今のところ、私たちの本当の関心は外部ルートにあります。

このroutingtableの別の一意のエントリは、destinationフィールドに”default”という単語を持つエントリです。 このエントリはdefaultroute用であり、このエントリで指定されたゲートウェイはデフォルトゲートウェイです。 デフォルトのルートは、前述のotherreservedネットワーク番号0.0.0.0です。 Defaultgatewayは、宛先ネットワークアドレスのテーブルに特定のルートがない場合に使用されます。 たとえば、このルーティングテーブルにはネットワーク192.168.16.0のnoentryがありません。 IPがこのネットワークにアドレス指定されたdatagramsを受信すると、デフォルトのgateway172.16.12.1を介してそれらを送信します。

ルーティングテーブルに表示されるすべてのゲートウェイは、ローカルシステムに直接接続されたネットワーク上にあります。 上記のサンプルでは、宛先アドレスに関係なく、ゲートウェイアドレスはすべて172.16.12で始まることを意味します。 これは、このサンプルホストが直接接続されている唯一のネットワークであり、したがって、データを直接配信できる唯一のネットワークです。 ホストがインターネットの残りの部分に到達するために使用するゲートウェイは、そのサブネット上にある必要があります。

図2-4では、仮想ネットワーク上の二つのホストとagatewayのIP層は、宛先ネットワークとそれらの宛先に使用されるゲートウェイを示すaroutingテーブルの小片に置 ネットワーク172.16.0.0に使用されるアドレスマスクが255.255.255.0であると仮定します。 送信元ホスト(172.16.12.2)が宛先ホスト(172.16.1.2)にデータを送信すると、アドレスマスクを適用して、ルーティングテーブルで宛先ネットワークアドレス172.16.1.0を探す必要があると判断します。 送信元ホストのルーティングテーブルには、172.16.1.0にバインドされたデータがゲートウェイ172.16.12.3に送信されることが示されています。 送信元ホストは、パケットをゲートウェイに転送します。 ゲートウェイは同じ手順を実行し、ルーティングテーブル内のdestinationアドレスを検索します。 ゲートウェイ172.16.12.3は、その172.16.1.5インターフェイスを介して直接配信を行います。 図2-4の表を調べると、すべてのシステムが直接接続されているネットワーク上のゲートウェイのみを一覧表示しています。これは、172.16.12.1が172.16.12.2と172.16.12.3の両方のdefaultgatewayであるという事実によって示されていますが、172.16.1のためです。2cannotリーチネットワーク172.16.12.0直接、それは別のdefaultrouteを持っています。p>

図2-4

図2-4. テーブルベースのルーティング

ルーティングテーブルには、エンドツーエンドルーテが含まれていません。 ルートは、宛先ネットワークへのパスに沿って、次ホップと呼ばれるnextgatewayのみを指します。 データを配信するためのローカルゲートウェイ上のhostrelies、および他のゲートウェイ上のgatewayrelies。 データグラムがあるゲートウェイから別のゲートウェイに移動すると、最終的にはその宛先ネットワークに直接接続されているものに到達す この最後のゲートウェイは、最終的にデータを宛先ホストに配信します。

第7章”ルーティングの設定”で説明するように、OSPFやBGPなどの一部のルーティングプロトコルは、エンドツーエンドのルーティング情報を それにもかかわらず、パケットはまだネクストホップルータに渡されます。

IPは、ネットワーク間のdatagrambetweenをルーティングするためにアドレスのネットワーク部分を使用します。 ホスト情報を含む完全なアドレスは、データグラムがdestinationネットワークに到達したときに最終的な配信を行うために使用されます。

Previous Home Next
2.3. Internet Routing Architecture Book Index 2.5. Address Resolution

Library Navigation Links

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です