【学習ログ】CCNA試験対策⑤ ややこしいOSPFをざっくりと学ぶ

※このページは過去に自分がCCNAの勉強をしたときの学習ログです。誰かの参考になれば幸いです。

【注】
このページの主旨は、初学者でも「楽しく」「体感的」に覚えられることを目的にしていますので、細かい説明を省いていたり、厳密に言うと正しくない表現もあるかもしれません。
あくまで一つの考え方としてお楽しみください。

このページでは、OSPFの大筋を述べていきます。個人的にOSPFはかなりややこしい部類に感じたため、内容のほとんどが箇条書きになっております。ご了承ください。

スポンサーリンク

OSPFの動作・役割

OSPFの特徴

OSPFの特徴をピックアップしてまとめました。

リンクステート型のルーティングプロトコルである
・リンクステート型は、ルーターのIPアドレスなどのインターフェースの情報を交換する。この交換する情報のことを「LSA」と呼ぶ
・各ルーターから情報を集めたLSAを格納するデータベースのことを「LSDB」という。トポロジテーブルともいう。
・ネットワークを「エリア」という単位で階層化できる
・エリアには必ず「バックボーンエリア」が存在し、他のエリアは必ずバックボーンエリアに隣接する必要がある
・メトリックとして「コスト」を使用する
・コストの算出には、経路上の各ルータのインターフェースの決められたコスト値(例:100Mbps/1Gbpsの場合は1)を加算していき、合計が最小値になるルートが最適なルートとみなされて、ルーティングテーブルに登録される
・OSPFはルーティングプロトコルのトラフィック量の削減ができることが特徴
・VLSM(可変長サブネット)にも対応しているため、異なるサブネットマスクが混在している環境でも動作可能
・デメリットとしては、RIPなどと比較して機能が複雑なためメモリやCPUに負荷がかかりやすい

OSPFの基本動作

OSPFではコンバージェンスに至るまでに、次のようなステップを踏みます

・ネイバー(隣接ルータ)検出のためにHelloパケットを送信
・Helloパケットを受け取ったルータはネイバーの情報をネイバーテーブルに登録
・相互のルータ間でHelloパケットを交換したら、DBDパケットを利用してLSDBの要約情報を交換する
 (OSPFではLSDBが同一になっている必要があるため)
・受け取ったDBDパケットに新しいLSA情報が見つかった場合、ネイバーに対してLSRパケットを送信して詳細情報を要求する
・LSRパケットを受け取ったネイバーは更新用のLSUパケットを送信する。受け取ったネイバーはLSDBを更新後、確認応答としてLSAckパケットを送信する

以上がおおまかな流れですが、詳しくは図解付きの以下の記事も参照ください。

 

なお、ネイバーとして認識するには、Helloインターバル・スタフフラグ・サブネットマスク・認証情報・エリアIDを隣接ルータとあわせておく必要があります。

また、双方のルータでMTUのサイズが異なるとOSPFでネイバーのやりとりをする際に完全な隣接関係を築くことができず、ExstateExchangeステートで止まってしまいます。

DRとBDR

・マルチアクセスの場合、ルーターのトラフィック量軽減のためにDR(代表ルーター)BDR(バックアップ代表ルータ)をネットワーク毎に選出して、完全な隣接関係をDRまたはBDRに限定する
・DRは全ルーターと完全な隣接関係を築いて、それぞれのルーターのLSAを収集して集めた情報を全ルーターへ送信する
・BDRはDRがダウンした時の予備で、万が一DRが機能しなくなったときに動作する
・DRまたはBDRに選ばれなかったルーターをDROtherといい、DROther同士はFullステートにはならず2-Wayステートで止まる

・DRとBDRが選ばれる基準は、各ルーターのルータプライオリティ値を比較して値が大きい方が選出される。ルータプライオリティが全て同じ場合は、ルーターIDを比較する
・ルーターIDは、ルーターIDコマンドで手動設定>ループバックインターフェイス>物理インターフェイスIPアドレスの大きい方の優先順位で選出される
・ポイントツーマルチポイント・ポイントツーマルチポイント(ノンブロードキャスト)・ポイントツーポイントはDRとBDRは選出されない

・FastEthernetでOSPFを有効化した際、デフォルトのインターフェイスはブロードキャストとなる

OSPFルータの役割

・OSPFのルータの役割は、以下の4つに分けられる

 内部ルータ・・全てのインターフェイスが同じエリアに所属しており、その他のエリアには一切接していないルータ

 バックボーンルータ・・バックボーンエリアに所属するかつ、インターフェイスのどれかひとつでもバックボーンエリアに接しているルータ

 エリアボーダルータ・・インターフェイスが2つ以上のエリアに接しているルータ。

 ASバウンダリルータ・・インターフェイスが異なるASに接しているルータ(OSPF以外のルーティングプロトコルが動作しているネットワーク)

その他OSPFの動作

・コストが最短である複数の経路が存在する場合、両方のルートがルーティングテーブルに登録される
・コストが最短であるルートは、Ciscoルータの場合はデフォルトで4つまで登録できる。
 トラフィックを分散して異なるルートを通るようになる機能のことを「等コストロードバランシング」という。
・インターフェイスがPCなどで、Helloパケットを送信する意味がない場合、OSPFを有効にしつつもHelloパケットを送信しないように設定されたインターフェイスのことをパッシブインターフェイスという。
 コマンドはルーターコンフィギュレーションモードで passive-interface <インターフェイス>
・OSPFにはネットワークのタイプが存在するイーサネットはブロードキャストに属し、Helloパケットによるネイバー確認に対応している。シリアルインターフェイスはポイントツーポントに属し、DRやBDRを検出しないタイプ
・プロセスIDは、グローバルコンフィギュレーションモードでOSPFを動作する際に指定する値であること、ルーティング情報を交換するために値が同じである必要はない

OSPFの設定

OSPFの設定コマンド

・OSPFを有効にするには、ワイルドカードマスクというものを指定する。指定するIPアドレスのうち条件とする部分を0、任意の値でよい部分を1とする。例えば、192.168.1.0/24 のネットワークの場合第四オクテットが任意であるIPアドレスとなるので、指定は0.0.0.255がワイルドカードマスクとなる。
(255-サブネットマスクでも計算できる)
・OSPFの有効コマンドはグローバルコンフィギュレーションでrouter ospf プロセスIDコマンドを実行

・ループバックインターフェイスを用意する場合の設定例

 (config)#interface Loopback 0
 (config-if)#ip address 10.10.10.1 255.255.255.255
 (config-if)#exit
 (config)#router ospf 10
 (config-router)#network 172.16.10.1 0.0.0.0 area 0
 (config-router)#network 192.168.100.0 0.0.0.255 area 0

ワイルドカードマスクに「0.0.0.0 」を指定すると、IPアドレスそのものを指定していることになる

OSPFの状態を確認するコマンド

・OSPFのネイバーの確認をするには、特権EXECモードでshow ip ospf neighborコマンドを実行
 (ネイバーのルーターIDや隣接関係との状態が確認できる)
・LSDBの確認をするには、特権EXECモードでshow ip ospf database コマンドを実行
・ルーティングテーブルの確認は、特権EXECモードでshow ip route
・プロトコルの確認は、特権EXECモードでshow ip protocols
・インターフェイスの確認は、特権EXECモードでshow ip ospf interface
 (Helloインターバルやルータープライオリティの確認ができるコマンド)


・ルータプライオリティの設定は、インターフェイスコンフィギュレーションモードでip ospf priority
・コストの変更は、インターフェイスコンフィギュレーションモードでip ospf cost
・帯域幅の変更は、インターフェイスコンフィギュレーションモードでbandwidth
・Helloインターバルの変更は、インターフェイスコンフィギュレーションモードでip ospf hello-interbal
・Deadインターバルの変更は、インターフェイスコンフィギュレーションモードでip ospf dead-interbal
・MTUのミスマッチ検出機能の無効化は、インターフェイスコンフィギュレーションモードでip ospf mtu-ignone
・デフォルトルートを他のルータへ配布するには、ルータコンフィギュレーションモードでdefault-infomation originate

いかがでしたでしょうか。OSPFの仕組みはとても複雑で自分自身がとても覚えるのに時間がかかったこともあって、解説がかなり大雑把になってしまったかもしれませんが少しでも参考になれば幸いです。

本日は以上となります。

最後までお読みくださりありがとうございました。