LoginSignup
59
48

More than 5 years have passed since last update.

ルーティングテーブルを理解する

Last updated at Posted at 2019-05-19

今回はルーティングに関して以下のトピックを取り扱います。

  • ルーティングテーブルの見方
  • ルーティングテーブル上のルート優先順位
  • ルーティングテーブルが出来上がるまで
  • ルート情報の強弱

ルーティングテーブルの見方

パソコンやルータなど、OSIレイヤー3以上の転送機能を持つ機器にはルーティングテーブルが備わっています。OSの種類などによりルーティングテーブルの表示方法は異なりますが、ルーティングテーブルには基本的に「宛先ルート(route)」、「パケット転送先(next hop)」、「出力インターフェース(interface)」の3つが記載されます。

たとえば、以下のネットワークでRouter2のルーティングテーブルを見てみます。

router.png

Router2のルーティングテーブル

route         next hop    interface
0.0.0.0/0     172.16.1.1  eth0
10.0.0.0/8    172.16.1.1  eth0
10.10.10.0/24 172.16.2.1  eth1

ルーティングテーブルの見方ですが、

  • 0.0.0.0/0 の行:パケットに記載されている宛先IPアドレスが0.0.0.0 〜 255.255.255.255のいずれかにマッチしたら、パケットをeth0から送出し172.16.1.1に転送する
  • 10.0.0.0/8 の行:パケットに記載されている宛先IPアドレスが10.0.0.0 〜 10.255.255.255のいずれかにマッチしたら、パケットをeth0から送出し172.16.1.1に転送する
  • 10.10.10.0/24の行:「パケットに記載されている宛先IPアドレスが10.10.10.0 〜 10.10.10.255のいずれかにマッチしたら、パケットをeth1から送出し172.16.2.1に転送する

という意味になります。

ルーティングテーブル上のルート優先順位

ルーティングテーブル上のルート優先順位は、「ロンゲストマッチ」という法則に従います。

ロンゲストマッチ

先程のRouter2のルーティングテーブルをもう一度見てみます。

route         next hop    interface
0.0.0.0/0     172.16.1.1  eth0
10.0.0.0/8    172.16.1.1  eth0
10.10.10.0/24 172.16.2.1  eth1

いま、宛先10.1.1.1のパケットがRouter2に転送されてきたとします。Router2はルーティングテーブルに従い、転送されてきたパケットを次の機器に転送します。この時、宛先10.1.1.1のパケットはルーティングテーブル上の「0.0.0.0/0」と「10.0.0.0/8」の行にマッチします。このように複数行にマッチする場合、「/xx」のxx部分(サブネットマスク長)の値が大きい方(より範囲が狭い方)のルートを優先的に採用します。そのため今回は「10.0.0.0/8」のルート情報が採用され、パケットはnext hop : 172.16.1.1に転送されます。これがロンゲストマッチの法則です。

次に、宛先10.10.10.1のパケットがRouter2に転送されてきたとします。この場合、ルーティングテーブル上の「0.0.0.0/0」、「10.0.0.0/8」、「10.10.10.0/24」の行すべてにマッチしますが、ロンゲストマッチの法則により「10.10.10.0/24」のルート情報が採用され、パケットはnext hop 172.16.2.1に転送されます。

ルーティングテーブルが出来上がるまで

では、ルーティングテーブルはどのようにして作られるのでしょうか。ルート情報の生成パターンはいくつかあります。代表的なのは以下3パターンです。

  • 直接接続ルート : 自身のインターフェース情報をもとに作成されたルート情報
  • スタティックルート : 手打ちで設定されたルート情報
  • ダイナミックルート : BGPやOSPFなどのダイナミックルーティングプロトコルによって自動的に学習されたルート情報

この他に、マルチキャストやループバック用のルート情報がルーティングテーブルに記載される場合があります。

ルーティングテーブルが出来上がるまでの例

例として、最終的に以下のようなルーティングテーブルが作成されたとします。

route          next hop    interface
0.0.0.0/0      192.168.1.1 eth0
10.0.0.0/8     172.16.1.1  eth1
172.16.0.0/12  172.16.1.1  eth1
192.168.0.0/16 192.168.1.1 eth0
192.168.1.0/24 connected   eth0
172.16.1.0/24  connected   eth1

※「connected」は「自身のインターフェーズ上のネットワーク」の意味

このルーティングテーブルが作成されるまでの過程を順を追って説明します。

ルーティングプロトコルごとのルート情報の生成、メトリックによる比較

まず、ルート情報はルーティングプロトコルごとに生成されます。今回は、OSPF・スタティックルートを利用していると仮定し、自身のインターフェース情報から生成される「直接接続ルート」と合わせ、3種類のルートが以下のように生成されたとします。

直接接続ルート(ここでは、ルート情報の先頭に「C」と表示する)

  route          next hop    interface
C 192.168.1.0/24 connected   eth0
C 172.16.1.0/24  connected   eth1

スタティックルート(ここでは、ルート情報の先頭に「S」と表示する)

  route          next hop    interface
S 0.0.0.0/0      192.168.1.1 eth0
S 172.16.1.0/24  192.168.1.1 eth0

OSPFルート(ここでは、ルート情報の先頭に「O」と表示する)

  route          next hop    interface
O 0.0.0.0/0      192.168.1.1 eth0 (cost 40)
O 10.0.0.0/8     172.16.1.1  eth1 (cost 40)
O 172.16.0.0/12  172.16.1.1  eth1 (cost 40)
O 192.168.0.0/16 192.168.1.1 eth0 (cost 40)
O 192.168.0.0/16 192.168.1.2 eth0 (cost 50) 

※「cost」の説明は後述

今回、OSPFルートの中には「192.168.0.0/16」のルート情報が2行作成されています。このような場合、メトリックに従って片方のルートが削除されます。

メトリックとは、各ルーティングプロトコルの中で付けられる経路比較のための指標です。1つのルーティングプロトコルの中で同一宛先ルートのルート情報が複数生成された場合、メトリックの強いルートが優先されます。OSPFの場合、メトリック≒コスト値になります。(厳密にはもう少し複雑ですが)コスト値が小さいルート情報=メトリックの強いルートとなります。メトリックの弱いルート情報はこの段階で削除されます。

  route         next hop    interface
O 192.168.0.0/16 192.168.1.1 eth0 (cost 40)
O 192.168.0.0/16 192.168.1.2 eth0 (cost 50) <- 非優先ルートとして削除

この段階で削除されたルート情報はルーティングテーブルに記載されません。

ルート情報の統合、アドミニストレーティブディスタンスによる比較

次に、先程各プロトコルが生成したルート情報を1つに統合します。

  route          next hop    interface
C 192.168.1.0/24 connected   eth0
C 172.16.1.0/24  connected   eth1
S 0.0.0.0/0      192.168.1.1 eth0
S 172.16.1.0/24  192.168.1.1 eth0
O 0.0.0.0/0      192.168.1.1 eth0
O 10.0.0.0/8     172.16.1.1  eth1
O 172.16.0.0/12  172.16.1.1  eth1
O 192.168.0.0/16 192.168.1.1 eth0

統合すると「0.0.0.0/0」、「172.16.1.0/24」のルート情報がそれぞれ2行生成されていることがわかります。このような場合、アドミニストレーティブディスタンスの比較で非優先ルートが削除されます。

アドミニストレーティブディスタンス(AD)とは、ルーティングプロトコルごとに付与される値であり、Ciscoルータの場合、以下のように定義されています。

  • 直接接続ルート(C):0
  • スタティックルート(S):1
  • OSPFルート(O):110

AD値が小さいほうが強いルートとなり、AD値の大きい(弱い)ルート情報はこの段階で削除されます(ルーティングテーブルにも記載されません)。

  route          next hop    interface
C 172.16.1.0/24  connected   eth1
S 0.0.0.0/0      192.168.1.1 eth0
S 172.16.1.0/24  192.168.1.1 eth0 ← 非優先ルートとして削除
O 0.0.0.0/0      192.168.1.1 eth0 ← 非優先ルートとして削除

最終的なルーティングテーブルの情報

メトリック、AD値による比較によって削除されなかったルート情報はルーティングテーブルに記載されます。

  route          next hop    interface
S 0.0.0.0/0      192.168.1.1 eth0
O 10.0.0.0/8     172.16.1.1  eth1
O 172.16.0.0/12  172.16.1.1  eth1
O 192.168.0.0/16 192.168.1.1 eth0
C 192.168.1.0/24 connected   eth0
C 172.16.1.0/24  connected   eth1

そして、パケットが当該ルータに到達した場合、「ロンゲストマッチの法則」に従ってルートが選ばれます。

ルート情報の強弱

ルート情報の強弱を示す指標として、これまでに以下3つの概念が出てきました。

  • ロンゲストマッチ
  • アドミニストレーティブディスタンス
  • メトリック

ロンゲストマッチはルーティングテーブルが出来上がってからのルート強弱の指標であり、アドミニストレーティブディスタンス、メトリックはルーティングテーブルが出来上がるまでの過程で評価されるルート強弱の指標です。指標の優先順位としては「ロンゲストマッチ > アドミニストレーティブディスタンス > メトリック」ですが、優先順位の評価順序は逆で、「メトリック → アドミニストレーティブディスタンス → ロンゲストマッチ」となります。

59
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
48