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


21.1.3 経路選択

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

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

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

  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)による経路選択ができます。

BGP4+でも,RIPng,OSPFv3,スタティックなどのIPv6ルーティングによる同じ宛先への経路情報が複数存在する場合,同様に扱います。

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

weight値と,経路選択に関連する経路情報に含まれるBGP属性の概念を次に説明します。BGP属性のうち,LOCAL_PREF属性,AS_PATH属性,ORIGIN属性,およびMED属性はBGP4とBGP4+で同じです。NEXT_HOP属性はBGP4で,MP_REACH_NLRI属性はBGP4+で使用します。

〈この項の構成〉

(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属性による経路選択を次の図に示します。

図21‒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に設定します。この結果,本装置Dからの経路情報が本装置Eからの経路情報より大きいLOCAL_PREF属性値を持つため,本装置FではネットワークAへの経路情報として,本装置Dからの経路情報(AS200経由の経路情報)を選択します。

(3) ORIGIN属性

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

表21‒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属性による経路選択を次の図に示します。

図21‒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の使用例を次の図に示します。

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

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

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

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

[図データ]

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

(b) MED属性値の変更

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

また,コンフィグレーションコマンドset metric-typeでinternalパラメータを指定した場合,ネクストホップ解決に使用しているIGP経路のメトリック値を,通知するBGP経路のMED属性値にできます。set metric-type internalの使用例を次の図に示します。

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

[図データ]

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

(6) NEXT_HOP属性

BGP4では,NEXT_HOP属性の値を経路のネクストホップとして採用します。

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

(a) NEXT_HOP属性の設定例

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

図21‒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属性の設定例を次の図に示します。

図21‒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またはrejectパラメータの指定がある場合,該当するBGP4経路を抑止します。

(7) MP_REACH_NLRI属性のネクストホップ情報

BGP4+ではBGP4+ピアから受信したNEXT_HOP属性の値を無視します。その代わりにMP_REACH_NLRI属性のネクストホップ情報を経路のネクストホップとして採用します。

BGP4+では相手BGP4+スピーカに経路情報を通知する場合,IPv6グローバルアドレスでピアリングしたときだけ,MP_REACH_NLRI属性のネクストホップ情報としてピアリングに使用した自側インタフェースのグローバルアドレスとリンクローカルアドレス(外部ピアの場合だけ)を設定します。

(a) ネクストホップ情報の設定例

BGP4+ピアから学習した経路を広告する場合に通知する経路情報のネクストホップ情報の設定例を次の図に示します。

図21‒9 BGP4+ピアから学習した経路を広告する場合に通知する経路情報のネクストホップ情報の設定例

[図データ]

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

    MP_REACH_NLRI属性のネクストホップ情報には,本装置AとルータB間のインタフェースの,本装置A側のグローバルアドレスおよびリンクローカルアドレスIbが設定されます。ルータBが実際のネクストホップとしてどちらを採用するかは,本装置Aは関知しません。

  • 直接接続された外部ピアを形成するルータBからの経路情報

    MP_REACH_NLRI属性のネクストホップ情報にグローバルアドレスとリンクローカルアドレスとのどちらか一方だけが設定されていた場合は,そのアドレスをネクストホップとして使用します。両方のアドレスが設定されていた場合は,リンクローカルアドレスをネクストホップとして使用します。

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

    ルータBから受信した経路情報のMP_REACH_NLRI属性のネクストホップ情報にグローバルアドレスだけが設定されている場合,MP_REACH_NLRI属性のネクストホップ情報には,ルータBから受信したグローバルアドレスを設定します。

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

    ルータBから受信した経路情報のMP_REACH_NLRI属性のネクストホップ情報にグローバルアドレスとリンクローカルアドレスが設定されている場合,MP_REACH_NLRI属性のネクストホップ情報には,本装置AとルータD間とのBGPセッションで使用する本装置のアドレスが設定されます。

IGP経路をBGP4+で広告する場合に通知する経路情報のネクストホップ情報の設定例を次の図に示します。

図21‒10 IGP経路をBGP4+で広告する場合に通知する経路情報のネクストホップ情報の設定例

[図データ]

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

    MP_REACH_NLRI属性のネクストホップ情報には,本装置BとルータC間のインタフェースの,本装置B側のグローバルアドレスおよびリンクローカルアドレスIcが設定されます。ルータCが実際のネクストホップとしてどちらを採用するかは,本装置Bは関知しません。

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

    MP_REACH_NLRI属性のネクストホップ情報には,IGP経路が解決するネットワークAへのネクストホップアドレスである,ルータAのインタフェースアドレスIaが設定されます。ただし,Iaがリンクローカルアドレスの場合,MP_REACH_NLRI属性のネクストホップ情報には,本装置BとルータD間のインタフェースの本装置B側のグローバルアドレスIdが設定されます。

(b) ネクストホップ情報を書き替える場合

本装置では次に示すコンフィグレーションコマンドを使用して,MP_REACH_NLRI属性のネクストホップ情報を書き換えられます。

  • neighbor next-hop-selfコマンド

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

  • neighbor always-nexthop-selfコマンド

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

  • neighbor set-nexthop-peerコマンド

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

(c) ネクストホップの解決

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

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