
第6回(最終回) OSPFネットワークの確立と運用上の注意点
亀野英孝
ネット・シェフ
2002/4/27
|
■Adjacencyの形成
前回(第5回「大規模で複雑なネットワークでの運用に堪えるOSPF」)、OSPFでは、経路情報そのものではなく、LSAの交換が行われると説明しました。しかし、このLSAの交換は、すべてのOSPFルータ間でフル・メッシュ状に行われるわけではありません。
まず、OSPFが起動すると、Helloプロトコルを用いて、同一セグメント上のOSPFルータとNeighborを確立しようとします。その後、必要なルータ同士が隣接関係(Adjacency)を確立します*1。LSAの交換は、このAdjacencyを形成したルータ間において行われます。
|
ここでは、このAdjacencyの形成過程を説明します。
●Adjacency形成時の各ステート
まず、最初にHelloプロトコルを用いたNeighborの確立が行われます(図1)。
DOWN
最初の状態ですAttempt
この状態は、NBMAネットワークにのみ適用されます(後述)。この状態では、NeighborからのHelloパケットを受け取っていませんが、Neighborとコンタクトを取るべく、一定間隔でHelloパケットを送信し続けていますInit
この状態は、NeighborからのHelloパケットを受け取ったことを表します。しかし、Neighborとの双方向の関係は、まだ確立できていません2-Way
この状態は、Neighborとの双方向の関係が確立されたことを表します。具体的には、Neighborから受け取ったHelloパケットに、自ルータの情報(ルータID)が含まれていた場合に、この2-Wayの状態になります
この段階で、Neighborの確立がなされたことになります。また、マルチアクセス・ネットワークなどでは、DR/BDRの選出が行われます(後述)。Adjacencyの確立が必要ないルータ同士は、この段階の最終状態(2-Way)を維持することになります。
![]() |
| 図1 Neighborの確立 |
この後、前述のように、必要なルータ同士がAdjacencyを確立します(図2)。
ExStart
この状態は、Neighborを確立した2つのルータが、さらにAdjacencyを確立するための最初のステップになります。ここでは、DDパケット(Database Description Packet)交換時のマスタとなるルータを決定します。また、最初のDD sequence numberもここで決定されますExchange
この段階では、DDパケットを交換します。このDDパケットは、自分が知っているLSDBの情報を、互いに伝え合うために用いられます(実際には、LSAそのものを交換するのではなく、自分が知っているLSAのヘッダ部分のみを交換します)Loading
先の状態(Exchange)において交換した情報に基づき、自身が保持していない、または、保持しているLSAよりも新しい情報を受信していた場合、相手に対して最新のLSAを要求しますFull
この状態は、Adjacencyが完全に確立されたことを表します。Adjacencyが確立されたルータ同士は、同じLSDBを保持することになります
![]() |
| 図2 Adjacencyの確立 |
■「DR」と「BDR」とは?
OSPFには、大きく分けて2つのネットワーク・タイプが存在します。Point-to-Pointネットワークと、それ以外のマルチアクセス・ネットワークです。また、マルチアクセス・ネットワークには、ブロードキャスト・ネットワークとノンブロードキャスト・ネットワークが存在します。さらに、ノンブロードキャスト・ネットワークには、ノンブロードキャスト・マルチアクセス・ネットワーク(NBMA)と、Point-to-MultiPointネットワークが存在します(表1)。
|
|||||||||||||||
| 表1 OSPFにおけるネットワークのタイプ | |||||||||||||||
上記マルチアクセス・ネットワーク(ブロードキャスト・ネットワークとNBMAネットワーク)においては、ネットワーク・セグメントごとにDR(Designated Router)やBDR(Backup Designated Router)が選出されます。
●DRの選出
DRやBDRは、ネットワーク・セグメントごとに1台ずつ選出されます。このDRやBDRの選出は、Neighborを確立する際のHelloプロトコルの交換により行われます。Helloパケットには、DRやBDRの選出に使用されるプライオリティ値やルータIDなどの情報が入力されており、基本的にはプライオリティ値が一番高いものがDR、2番目に高いものがBDRに選出されます*2。
|
●DRの役割
DRやBDRが選出されると、各OSPFルータは、この両者とのみAdjacencyを形成します。それ以外のOSPFルータ同士は、「Neighbor」と呼ばれる関係になります(図3)。Adjacencyを形成したOSPFルータ間では、LSAの交換が行われ、LSDBが同じになるように同期が図られます。そして、更新などが発生した際には、DRが代表してその情報をマルチキャストによりアナウンスします。
このように、DRを選出することで、マルチアクセス・ネットワークにおいて複数のOSPFルータがメッシュ上に接続された環境でも、大幅にAdjacencyの数を減らすことが可能となります。その結果、ネットワーク上に流れるLSAの数も減らすことが可能となります。
またBDRは、DRに障害が起きた際に、次にDRの役割を引き継ぐバックアップ機能を果たします(図4)。
![]() |
| 図3 DRとのAdjacencyの形成。この図では、各ネットワーク・セグメント上のDRとのAdjacencyのみを記しているが、実際にはBDRともAdjacencyが形成される |
![]() |
| 図4 DRによる更新情報のアナウンス。この図のように、実際にはマルチキャスト・アドレスを使用して更新情報が伝播される ・マルチキャスト・アドレス=224.0.0.5 は、すべてのOSPFルータあて ・マルチキャスト・アドレス=224.0.0.6 は、DR/BDRあて |
■OSPFパケットについて
OSPFには、5種類のパケットが存在します(表2)。ここでは、OSPFパケットの紹介と、その主な役割について説明します。
|
||||||||||||||||||
| 表2 OSPFパケットの種類 |
Type1 Helloパケット
Helloパケットは、Neighborの確立や、マルチアクセス・ネットワーク(ブロードキャスト・ネットワークとNBMAネットワーク)において、DRやBDRを選出するために使用されます。また、NeighborやAdjacencyの確立がなされた後は、これらの関係を維持するための生存確認のパケットとしても使用されます。このHelloパケットは、定期的にアナウンス(通常は10秒間隔)されます。そして、ある一定期間内(通常は40秒)にHelloパケットが受信されなかった場合、当該ルータに障害が発生したと見なし、Neighborの関係は維持されなくなります
Type2 Database Descriptionパケット
Database Descriptionパケットは、Adjacencyの確立の際、最初に交換されるパケットです。OSPFルータは、このDatabase Descriptionパケットを用いて、各ルータが保持しているLSDBの情報を交換します。この際、相手がアナウンスしてきたLSDBの情報の中に、自分が所持していないLSAや、自分が所持しているものより新しいLSAの情報が発見された場合は、Link State Requestパケットを送信し、相手ルータに当該LSAの送信を要求しますType3 Link State Requestパケット
Link State Requestパケットは、相手ルータにLSAの送信を要求する際に使用されますType4 Link State Updateパケット
Link State Updateパケットは、Link State Requestパケットにより要求された各種LSA(後述)を相手ルータにアナウンスするために使用されます。また、Adjacencyの確立後は、このパケットを用いてLSAをアナウンスしますType5 LinkState Acknowledgmentパケット
LinkState Acknowledgmentパケットは、Link State Updateパケットを受信した際に、相手ルータにその旨を伝えるための受信確認用のパケットとして使用されます
●LSAのタイプ
LSAにはいくつかのタイプが存在します。ここでは、一般的によく使用されるLSAのタイプと、そこに含まれる主な情報について説明します。
LS Type1 Router-LSAs
Router-LSAsは、エリアに属する各ルータが生成し、そのエリア内部でのみ伝播されます。このLSAには、エリアへのルータのリンクの情報や、インターフェイスのコスト値などが含まれています。以下、Router-LSAsに含まれる主な情報を記します
|
LS Type2 Network-LSAs
Network-LSAsはDRが作成し、DRが所属するネットワーク・セグメントが含まれるエリア内部でのみ伝播されます。このLSAには、DRが所属しているセグメントに接続されているルータの一覧(ルータIDの一覧)や、ネットワークのマスク情報などが含まれています。以下、Network-LSAsに含まれる主な情報を記します
|
LS Type3 Summary-LSAs
LS Type3のSummary-LSAsは、ABRが作成しアナウンスします。このLSAには、エリア間のネットワーク情報が含まれており、ルートのサマライゼーションにも使われます。以下、LS Type3のSummary-LSAsに含まれる主な情報を記します
|
LS Type4 Summary-LSAs (ASBR-summary-LSAs)
LS Type4のSummary-LSAs には、ASBRまでのルート情報が含まれています。このLSAもABRが作成しアナウンスします。以下、LS Type4のSummary-LSAsに含まれる主な情報を記します
|
LS Type5 AS-external-LSAs
AS-external-LSAsはASBRが作成し、スタブ・エリアやNSSAを除くAS全体に伝播されます。このLSAには、AS外部のネットワークへのルート情報が含まれています。以下、AS-external-LSAsに含まれる主な情報を記します
|
●Type1と2のコストについて
LS Type5 AS-external-LSAsのコストには、Type1とType2の2種類が存在します。この両者では、OSPF外部ネットワークまでのコスト値の計算が異なります。
external Type1
コスト値は、外部コストにASBRまでのコストを足した値になりますexternal Type2
コスト値は、外部コストのみの値になります
また、同一のOSPF外部ネットワークに対してType1とType2の2つが存在した場合は、常にType1が優先されます。
■運用上の注意点
●各種タイマの設定
OSPFでは、Hello IntervalとDead IntervalによりAdjacencyを管理しています。もし、各ルータのIntervalが異なる場合、Adjacencyを確立することができません。これらのIntervalを変更する場合には、すべてのルータで一致させる必要があります。
Hello Interval (デフォルト10秒)
Helloパケットの送信間隔Dead Interval(デフォルト40秒)
相手からのHelloパケットを受信するまでに経過してもよい時間。この間、相手からHelloパケットを受信しなかった場合、そのルータはダウンしたと見なされる
●インターフェイス・コスト
ルータの各インターフェイスに割り当てられるコストのデフォルト値は、ほとんどのベンダの製品が以下の計算式に基づいています*3。
計算式: 100Mbps / インターフェイス速度 = COST
|
|
現在のネットワーク環境では、Gigabit Ethernetやトランキング技術(複数のラインを仮想的に束ねる技術)の登場により、100Mbps以上のインターフェイスを利用することが多くなっています。このため、従来の計算式ではコストを正しく計算できないため、以下のどちらかの対策を施す必要があります。
対策1 各インターフェイスのコストを手動で設定する
あらかじめ各インターフェイスの速度ごとのコストを決定し、各インターフェイスに手動でコストを設定します。
対策2 上記の計算式を変更する
ほとんどのルータ・ベンダでは、上記計算式の100Mbpsの部分を変更することが可能です(例:1Gbps/インターフェイス速度=COST)。これにより、自動計算でも100Mbps以上の速度に対応できます*4
|
●ルータIDの設定
各OSPFルータは、それぞれルータIDと呼ばれる識別子を持ちます。OSPFでは、このルータIDを用いて各ルータを管理しているため、必ず重複がないようにする必要があります。ほとんどのルータ・ベンダでは、ルータIDは次の方法で自動的に設定されます。
|
上記の自動設定で、現在UPしているIPインターフェイスのうち、最も大きいIPアドレスをルータIDとしている場合には、問題が発生する可能性があります。
もし、現在ルータIDとして選択されているインターフェイスがダウンした場合、ルータは自動的に次に大きいIPアドレスにルータIDを変更します。このとき、OSPFプロセスを再起動するため、すべてのOSPF経路がなくなり、一時的に通信不能に陥ります(OSPFはルータIDで管理されているため、ルータIDを変更するとすべての接続プロセスをやり直す必要があります)。
この現象が発生すると、たとえ迂回パスがあったとしても、それを瞬時に利用することができなくなります。ルータID変更によるOSPFプロセスの再起動を防ぐためには、以下のどちらかの対策を施す必要があります。
対策1 ループバック・インターフェイスにIPアドレスを設定する
ループバック・インターフェイスにIPアドレスを設定すると、そのIPアドレスが自動的にルータIDとして使用されます。ループバック・インターフェイスは、常にUPしているインターフェイスであるため、ルータIDを固定することが可能です。通常ループバック・インターフェイスには、32ビット・マスクのアドレスを設定することが多いようです(例:1.1.1.1/32)
対策2 ルータIDを手動で設定する
ルータIDを手動で設定します。これにより、ルータIDを固定することが可能です。ただし、重複がないように注意する必要があります。通常、自分のインターフェイス・アドレスのいずれかを設定することが多いようです。
●OSPFの安定度の確認
OSPFでは、エリア単位でLSAが更新されるたびに各ルータがSPF計算を行い、新たな最短パス・ツリーを作成します。ルータは、この計算した回数をカウントしているため、その値をコマンドまたはSNMP(ospfSpfRuns)などで参照することが可能です。
安定しているネットワークでは、通常はほとんど計算が発生しないため、このカウントの増加数は少なくなります*5。これに対し、不安定なネットワークでは常にリンクのUP/DOWNなどが発生するため、このカウント数が著しく増加していることが考えられます。
OSPFネットワークの安定度は、このカウントの増加を定期的に確認しておくことで、ある程度把握することが可能です。
|
本連載は、今回をもちまして最終回となります。これまで、ルーティング・プロトコルの概要から始まり、BGP/RIP/OSPFと代表的なプロトコルの仕組みや運用のコツについて紹介してきましたが、皆さまのネットワーク運用につながるヒントは得られたでしょうか?
大規模、複雑化するネットワーク環境において、ルーティング・プロトコルの重要性は次第に大きくなってきています。@ITでは、今後ともルーティング・プロトコル技術やルータの運用に役立つ情報の提供を続けていく予定ですので、ぜひ期待してお待ちください。
(編集局)
| 「Master of IP Network総合インデックス」 |
ホワイトペーパー(TechTargetジャパン)
- 知られざるLTEのネットワーク構成 (2010/1/13)
LTEのネットワーク構成やプロトコルスタックを詳解。それぞれどんな役割を果たしているかを解説します - iPhoneアプリ内課金導入でガッチリもうけるのだ (2009/12/18)
「iPhoneのアプリ内課金ってどーよ?」 そんな疑問に答えるべく、アプリ内課金のサポート業務を行っている企業を直撃 - インターネット世界の住所の書き方 (2009/12/8)
TCP/IPネットワークであて先を特定する識別子、IPアドレスの構造やサブネットマスクの役割などを説明します - iPhoneアプリに広告を挿入してガッチリもうけるのだ (2009/11/16)
iPhoneアプリに広告を挿入して1日に50万円ももうけている!と聞き、その仕組みを知りたくて、日米のアドネットワーク企業に聞いた
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |










