コンフィグレーションガイド Vol.3


12.1.3 経路選択

本装置は,各プロトコルで学習した同じ宛先への経路情報から,それぞれ独立した経路選択手順に従って一つの最適の経路を選択します。同じ宛先への経路情報が各プロトコルでの生成によって複数存在する場合,それぞれの経路情報のディスタンス値が比較されて優先度の最も高い経路情報が有効になります。

BGP4では,自プロトコルを使用し学習した同じ宛先への複数の経路情報から経路選択の優先順位に従って一つの最適の経路を選択します。そのあと,同じ宛先への経路情報が各プロトコル(RIP,OSPF,スタティック)での経路選択によって複数存在する場合は,それぞれの経路情報のディスタンス値が比較されて,優先度の最も高い経路情報をルーティングテーブルに設定します。

なお,コンフェデレーション構成での経路選択は,「12.4.10 コンフェデレーション」を参照してください。

経路選択の条件を,優先順位が高い順に次に示します。

  1. weight値が最も大きい経路を選択します。

  2. LOCAL_PREF属性の値が最も大きい経路を選択します。

  3. AS_PATH属性のAS数が最も短い経路を選択します。

    AS_PATH属性上のパスタイプAS_SETは,全体で一つのASとしてカウントします。

  4. ORIGIN属性の値でIGP,EGP,Incompleteの順で選択します。

  5. MED属性の値が最も小さい経路を選択します。

    MED属性値による経路選択は,同一隣接ASから学習した重複経路に対してだけ有効です。なお,コンフィグレーションコマンドbgp always-compare-medを設定すると,異なる隣接ASから学習した重複経路に対しても有効となります。

  6. 外部ピアで学習した経路,内部ピアで学習した経路の順で選択します。

  7. ネクストホップが最も近い(ネクストホップ解決時に使用したIGP経路のメトリック値が最も小さい)経路を選択します。

  8. 相手BGP識別子(ルータID)が最も小さい経路を選択します。ただし,ORIGINATOR_ID属性を持つ経路は,相手BGP識別子(ルータID)の代わりにORIGINATOR_ID属性の値を比較します。

    外部ピアから受信した経路間で相手BGP識別子(ルータID)の値が異なる場合は,相手BGP識別子(ルータID)および学習元ピアアドレスによる経路選択をしないで,すでに選択されている経路を採用します。なお,コンフィグレーションコマンドbgp bestpath compare-routeridを設定すると,外部ピアから受信した経路間で相手BGP識別子(ルータID)の値が異なる場合にも相手BGP識別子(ルータID)による経路選択ができます。

  9. CLUSTER_LIST属性長が最も短い経路を選択します。

    CLUSTER_LIST属性を持たない経路は,CLUSTER_LIST属性長を0として比較します。

  10. 学習元ピアのアドレスが小さい経路を選択します。

    外部ピアから受信した経路間で相手BGP識別子(ルータID)の値が異なる場合は,相手BGP識別子(ルータID)および学習元ピアアドレスによる経路選択をしないで,すでに選択されている経路を採用します。なお,コンフィグレーションコマンドbgp bestpath compare-routeridを設定すると,外部ピアから受信した経路間で相手BGP識別子(ルータID)の値が異なる場合にも相手BGP識別子(ルータID)による経路選択ができます。

経路選択に関連する経路情報に含まれるBGP属性(weight値,LOCAL_PREF属性,AS_PATH属性,ORIGIN属性,MED属性,NEXT_HOP属性)の概念を次に説明します。

〈この項の構成〉

(1) weight値

weight値は学習元のピア単位に指定する経路の重み付けで,コンフィグレーションコマンドneighbor weightを使用し設定します。より大きい値のweight値を持つ経路が優先されます。

本装置で使用できるweight値は0〜255の範囲で指定します。デフォルト値は0です。

(a) weightの変更

本装置ではコンフィグレーションコマンドneighbor weightを使用してピアから学習した経路のweight値を変更できます。

(2) LOCAL_PREF属性

LOCAL_PREF属性は,同じAS内のルータ間で通知される属性です。同じ宛先ネットワークに対して複数の経路がある場合,LOCAL_PREF属性は該当する宛先ネットワークに対する優先経路を示します。より大きいLOCAL_PREF属性値を持つ経路が優先されます。

本装置で使用できるLOCAL_PREF属性値は0〜65535の範囲で指定します。デフォルト値は100です。

(a) LOCAL_PREF属性のデフォルト値の変更

本装置ではコンフィグレーションコマンドbgp default local-preferenceを設定して,外部ピアから自装置内に取り込む経路情報のLOCAL_PREF属性値を変更できます。

(b) LOCAL_PREF属性のフィルタ単位での変更

本装置では学習経路フィルタや広告経路フィルタとコンフィグレーションコマンドset local-preferenceを組み合わせることによって,自装置内に取り込む経路情報や通知する経路情報のLOCAL_PREF属性を変更できます。

(c) LOCAL_PREF属性による経路選択の例

LOCAL_PREF属性による経路選択を次の図に示します。

図12‒2 LOCAL_PREF属性による経路選択

[図データ]

この図で,AS400はAS200とAS300からネットワークAに対する経路情報を受け取ります。本装置DのLOCAL_PREF値を150に,本装置EのLOCAL_PREF値を50に設定するとします。それによって,本装置DはAS200からの経路情報を本装置Fに通知するときLOCAL_PREF値を150に設定し,本装置EはAS300からの経路情報を本装置Fに通知するとき,LOCAL_PREF値を50に設定します。本装置FでのネットワークAへの経路情報は,本装置Dからの経路情報が本装置Eからの経路情報より大きいLOCAL_PREF属性値を持つため,本装置Dからの経路情報(AS200経由の経路情報)を選択します。

(3) ORIGIN属性

ORIGIN属性は,経路情報の生成元を示します。ORIGIN属性を次の表に示します。

表12‒2 ORIGIN属性

ORIGIN属性

内容

IGP

該当する経路がAS内部で生成されたことを示します。

EGP

該当する経路がEGP経由で学習されたことを示します。

Incomplete

該当する経路が上記以外の方法で学習されたことを示します。

経路選択では,同一宛先への複数の経路が存在する場合,IGP,EGP,Incompleteの順で選択します。

(a) ORIGIN属性の変更

本装置では経路フィルタとコンフィグレーションコマンドset originを組み合わせることによって,自装置内に取り込む経路情報や通知する経路情報のORIGIN属性を変更できます。

(4) AS_PATH属性

AS_PATH属性は,経路情報の宛先ネットワークに到達するまでに通過するAS番号のリストです。経路情報がほかのASに通知されるとき,その経路情報のAS_PATH属性に自AS番号を追加します。また,学習フィルタ情報,広告フィルタ情報とコンフィグレーションコマンドset as-path prepend countとの組み合わせによって複数の自AS番号をAS_PATH属性に追加することもできます。これはある宛先ネットワークへの複数の経路がある場合に特定の経路を選択するのに有効です。

(a) AS_PATH属性による経路選択の例

AS_PATH属性による経路選択を次の図に示します。

図12‒3 AS_PATH属性による経路選択

[図データ]

ルータAが自ASに存在するネットワークAをAS200経由で通知するとき,AS500に到達する経路情報のAS_PATH属性は「200 100」を持ちます。ルータAが自AS内のネットワークAをAS300,AS400経由で通知するとき,AS500に到達する経路情報のAS_PATH属性は「400 300 100」を持ちます。したがって,AS500の本装置Eは最も短いAS_PATH属性を持つAS200経由で到達した経路を選択します。

(b) set as-path prepend countコマンド使用時の経路選択

コンフィグレーションコマンドset as-path prepend countの例を次の図に示します。

図12‒4 set as-path prepend countコマンドの使用例

[図データ]

この図で,本装置Aが本装置Eに対しAS300 AS400経由の経路を選択させたい場合,AS200に通知する経路情報のAS_PATH属性に複数の自AS番号を追加します。例えば,自AS番号を三つ追加した場合,AS200経由でAS500に到達する経路情報のAS_PATH属性は「200 100 100 100」を持ち,本装置Eは最も短いAS_PATH属性を持つAS300 AS400経由で到達した経路を選択します。

(5) MED属性

MED属性は,同一の隣接ASから学習した,ある宛先への複数のBGP4経路の優先度を決定する属性です。より小さいMED属性値を持つ経路情報が優先されます。コンフィグレーションコマンドbgp always-compare-medを指定して,異なる隣接ASから学習したBGP4経路間の優先度選択に使用できます。

(a) MED属性による経路選択の例

MED属性による経路選択を次の図に示します。

図12‒5 MED属性による経路選択

[図データ]

ある宛先ネットワークに対する経路情報をルータCはMED属性値10で,ルータDはMED属性値20で本装置Aに通知しているものとします。この場合,本装置AはルータCから通知された経路情報を該当する宛先ネットワークへの経路として選択します。

(b) MED属性値の変更

本装置では学習フィルタ情報や広告フィルタ情報とコンフィグレーションコマンドset metricを組み合わせることによって,自装置内に取り込む経路情報や通知する経路情報のMED属性値を変更できます。

また,set metric-typeにinternalを指定した場合,ネクストホップ解決に使用しているIGP経路のメトリック値を,通知するBGP4経路のMED属性値にできます。set metric-type internalの使用例を次の図に示します。

図12‒6  set metric-type internalの使用例

[図データ]

この図では本装置A,本装置Bの間で内部ピアを形成しています。MED属性値=100で本装置Aから通知されたBGP4の経路情報を本装置BがルータCに通知するとき,本装置Bから本装置AまでのIGP経路のメトリック値=2をMED属性値に設定したい場合,本装置Bでコンフィグレーションコマンドset metric-type internalを指定します。

(6) NEXT_HOP属性

NEXT_HOP属性は,ある宛先ネットワークに到達するために使用されるネクストホップのIPアドレスです。本装置では外部ピアに経路情報を通知する場合,NEXT_HOP属性にピアリングに使用した自側のIPアドレスを設定します。内部ピアおよびメンバーAS間ピアに経路情報を通知する場合はNEXT_HOP属性を書き替えません。

(a) NEXT_HOP属性の設定例

BGP4ピアから学習した経路を広告する場合に通知する経路情報のNEXT_HOP属性の設定例を次の図に示します。

図12‒7 BGP4ピアから学習した経路を広告する場合に通知する経路情報のNEXT_HOP属性の設定例

[図データ]

  • 外部ピアを形成するルータBへの経路情報

    NEXT_HOP属性は本装置AとルータB間のインタフェースで本装置A側のインタフェースアドレスIbになります。

  • 内部ピアを形成するルータCへの経路情報

    NEXT_HOP属性はルータBから受信した経路情報に設定されているNEXT_HOP属性になります。

  • 内部ピアを形成するルータDへの経路情報

    NEXT_HOP属性はルータBから受信した経路情報に設定されているNEXT_HOP属性になります。

IGP経路をBGP4で広告する場合に通知する経路情報のNEXT_HOP属性の設定例を次の図に示します。

図12‒8 IGP経路をBGP4で広告する場合に通知する経路情報のNEXT_HOP属性の設定例

[図データ]

  • 外部ピアを形成するルータCへの経路情報

    NEXT_HOP属性は本装置BとルータC間のインタフェースで本装置B側のインタフェースアドレスIcになります。

  • 内部ピアを形成するルータDへの経路情報

    NEXT_HOP属性はIGP経路が解決するネットワークAへのネクストホップアドレスである,ルータAのインタフェースアドレスIaになります。

(b) NEXT_HOP属性を書き替える場合

本装置では次に示すコンフィグレーションコマンドを使って,NEXT_HOP属性を書き換えられます。

  • neighbor next-hop-selfコマンド

    BGP4ピアから受信した経路情報をBGP4ピアへ広告する際のNEXT_HOP属性を,ピアリングに使用している自側アドレスに書き替えます。ただし,ルート・リフレクションやIGP経路をBGP4で内部ピアへ広告する場合は除きます。

  • neighbor always-nexthop-selfコマンド

    ルート・リフレクションやIGP経路をBGP4で広告する場合を含めて,内部ピアへ広告する際のNEXT_HOP属性を,ピアリングに使用している自側アドレスに書き替えます。

  • neighbor set-nexthop-peerコマンド

    学習した経路情報のNEXT_HOP属性を,ピアリングに使用している相手側アドレスに書き替えます。

(c) NEXT_HOP属性の解決

内部ピアからBGP4経路情報を学習した場合,NEXT_HOP属性で示されたアドレスへ到達するためのパスを,IGP経路,スタティック経路,および直結経路によって解決します。BGP4経路のネクストホップへ到達可能な経路の中から,宛先のマスク長が最も長い経路を選択し,その経路のパスをBGP4経路のパスとして使用します。また,コンフィグレーションコマンドbgp nexthopを使用し,NEXT_HOP属性の解決に使用する経路のプロトコル種別およびプレフィックスを指定できます。

なお,ネクストホップを解決した経路がスタティック経路で,かつnoinstallパラメータの指定がある場合,当該BGP4経路を抑止します。