BGPの経路制御を学ぶうえで、Local Preference(ローカルプリファレンス)は必ず押さえておきたい重要なパスアトリビュートのひとつです。
AS内部での経路の優先度を制御するこの属性を正しく理解することで、柔軟なトラフィックエンジニアリングが実現できます。
この記事では、BGPのLocal Preferenceの意味・仕組み・デフォルト値・優先度設定の方法についてわかりやすく解説していきます。
BGPの経路制御を深く理解したいネットワークエンジニアの方にぜひ参考にしていただきたい内容です。
BGPのLocal Preferenceとは「AS内部で経路の優先度を制御するパスアトリビュート」のこと
それではまず、Local Preferenceとは何かについて解説していきます。
Local Preference(ローカルプリファレンス)とは、同一AS内のiBGPピア間で経路の優先度を伝達するためのパスアトリビュートのことです。
複数の出口経路がある場合に、どの経路を優先してトラフィックを送り出すかをAS内部で統一的に制御する役割を担っています。
Local Preferenceの値が高いほど優先度が高く、同じ宛先への複数の経路の中からLocal Preferenceが最も高い経路がベストパスとして選択されます。
Local Preferenceとは:
AS内部(iBGP)で経路の優先度を制御するパスアトリビュート。
値が高いほど優先度が高く、デフォルト値は100。
eBGPピアには伝達されず、AS内部でのみ有効な属性。
Local Preferenceのデフォルト値
Local Preferenceのデフォルト値はCiscoルーターでは100に設定されています。
Juniperルーターでは同様の機能がLocal Preferenceとして動作し、デフォルト値は100です。
デフォルト値のままでは経路間の優先度に差がつかないため、意図的な経路制御を行う際はポリシーでLocal Preferenceの値を変更します。
値を100より高く設定すると優先度が上がり、100より低く設定すると優先度が下がります。
設定できる値の範囲は0〜4294967295(32ビットの最大値)であり、非常に広い範囲で優先度の調整が可能です。
Local PreferenceはiBGPでのみ伝達される
Local Preferenceの重要な特性として、eBGPピアには伝達されずAS内部のiBGPピア間でのみ有効という点があります。
eBGPで受信した経路にLocal Preferenceが設定されていても、その値はAS外部には送信されません。
これにより各ASは独自のLocal Preferenceポリシーを持つことができ、隣接ASのポリシーに影響を与えることなく内部の経路制御が実現できます。
AS間の経路制御にはMEDやAS Pathプリペンドなど別のアトリビュートを使用することになります。
Local PreferenceはあくまでAS内部の出口経路の選択を統一するための属性と理解しておくことが重要です。
Local Preferenceの仕組みと経路選択への影響を確認しよう
続いては、Local Preferenceが経路選択にどのように影響するかを確認していきます。
| 経路 | Local Preference値 | ベストパス選択結果 | 用途 |
|---|---|---|---|
| 経路A(ISP1経由) | 200 | 選択される(優先) | プライマリ回線として優先 |
| 経路B(ISP2経由) | 100(デフォルト) | 選択されない | バックアップ回線として待機 |
| 経路C(ISP3経由) | 50 | 選択されない | 最終手段の経路として待機 |
Local Preferenceによる出口経路の制御
マルチホーム構成(複数ISPへの接続)では、どのISPを経由してトラフィックを送り出すかをLocal Preferenceで制御するのが一般的です。
プライマリとして使いたいISP経由の経路にLocal Preference値を高く設定し、バックアップ回線の経路には低い値を設定することで、通常時はプライマリISPを優先・障害時はバックアップへ自動切り替えという動作が実現できます。
この設定はAS内部のすべてのiBGPルーターに同じLocal Preference値が伝達されるため、AS全体で統一した出口選択が可能になります。
単一のルーターだけでなくAS全体の出口トラフィックを一元的に制御できる点がLocal Preferenceの大きなメリットです。
BGPベストパス選択アルゴリズムにおけるLocal Preferenceの位置づけ
BGPのベストパス選択はWeightの次にLocal Preferenceが評価されるため、AS全体に影響する優先度制御としてはLocal Preferenceが最も重要なアトリビュートといえます。
BGPベストパス選択の主な順序(CiscoルーターのWeight除く):
①Local Preference(高い方優先)
②ローカルで生成された経路を優先
③AS Pathが短い経路を優先
④Origin(IGP > EGP > Incomplete)
⑤MEDが低い経路を優先
⑥eBGP経由の経路をiBGP経由より優先
WeightはCisco独自のローカル設定であり他のルーターには伝達されないため、AS全体で有効な優先度制御としてはLocal Preferenceが実質的な第一順位になります。
Local Preferenceを正しく設定することで、その後の選択基準(AS Path・MEDなど)に頼らずとも目的の経路をベストパスとして選択させることができます。
Local Preferenceが同じ場合の動作
複数の経路でLocal Preferenceが同じ値に設定されている場合、次の選択基準であるAS Pathの長さや他のアトリビュートを使って優劣が決まります。
意図的に複数経路を同じLocal Preferenceにしてロードバランシング(負荷分散)を実現するという設計も可能です。
等コストマルチパス(ECMP)と組み合わせることで、複数の出口経路に均等にトラフィックを分散させることができます。
単純な優先・非優先の設定だけでなく、トラフィックの分散にも活用できる柔軟性がLocal Preferenceの特徴のひとつです。
Local Preferenceの設定方法
続いては、Local Preferenceの具体的な設定方法を確認していきます。
CiscoルーターとJuniperルーターを例に解説します。
CiscoルーターでのLocal Preference設定
CiscoルーターでLocal Preferenceを設定するには、route-mapを使って受信した経路にLocal Preferenceの値を付与します。
CiscoルーターのLocal Preference設定例:
route-map SET-LOCAL-PREF permit 10
set local-preference 200
!
router bgp 65001
neighbor 203.0.113.1 remote-as 65002
neighbor 203.0.113.1 route-map SET-LOCAL-PREF in
上記の設定では、ネイバー203.0.113.1から受信したすべての経路にLocal Preference値200を設定します。
route-mapの条件(match句)を使って特定のプレフィックスやAS Pathに対してのみLocal Preferenceを変更することも可能で、細かな粒度での経路制御が実現できます。
設定後はshow ip bgp コマンドで対象経路のLocal Preference値が正しく反映されているかを確認しましょう。
JuniperルーターでのLocal Preference設定
JuniperルーターではポリシーステートメントでLocal Preferenceを設定します。
JuniperルーターのLocal Preference設定例:
policy-options {
policy-statement SET-LOCAL-PREF {
term PREF-200 {
then {
local-preference 200;
accept;
}
}
}
}
protocols {
bgp {
group EBGP {
neighbor 203.0.113.1 {
import SET-LOCAL-PREF;
}
}
}
}
Juniperではimportポリシーとして適用することで、受信経路に対してLocal Preferenceを設定できます。
term句に条件(from句)を追加することで、特定のプレフィックスやコミュニティに対してのみLocal Preferenceを変更する細かい制御も可能です。
Local Preference設定時の注意点
Local Preferenceを設定する際には、AS内部のすべてのルーターに意図した値が正しく伝達されているかを確認することが重要です。
iBGPのフルメッシュ構成やRoute Reflectorを使用している環境では、Local Preferenceがすべてのルーターに伝播しているかをshow ip bgpコマンドで確認する習慣をつけましょう。
また、Local Preferenceの変更はAS全体の出口トラフィックに影響するため、設定変更前に影響範囲を十分に確認してから適用することが推奨されます。
本番環境での設定変更はメンテナンスウィンドウを設けて慎重に行い、変更後の経路の動作を検証することが安定運用の基本です。
Local Preferenceの活用シーンと実践的なポリシー設計
続いては、Local Preferenceの実践的な活用シーンとポリシー設計のポイントを確認していきます。
マルチホーム環境でのプライマリ・バックアップ制御
Local Preferenceが最もよく活用される場面のひとつが、複数ISPへの接続を持つマルチホーム環境でのプライマリ・バックアップ経路の制御です。
プライマリISP経由の経路にLocal Preference 200・バックアップISP経由の経路にLocal Preference 100を設定することで、通常時はプライマリISPを使用し障害時に自動的にバックアップへ切り替わる構成が実現できます。
この設定はAS内すべてのルーターに伝達されるため、複数のエッジルーターがある大規模ネットワークでも統一した出口制御が可能です。
プライマリ回線が復旧した際には自動的に元の経路が優先されるため、手動での切り戻し作業が不要になります。
コミュニティと組み合わせた高度な経路制御
BGPコミュニティアトリビュートとLocal Preferenceを組み合わせることで、より柔軟な経路制御ポリシーの設計が可能になります。
ISPから受信する経路にコミュニティ値が付与されている場合、そのコミュニティ値に応じてLocal Preferenceを変更する設定がコミュニティベースの経路制御として広く使われています。
例えばISPが提供するコミュニティ値を使って特定の地域向け経路のLocal Preferenceを高く設定するといった、地域ごとのトラフィック最適化が実現できます。
コミュニティとLocal Preferenceを組み合わせた設計は、大規模ネットワークでのきめ細かいトラフィックエンジニアリングに非常に有効なアプローチです。
Local PreferenceとMEDの使い分け
Local PreferenceとMED(Multi Exit Discriminator)はどちらも経路の優先度制御に使われますが、適用範囲が異なります。
Local PreferenceはAS内部の出口経路選択に使われるのに対し、MEDは隣接ASに対して入口経路の優先度を示すために使われます。
自AS内から外部への出口トラフィックを制御したい場合はLocal Preferenceを、外部から自ASへの入口トラフィックを制御したい場合はMEDを使うという使い分けが基本です。
両者の役割の違いを正しく理解することで、インバウンド・アウトバウンド双方のトラフィックを意図通りに制御できる設計が実現できます。
まとめ
この記事では、BGPのLocal Preferenceの意味・仕組み・デフォルト値・設定方法・実践的な活用シーンについて解説しました。
Local PreferenceとはAS内部のiBGP間で経路の優先度を制御するパスアトリビュートであり、値が高いほど優先度が高く・デフォルト値は100・eBGPには伝達されないという3つの特性を押さえておくことが基本です。
マルチホーム環境でのプライマリ・バックアップ制御やコミュニティとの組み合わせによる高度なトラフィックエンジニアリングなど、実践的な場面で幅広く活用されています。
Local PreferenceとMEDの役割の違いを正しく理解し、インバウンド・アウトバウンド双方のトラフィック制御を適切に設計することが安定したBGP運用の基本です。
Local Preferenceの仕組みをしっかり理解して、BGPの経路制御設計にぜひ役立てていただければ幸いです。