「インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 第2版」を読んでおります。
まだ読んでる途中ですが、めちゃくちゃいい本だと思います。とにかくわかり易いです。
普段プログラミングがメインでインフラ(ネットワーク)と縁遠い人も読んでみる価値あると思います。

インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 第2版
- 作者:みやた ひろし
- 発売日: 2019/06/20
- メディア: Kindle版
この本でなくてもネット上に情報はあると思いますが、
本書籍に書かれているルーティングプロトコルの IGP(Interior Gateway Protocol, 内部ゲートウェイプロトコル) について記録しておきたくなったので、ここにメモしておきます。
ルーティングテーブル
ネットワークのルーティングを司っているのがルーティングテーブルで、このルーティングテーブルをどうやって作るのかがネットワーク層のポイントとなる。
ルーティングテーブルの作り方は大きく分けて 静的ルーティング と 動的ルーティング の二つがある。
- 静的ルーティング
- 手動でルーティングテーブルを作る方法
- 一つ一つ宛先ネットワークとネクストホップを設定する
- 管理もしやすいので、小さなネットワーク環境のルーティングに適している。
- 動的ルーティング
- 隣接するルータ同士で自分の持っているルート情報を交換して、自動でルーティングテーブルを作る方法
- ルート情報を交換するプロトコルを ルーティングプロトコル という
- 大きなネットワーク環境や構成が変わりやすいネットワーク環境であれば動的ルーティングを使用した方がよい
- 宛先のどこかに障害が発生した場合も、動的に迂回ルートを探してくれるため耐障害性も向上する
2種類のルーティングプロトコル
ルーティングプロトコルはその制御範囲によって以下2種類に分けられる
- IGP(Interior Gateway Protocol, 内部ゲートウェイプロトコル)
- EGP(Exterior Gateway Protocol, 外部ゲートウェイプロトコル)
この2つを分ける概念が AS(Autonomous System, 自律システム)。
ASは一つのポリシーに基づいて管理されているネットワークの集まりのことで、例えばAS=組織(ISP, 企業, 研究機関, 拠点) のような感じでとらえると良い。
AS内を制御するルーティングプロトコルが IGP, ASとASの間を制御するルーティングプロトコルが EGP。
IGP
色々なIGPが存在するが、現在のネットワーク環境で使用されているプロトコルは RIPv2(Routing Information Protocol version2), OSPF(Open Shortest Path Fast), EIGRP(Enhanced Interior Gateway Routing) のどれかと考えて良い。
これらを説明する上でのポイントが ルーティングアルゴリズム と メトリック の二つ。
- ルーティングアルゴリズム
- どうやってルーティングテーブルを作るかのルール
- ルーティングアルゴリズムの違いが収束時間(ネットワーク上のルータがすべてのルートを認識している状態(収束状態)になるまでにかかる時間)や適用規模に直結する
- IGPのルーティングアルゴリズムは ディスタンスベクタ型 と リンクステート型 のどちらか
- ディスタンスベクタ型は、距離(ディスタンス)と方向(ベクタ)にもどついてルートを計算する
- ここでいう距離とは宛先に行くまでに経由するルータの数(ホップ数)を表し、方向は出力インターフェースを表す
- リンクステート型は、リンクの状態(ステート)に基づいて最適ルートを計算する
- 各ルータが自分のリンク(インターフェース)の状態や帯域、IPアドレス等色々な情報を交換してあってデータベースを作り、それをもとにルーティングテーブルを作る
- ディスタンスベクタ型は、距離(ディスタンス)と方向(ベクタ)にもどついてルートを計算する
- メトリック
- 宛先ネットワークまでの距離を表している
- ここでいう距離とは物理的な距離ではなく、ネットワークにおける論理的な距離
- 宛先ネットワークまでの距離を表している
RIPv2 / OSPF / EIGRP
先にも書いた通り、現在のネットワーク環境で使用されているIGPのルーティングプロトコルは、RIPv2, OSPF, EIGRP のどれか。
RIPv2 | OSPF | EIGRP | |
---|---|---|---|
ルーティングアルゴリズム | ディスタンスベクタ型 | リンクステート型 | ディスタンスベクタ型 (ハイブリッド型) |
メトリック | ホップ数 | コスト | 帯域幅+遅延 |
更新間隔 | 定期的 | 変更があったとき | 変更があったとき |
更新に使用する マルチキャストアドレス |
224.0.0.9 | 224.0.0.5 (ALL OSPF ルータ) 224.0.0.6 (ALL DR ルータ) |
224.0.0.10 |
適用規模 | 小規模 | 中規模〜大規模 | 中規模〜大規模 |
RIPv2
- 最近ではあまり見られないが、古い環境にたまに残っている
- そこからOSPFやEIGRPに移行することがある
- 新しく作るネットワークでこのプロトコルを使用する必要性は無い
- RIPv2はルーティングテーブルそのものを定期的にやり取りしあうことで、ルーティングテーブルを作る
- 動きはとても分かりやすいが、ルーティングテーブルが大きくなればなるほど余計な帯域を消費し、収束にも時間がかかるため大規模なネットワーク環境には不向き
- メトリックにはホップ数を使用している
- ルータを経由すればするほど遠いという扱いになる
- 途中の経路の帯域が小さくても、ホップ数が小さいルートを最適ルートとしてしまうため難がある
OSPF
- RFCで標準化されているルーティングプロトコルということもあって、マルチベンダのネットワーク環境ではOSPFを使用することが多い
- OSPFは各ルータがリンク状態や帯域、IPアドレス、ネットワークなど色々な情報を交換しあって「リンクステートデータベース(LSDB)」を作る
- そこから最適なルート情報を計算し、ルーティングテーブルを作る
- (RIPv2は定期的にルーティングテーブルを送りあっているのに対して、)OSFPは変更があったときにだけ更新がかかる
- 通常時は Helloパケットという小さなパケットを送信して、相手が正常に動作しているかどうかだけを確認しているため、必要以上に帯域を圧迫することがない
- LSDBが大きくなりすぎないように、ネットワークをエリアというものに分けて、同じエリアのルーだだけでLSDBを共有する
- メトリックに使用するコストは、デフォルトで「100 / 帯域幅(Mbps)」に当てはめて整数値として算出され、ルータを超えるたびに出力インターフェースで加算される
- したがって、ルートの帯域が大きければ大きいほど最短ルートになりやすい
- 学習したコストが全く同じだった場合は、コストが同じルートを全て使用してパケットを運び、ルートの負荷分散を行う
- このような動作を ECMP(Equal Cost Multi Path) という。ECMPは耐障害性の向上だけでなく、帯域の拡張も兼ねることができ、多くのネットワーク環境で使用されている
- コスト算出の式は、100Mbps以上のインターフェースで同じ値になってしまうため、最近は分子の値を 100 よりも大きくするのが一般的
EIGRP
- Cisco独自のルーティングプロトコル
- そのため、CiscoルータやCiscoのCatalystスイッチで構成されているネットワーク環境でしか使用できない。使用できる環境であればかなりの力を発揮する
- 最初に自分の持つルート情報を交換してそれぞれでトポロジーテーブルを作り、そこから最適なルート情報だけを抽出し、ルーティングテーブルを作る
- この部分は、RIPv2に似ているが、EIGRPは変更があった時だけ更新がかかる
- また、通常時はHelloパケットという小さなパケットを送信して、相手が正常に動作しているかを判断する。この部分はOFPFに似ている
- メトリックはデフォルトで「帯域幅」と「遅延」を使用する
- 帯域幅は「10000 / 最小帯域幅(Mbps)」の式に当てはめて算出する。宛先ネットワークまでのルートの中で最も小さい値を採用して計算する
- 遅延は「マイクロ秒 / 10」の式に当てはめて算出する。ルータを超えるごとに出力インターフェース分を加算する
- 「帯域幅」と「遅延」を足して256をかけたものがEIGRPのメトリックとなる
- EIGRPもデフォルトの動作はECMP
- メトリックが全く同じであれば、そのルートを全て使用してパケットを運び負荷分散する