Closed37

CCNP-ENARSI_OSPF

ito_110ito_110
OSPF
  • リンクステート型のルーティングプロトコル
  • ダイクストラアルゴリズムを使用(別名:SPFアルゴリズム_Shortest Path First)
  • VLSM(variable length subnet mask)をサポート
  • 30分に1度 LSDBを同期させる
    • Link-State Database:OSPFで使用するデータベース
  • デフォルトで等コストロードバランス
  • エリアという概念による階層設計
ito_110ito_110
エリア

OSPFではエリアというグループに分けて管理する
エリア0が中心的な役割を担い
マルチエリアの場合、エリア0 = バックボーンエリア となる。

ito_110ito_110
マルチエリア

ネットワークを複数のエリアに分割することで管理する手法

  • エリア0 = バックボーンエリア
  • 各エリアごとにルーティング情報を集約することでルーティングテーブルが小さくなり、ルーティングにおけるオーバーヘッドが減少する
  • 障害発生時に影響範囲を限定できる
ito_110ito_110
エリアの種類

バックボーンエリア

全てのエリアが接続されるエリア
LSAは1・2・3・4・5

(config-router)# network {アドレス} {ワイルドカードマスク} area 0

標準エリア

バックボーンエリア以外のデフォルトのエリア
LSAは1・2・3・4・5

(config-router)# network {アドレス} {ワイルドカードマスク} area {エリアID}

スタブエリア

外部ASへのルートがデフォルトルートとして通知されるエリア
LSAは1・2・3

(config-router)# network {アドレス} {ワイルドカードマスク} area {エリアID}
(config-router)# area {エリアID} stub

トータリースタブエリア(完全スタブ)

外部ASへのルートと他エリアへのルートがデフォルトルートとして通知されるエリア
LSAは1・2・3

(config-router)# network {アドレス} {ワイルドカードマスク} area {エリアID}
(config-router)# area {エリアID} stub no-summary

NSSA(Not So Stubby Area)

ASBRを配置できるスタブエリア
LSAは1・2・3・7

(config-router)# network {アドレス} {ワイルドカードマスク} area {エリアID}
(config-router)# area {エリアID} nssa

トータリーNSSA

ASBRを配置できるトータリースタブエリア
LSAは1・2・3・7

(config-router)# network {アドレス} {ワイルドカードマスク} area {エリアID}
(config-router)# area {エリアID} nssa no-summary

※トータリースタブエリアとトータリーNSSA存在するLSAタイプ3はデフォルトルートのみ

ito_110ito_110
スタブエリアの制約
  • ASBRを配置できない
  • バックボーンエリア(エリア0)はスタブエリアに出来ない
  • 仮想リンクの通過エリア(トランジットエリア)に出来ない
  • エリア内のルータは全て(ABRも内部ルータも)スタブ設定をする必要がある
ito_110ito_110
OSPFのルータのタイプ

内部ルータ

全インターフェイスが同一エリアに収まっているルータ

バックボーンルータ

エリア0に接続するインターフェイスがあるルータ

エリアボーダルータ(ABR)

インターフェイスが複数のエリアにまたがっているルータ
※マルチエリアOSPFの制約として、ABRはエリア0に接続している必要がある

自律システムボーダルータ(ASBR)

外部ASと接続されたインターフェイスを持っているルータ

ito_110ito_110
OSPFステート

OSPFのルータがコンバージェンスするまでの流れは下記(1→7の順番)

  1. DOWN:Helloパケットを受信していない最初の状態
  2. INIT:Helloパケットを受信し、相手を認識した状態
  3. 2WAY:お互いに認識した状態(DROTHER同士は経路情報を直接交換しないので「2WAY」状態でコンバージェンス)
  4. EXSTART:DR、BDR決定(選出)済み
  5. EXCHANGE:データベースの交換
  6. LOADING:詳細情報確認
  7. FULL:コンバージェンス(最適経路の計算が完了した状態)
ito_110ito_110
OSPFでの用語
  • ネイバー
    • OSPFパケットを交換する隣接OSPFルータ
  • SPFアルゴリズム
    • LSDBを最短経路を導き出す計算
    • 別名:ダイクストラアルゴリズム
  • LSDB
    • LSAをまとめた情報
  • LSA
    • 自身のルータIDやリンクの情報
  • DR
    • 代表ルータ
  • BDR
    • DRのバックアップ
  • DROTHER
    • DRとBDR以外のルータ
ito_110ito_110
OSPFの経路学習プロセス
  1. Helloパケットを送信してネイバを認識、ネイバテーブルを作成する
  2. 検出したネイバにマルチキャストでLSU(LSAを含むパケット)を送信する
  3. LSUを受信したルータはLSDBを作成する(同じエリアのルータは同様のLSDBを持つ)
  4. SPFアルゴリズムにより経路計算して、最短経路を計算する。
    1. メトリックはコスト(基準帯域幅÷インターフェースの帯域幅)
    2. コストの値が最小の経路がルーティングテーブルに登録
    3. 基準帯域幅のデフォルトは100Mbps
  5. コンバージェンス(収束)後は定期的にHelloパケットを送信して、リンクが生きているか確認する(キープアライブ)
  6. ネットワークに変更があった場合はトリガーアップデートして、変更情報だけをフラッディングする。(差分アップデート)
  7. 各ルータは30分ごとにLSAを送信して情報を維持する
ito_110ito_110
ネットワークタイプ

ブロードキャストマルチアクセス

ip ospf network broadcast
1つのインターフェイスで複数のルータと接続するネットワークタイプ
Ethernetインターフェースはコマンドなしで接続するとこのタイプになる

ノンブロードキャストマルチアクセス

ip ospf network non-broadcast
1つのインターフェイスで複数のルータと接続するネットワークタイプ
ブロードキャストやマルチキャストが使えないネットワークに接続しているインターフェイスで使用する

ポイントツーポイント

ip ospf network point-to-point
1つのインターフェイスで1つのルータと接続するネットワークタイプ
Serialインターフェイスはコマンドなしで接続するとこのタイプになる

ポイントツーマルチポイント

ip ospf network point-to-multipoint
1つのインターフェイスで複数のルータと接続するネットワークタイプ
サブインターフェイスを利用するインターフェイスで使用する。
サブインターフェイス:一つの物理インターフェイスを複数の論理インターフェイスとして扱う技術

その他の比較

ネットワークタイプ DR/BDR Hello Dead
ブロードキャストマルチアクセス あり 10秒 40秒
ノンブロードキャストマルチアクセス あり 30秒 120秒
ポイントツーポイント あり 10秒 40秒
ポイントツーマルチポイント あり 30秒 120秒
ito_110ito_110
LSAタイプ一覧
タイプ LSA名 表示 生成ルータ フラッティングされるエリア 概要
1 ルータリンク O 全ルータ 生成エリア内 同じエリアのルータのリンク情報
2 ネットワークリンク O DR 生成エリア内 同じエリアのルータの一覧情報
3 集約リンク O IA ABR 標準エリア
バックボーンエリア
スタブエリア
他のエリアへの経路情報
4 ASBR集約リンク O IA ABR 標準エリア
バックボーンエリア
スタブエリア
ASBRへの経路情報
5 AS外部リンク O E1
O E2
ASBR 標準エリア
バックボーンエリア
外部ASへの経路情報
7 NSSAリンク O N1
O N2
NSSA内のASBR NSSAリンク内 NSSAのみにフラッティングされる
外部ASへの経路情報

LSAのタイプ6が存在しない理由は不明
元々はLSAは1~5で、タイプ7が特殊?

ito_110ito_110
ルータIDの選出
  1. ルータIDを明示しているID
  2. 最大のループバックIPアドレス
  3. 最大のIPアドレス
ito_110ito_110
DR/BDRの選出

選出基準

  1. プライオリティ
    (config-if)#ip ospf priority {プライオリティ値}
  2. ルータID

DR/BDR選出後の動作

DR/BDR選出後ではプライオリティの高いルータが追加されても再選出されない
頻繁にDR/BDRが変更されるのはネットワークの安定性が欠けるため
DRのセッションが切れると、

  1. BDRがDRに選出
  2. そこから新しくBDRを選出する
ito_110ito_110
Helloパケットに含まれる情報
Helloパケットに含まれる情報 一致の必要
ルータID なし
ネイバーの一覧 なし
プライオリティ なし
DRのIPアドレス なし
BDRのIPアドレス なし
Hello・Dead間隔 あり
ネットワークマスク あり
エリアID あり
認証パスワード あり
スタブエリアフラグ あり

※一致の必要が有の情報は、ネイバルータと一致しないと隣接関係が確立されない

ito_110ito_110
コマンド_OSPFの有効化

ルータコンフィグレーションモード

(config)#router ospf {プロセスID}
(config-router)#network {アドレス} {ワイルドカードマスク} area {エリアID}

インターフェイスコンフィグレーションモード

(config)#interface {インターフェイス}
(config-if)#ip ospf {プロセスID} area {エリアID}
ito_110ito_110
コマンド_エリア間経路情報の集約
(config)#router ospf {プロセスID}
(config-router)#summary-address {IPアドレス} {サブネットマスク}
ito_110ito_110
コマンド_ネットワークタイプの設定
(config)#interface {インターフェイス}
(config-if)#ip ospf network {ネットワークタイプ}
  • ネットワークタイプ:上記の「ネットワークタイプ」参照
ito_110ito_110
コマンド_Hello/Dead間隔の変更
(config)#interface {インターフェイス}
(config-if)#ip ospf {hello-interval | dead-interval} {秒}
ito_110ito_110
コマンド:プライオリティの設定
(config)#router ospf {プロセスID}
(config-router)#maximum-paths {最大数}
ito_110ito_110
コマンド:等コストロードバランシングの最大数の設定
(config)#router ospf {プロセスID}
(config-router)#maximum-paths {最大数}
ito_110ito_110
コマンド:基準帯域幅の設定
(config)#router ospf {プロセスID}
(config-router)#auto-cost reference-bandwidth {基準帯域幅}

※基準帯域幅の単位は「Mbps」
※コストは全体で一貫性のあるものにする必要があるため、基準帯域幅は全ルータで統一する必要がある

ito_110ito_110
コマンド:インターフェースの帯域幅の設定
(config)#interface {インターフェイス}
(config-if)#bandwidth {基準帯域幅}

※基準帯域幅の単位は「kbps」

ito_110ito_110
コマンド:OSPFのコスト設定
(config)#interface {インターフェイス}
(config-if)#ip ospf cost {コスト}
ito_110ito_110
コマンド:ルータIDの設定
(config)#router ospf {プロセスID}
(config-router)#router-id {ルータID}
ito_110ito_110
コマンド:デフォルトルートの広告設定
(config)#router ospf {プロセスID}
(config-router)#default-information originate {always}
  • always:ルーティングテーブルにデフォルトルートが存在しなくても、デフォルトルートを広告する
ito_110ito_110
コマンド:パッシブインターフェースの設定
(config)#router ospf {プロセスID}
(config-router)#passive-interface {インターフェース | default}
ito_110ito_110
コマンド:インターフェイス認証の有効化
(config)#interface {インターフェイス}
(config-if)#ip ospf authentication {message-digest}
  • message-digest:MD5認証を有効化する場合は「message-digest」を設定
    • message-digestなしの場合はプレーンテキスト認証が有効化される
ito_110ito_110
コマンド:インターフェイス認証の有効化(キーチェーン認証)
(config)#interface {インターフェイス}
(config-if)#ip ospf authentication key-chain {チェーン名}
ito_110ito_110
コマンド:エリア認証の有効化
(config)#router ospf {プロセスID}
(config-router)#area {エリアID} authentication {message-digest}
ito_110ito_110
コマンド:プレーンテキスト認証パスワードの設定
(config)#interface {インターフェイス}
(config-if)#ip ospf authentication-key {パスワード}
ito_110ito_110
コマンド:MD5認証パスワードの設定
(config)#interface {インターフェイス}
(config-if)#ip ospf authentication-key {キーID} md5 {パスワード}
ito_110ito_110
コマンド:キーチェーン認証で使用するチェーンの作成
(config)#key chain {チェーン名}
(config-keychain)#key {キーID}
(config-keychain-key)#cryptographic-algorithm md5
(config-keychain-key)#key-string {パスワード}
ito_110ito_110
ルーティングプロセスの停止
(config)#router ospf {プロセスID}
(config-router)#[no] shutdown

ルーティングプロセスを停止した場合は

  • Helloパケットの送信を停止
  • 既存の隣接関係を削除し、新たな隣接関係を確立しない
  • LSDBを削除
  • 対象のルーティングプロセスで学習した経路をルーティングテーブルから削除
  • ルーティングの設定は残る
ito_110ito_110
OSPFの確認コマンド
  • show ip ospf:OSPFの状態(プロセスIDやルータIDなど)を表示
  • show ip ospf neighbor:OSPFの隣接関係(隣接ルータがDRかBDRかなど)を表示
  • show ip ospf interface:OSPFが動作するインターフェースの情報(自身がDRかBDRかなど)を表示
  • show ip ospf interface brief:インターフェースの要約情報を表示
  • show ip ospf database:OSPFのLSDB(Link-State Database:OSPFで使用するLSAのデータベース)を表示
  • show ip protocols:ルータで動作しているルーティングプロトコルの基本的な情報を表示
ito_110ito_110
仮想リンク

OSPFは全エリアがバックボーンエリアへ接続する必要がある
このバックボーンエリアへ直接接続できない場合、使用されるのが仮想リンク

ito_110ito_110
show ip ospfの補足

show ip ospfはOSPFの状態(プロセスIDやルータIDなど)を表示するコマンド
実際の画面は下記
引用元:OSPF - sh ip protocols / sh ip ospf / sh ip ospf interface

① :起動しているルーティングプロトコルがOSPFのプロセス 1 であることを表示。
② :このルータの所属するエリアは1つで標準エリアに接続していることを表示。スタブエリア、NSSAエリアには所属なし。
③  エリア 0 に関する情報を表示する見出し。
④  エリア 0 に所属しているこのルータのインターフェースの数。
⑤  エリア認証の有無。no authentication = 認証なし。
⑥  SPFアルゴリズムの実行回数。

このスクラップは9日前にクローズされました