解説書 Vol.1
OSPFでは,ルーティングに必要なトラフィックと,経路選択に使用するアルゴリズムの処理に必要な時間を削減するために,ASを複数のエリアに分割できます。エリア分割を使用したOSPFネットワークトポロジの例を次の図に示します。
図8-29 エリア分割を使用したOSPFネットワークトポロジの例
あるエリア内の接続状態の情報は,ほかのエリアには通知されません。また,ルータには,接続していないエリアの接続状態の情報はありません。
- <この項の構成>
- (1) バックボーン
- (2) エリアボーダルータ
- (3) スタブエリア
- (4) NSSA
- (5) エリア分割した場合の経路制御
- (6) エリアボーダルータでの経路の要約
- (7) 仮想リンク
エリアIDが0.0.0.0であるエリアをバックボーンと呼びます。ASが複数のエリアに分割されている場合,バックボーンには特別な役割があります。ASを複数のエリアに分割する場合には,エリアのどれか一つをバックボーンエリアとして定義する必要があります。ただし,一つのASにバックボーンを二つ以上ある構成にしないでください。そのような構成の場合,情報がそれぞれのバックボーンに分散されるため,到達不能である経路が発生したり,最適な経路を選択しなかったりすることがあります。
「図8-29 エリア分割を使用したOSPFネットワークトポロジの例」のルータ2やルータ5のように,複数のエリアに所属しているルータを,エリアボーダルータと呼びます。エリアボーダルータでは,所属しているすべてのエリアについて,それぞれ別個にSPFアルゴリズムに基づいて経路選択を行います。なお,エリアボーダルータは,バックボーンを通じてエリア間の経路情報の交換を行うため,必ずバックボーンに所属する必要があります。
エリア分割を行うと,ルータや経路情報トラフィックの負荷が減る一方で,OSPFのアルゴリズムが複雑になります。特に,障害に対して適切な動作をする構成が困難になります。ルータやネットワークの負荷に問題がない場合は,エリア分割を行わないことをお勧めします。
- エリアボーダルータでは,所属しているエリアの数だけ,SPFアルゴリズムを動作させます。エリアボーダルータには,あるエリアのトポロジ情報を要約し,ほかのエリアへ通知する機能があります。このため,所属するエリアの数が多くなるとエリアボーダルータの負荷が高くなります。このため,エリアボーダルータにあまり多くのエリアを所属させないようなネットワーク構成にすることをお勧めします。
- あるエリアにエリアボーダルータが一つしかない場合,このエリアボーダルータに障害が発生するとバックボーンから切り放され,ほかのエリアとの接続性が失われます。重要な機能を提供するサーバや重要な接続のあるAS境界ルータの存在するエリアには,複数のエリアボーダルータを配置し,エリアボーダルータの配置に対して十分な迂回路が存在するように,ネットワークを構築することをお勧めします。
- インタフェースおよび装置アドレスを同時に複数のエリアのOSPFインタフェースとなる構成にしないでください。本装置に接続している各インタフェースおよび装置アドレスは,それぞれ一つのエリアにだけ所属できます。複数のエリアにOSPFインタフェースとして定義した場合,対象インタフェースおよび装置アドレスは,どのエリアでもOSPFインタフェースとして動作しなくなります。
バックボーンではなく,AS境界ルータが存在しないエリアをスタブエリアとして定義(コンフィグレーションコマンドarea(ospfモード)のstubサブコマンドで指定)できます。
エリアボーダルータは,スタブエリアとして定義したエリアにAS外経路を導入しません。このため,スタブエリア内では経路情報を減らし,ルータの情報の交換や経路選択の負荷を減らすことができます。
AS外経路の代わりとして,スタブエリアにデフォルトルートを導入するようにエリアボーダルータを設定(コンフィグレーションコマンドarea(ospfモード)のstub costサブコマンドで指定)できます。この設定によって,スタブエリア内のAS外経路の扱いについては,デフォルトルートへのコストとエリアボーダルータまでのコストの合計に基づいて,経路を選択します。ただし,デフォルトルートに基づいて経路が選択されるため,スタブエリア内では,AS外経路について比較的遠い経路を選択することがあります。
バックボーンでないエリアを,NSSAとして定義(コンフィグレーションコマンドarea(ospfモード)のnssaサブコマンドで指定)できます。
エリアボーダルータは,NSSAとして定義したエリアへ,ほかのエリアから学習したAS外経路を広告しません。このため,NSSA内では経路情報を減らし,ルータの情報の交換や経路選択の負荷を減らすことができます。ただし,エリアボーダルータは,NSSA内のAS外経路をNSSAではないエリアへ広告します(AS外経路変換機能)。
他エリア内のAS外経路の代わりとして,NSSAにデフォルトルートを導入するように,エリアボーダルータを設定(コンフィグレーションコマンドarea(ospfモード)のnssa costサブコマンドで指定)できます。この設定によって,NSSA内にデフォルトルートをAS外経路として広告します。ただし,エリアボーダルータはこの経路を学習しません。また,NSSA内にデフォルトルートを広告するルータが複数存在する場合,AS外経路として優先度の高い経路を選択します。
エリアボーダルータは,バックボーンを除くすべての所属しているエリアの経路情報を要約した上で,バックボーンに所属するすべてのルータへ通知します。また,バックボーンの経路情報の要約と,バックボーンに流れている要約されたほかのエリアの経路情報を,バックボーン以外の接続しているエリアのルータへ通知します。
あるルータが,あるアドレスについて,要約された経路情報を基に経路を決定した場合,このアドレス宛ての経路は要約された経路情報の通知元であるエリアボーダルータを経由します。このため,異なるエリア間を結ぶ経路は必ずバックボーンを経由します。
エリアボーダルータでは,あるエリアの経路情報をほかのエリアに広告するに当たってルータやネットワーク間の接続状態と接続のコストによるトポロジ情報を,エリアボーダルータからルータやネットワークへのコストに要約します。
経路の集約および抑制とエリア外への要約を次の表に示します。
エリア内のネットワークアドレス 集約および抑制の設定 エリア外へ通知する要約 10.0.1.0/24
10.0.2.0/25
10.0.2.128/25
10.0.3.0/24なし 10.0.1.0/24
10.0.2.0/25
10.0.2.128/25
10.0.3.0/2410.0.1.0/24
10.0.2.0/25
10.0.2.128/25
10.0.3.0/2410.0.0.0/23
10.0.2.0/2410.0.0.0/23
10.0.2.0/24
10.0.3.0/2410.0.1.0/24
10.0.2.0/25
10.0.2.128/25
10.0.3.0/24
192.168.3.0/26
192.168.3.64/26
192.168.3.128/2610.0.0.0/8 (抑制)
192.168.3.0/24192.168.3.0/24 エリアボーダルータでのエリア内のトポロジ情報を要約するに当たり,アドレスの範囲を定義することによって,その範囲に含まれる経路情報を一つに集約できます。アドレスの範囲の指定には,マスク付のアドレスを使用します(コンフィグレーションコマンドarea(ospfモード)のnetworksサブコマンドで指定)。
集約する範囲を定義すると,エリア内にマスク付アドレスの範囲に含まれるネットワークが一つでもあった場合,範囲に含まれるすべてのネットワークをこのマスク付アドレスを宛先とする経路情報へ集約し,ほかのエリアへ通知します。範囲に含まれる各ネットワークは,このエリアボーダルータからほかのエリアへは通知されません。このとき,集約した経路情報のコストには範囲に含まれるネットワーク中の最も大きなコストを使用します。
また,このマスク付アドレスの範囲に含まれるネットワークの広告を抑制(コンフィグレーションコマンドarea(ospfモード)のnetworksサブコマンドでrestrictを指定)できます。この場合,範囲内の各ネットワークをほかのエリアへは通知しない上に,マスク付アドレスに集約した経路もほかのエリアへは通知しません。この結果,ほかのエリアからはこのエリアボーダルータ経由で指定した範囲に含まれるアドレスへの経路は存在しないように見えます。
集約および抑止するアドレスの範囲は,一つのエリアについて複数定義できます。また,エリア内にどの定義の範囲にも含まれないアドレスを使用しているルータやネットワークが存在してもかまいません。ただし,ネットワークを構成するに当たり,トポロジと合ったアドレスを割り当てた上で,トポロジに応じた範囲を使用して集約を定義すると,選択する経路の適切さを損なわないで,効率的にOSPFの経路情報トラフィックを削減できます。
OSPFでは,スタブエリア,またはNSSAとして定義しておらず,バックボーンでもないエリア上のある二つのエリアボーダルータで,このエリア上の二つのルータ間の経路をポイント−ポイント型回線と仮想することによって,バックボーンのインタフェースとして使用できます。この仮想の回線のことを仮想リンクと呼びます。仮想リンクの実際の経路があるエリアのことを,仮想リンクの通過エリアと呼びます。
仮想リンクの使い方として,次に示す三つの例を挙げます。
- バックボーンに物理的に接続していないエリアの仮想接続
- 複数のバックボーンの結合
- バックボーンの障害による分断に対する経路の予備
(a) バックボーンに物理的に接続していないエリアの仮想接続
次の図で,エリア2はバックボーンに接続していません。この場合,ルータ1とルータ2の間にエリア1を通過エリアとする仮想リンクを定義することによって,ルータ2はバックボーンに接続するエリアボーダルータとなり,エリア2をバックボーンに接続していると見なせるようになります。
(b) 複数のバックボーンの結合
次の図では,AS内にバックボーンであるエリアが二つ存在します。この状態では,バックボーンの分断による経路到達不能などの障害が発生することがあります。この場合,ルータ1とルータ2の間にエリア1を通過エリアとする仮想リンクを定義することによって,バックボーンが結合されることになり,この障害を回避できます。
(c) バックボーンの障害による分断に対する経路の予備
次の図では,バックボーンでネットワークの障害が発生し,ルータ1とルータ2の間の接続が切断された場合,バックボーンが分断されます。この場合,ルータ1とルータ2の間にエリア1を通過エリアとする仮想リンクを定義すると,これがバックボーンの分断に対する予備の経路(バックボーンでのルータ1−ルータ2のコストと比較して,仮想リンクのコストが十分に小さい場合には,主な経路)になります。
(d) 仮想リンクについての注意事項
仮想リンクを設定および運用するに当たって,次の注意事項に留意してください。
- 仮想リンクは,仮想リンクの両端のルータで共に設定する必要があります。
- 仮想リンクのコストは,通過エリアでの仮想リンクの両端のルータ間の経路コストになります。
- 通過エリアで,仮想リンクの両端のルータ間の経路がイコールコストマルチパスの場合,一般のトラフィックと仮想リンク上の経路情報トラフィックでは,経路が異なることがあります。
- 仮想リンク上のHelloパケットの送信間隔(hellointerval)は,通過エリア上での仮想リンクの両端ルータ間の経路を構成する各ネットワーク上の,各インタフェースに設定してあるHelloパケットの送信間隔のどれよりも長くする必要があります。この値をどれよりも短く設定した場合,通過エリア内の経路上のネットワークの障害にあたって,通過エリア内の代替経路への交替に基づいて仮想リンクが使用する経路が交替するよりも先に,仮想リンクが切断することがあります。
- 仮想リンク上のOSPFパケットの再送間隔(retransmitinterval)は,仮想リンクの両端ルータ間をパケットが往復するのに必要な時間よりも十分に長く設定する必要があります。ただし,あまり長過ぎる値を設定すると,混雑しているネットワーク上での仮想リンクの運用時に仮想リンク上での経路情報の交換に障害が発生することがあります。
Copyright (c)2005, 2011, ALAXALA Networks Corporation. All rights reserved.