プロトコル | 方式 | メトリック | 最大ホップ | 下位プロトコル | AD | 負荷分散 | クラス |
均等 | 不均等 |
Connected | | - | - | - | 0 | | | - |
Static | | - | - | - | 1 | | | - |
EIGRP (集約) | Hybrid | 複合 | 255 (Def:100) | 88/ip | 5 | ○(def) | ○ | クラスレス |
BGP (eBGP) | Distance Vector | | | 179/tcp | 20 | | | クラスレス |
EIGRP (内部) | Hybrid | 複合 | 255 (Def:100) | 88/ip | 90 | ○(def) | ○ | クラスレス |
IGRP | Distance Vector | 複合 | 255 (Def:100) | 9/ip | 100 | ○(def) | ○ | クラスフル |
OSPF | Link State | 帯域 | なし | 89/ip | 110 | ○(def) | × | クラスレス |
IS-IS | 手動 | 1,023、43 億 | L2 | 115 | | | クラスレス |
RIPv1 | Distance Vector | ホップ数 | 15 | 520/udp | 120 | | | クラスフル |
RIPv2 | | | クラスレス |
EGP | 255 | /ip | 140 | | | |
EIGRP (外部) | Hybrid | 複合 | 255 (Def:100) | 88/ip | 170 | | | クラスレス |
BGP (iBGP) | Distance Vector | | | 179/tcp | 200 | | | クラスレス |
- AD
- Administrative Distance
- 表の値は Cisco の場合
- Static > Cisco > Link State > Distance Vector
- クラス
- クラスフルはサブネット マスクをアドバタイズできない
- クラスレスはサブネット マスクをアドバタイズする (クラスを無視できる)
- クラスフルなルーティング プロトコルでも、サブネット マスクが設定されたインターフェースを利用できる
- インターフェースに設定されたサブネット マスクが、受信したルーティング情報のサブネット マスクとなる
- 192.168.0.0/25 の情報を受けとったインターフェースが、192.168.10.1/24 だと 192.168.0.0/24 として認識される
ルーティングの選択†[edit]
- ロンゲスト マッチ (一致するルーティング テーブルが複数合った場合、プレフィックス長の最も長いものを選択する)
- アドミニストレーティブ ディスタンスが最も低いもの
- メトリックが最も低いもの
ルーティング ループ防止の技術†[edit]
- メトリックの最大値
- ループを防ぐために、最大値を定義する
- RIP は 16 ホップ
- スプリット ホライズン
- ルーティング情報を受信した場合、その I/F から同じ情報を流さない
- ルート ポイズニング
- リンク ダウンの場合は、メトリックを最大にして、全ルータへ送信する
- ポイズン リバース
- ルート ポイズニングを受信した場合は、全 I/F から送信する
- スプリット ホライズンより優先される
RIPv1 [Routing Information Protocol Version 1]†[edit]
- ベルマンフォード アルゴリズムでルーティング テーブルを構築する
- ホップ数のより少ない経路を使用する
ロード バランシング†[edit]
- クラス ネットワークの境界で自動集約
- 手動での集約はできない
- 520/udp のブロードキャストでアドバタイズ
- 30秒ごとに全ルーティング テーブルをアップデート
- トリガ アップデートはない
タイマ | 時間 | 説明 |
Update | 30秒 | ルーティング情報を伝播する間隔 |
Invalid | 3分 | ルートが無効と判断するまでの時間 |
Hold down | 3 分 | 無効なルートを受け取らない時間 |
Flash | 4分 | ルートが削除されるまでの時間 |
- リンク ダウンの収束
- リンク ダウンしたルータは、即座にメトリック 16 で伝播
- ルータ ダウンの収束
- ルートを無効と判断するまで 3 分
- ルートが削除されるまで 3 分
- それよりも、Flash のほうが短いので 4 分で収束
RIPv2 [Routing Information Protocol Version 2]†[edit]
- クラス ネットワークの境界で自動集約
- 手動での集約も可能
- 520/udp のマルチキャスト (224.0.0.9) でアドバタイズ
- 送信元アドレスはリンク ローカル アドレス
- 30秒ごとに全ルーティング テーブルをアップデート
- トリガ アップデートあり
RIPng [Routing Information Protocol Next Generation]†[edit]
- 521/udp
- 30 秒ごとに FF02:9 にアドバタイズ
- 送信元、送信先ともにリンク ローカル アドレスを使用する
IGRP [Interior Gateway Routing Protocol]†[edit]
- 帯域、遅延 (デフォルト)
- 負荷、信頼性、MTU
- 24 ビット
ロード バランシング†[edit]
- 均等コスト ロード バランシングはデフォルトで可能
- 不均等コスト ロード バランシングは最大 4 つまで可能
- 90 秒ごとにルーティング テーブルをブロードキャストで送信
- トリガ アップデートあり
タイマ | 時間 | 説明 |
Broadcast | 90 秒 | ルーティング情報を伝播する間隔 |
Invalid | Broadcast の 3 倍 | ルートが無効と判断するまでの時間 |
Hold | Broadcast の 3 倍 + 10 秒 | 無効なルートを受け取らない時間 |
Flush | Broadcast の 7 倍 | ルートが削除されるまでの時間 |
EIGRP [Enhanced Interior Gateway Routing Protocol]†[edit]
- 帯域、遅延 (デフォルト)
- 負荷、信頼性、MTU
- 32 ビット
- DUAL [Diffusing Update ALgorithm] でサクセサ (最短経路) を計算する
---[rt1]------[rt2]------{DestNW}
AD----------->
FD---------------------->
- AD [Advatised Distance] … ネイバーから宛先ネットワークとのメトリック (アドバタイズされた距離)
- FD [Feasible Distance] … 宛先ネットワークまでのメトリック (到達可能な距離)
- サクセサが選出されると、フィージブル サクセサ (代替経路) が選出される
- サクセサの FD > フィージブル サクセサ候補の AD
- この選出方法を FC [Feasible Condition] といい、ループを防ぐためにある
- 帯域幅 = (10,000,000 / bandwidth kbps) * 256
- bandwitdh は sh int の BW 値 (宛先ネットワークまでの最小帯域)
- 1000BaseTXの場合、2,560
- 100BaseTXの場合、25,600
- 遅延 = (delay usec / 10) * 256
- delay は sh int の DLY 値 (宛先ネットワークまでの累積値)
- 1000BaseTX (10 usec) の場合、256
- 100BaseTX (100 usec) の場合、2,560
- メトリック = {K1 * 帯域幅 + (K2 * 帯域幅) / (256 - 負荷) + K3 * 遅延} * {K5 / (信頼性 + K4)}
- デフォルトでは K1、K3 以外は 0 であるため、メトリック = 帯域幅 + 遅延となる
- 均等コスト ロード バランシングはデフォルトで可能
- 不均等コスト ロード バランシングは最大 4 つまで可能
- ただし、フィージブル サクセサ候補になれないルートは使用できない
- Hello
- Update
- Query
- ルート問い合わせ
- サクセサ ダウン時にフィジブル サクセサが自身のテーブルに無い場合に使用
- Reply
- AcK
- 確認応答 (ユニキャスト)
- Hello 以外は必ず必要
IGRP との共存†[edit]
- 同一 AS 番号を設定すると、メトリックの自動変換を行って、統合できる
- IGRP のメトリック x 256 = EIGRP のメトリック
- 回線帯域の最大 50% までを EIGRP のトラフィックに使用する (変更も可能)
- ポイント ツー マルチポイント環境では、帯域は均等に割られて認識される
- T1 回線で 24 箇所とハブ アンド スポークで接続されている場合、1544kbps / 24 = 64kbps で認識される
- Hello をマルチキャスト (224.0.0.10) で送信
- Hello を受け取ったルータは、トポロジ テーブルを Update のマルチキャストで返信
- Ack を送信した上で、自身のトポロジ テーブルを Update で送信
- Update を受け取ったルータは、ネイバー テーブルを更新し、Ack を返信する
- コンバージェンスした状態を、Passive という
- Update パケットをマルチキャストで送信 (トリガ アップデート)
サクセサ ダウン時 (フィージブル サクセサなし)†[edit]
- フィージブル サクセサがない状態でサクセサがダウンすると、Quary を送信する
- このとき、ルータは Active 状態になり、一切のルーティングを停止する
- Reply によりサクセサができると、Active 状態が解消され、ルーティングが再開される
SIA [Stuck In Active]†[edit]
- Active が 3 分以上続く (Replyがない) と、Stuck In Active になる
- Stuck In Active になると Query に応答がないネイバーをリセットする
- リセットされると、そのネイバーからアドバタイズされた全ルートが消えて、トポロジ テーブルを再構築する
- 一時的にネットワークがダウンするため好ましくない
- 集約、ルート フィルタリングなどを利用することで、回避する
- ネイバー テーブル
- 認識しているルータのリスト
- Hello パケットで維持
- トポロジ テーブル
- OSPF の LSDB より簡易なもの
- 経路/コストの情報
- ルーティング テーブル
- トポロジ テーブルを元に、DUAL で計算された最小コストの経路が反映される
タイマ | T1 以上 | T1 以下 | 説明 |
Hello | 5 秒 | 60 秒 | |
Hold | 15 秒 | 180 秒 | Hello の 3 倍 |
EIGRP for IPv6†[edit]
OSPFv2 [Open Shortest Path First Version 2]†[edit]
- 最小コストの経路を SPF [Shortest Path First] アルゴリズムで計算 (別名 ダイクストラ)
- コスト = 100,000,000 / 帯域 (bps)
- 1G = 0.1、100M = 1、10M = 10
- ip ospf cost コマンドで手動設定することも可能
- 遅延は考慮しない
- 経路を受け取るときに自ルータの設定を元にコストを加算する。
100M 10M 64k
---{NetworkA}---[rt1]-------[rt2]-------[rt3]---
- NetworkA へのメトリック
- rt1 からは Connected なので 0
- rt2 からは 11 (1、10 の 2 ホップ)
- rt3 からは 1573 (1、10、1562 の 3ホップ)
ロード バランシング†[edit]
- 均等コスト ロード バランシングはデフォルトで対応 (最大 4 経路)
- 不均等コスト ロード バランシングは不可
- 自動での集約はできない
- 手動集約
- ABR でエリア外ルートの集約を、ASBR で AS 外ルートの集約を行う
- IOS 12.1(6) 以前はループ防止のために null0 ルートを書く必要があった
- 現在は、null へのルーティングが同時にできる
- Type 1: Hello
- ルータ ID
- ネットマスク … 送受信時のマスクが不一致だと破棄
- タイマ … 不一致だと破棄
- ネイバー リスト
- エリア ID … 不一致だと破棄
- プライオリティ
- DR/BDR の IP アドレス
- 認証データ … 不一致だと破棄
- スタブ フラグ … 不一致だと破棄
- Type 2: DBD [Database Description]
- Type 3: LSR [Link State Request]
- Type 4: LSU [Link State Update]
- リンク ステート情報 (LSA [Link State Advertisement] の集合)
- LSA Type 1: Router LSAs … ルータの各 I/F の情報、エリア内にフラッディング
- LSA Type 2: Network LSAs … エリア内のルータの一覧、DR が送信、エリア内にフラッディング
- LSA Type 3: Summary LSAs … 他エリアのルーティング情報、ABR が送信
- LSA Type 4: Summary LSAs … ASBR へのルーティング情報、ABR が送信
- LSA Type 5: AS External LSAs … 他 AS へのルーティング情報、ASBR が送信
- Type 1 … 再配布後にコストを加算する
- Type 2 … 再配布後にコストを加算しない (再配布時のコストを維持)
- LSA Type 7: NSSA External LSA … 他 AS へのルーティング情報、NSSA 内の ASBR が送信
- Type 5: LSAck [Link State Acknowledgment]
ポイント ツー ポイント†[edit]
- 起動時とルーティング情報が変わったときに、LSA [Link State Advertisement] のマルチキャストで行う
- それ以外の場合は、Hello パケットでルータが生きてるかどうかを確かめる
- LSA の情報を基に、ネイバー テーブルと LSDB [Link State DataBase] を作成する
- LSDB の情報を基に SPF [Shortest Path First] ツリーを構築し、ルーティング テーブルに反映させる
- LSA は異なるエリアにはフラッディングされない
- Down state
- Init state
- 2 Way state
- Hello を返信し、相手からの Hello に自身のルータ ID が入っていた場合
- トポロジ テーブルの交換が行われる
rt1 | パケット | rt2 |
Down | | Down |
Down | Hello→ | Init |
2 Way | ←Hello | Init |
2 Way | Hello→ | 2 Way |
- Exstart state
- DR が選出された状態
- DR、BDR と Hello に Hello を送信
- Exchange state
- Loading state
- DDP を交換した状態
- LSR でリクエストを送り、LSU で情報を受け取る
- LSAck で返信する
- Full state
- 情報の交換が終わった状態
- 30 分に 1 度、全 LSDB の情報を交換する
- 各ルータは DR [Designated Router] と BDR [Backup Designated Router] にのみ LSA を送り効率化している
- DR、BDR はプライオリティ、ルータ ID の順に高いものが選出される
- DR、BDR 以外のルータは DROTHER
- DR からの LSA は 224.0.0.5
- DR、BDR への LSA は 224.0.0.6
rt1 | パケット | rt2 |
Exstart | | Exstart |
Exchange | ←DDP→ | Exchange |
LSR→ |
←LSU |
Loading | LSAck→ | Loading |
←LSR |
LSU→ |
Full | ←LSAck | Full |
- ルータ ID
- router-id コマンドで設定した IP アドレス
- ループバック インターフェースの IP アドレス
- アクティブなインターフェースで最も大きい IP アドレス
- トポロジ変更時
- 変更のあったルータは DR、BDR に LSA を送信 (トリガ アップデート)
- DR は LSA をフラッディング
- 同時に BDR は LSA がフラッディングされるか監視 (フラッディングされなければ、BDR がフラッディング)
NBMA [Non Broadcast Multiple Access]†[edit]
NBMA モード | | トポロジ | ネイバー | DR/BDR | Hello | セグメント | 例 |
Broadcast | Cisco | フル メッシュ | 自動設定 | 必要 | 10 秒 | 1 つ | Broadcast オプション付 FrameRelay |
NBMA | RFC | 手動設定 | 必要 | 30 秒 | 1 つ | FrameRelay |
P2MP | RFC | パーシャル メッシュ ハブ & スポーク | 自動設定 | なし | 10 秒 | 1 つ | FrameRelay |
P2P None Broadcast | Cisco | 手動設定 | なし | 30 秒 | 1 つ | ATM |
P2P | Cisco | P2P | 自動設定 | なし | 10 秒 | サブ インターフェース毎 | デジタル専用線 |
- ネイバー テーブル
- 認識しているルータのリスト
- Hello パケットで維持
- トポロジ テーブル
- LSDB のこと
- LSA を元に作成された、経路/コストの情報
- ルーティング テーブル
- LSDBを元に、SPF で計算された最小コストの経路が反映される
タイマ | LAN | P2P | NBMA | 説明 |
Hello | 10 秒 | 10 秒 | 30 秒 | |
Dead | 40 秒 | 40 秒 | 120 秒 | |
- LAN (Broadcat Multicast Network)、Point to Point
- 10 秒毎に HELLO パケットを送信し、これが 4 回 (40 秒) 待っても返事が来ない場合に回線断と判断
- NBMA [None Broadcast Multi Access] (Frame-Relay/ATM)
- 30 秒毎に HELLO パケットを送信し、これが 4 回 (2 分) 待っても返事が来ない場合に回線断と判断
- バックボーン エリア
- Area 0 のこと
- すべてのエリアは、バックボーン エリアに隣接する必要がある
- エリアをまたぐトラフィックは、必ずバックボーン エリアを通る
- 標準エリア
- 普通のエリア
- バックボーン エリアに隣接させない場合は、仮想リンクが必要
- スタブ エリア
- ABR が LSA Type 3 でデフォルト ルートを配信する
- LSA Type 5 (AS 外ルート) を受け取らない
- 集約できないネットワークでも、ルーティング テーブルを小さくできる
- トータリー スタブ エリア
- ABR が LSA Type 3 デフォルト ルートを配信する
- LSA Type 3 (エリア外ルート)、LSA Type 5 (AS 外ルート) を受け取らない
- 集約できないネットワークでも、ルーティング テーブルをさらに小さくできる
- NSSA [Not So Stubby Area]
- ASBR があるスタブ エリア
- LSA Type 5 (AS 外ルート) を受け取らない
- そのため、LSA Type 7 として ABR に送る
- バックボーン ルータ … バックボーン エリア (Area 0) に属するルータ
- ABR [Area Border Router] … OSPF エリアの境界にあるルータ
- ASBR [Autonomous System Border Router] … 自律システムの境界にあるルータ
- OSPF での自律システムは、異なるルーティング プロトコルが使用されているネットワークという意味
OSPFv3 [Open Shortest Path First Version 3]†[edit]
- Type 8: Link LSA
- Type 9: Intra Area Prefix LSA
BGPv4 [Border Gateway Protocol Version 4]†[edit]
パス アトリビュート†[edit]
- 経路選択のための要素
- Update パケットでアドバタイズされる
種類 | 属性 | 説明 |
Well-Known Mandatory | Origin | 既知かつ必須 |
AS-Path |
Next-Hop |
Well-Known Discretionary | Local Preference | 既知かつ任意 |
Optional Transitive | | オプションかつ通過 |
Optional Nontransitive | Multi-Exit-Discrimination | オプションかつ非通過 |
- | Weight | 独自 |
- Origin
- ルートの発生源、最初に通知したルータ
- IGP … AS 内で得た経路 (network コマンドで設定した経路)
- EGP … AS 外で得た経路
- INCOMPLETE … 不明 (IGP から再配送された経路)
- AS_Path
Update→ 1→ 1→ 2.1→ 2.1→
===[rt]-------[rt]=======[rt]-------[rt]=======[rt]-------[rt]===
{ AS1 } { AS2 } { AS3 }
- EIGP で隣接 AS にアドバタイズされる時に追加される
- 通過した AS の AS 番号を順に記述したもの
- AS のホップ数がわかる
- AS_Path に自 AS 番号が含まれていた場合は破棄する (ループ防止)
- Next_Hop
Update→ addr1→ addr1→ addr2→ addr2→
===[rt]-------[rt]=======[rt]-------[rt]=======[rt]-------[rt]===
{ AS1 } { AS2 } { AS3 }
- EIGP で隣接 AS にアドバタイズされる時に変更される
- 宛先 AS へルーティングするための IP アドレス
- MED [Multi Exit Discriminator]
10→ none→
===[rt]-------[rt]=======[rt]-------[rt]===
| | 10|↑ |
| | ↓|20 |
===[rt]-------[rt]=======[rt]-------[rt]===
20→ none→
{ AS1 } { AS2 }
- EIGP で隣接 AS にアドバタイズされる時に追加される
- 隣接 AS 以外にはアドバタイズされない
- 特定の AS との接続が複数あるマルチホーム環境で、隣接 AS からのルーティングに優先度をつける
- 小さいほうが優先度が高い
- Local Preference
20→ none→
===[rt]-------[rt]===
| |
| |
===[rt]-------[rt]===
10→ none→
{ AS1 }
- IEGP で AS 内にアドバタイズされる時に追加される
- マルチホーム環境で、隣接 AS へのルーティングに優先度をつける属性
- 他 AS にはアドバタイズされない
- AS 単位だけでなく、セグメントごとにも設定可能
- 大きいほうが優先度が高い
- Weight
none→ 20→
===[rt]-------[rt]===
| |
| |
===[rt]-------[rt]===
none→ 10→
{ AS1 }
- IEGP でアドバタイズされた情報に自分で追加する
- ネイバーへのルーティングに優先度をつける属性
- BGP ピアにはアドバタイズされないローカル属性
- Cisco 独自の属性
- 大きいほうが優先度が高い
- Next_Hop に到達できない経路を削除
- Weight が最大の経路 (BGP スピーカ自身の設定)
- Local_Preference が最大の経路 (隣接 AS への経路)
- ルータ自身が生成した経路
- AS_Path が最短の経路
- Origin が最小の経路
- MEDが最小の経路 (隣接 AS からのアドバタイズ)
ロード バランシング†[edit]
- Open
- BGP スピーカ同士がピアを張るための最初のパケット
- Update
- Keepalive
- Notification
- Idle
- Connect
- Open sent
- Open confirm
- Established
- ネイバー テーブル
- BGP テーブル
- Update パケットの情報
- 完全な BGP エントリは 25 万ルート以上ある
- ルーティング テーブル
- トランジット
- 自 AS 内に、他 AS 同士の通信を通過させる AS
- 非トランジット
- 自 AS 内に、他 AS 同士の通信を通過させない AS
- eBGP によるルーティングは行う
- eBGP
- 他 AS の BGP ピアとの通信
- 基本的に、直接接続されたルータとしかピアを張ることができない
- iBGP のようなスプリット ホライズンはない
- iBGP
- 自 AS の BGP ピアとの通信
- トランジット AS の場合に必要
- 他ルータから受け取った Update を、転送しない (スプリット ホライズン)
- BGP ピアはフル メッシュである必要がある
- フル メッシュのセッション数は n*(n-1)/2
- BGP 同期
- AS 内に iBGP を使わないルータがある場合、そこで AS 間トラフィックが破棄される (ブラック ホール AS)
- eBGP のルートを、IGP にも流すことでこれを防ぐ
- デフォルトで有効だが、AS 内のすべてのルータが iBGP を稼動させている場合は必要ない
ルート リフレクタ†[edit]
- ルート リフレクタ
- OSPF の DR のようなもの
- ルート リフレクタ クライアントからの Update を受け取ると、他のクライアントに送る
- ルート リフレクタ ノン クライアントからの Update を受け取ると、他のクライアントに送るが、ノン クライアントには送らない (スプリット ホライズン)
- ルート リフレクタ クライアント
- OSPF の DROTHER のようなもの
- Update をルート リフレクタのみに送る
- ルート リフレクタ ノン クライアント
- ルート リフレクタとルート リフレクタ ノン クライアントは、通常の BGP ピアと同じ関係になる
- ノン クライアントへの Update はスプリット ホライズンがかかる
- ルート リフレクタを複数配置して、iBGP エリアを階層化する
プレフィックス リスト†[edit]
サード パーティ ネクスト ホップ†[edit]
コンフェデレーション†[edit]
- AS 内に仮想 AS を作り、iBGP セッションを eBGP セッションに見せかける
- フルメッシュの iBGP セッションを減らし、ルータの負荷を下げる
IS-IS [Intermediate System - Intermediate System]†[edit]
- Narrow Metric
- LSP が出て行くときに加算される
- 6 bit、0~63 (デフォルトは 10)
- Wide Metric
- Cisco ルータで利用可能
- 24 bit、0~16,777,215 まで拡張したもの
- IS-IS のメトリックには、デフォルト・遅延・コスト・エラーの 4 種類があるが、Cisco はデフォルトしか対応していない
- IP で使用する場合は、PRC [Partial Route Calculation] で最適経路の選択しを生成
- 自動での集約はできない
- 手動集約は可能
- 集約された場合、null へのルーティングが同時にできる (ループ防止のため)
- Hello
- ESH [ES Hello]
- ISH [IS Hello]
- IIH [IS-IS Hello]
- IS から IS への Hello
- レベル別の Hello があり、レベルが異なる場合は受け取らない
- LSP [Link State Packet]
- CSNP [Complete Sequence Number PDU]
- データベースの要約
- OSPF の DBD に相当?
- PSNP [Partial Sequence Number PDU]
- 不足情報のリクエスト
- P2P では LSP Ack に使われる
ポイント ツー ポイント†[edit]
- トポロジ変更時
- 変更が発生したルータは、全ルータに LSP をフラッディングする
- OSPF では、DR と BDR に送る
- データベースの同期
- DIS [Designated Intermediate Sysytem] を中心に行われる
- OSPF の DR に相当するが、OSI ではネイバー関係はフル メッシュ
- BDR はない
- DIS はプライオリティ、MAC アドレスの順に高いものが選出される
- よりプライオリティの高いルータが現れた場合、動的に DIS が切り替わる
- DIS は 10秒ごとに CSNP をフラッディングする
- CSNP を受け取ったルータは、自身のデータベースに存在しない情報があった場合に、PSNP を DIS に送る
- DIS は LSP を返信しコンバージェンスする
- OSPF では 30 分ごとに行われる
- OSI ではポイント ツー ポイントの集合として扱われる
再配布 (Redistribute)†[edit]
- 異なるルーティング プロトコルの相互運用
- ルーティング情報を変換する