今回はルーティングに関して以下のトピックを取り扱います。
- ルーティングテーブルの見方
- ルーティングテーブル上のルート優先順位
- ルーティングテーブルが出来上がるまで
- ルート情報の強弱
ルーティングテーブルの見方
パソコンやルータなど、OSIレイヤー3以上の転送機能を持つ機器にはルーティングテーブルが備わっています。OSの種類などによりルーティングテーブルの表示方法は異なりますが、ルーティングテーブルには基本的に「宛先ルート(route)」、「パケット転送先(next hop)」、「出力インターフェース(interface)」の3つが記載されます。
たとえば、以下のネットワークでRouter2のルーティングテーブルを見てみます。
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つの概念が出てきました。
- ロンゲストマッチ
- アドミニストレーティブディスタンス
- メトリック
ロンゲストマッチはルーティングテーブルが出来上がってからのルート強弱の指標であり、アドミニストレーティブディスタンス、メトリックはルーティングテーブルが出来上がるまでの過程で評価されるルート強弱の指標です。指標の優先順位としては「ロンゲストマッチ > アドミニストレーティブディスタンス > メトリック」ですが、優先順位の評価順序は逆で、「メトリック → アドミニストレーティブディスタンス → ロンゲストマッチ」となります。