概要
OSPFはIGPに分類され、RIPで問題になっていた部分が改良され作成された
-
様々なメーカーのルータを使用できる
RFC(Request for Comments)で標準仕様が規定されているため、Cisco独自のダイナミックルーティングプロトコルと違い、様々なメーカーのルータで使用可能 -
リンクステート型のプロトコル
各ルータのIPアドレスなどのインターフェイスの情報(リンクステート)を交換する。この情報をLSA(Link State Advertisement)といい、ネットワーク内のOSPFが動作している他のルータに通知する。LSDB(Link State DataBase)と呼ばれる各ルータがネットワークのトポロジを記録したデータベースを持っており、各ルータから収集したLSAはこのデータベースに格納され、各ルータで同一の内容となる。 -
ルーティングプロトコルのトラフィック量を削減できる
隣接ルータ(ネイバー)の検出と生存確認のために小さなHelloパケットだけを送信する。ネットワークに変更があった場合、全ての情報ではなく差分情報のみをアップデートするため、トラフィック量の削減になる。 -
コンバージェンスが速い
ネットワークに変更があると変更内容をすぐに送信し他のルータに伝える。 -
VLSM(Variable Lngth subnet Mask)に対応している
異なるサブネットマスクのネットワークが存在している環境でも、問題なく対応できる。 -
ネットワークを階層化できる
-
メトリックとしてコストを使用する
-
ルーティング認証をサポートしている
デメリット
RIPと比べて機能が多い分動作が複雑になる。また、各ルータがデータベースを持ちそこから計算を行うため、メモリやCPUへの負荷が大きくなる。
基本動作
ルータ間で次のようにやり取りした後、コンバージェンスになる。
1.Helloパケットを交換してネイバーを検出する
OSPFを動作させたルータは、まずHelloパケットを全OSPFルータ宛を意味するマルチキャストアドレスの224.0.0.5
宛に送信する。Helloパケットには隣接ルータの発見と生存確認が役割としてあり、Helloパケットを受け取り、隣として認識したルータをネイバーという。
2.ネイバーテーブルにネイバーを登録する
Helloパケットを受け取ったルータは、ネイバー一覧を保持するネイバーテーブルに送信元のルータを登録し、そのルータの状態をInitステートに設定する。
ネイバーとして関係を確立するためには、以下の情報を一致させる必要がある。
- Helloインターバル(Helloパケットを送信する間隔)
- Deadインターバル(Helloパケットを受信しなくなりダウンしたとみなすまでの時間)
- スタブエリアフラグ(外部経路をデフォルトルートに変換する)
- サブネットマスク
- 認証情報
- エリアID
- MTU(Maximum Transmission Unit)サイズ(1回の通信で送信することができる最大パケットのサイズ)
3. 相互を認識し、LSDBの交換の準備をする
相手から受け取ったHelloパケットのネイバー一覧に自身が記録されている場合、2-Wayステートという状態になる。お互いを認識し、LSDBを同期させるための準備が出来ている状態。
4.ルータ間でDBDパケットを交換する
相互に2-Wayステートになった後、DBD(DateBase Description)パケットを使用して各ルータが持つLSDBの要約情報を交換する。DBDパケットを交換するとき、2つのルータ間でマスターとスレーブの関係を築く。
マスターとスレーブの役割の決定を行っている状態をExstartステートをいい、2つのルータの関係はExchangeステートに移行する。
5.詳細なLSA情報を交換する
ルータは、Exchangeステートの時に相手から受け取ったDBDパケットに新しいLSAの情報が見つかった場合、ネイバーに対してLSR(Link State Request)パケットを送信して詳細情報を要求する。LSRパケットを受け取ったネイバーは、インターフェイスの情報などを格納したLSAの集合体である更新用のLSU(Link State Update)パケットを送信する。
お互いに最新の状態を取得し最終的にLSDBの同期が完了すると、アジャセンシ―(完全な隣接関係)になり、この状態をFullステートという。
マルチアクセスの場合の動作
スイッチに複数のルータが接続されている状況の場合、複数のルータのどの部分を完全な隣接関係にするかを決定する必要があり、以下のものをそれぞれ選ぶ
- DR(Designated Router):代表ルータ
- BDR(Backup Designated Router):バックアップ代表ルータ
DRおよびBDRとだけ完全な隣接関係を結ぶ。DRとBDRに選出されなかったルータをDROtherという。
DRother同士はネイバーとなるが、直接LSAの交換は行わないため、アジャセンシ―とはならず2-Wayステートで留まる。
DRとBDRの選択基準として、ルータプライオリティとルータIDを規定している。
ルータプライオリティ
ルータのインターフェイスごとに決定できる値のこと。Helloパケットに含まれるため、送受信することでお互いのルータプライオリティを知ることができる。デフォルト値は1で、0に設定すると選出されない。
マルチアクセス環境の場合、ルータプライオリティの値が大きいルータがDR、2番目に大きいルータがBDRに選ばれる。DRに障害が発生した場合は、BDRがDRに昇格しDROTHERからBDRが選ばれる。
旧DRが復帰してもDRには戻らない。
ルータID
各ルータを識別する一意の値でIPアドレスと同じ書式となる。ルータIDの値が最も大きいルータがDR、2番目に大きいルータがBDRに選ばれる。次の基準で決定される。
-
router-id
コマンドによって手動で設定された値 - ルータの有効なループバックインターフェイスのIPアドレスの中で最も大きなIPアドレス
- 有効な物理インターフェイスのIPアドレスの中で最も大きなIPアドレス
ループバックインターフェイスとは??
管理者が任意で作成できる仮想的なインターフェイスで、意図的にシャットダウンしない限りダウンしない。物理インターフェイスより優先される
同じルータIDを持つルータ同士ではネイバー関係を構築することが出来ない
ルートの選択
コストの計算
最適な経路を判断する際の判断基準となる。コストは次の計算式で計算され、合計が最小値になるルートが最適なルートとなる。
コスト=10の8乗 ÷ 帯域幅(bps)
等コストロードバランシング
トラフィックを分散し異なるルートを通るようになる機能のこと。同じコストのルートが複数存在する場合、そのルートをルーティングテーブルに登録する。Cisco製品ではデフォルトで4つまで登録される。
EIGRP/OSPF/RIPといったルーティングプロトコルではデフォルトで有効になっており、自動的にロードバランシングの対象となる。
そもそもロードバランシングとは??
負荷分散の事で、ルーティングプロトコルが、同一の宛先へのメトリックが同じ経路を複数学習した場合、この複数の経路を使用してパケットを配分してルーティングを行うこと
スタティックルーティングでも、異なるネクストホップを持つ同じ宛先への経路を手動で複数登録することでロードバランシングを実現することは可能
ルートの変更
1Gbpsでも100Mbpsでも同じコストになるため、1Gbpsの方を最適なルートとして選択したくても出来ない。そこで、コスト値を調整することで経路変更を行うことができる。
- インターフェイスのコスト値を直接設定する
- インターフェイスの帯域幅を変えてコストの計算結果を変える
- コストの計算式の分子「10の8乗」の値を変更する
ネットワークのタイプ
タイプ | DRとBDRの選出 | Helloパケットによるネイバーの自動検出 | Hello/Deadインターバル |
---|---|---|---|
ブロードキャスト | 〇 | 〇 | 10秒/40秒 |
NBMA(Non-Broadcast Multiple Access) | 〇 | × | 30秒/120秒 |
ポイントツーマルチポイント | × | 〇 | 30秒/120秒 |
ポイントツーマルチポイント(ノンブロードキャスト) | × | × | 30秒/120秒 |
ポイントツーポイント | × | 〇 | 10秒/40秒 |
ブロードキャスト
複数のルータと接続していて、ブロードキャストをサポートしているネットワーク。マルチキャストで送信されるHelloパケットにより、ネイバーを自動で研修することができる。イーサネットはデフォルトでこのネットワークタイプになる。
NBMA(Non-Broadcast Multiple Access)
複数のルータと接続しているが、ブロードキャストやマルチキャストをサポートしていないネットワークのこと。マルチキャストによるHelloパケットの送信ができないため、あらかじめルータにネイバーのIPアドレスを手動で登録しておく必要がある。
ポイントツーマルチポイント
1対多で接続しているネットワークのこと。ブロードキャストをサポートする場合とサポートしない場合でタイプがわかれる。
パッシブインターフェイス
OSPFを有効にしつつもHelloパケットを送信しないようにすること。Helloパケットを送信しなくなり、受信したHelloパケットは無視するようになる。結果、ネイバーとして認識されなくなる。
マルチエリアOSPF
ネットワークをエリアという単位で分割することができるため、エリア内は各ルータの詳細な情報を把握し、エリア間はルートの情報だけにしておくことで保持しなければならない情報量を減らす。バックボーンエリアとその他のエリアに分けてネットワークを階層化し管理する。
1つのエリアだけでOSPFを動作させることをシングルエリアOSPF、複数のエリアを作成してOSPFを動作させることをマルチエリアOSPFという。
エリアを作成することでルート制御用のトラフィックを抑えられるようになるが、エリアを作成するには次の点に注意する必要がある。
-
バックボーンエリアを作成する
バックボーンエリア(中心となるエリア)を作成する必要がある。エリア番号0で表される。1つしか作成することができない。 -
他のエリアをバックボーンエリアに接する様に作成する
標準エリアとも呼ばれ、エリア間で通信する場合必ずバックボーンエリアを通過しなければならない。標準エリア同士での通信は不可。そのため、エリアを分割する際には他のエリアをバックボーンエリアに接する様に作成しなければならない。 -
ルータをエリアの境界に配置する
ルータの役割
ルータはエリアのどの部分に位置するかによって役割が異なる。
ルータの役割 | 説明 |
---|---|
内部ルータ | 全てのインターフェイスが同じエリアに所属しており、その他のエリアには一切接していないルータ |
バックボーンルータ | バックボーンエリアに所属するインターフェイスを持つルータ。インターフェイスがどれか1つでもバックボーンエリアに入っていれば、バックボーンルータとみなされる。 |
ABR(Area Border Router) | インターフェイスが2つ以上のエリアに所属しているルータ。すなわち、エリアとエリアの境界に位置し、複数のエリアと接しているルータ |
ASBR(Autonomous System Boundary Router) | インターフェイスが異なるASに所属しているルータ。ASとは、OSPF以外のルーティングプロトコルが動作しているネットワークを指す。 |
- 内部ルータ:A,C,E,G
- バックボーンルータ:A,B,D,F,H
- ABR:B,D,F
- ASBR:H
LSAのタイプ
OSPFではLSDBを構成する情報をLSAで伝えており、Ciscoのルータでは以下の6種類のタイプがある。また、経路情報は、学習するLSA Typeにより優先順位が存在しタイプの小さい方が優先される。
ルータLSA(LSA Type1)
全OSPFルータがエリアごとに生成し、同一エリア内の他のルータに自身のインターフェイスの情報を伝える際に使用される最も基本的なLSA。ルータIDやインターフェイスの情報などの詳細な内容が含まれる。
ネットワークLSA(LSA Type2)
DRとなっているルータが生成し、DRのルータIDやDRとなっているネットワークでのIPアドレスなどの情報を、同一エリア内の他のルータに伝える際に使用されるLSA。
サマリーLSA(LSA Tyepe3)
ABRとなっているルータが生成し、エリア内のネットワークの情報を他のエリアに伝える際に使用されるLSA。エリア内に存在しているネットワークやサブネットマスク、コストなどの情報が含まれている。
他のエリアの個々のルータの詳細は通知せず、要約されたネットワーク情報だけを通知することで、LSDBに保持しておかなければならない情報を少なくしている。
デフォルトでは、エリア内の全てのネットワーク情報を要約して他のエリアへ送信する。
ASBRサマリーLSA(LSA Type4)
ABRとなっているルータが生成し、他のエリアにASBRの情報を伝える際に使用するLSA。ASBRのルータIDやコストなどの情報が含まれている。
AS外部LSA(LSA Type5)
ASBRとなっているルータが生成し、OSPFドメイン外の経路情報をOSPFドメイン内に伝える際に使用されるLSA。外部ネットワークのネットワークアドレス、サブネットマスクの情報、メトリックなどが含まれる。
デフォルトでは、全ての外部ネットワークの情報をOSPF内へ送信する。このように、あるルーティングプロトコルで得た経路情報を他のルーティングプロトコルに変換して流すことを再配送という。
OSPFドメインとは??
同一の運用方法で動作させているOSPFルータで構成されているネットワークのこと。OSPFドメイン外の経路情報とは、OSPF以外のルーティングプロトコルやスタティックルートなどで登録されたネットワークの情報ということになる。
NSSA外部LSA(LSA Type7)
NSSAというエリア内でASBRとなっているルータが生成し、OSPFドメイン外の経路情報をOSPFドメイン内に伝える際に使用されるLSA。含まれる内容はLSA Type5と似た情報で、外部のネットワークのネットワークアドレス、サブネットマスクの情報、メトリックなどが含まれる。
LSAの違いによる経路の取り扱い
LSAのタイプにより通知される情報が異なるため、大きく3つの経路に分けられる。
intra-areaルート
ルーティングテーブル上の表記:O
同一エリア内のルート情報のこと。LSA Type1とLSA Type2で通知される情報を基に計算されるものとなる。
inter-areaルート
ルーティングテーブル上の表記:O IA
エリア間で通知されるルートの情報のこと。LSA Type3で通知される情報から取得される。
externalルート
OSPFドメイン外の再配送された外部ルート情報のことで、さらに4つに分類される。メトリックタイプの違いで外部ルートに対するメトリックの計算方法が異なる。
OSPFドメイン外のルートがASBRによってLSA Type5でOSPFドメイン内に送信される場合、そのネットワークはデフォルトでコスト値が20、メトリックタイプ2で再配送される。
ルーティングテーブル上の表記 | 内容 |
---|---|
O E1 | LSA Type5でメトリックタイプ1 |
O E2 | LSA Type5でメトリックタイプ2 |
O N1 | LSA Type7でメトリックタイプ1 |
O N2 | LSA Type7でメトリックタイプ2 |
メトリックタイプ1
OSPFドメイン内のルータを経由するたびに、再配送時に設定された基準のコストに各インターフェイスのコストを加算していく。
外部ネットワークへ向かうためのASBRが複数ある際に、近いのASBRを経由させたいときに使用する。
メトリックタイプ2
メトリックタイプ1と違い加算されない。どれだけASBRから離れていても、コストは再配送時に設定された基準のコスト値である20のまま一定となる。
外部ネットワークへ向かうためのASBRが複数ある際に、特定のASBRを経由させたいときに使用する。
エリアの種類
OSPFにはネットワークにかかる負荷を減らすために役割が異なる複数の種類のエリアが存在する。Ciscoルータで使用可能なエリアは以下の6つとなる。
バックボーンエリア
OSPFのネットワークの中心となるエリアのこと。エリアIDが0となり、他のエリアの経路情報はバックボーンエリアを介して行われる。エリア内ではLSA Type1~5が流れる。
標準エリア
バックボーンエリア以外の通常のエリアのこと。標準エリア内では、LSA Type1~5が流れる。標準エリア内のルータではエリア間のルート情報であるinter-areaルートと、外部ルート情報であるexternalルートの両方が集約されることなく全てルーティングテーブルに登録される。
スタブエリア
LSA Type5を通すことのできないエリアのことで、LSA Type1~3が流れる。スタブエリアではLSA Type5によって通知されたネットワーがABRによってデフォルトルートに集約され、LSA Type3でスタブエリア内のルータに伝わる。
エリア間のルート情報であるinter-areaルートは個別に通知され、外部ルート情報であるexternalルートは1つのデフォルトルートに集約され通知される。
スタブエリアにする際の注意点
- バックボーンエリアをスタブエリアにすることはできない
- ASBRを設置することは出来ない
トータリースタブエリア(完全スタブエリア)
他のエリアのネットワークを通知するためのLSA Type3も、全てABRによってデフォルトルートに置き換えられる。LSA Type1,2とデフォルトルートを通知するLSA Type3が流れる。
トータリースタブエリア内では、外部ルートだけではなくエリア間のルートも1つのデフォルトルートに集約されルーティングテーブルに登録されるため、スタブエリアよりもさらにLSDBのサイズが減らせるエリアとなっている。
NSSA(Not-So-Stubby Area)
スタブエリアにASBRを設置できるようにしたエリアのこと。LSA Type5が使用できないため、NSSA内のASBRはType5の代わりにLSA Type7を生成する。NSSA内では、LSA Type1、2,3,7が流れる。
NSSA内では、エリア間のルート情報とNSSA側の外部ルートの情報は個別に通知され、他のエリアのASBRから通知される外部ルートは1つのデフォルトルートに集約されルーティングテーブルに登録される特徴を持つ。
トータリーNSSA(完全NSSA)
トータリースタブエリアにASBRを設置できるようにしたエリアのこと。LSA Type1、2、7とデフォルトルートを通知するLSA Type3が流れる。
トータリーNSSA側の外部ルートの情報は個別に通知され、エリア間のルート情報と他のエリアのASBRうから通知される外部ルートは1つのデフォルトルートに集約されルーティングテーブルに登録される。
バーチャルリンク
直接バックボーンエリアに接続していないエリアを仮想的にバックボーンエリアと接続しているように見せること。ネットワークを統合する以外にも、1つのバックボーンエリアだったものが障害により分断されてしまった場合に対処することが可能。
次の場合はバーチャルリンクを設定することは出来ない。
- 2つのエリアを飛び越えたバーチャルリンクの設定は不可
- バーチャルリンクはスタブエリアを通すことが出来ない
- どちらかのルータがバックボーンエリアに接していないとバーチャルリンクは使用できない
OSPFの設定
ワイルドカードマスク
OSPFを有効にするインターフェイスを指定する際に使用する。IPアドレスとセットで使用され、直前に指定されたセットとなっているIPアドレスのどこまでを比較の対象とするのかを指定するために使用する。
32ビットの値で、IPv4と同じ表記。
-
例① 192.168.1.0/24を有効にする場合
ワイルドカードマスクでは、IPアドレスのうち、条件とする部分を0、任意の相対でよい部分を1とするため、0.0.0.255となる。
よって、IPアドレスとワイルドカードマスクは192.168.1.0.0.0.0.255と指定する。 -
例② 172.16.1.0/26を有効にする場合
条件となるのは最初の26ビットなので、26ビットを0にし残りを1にする。
よって、ワイルドカードマスクは0.0.0.63となる。
router ospfコマンド
書式:router ospf [プロセスID]
OSPFを有効にするコマンドで、グローバルコンフィギュレーションモードで行う必要がある。
OSPFは1つのルータで複数のプロセス(処理)を動作可能のため、他のプロセスと区別するためにプロセスIDを指定する必要がある。プロセスIDは1~65535の値を指定することが可能。
networkコマンド
書式:network [IPアドレス] [ワイルドカードマスク] area [エリアID]
OSPFを有効にするインターフェイスを指定するコマンド。ルータコンフィギュレーションモードで行う必要がある。有効にしたいインターフェイスのIPアドレスを指定する。インターフェイスに設定されているIPアドレスを確認し、指定したアドレスとそのまま利用する部分が一致していた場合、OSPFは有効になる。
ip ospf areaコマンド
書式:ip ospf [プロセスID] area [エリアID]
OSPFを有効にするインターフェイスを指定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。
networkコマンドと重複して設定された場合、networkコマンドよりも優先される
passive-interfaceコマンド
書式:passive-interface <インターフェイス | default>
パッシブインターフェイスを設定するコマンド。ルータコンフィギュレーションモードで行う必要がある。
パッシブインターフェイスの設定をすることで、OSPFを動作させる必要があるもののHelloパケットを送信する必要がないインターフェイスから、Helloパケットが送信されなくなる。また、受信したHelloパケットを無視する。
defaultを指定すると、全インターフェイスで有効となる。
router-idコマンド
書式:router-id [ルータID]
各ルータを識別するためのルータIDを設定するコマンド。ルータコンフィギュレーションモードで行う必要がある。IPアドレスが設定されていれば自動で決定されるが、手動で設定したい場合に使用する。
ID設定時は、他のルータと重複しない値を設定する必要があり、重複した場合ネイバーとして認識されないなどの障害の原因となる。
ルータIDが決まった後にルータIDとして優先的に採用される別の値が設定されてもルータIDは変更されない。ルータIDを変更したい場合はOSPFプロセスを再起動する(clear ip ospf process
コマンド)必要がある。
interface Loopbackコマンド
書式:interface Loopback [番号]
ループバックインターフェイスの作成を行うコマンド。グローバルコンフィギュレーションモードで行う必要がある。番号には0~2,147,483,647の値を指定できる。
コマンド実行後、ループバックインターフェイスのインターフェイスコンフィギュレーションモードに移行するので、通常のインターフェイスと同様にIPアドレスの設定を行う。
OSPFの設定例
OSPFの設定例
各ルータを設置し、クロスオーバーケーブルでつなぎ各ルータは以下のように設定していく。
Router>enable
Router#configure terminal
Router(config)#hostname RT01
RT01(config)#interface FastEthernet 0/0
RT01(config-if)#ip address 192.168.12.1 255.255.255.0
RT01(config-if)#no shutdown
RT01(config-if)#exit
RT01(config)#interface FastEthernet 0/1
RT01(config-if)#ip address 192.168.18.2 255.255.255.0
RT01(config-if)#no shutdown
Router>enable
Router#configure terminal
Router(config)#hostname RT02
RT02(config)#interface FastEthernet 0/0
RT02(config-if)#ip address 192.168.14.1 255.255.255.0
RT02(config-if)#no shutdown
RT02(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
RT02(config-if)#exit
RT02(config)#interface FastEthernet 0/1
RT02(config-if)#ip address 192.168.12.2 255.255.255.0
RT02(config-if)#no shutdown
Router>enable
Router#configure terminal
Router(config)#hostname RT03
RT03(config)#interface FastEthernet 0/0
RT03(config-if)#ip address 192.168.18.1 255.255.255.0
RT03(config-if)#no shutdown
RT03(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
RT03(config-if)#exit
RT03(config)#interface FastEthernet 0/1
RT03(config-if)#ip address 192.168.16.2 255.255.255.0
RT03(config-if)#no shutdown
Router>enable
Router#configure terminal
Router(config)#hostname RT04
RT04(config)#interface FastEthernet 0/0
RT04(config-if)#ip address 192.168.16.1 255.255.255.0
RT04(config-if)#no shutdown
RT04(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
RT04(config-if)#exit
RT04(config)#interface FastEthernet 0/1
RT04(config-if)#ip address 192.168.14.2 255.255.255.0
RT04(config-if)#no shutdown
ここから各ルータにOSPFの設定を行っていく。
RT01#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
RT01(config)#router ospf 1
RT01(config-router)#network 192.168.12.0 0.0.0.255 area 0
RT01(config-router)#network 192.168.18.0 0.0.0.255 area 0
RT01(config-router)#end
RT02(config)#router ospf 1
RT02(config-router)#netwo
RT02(config-router)#network 192.168.12.0 0.0.0.255 area 0
RT02(config-router)#network 192.168.14.0 0.0.0.255 area 0
RT02(config-router)#end
RT03(config)#router ospf 1
RT03(config-router)#network 192.168.18.0 0.0.0.255 area 0
RT03(config-router)#network 192.168.16.0 0.0.0.255 area 0
RT03(config-router)#end
RT04(config)#router ospf 1
RT04(config-router)#network 192.168.14.0 0.0.0.255 area 0
RT04(config-router)#network 192.168.16.0 0.0.0.255 area 0
RT04(config-router)#end
これでpingコマンド実行すると疎通確認できるようになる。
RT01#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, FastEthernet0/0
O 192.168.14.0/24 [110/2] via 192.168.12.2, 00:07:22, FastEthernet0/0
O 192.168.16.0/24 [110/2] via 192.168.18.1, 00:02:52, FastEthernet0/1
C 192.168.18.0/24 is directly connected, FastEthernet0/1
RT01#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.14.1 1 FULL/BDR 00:00:33 192.168.12.2 FastEthernet0/0
192.168.18.1 1 FULL/BDR 00:00:31 192.168.18.1 FastEthernet0/1
OSPFの設定の確認
show ip ospf neighborコマンド
ネイバーテーブルを確認するためのコマンド。特権EXECモードで行う必要がある。
項目 | 内容 |
---|---|
Neighbor ID | 認識しているネイバーのルータID |
Pri | ネイバーのルータプライオリティ。デフォルトは1 |
State | 隣接関係を表す。FULLまたは2WAY(マルチアクセス環境においてDRotherとなっているルータ同士の場合)であれば問題ない。/の後ろは、DR,BDR,DROTHER,それ以外は(-)が表示される |
Dead Time | あと何秒間Helloパケットが届かなかったらダウンしたとみなすかを表す |
Address | ネイバーのIPアドレス |
Interface | 隣接関係を結んだインターフェイス |
RT1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
172.16.2.10 1 FULL/BDR 00:00:31 172.16.2.10 FastEthernet1/0
192.168.1.110 1 FULL/DR 00:00:31 172.16.1.110 FastEthernet0/1
192.168.1.110 1 FULL/BDR 00:00:31 192.168.1.110 FastEthernet0/0
192.168.1.254 1 FULL/DR 00:00:33 192.168.1.254 FastEthernet0/0
ネイバーステートの流れ
OSPFを起動したルータが隣接関係を確立して、コンバージェンスするまでのステートの流れは以下の表になる。
状態 | 内容 |
---|---|
DOWN | Helloを受け取っていない最初の状態、他のOSPFルータの存在を認識していない状態 |
INIT | Helloパケットを受信し相手を認識。Helloパケットの中に自分はいない状態 |
2WAY | お互いを認識した状態。この状態をネイバーの確立と呼ぶ |
EXSTART | DR,BDR決定(選出)済み |
EXCHANGE | ルータ情報をDBDで交換している状態。MTUが一致していないと処理が進まなくなる |
LOADING | 詳細情報確認 |
FULL | コンバージェンス(最適経路の計算が完了した状態) |
show ip ospfコマンド
OSPFプロセスの情報を確認するコマンド。特権EXECモードで行う必要がある。ルータが所属しているエリアとそのエリアに属しているインターフェイスの数、エリア認証の有無やSPFアルゴリズムの実行回数などが確認できる。
R21#show ip ospf
Routing Process "ospf 65000" with ID 10.0.0.21
Supports only single TOS(TOS0) routes
Supports opaque LSA
SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
Number of external LSA 0. Checksum Sum 0x000000
Number of opaque AS LSA 0. Checksum Sum 0x000000
Number of DCbitless external and opaque AS LSA 0
Number of DoNotAge external and opaque AS LSA 0
Number of areas in this router is 1. 0 normal 1 stub 0 nssa
External flood list length 0
Routing Process "ospf 6500" with ID 192.168.200.21
Supports only single TOS(TOS0) routes
Supports opaque LSA
SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
Number of external LSA 0. Checksum Sum 0x000000
Number of opaque AS LSA 0. Checksum Sum 0x000000
Number of DCbitless external and opaque AS LSA 0
Number of DoNotAge external and opaque AS LSA 0
Number of areas in this router is 0. 0 normal 0 stub 0 nssa
External flood list length 0
show ip ospf databaseコマンド
書式:show ip ospf database [asbr-summary | external | network | nssa-external | router | summary]
LSDBの要約情報(LSAのリスト)であるトポロジテーブルを確認するコマンド。特権EXECモードで行う必要がある。オプションを省略した場合は、全LSA Typeの要約情報一覧が表示される。
オプション | 対応LSA Type |
---|---|
router | ルータLSA(LSA Type1) |
network | ネットワークLSA(LSA Type2) |
summary | サマリーLSA(LSA Type3) |
asbr-summmary | ASBRサマリーLSA(LSA Type4) |
external | AS外部LSA(LSA Type5) |
nssa-external | NSSA外部LSA(LSA Type7) |
show ip protocolsコマンド
OSPFのプロトコルの情報を確認するためのコマンド。特権EXECモードで行う必要がある。このコマンドは、OSPFに限らず、動作しているルーティングプロトコルを一覧で確認することができる。
項目 | 説明 |
---|---|
Router ID | ルータID |
Maximum path | 等コストロードバランシングの数 |
Routeing for Networks | networkコマンドで設定した内容 |
Routing Information Sources | LSAをアドバタイズしているルータの情報 |
Passive Interface(s) | パッシブインターフェイスの情報 |
Distance | アドミニストレーティブディスタンスの値 |
R2#show ip protocols
Routing Protocol is "ospf 65000"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 10.0.0.2
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
Routing Information Sources:
Gateway Distance Last Update
10.0.0.2 110 00:01:03
10.0.0.3 110 00:01:03
Distance: (default is 110)
show ip ospf interfaceコマンド
書式:show ip ospf interface [インターフェイス]
OSPFが動作しているインターフェイスの情報を確認するためのコマンド。特権EXECモードで行う必要がある。省略すると、全てのインターフェイスが表示される。
- ①IPアドレスと所属するエリア
- ②プロセスIDとルータID、ネットワークタイプ、コスト
- ③リンクの状態とプライオリティ
- ④DRとBDRのルータIDとIPアドレス
- ⑤HelloインターバルとDeadインターバル
RT01#show ip ospf interface FastEthernet 0/1
FastEthernet0/1 is up, line protocol is up
Internet address is 192.168.18.2/24, Area 0
Process ID 1, Router ID 192.168.18.2, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 192.168.18.2, Interface address 192.168.18.2
Backup Designated Router (ID) 192.168.18.1, Interface address 192.168.18.1
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:08
Index 2/2, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 192.168.18.1 (Backup Designated Router)
Suppress hello for 0 neighbor(s)
debug ip ospf helloコマンド
Helloパケットのやり取りを確認するコマンド。特権EXECモードで行う必要がある。
OSPF関連のパラメータの調整
ip ospf priorityコマンド
書式;ip ospf priority [ルータプライオリティ値]
ルータプライオリティを設定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。インターフェイスごとに個別の値を持つため、インターフェイスごとに設定する必要がある。
デフォルト値は1で、変更したい場合は0~255までの値を指定する。0に設定すると、DRおよびBDRに選出されずDRotherとなる。
プロセスを再起動することで、隣接ルータとのネイバー関係を一度解消し、OSPFの動作を最初からやり直すことができる。
再起動するには、clear ip ospf process
コマンドを特権EXECモードで行う必要がある。
ip ospf costコマンド
書式:ip ospf cost <コスト値>
インターフェイスのコスト値を変更するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。
auto-cost reference-bandwidthコマンド
書式:auto-cost reference-bandwidth <基準帯域幅(Mbps)>
基準帯域幅(10の8乗部分)を変更するコマンド。ルータコンフィギュレーションモードで行う必要がある。デフォルトは100Mbpsで、1~4294967の中から指定することができる。
bandwidthコマンド
書式:bandwidth [帯域幅]
インターフェイスの帯域幅を変更するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。帯域幅はKbps単位で指定する。
帯域幅の値を変更してもインターフェイスの実際の転送速度が遅くなることはない。
コスト値の変更と帯域幅の変更を同時に行った場合、コスト値の変更で設定した値が優先される。
ip ospf networkコマンド
書式:ip ospf network < broadcast | non-broadcast | point-to multipoint [non broadcast] | point-to-point>
OSPFのネットワークタイプを変更するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。ネットワークタイプは、接続に使用しているインターフェースやカプセル化タイプによって自動的に決定される。
インターフェイス | 内容 |
---|---|
broadcast | ネットワークタイプを「ブロードキャストマルチアクセス」にし、DR/BDRが選出されるようになる |
point-to-point | ネットワークタイプを「ポイントツーポイント」にし、DR/BDRが選出されなくなる |
指定するネットワークモードにより、HelloインターバルとDeadインターバルの秒数が変わるので、隣接ルータとの秒数ずれが発生する可能性がある。そのため、パラメータの不一致により、ネイバーとならなくなる可能性があるので注意する。
ip ospf hello-intervalコマンド
書式:ip ospf hello-interval [秒数]
Helloインターバルを変更するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。Helloパケットを送信する間隔を指定する。秒数は1~65535から指定する。デフォルトは10秒。Helloインターバルを変更すると、Deadインターバルは自動でその4倍の時間に設定される。
ip ospf dead-intervalコマンド
書式:ip ospf dead-interval [秒数]
Deadインターバルのみを変更するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。
隣接ルータとHelloインターバル、Deadインターバルが一致していないとネイバーとして認識されないため、実行する際は注意する
mtuコマンド
書式:mtu < MTUサイズ>
インターフェイスのMTUを変更するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。
ip ospf mtu-ignoreコマンド
MTUの不一致を検出する機能を無効にするコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。設定されたMTUサイズが小さい方のルータで実行する。
default-information originateコマンド
書式:default-information originate [always] [metric <メトリック>] [metric-type <メトリックタイプ>]
デフォルトルートを他のルータに伝えるコマンド。ルータコンフィギュレーションモードで行う必要がある。[always]オプションを付けない場合、ルーティングテーブルに登録されているデフォルトルートが伝播される。逆にオプションを付けると、ルータにデフォルトルートの設定がされていなくても、デフォルトルートを他のルータに配布することができる。
externalルート扱いのため、自動生成されたデフォルトルートはO*E2
のコードが付けられる。
neighborコマンド
書式:neighbor < IPアドレス>
ネイバーを手動で登録するコマンド。ルータコンフィギュレーションモードで行う必要がある。< IPアドレス>にネイバーのIPアドレスを指定する。
maximum-pathsコマンド
書式:maximum-paths <等コストパスの数>
等コストパスロードバランシングの数を指定するコマンド。ルータコンフィギュレーションモードで行う必要がある。デフォルトでは、4つのパスが設定されている。設定可能な最大パスは16。
マルチエリアOSPFの設定
シングルエリア構成と異なる点は、networkコマンドもしくはip ospfコマンドで指定するエリアIDのみ。エリアの指定を分けることでマルチエリア構成とすることができる。
area stubコマンド
書式:are <エリアID> stub [no-summary]
スタブエリアにするコマンド。ルータコンフィギュレーションモードで行う必要がある。<エリアID>でスタブエリアにするエリアのIDを指定する。[no-summary]を付けるトータリースタブエリアになる。
スタブエリアの設定は、スタブエリアとなるエリアに属している全てのルータで行う必要がある。
トータリースタブエリアにする場合はABRでのみ、[no-summary]を付ける。
area nssaコマンド
書式:are <エリアID> nssa [no-summary]
NSSAのエリアにするコマンド。ルータコンフィギュレーションモードで行う必要がある。[no-summary]を付けるとトータリーNSSAになる。トータリーNSSAにする場合は、ABRでのみ[no-summary]を付ける。
スタブエリアと同様に、NSSAの設定はNSSAとなるエリアに属している全てのルータで行う必要がある。
area nssa default-information-originateコマンド
書式:area <エリアID> nssa default-information-originate
NSSAで他のエリアからくるLSA Type5をデフォルトルートとして伝播するコマンド。ルータコンフィギュレーションモードで行う必要がある。このコマンドはABRで実行する。
バーチャルリンクの設定
area virtual-linkコマンド
書式:area <エリアID> virtual-link <ルータID>
バーチャルリンクの設定を行うコマンド。ルータコンフィギュレーションモードで行う必要がある。<エリアID>でバーチャルリンクを通過させるエリアを指定する。<ルータID>にはバーチャルリンクを確立する相手となるルータのルータIDを指定する。
この設定はバーチャルリンクを確立する双方のルータで設定する必要がある。
show ip ospf virtual-linksコマンド
バーチャルリンクを確認するコマンド。特権EXECモードで行う必要がある。
手動経路集約の設定
area rangeコマンド
書式:area <エリアID> range <ネットワーク> <サブネットマスク>
エリア間ルートの集約を行うコマンド。ルータコンフィギュレーションモードで行う必要がある。<エリアID>は集約したいネットワークの情報が存在するエリアを指定する。<ネットワーク>と<サブネットマスク>で集約してアドバタイズしたいネットワークを指定する。
経路集約でアドバタイズすることが出来る情報は、自身のルーティングテーブル上に登録されているネットワークのみとなる。
summary-addressコマンド
書式:summary-address <ネットワーク> <サブネットマスク>
外部ルートの集約を行うコマンド。ルータコンフィギュレーションモードで行う必要がある。