Ryo's Log

26才(現在31才)が一回人生を仕切り直して始めていくブログです。主に技術ログ。

【職業訓練CCNA32日目】OSPFを改めて。

32日目です。

 

 

改めてOSPFです。

 

 

 


OSPF:Open shortesut Path First

 

マルチベンダ環境をサポート
いろんなメーカーにおいて設定できる。

 

スケーラブル
エリアの概念で階層型設計を採用しており、非常に大規模なネットワークに拡張可能

RIP:中小規模
OSPF:大規模
EIGRP:大規模

 

階層型ルーティング
大規模の際、エリアに基づくLSA
障害を一つのエリアに留めることができる。
エリアの分割と経路集約が可能で、負荷が減る。


リンク情報の交換(リンクステート型)
ルータ同士がインターフェースの情報=リンクを交換します。
リンクステート情報と呼び、リンクステートデータベースに格納される。

 

SPFアルゴリズム
ダイクストラアルゴリズムで最短パスの計算を行う。

 

トポロジ全体を把握
ループフリーで効率的なパスを個別に選択できる。全ルータが把握している。

 

イベントトリガーアップデート
ネットワークの変更、障害をトリガーとして変更部分のみをアップデート。または定期的に30分ごとにフラッディング。

 

認証機能
MD5とシンプルパスワードをサポート。
信頼できるルータとだけ情報の交換をできる。

 

 

動作フロー

 

①Helloパケットの交換→隣接関係(ネイバーテーブル)の確立
②隣接関係同士LSAの交換→LSDB(トポロジーテーブル)に格納
③LSDBからトポロジマップを作成
④SPFアルゴリズムにより最適経路(optimum path)計算→ルーティングテーブルに登録
⑤トポロジ変更時→トリガーアップデートでLSAを含むLSUを送信→SPF再計算

結果
ループが発生しない
高速コンバージェンス(スペックHighのルータを使用)
ホップ数を考えない

 

 


①Helloパケットの交換
隣接関係(neigbour table)の確立
隣のルータが誰なのかを把握する。
ネイバーを確立

 

②隣接関係同士(アジャセンシー)のLSAの交換(~30minおき) :LSA type 1を送信
LSAをLSDB(topology table)に格納
LSAの中身:(IP add, Mask,Metric)
LSAのtype 1がアドレス、マスク、メトリック
ほかにもたくさんある
7までがversion2で5まで覚えとくとよい
8,9はversion3

 

③LSDBからトポロジマップを作成
全ルータが把握する。

 

④トポロジマップを基にSPFアルゴリズムによって最適経路を計算
routingテーブルに登録。

 

⑤トポロジ変更時
変更のあった差分のみをトリガーアップデート
LSU(Link State Update)の通知。
dead time後に消去される

 

OSPFパケットフォーマット

・OSPFのパケットはIP上のプロトコル番号 89 を使用(IPヘッダ)
・バージョン
・タイプ(OSPFパケットタイプ)
・パケット長
・ルータID
・エリアID
・チェックサム
・認証タイプ
・認証

 

OSPFパケットタイプ
・Hello:ネイバー関係の確立維持,224.0.0.5 Deadインターバル
・DBD:Database Description:LSAの要約情報.DBの動機チェックを行う
・LSR:リンクステート情報を要求
・LSU:リンクステート情報を送信する
・LSAck:LSUパケットの確認

 

Helloパケットの中身
ネットワークマスク:Helloパケットを送出するインターフェースのネットマスク
Hello間隔:ネイバー関係の確立維持,224.0.0.5 Deadインターバル
オプション:8つある。スタブエリアを意味するフラグ値を格納
ルータプライオリティ:DR/BDRの選択に使用される 8 ビット。0~255。0 の値はDR/BDRになれない。
Dead間隔:ネイバールータをダウンとみなす間隔。常にHello間隔の4倍。
DRのIPアドレス:ネットワーク上でDRが存在しない場合は 「 0.0.0.0 」
BDRのIPアドレス:ネットワーク上でBDRが存在しない場合は 「 0.0.0.0 」
ネイバー:関係が確立済みである全てのネイバールータのルータIDの一覧

 

OSPFネイバーを確立するためには次の項目を一致させる必要がある。

 ① エリアID
 ② 認証 ( 認証が有効な場合 )
 ③ ネットワークマスク
 ④ Helloインターバル
 ⑤ Deadインターバル
 ⑥ スタブエリアフラグ ( オプション値 )
 ⑦ 隣接するI/FのMTUサイズ

 

 


OSPFのプロセス遷移
①DOWN状態:Helloパケットを受信していない初期状態

②INIT状態:Helloパケットを受信したが対抗はまだ自身を認識していない状態

③2WAY状態:お互いを認識しあう。(DROTHER同士はここから進まない)

④DR/BDRの選出

⑤EXSTART状態(マスターとスレイブを決める)

⑥EXCHANG状態(足りないものを交換し合う)LsACKなどを送ったり

⑦LOADING状態(LSR,LSUの送信)足りないものを確認しあい、送りあう

FULL状態=アジャセンシー
Hello intavalの送信(keep-alive)
障害が発生するとネイバーダウンとみなす(Dead intervalによる)

 

 

ネイバー:同じセグメント上に接続されているOSPFルータ同士の関係

アジャセンシー:ネイバーの中で実際にLSAを交換し、LSDBの同期をとる関係

DROTHER同士以外がLSAを交換し合う!

 

・ルータID
ドメイン内で各ルータを一意に識別するための番号。
32bitでIPv4のようにオクテットで区切る
重複してはいけない

優先度
①router-idコマンド
②アクティブなリンクしているなかでループバックインターフェイスの中で最大のIPアドレス
③アクティブな(リンクアップしている)インターフェイスの中で最大のIPアドレス(デフォルト)

router idコマンド > loopback IF  > アクティブインターフェース

 

・メトリック
帯域に基づいてルートを決める。
各リンクコストの合計値が最小であるパスを最適ルートとする。
コスト = 100,000,000 ÷ 帯域幅(bps)
cost = 100Mbps / 帯域幅
メトリックは小さいほうを選ぶ

 

・DR/BDR/DRO
選出することでトラフィックが減少し、効率よくLSAの交換が行える。(隣接関係数が減少)

DR:Designated Router
LSAの交換を取りまとめる代表のルータ

BDR:Backup Router
DRのバックアップ

DROTHER:
その他のルータ


隣接関係の数はn(n-1) ÷2
サブネット(セグメント)ごとに一台ずつ決定される
DRO同士はLSAは交換しない!

 

OSPFプライオリティ値
0~255の範囲
デフォルトは1
OSPFが有効な各インターフェイスごとに設定できます。
Helloパケット内に含まれる。

 

選出方法 値が大きいものが選出される
プライオリティ値が最大のルータがDR
プライオリティ値が二番目に大きいルータがBDR
プライオリティ値0のルータはDR/BDRになれない(DROTHERに固定)
プライオリティ値が同じ場合、ルータIDが最大のルータがDR、二番目に大きいルータがBDR
DR.BDR選出は、OSPFプロセスを起動した順番に影響する。

後からプライオリティ値が最大のものをネットワークに追加してもすぐにはDRにはなれない。
現在のDRを削除してからではないとなれない。
サブネットごとに選出される。
選出にはマルチキャスト224.0.0.5 or 224.0.0.6が使用される

 

ループバックインターフェイス
管理者が自由に作成できる仮想的なインターフェース
作成時にデフォルトで有効でno shutはいらない。shutdownはできる
決してダウンすることのないインターフェース
interface loopback <number>
1.2.3.4/32
何個でも設定可能

 


マルチエリアOSPF

複数のエリアに分割
同一のLSDBを保持、ほかのエリアに関しては要約したネットワーク情報だけを持つ
二層の階層構造になる

 

メリット
DBのサイズ縮小
SPFの計算頻度の減少
ルーティングテーブルのサイズの小型化

 

バックボーンエリア(エリア0)
エリア間のトラフィックを中継するエリア。通過エリア。
エリア0を設定すると認識される。
各エリアは エリア0に隣接することが原則

 

標準エリア
バックボーンエリア以外のエリア。
必ずバックボーンエリアに接続している

 

ルータの役割

内部ルータ 
すべてのインターフェースが同じエリアに所属している

バックボーンルータ
一つ以上のインターフェイスがバックボーンエリアに所属しているルータ

ABR(Area Border Router)
エリア境界ルータ。複数のエリアを相互に接続するルータ、所属するすべてのエリアのLSDBを持っている
多くのCPUとメモリを消費する。必ず通る道となる。

ASBR:Autonomous System
自律システム境界ルータ。一つ以上のインターフェースが非OSPFネットワークに所属している


OSPFルーティングプロセスへ ルート再配布することでASBRが動作する
ルート情報を集約できるのはABR & ASBRのみ
ABRは経路集約したものをバックボーンへ送信している
他エリア情報を内部へ送信

外部AS = 非OSPFドメイン

 


LSAの種類
single area LSA type 1,2

Multi area(ABR) LSA type: 1,2,3

Multi area(ABR + ASBR):LSA type 1,2,3,4,5,7

 


LSDBの構成要素
LSAには種類がある

LSAタイプ1:ルータLSA
直接接続しているリンクの状態を表現する
すべてのOSPFルータが生成。
ルータID
リンク数
すべてのリンクの詳細情報(メトリック)
ABR(B),ASBR(E)に所属しているかどうか
発生したエリアのみフラッディング
ルート情報にはルーティングテーブルでOSPFエリア内ルートを示す0というコードがつく

 

LSAタイプ2:ネットワークLSA
DRが生成する。
DRのIP
マルチアクセスネットワークに接続されているルータのリスト
ネットワークのサブネットマスク
そのエリア内でのみフラッディング

 

LSAタイプ3 ネットワーク集約LSA
エリア内に存在するネットワークアドレスを他のエリアへ通知するためのLSA
ABRによって生成
ABRはデフォルトですべてのサブネットに関するルート情報をアドバタイズ
自律システム全体にフラッディング
ルート情報にはルーティングテーブルでOSPFエリア間ルートを示し0 1Aというコードがつく

 

LSAタイプ4:ASBR集約LSA
ABRが生成
ASBRの情報を他のエリアに通知するためのもの
ASBRのルータID
ASBRに到着するまでのメトリックが含まれる
非OSPFネットワークが接続され、ASBRルート情報をOSPFに再配布している場合にABRが生成
自律システム

 

LSAタイプ5:AS外部LSA
非OSPFネットワークのネットワークアドレスをOSPFドメインへアドバタイズするためのLSA
非OSPFネットワークのネットワークアドレス
サブネットマスク
メトリック
転送アドレスが含まれる
ASBRが生成(非OSPFに接続、ルート情報をOSPFに再配布している場合)
ASBRはデフォルトですべてのサブネットに関するネットワークアドレスをアドバタイズ
大規模ネットワークにおいて効率的なOSPFルーティングを行うにはASBRで明示的にルート集約を設定する
自律システム全体にフラッディング
コードは 0 E1 or 0 E2

 

・ネットワークタイプ

①ポイントツーポイントネットワーク
二台のルータのみで接続
シリアルインターフェイスのカプセル化タイプがPPP or HDLC→デフォルトのネットワークタイプ
DR/BDRの選出はしない
マルチキャスト224.0.0.5
neighbour自動検出
Hello,Dead間隔は10,40sec


②ブロードキャストマルチアクセスネットワーク
Ethernetを使用(LANケーブル)デフォルトのネットワークタイプ
スイッチから一つのサブネット
バス型と間違わないように
ブロードキャスト・マルチキャストをサポート
DR/BDRを選出
ネイバー自動検出
Hello/Dead = 10/40 sec
将来的により多くの台数が接続する可能性がある。


③ノンブロードキャストマルチアクセスネットワーク(NBMA)
現在使われていない。
ハブ側でネイバーを指定 neighborコマンド
フレームリレー関係。
Hello Dead interval = 30,120 sec
マルチキャスト、ブロードキャストへ対応していない