BGP (Border Gateway Protocol) は、インターネットや大規模な企業ネットワークで使用される、最も重要なルーティングプロトコルの一つです。ネットワーク運用において、異なる自律システム(AS)間でのトラフィックの流れを効率的に管理することは極めて重要であり、その際にLocal Preference属性は、AS内部での経路選択をコントロールするために使われます。
この記事では、Ciscoルータを使ったLocal Preferenceの基本的な動作や設定方法を具体例を交えて解説し、どのようにしてトラフィックを特定の出口へ優先的に誘導できるかを検証します。
Local Preference とは
Local Preference(ローカルプリファレンス)は、BGP (Border Gateway Protocol) において、自律システム(AS)内での出口パスの選択に使用される重要な属性です。この属性は、AS内のすべての内部BGP (iBGP) ルータ間で共有され、外部BGP (eBGP) ピアには伝達されません。Local Preferenceの数値が高いほど、その経路が優先されます。
- デフォルト値:100
- Local PreferenceはAS全体の出口パスを統一するために使われます。例えば、複数の出口がある場合、どの出口を経由するかをAS内のポリシーに従って一貫性を持って決定できます。
Local Preferenceの利点は、
- 柔軟な経路制御: 自律システム内で優先する出口を指定できるため、特定の出口を優先的に使いたい場合に便利です。
- 全体のトラフィック管理: ある地点にトラフィックを集中させることで、効率的な帯域利用が可能になります。
検証環境の構成と設定
本検証では、BGP Local Preferenceの設定がルーティングにどのように影響を与えるかを確認するために、シンプルなネットワーク環境を構築します。目的は、異なる出口ルータ(R2, R3)からの経路選択をLocal Preferenceによってコントロールすることです。各ルータは、異なるAS(自律システム)に所属しており、R5から広告されたプレフィックスがどの出口を通るかを確認します。
検証の概要
R5が持つループバックアドレス 5.5.5.5/32 をAS236に広告し、その経路に対してLocal Preferenceを設定することで、AS236内で異なる出口ルータ(R2, R3)を経由するパスを選択できるかを検証します。Local Preferenceの値が異なる場合、R6がどの出口ルータを優先するか確認します。
- R5: AS5に所属し、ループバックアドレス 5.5.5.5/32 を持つ。AS236に対してこのプレフィックスを広告する。
- R2, R3: AS236に所属し、R6に対して経路情報を提供する。デフォルトではLocal Preferenceは100。
- R6: AS236内のルータで、R2およびR3から受け取った経路を基にどちらのルータを経由するか判断する。
ルータ間の接続は、内部ネットワークとしてEIGRPを用いて設定します。この設定により、ルータ同士が物理的に到達可能であることを確認した上で、BGPによる経路広告を行います。
BGPのピアリング設定
まず、各ルータにおいてBGPピアリングを設定し、AS間でのルート情報の交換を確立します。以下の設定例は、R5とR2、R3間でBGPピアリングを構築する手順です。
R5の設定例
R5は、自身のループバックアドレス 5.5.5.5/32 をAS236に対して広告します。
R5(config)# router bgp 5 R5(config-router)# neighbor 192.168.25.2 remote-as 236 R5(config-router)# neighbor 192.168.35.3 remote-as 236 R5(config-router)# network 5.5.5.5 mask 255.255.255.255
R2の設定例
R2は、R2(AS236)およびR4(AS236)とのBGPピアを設定します。
R2(config)# router bgp 236 R2(config-router)# neighbor 192.168.25.5 remote-as 5 R2(config-router)# neighbor 192.168.26.6 remote-as 236
R3の設定例
R3も同様に、R5(AS5)およびR6(AS236)とのピアリングを設定します。
R3(config)# router bgp 236 R3(config-router)# neighbor 192.168.35.5 remote-as 5 R3(config-router)# neighbor 192.168.36.6 remote-as 236
R6の設定例
R6は、R5(AS5)およびR6(AS236)とのBGPピアを設定します。
R6(config)# router bgp 236 R6(config-router)# neighbor 192.168.26.2 remote-as 236 R6(config-router)# neighbor 192.168.36.3 remote-as 236
Local Preferenceの動作確認
Local Preference属性の設定がBGPの経路選択にどのように影響を与えるかを検証します。具体的には、Local Preferenceのデフォルト設定およびカスタマイズ設定を使って、AS内の異なる出口ルータを経由する経路がどのように選ばれるかを確認します。
デフォルトのLocal Preference設定
まず、何も変更していない状態で、R6がAS236内でどの経路を選んでいるかを確認します。この時点では、すべてのルータでLocal Preferenceはデフォルトの100です。以下のコマンドでR6のBGPテーブルを表示します。
R6# show ip bgp
BGP table version is 2, local router ID is 6.6.6.6
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* i 5.5.5.5/32 192.168.35.5 0 100 0 5 i
*>i 192.168.25.5 0 100 0 5 i
- Network: 5.5.5.5/32 はR5から広告されたループバックアドレスです。
- Next Hop: 192.168.35.5 および 192.168.25.5 はそれぞれR3およびR2を経由する経路です。
- LocPrf: どちらの経路もLocal Preferenceはデフォルトの100です。
- >:R6が選んだベストパスはR2経由の 192.168.25.5 です。
R6# show ip bgp 5.5.5.5 BGP routing table entry for 5.5.5.5/32, version 2 Paths: (2 available, best #2, table default) Not advertised to any peer 5 192.168.35.5 (metric 307200) from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, internal rx pathid: 0, tx pathid: 0 5 192.168.25.5 (metric 307200) from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal, best rx pathid: 0, tx pathid: 0x0
Local Preferenceの変更によるパス選択
次に、Local Preferenceを使用して、R3経由のパスを優先させるように設定します。この例では、R3のデフォルトLocal Preferenceを1000に変更します。
R3(config)# router bgp 236 R3(config-router)# bgp default local-preference 1000
設定を適用した後、BGPテーブルをクリアして最新情報を反映させます。
R3# clear ip bgp * soft
再度、R6のBGPテーブルを確認します。
R6# show ip bgp BGP table version is 3, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 5.5.5.5/32 192.168.35.5 0 1000 0 5 i * i 192.168.25.5 0 100 0 5 i
R6# show ip bgp 5.5.5.5 BGP routing table entry for 5.5.5.5/32, version 3 Paths: (2 available, best #1, table default) Not advertised to any peer 5 192.168.35.5 (metric 307200) from 192.168.36.3 (3.3.3.3) Origin IGP, metric 0, localpref 1000, valid, internal, best rx pathid: 0, tx pathid: 0x0 5 192.168.25.5 (metric 307200) from 192.168.26.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal
R3経由のパス 192.168.35.5 のLocal Preferenceが1000に設定されており、R6ではこの経路がベストパスとして選ばれています。
これにより、Local Preferenceを高く設定することで特定の経路が優先されることが確認できました。
route-mapによるLocal Preference設定
次に、route-mapを使って特定の経路に対してLocal Preferenceをカスタマイズします。今回は、R5から広告された経路に対してLocal Preferenceを900に設定します。
route-mapの作成と適用: まず、Local Preferenceを900に変更するroute-mapを作成し、R3のBGP設定で適用します。
R3(config)# route-map SETLocPrf permit 10 R3(config-route-map)# set local-preference 900 R3(config-route-map)# exit R3(config)# R3(config)# router bgp 236 R3(config-router)# neighbor 192.168.35.5 route-map SETLocPrf in R3(config-router)# exit R3(config)# exit
BGPテーブルのクリア: 設定が有効になるよう、BGPセッションをクリアします。
R3# clear ip bgp * soft
R6のBGPテーブルを確認します。
R6# show ip bgp BGP table version is 4, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 5.5.5.5/32 192.168.35.5 0 900 0 5 i * i 192.168.25.5 0 100 0 5 i
- R3からの経路 192.168.35.5 に対してLocal Preferenceが900に設定されました。
- この設定により、R6はR3経由の経路をベストパスとして選択しています。
- route-mapを使用することで、特定の経路に対して柔軟にLocal Preferenceを設定できることが確認できました。
特定のプレフィックスに対するLocal Preference設定
さらに、ACL(アクセスリスト)とroute-mapを組み合わせて、特定のプレフィックスに対してLocal Preferenceを設定する例を示します。ここでは、新たにR5にループバックアドレス 55.55.55.55/32 を追加し、この経路に対してLocal Preferenceを555に設定します。一方、既存の 5.5.5.5/32
には、R3経由でデフォルトのLocal Preferenceが設定されている状態です。
R5の新しいループバックアドレス 55.55.55.55/32 を設定し、BGPで広告します。まず、R5に新しいループバックアドレスを追加し、BGPでこのプレフィックスを広告します。
R5(config)# int loopback 55 R5(config-if)# ip add 55.55.55.55 255.255.255.255 R5(config)# router bgp 5 R5(config-router)# network 55.55.55.55 mask 255.255.255.255
R3でACL(アクセスリスト)を使用してプレフィックスを指定し、route-mapでLocal Preferenceを設定します。
特定のプレフィックス(ここでは 55.55.55.55/32)に対してLocal Preferenceを555に設定します。まず、ACLを使って特定のプレフィックスを指定し、それをroute-mapで参照します。
R3(config)# access-list 1 permit 55.55.55.55 0.0.0.0
次に、route-mapを作成してLocal Preferenceを555に設定します。
R3(config)# route-map SETLocPrf permit 10 R3(config-route-map)# match ip address 1 R3(config-route-map)# set local-preference 555 R3(config)# route-map SETLocPrf permit 1000
route-mapをBGP設定に適用し、BGPセッションを更新します。作成したroute-mapをBGP設定に適用し、R3がR5から受信する経路に対してLocal Preferenceを変更します。
R3(config)# router bgp 236 R3(config-router)# neighbor 192.168.35.5 route-map SETLocPrf in
設定を適用したら、BGPセッションをクリアして反映させます。
R3# clear ip bgp * soft
R6でBGPテーブルを確認し、設定が適用されているか確認します。
R6# show ip bgp BGP table version is 12, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * i 5.5.5.5/32 192.168.25.5 0 100 0 5 i *>i 192.168.35.5 0 1000 0 5 i * i 55.55.55.55/32 192.168.25.5 0 100 0 5 i *>i 192.168.35.5 0 555 0 5 i
- 5.5.5.5/32 に対しては、R3経由でLocal Preference 1000が適用されています。このため、R6はR3経由の経路をベストパスとして選択しています。
- 一方で、55.55.55.55/32 に対しては、route-mapによってLocal Preference 555が適用されています。このため、R6はR3経由でこの経路を選択しますが、Local Preferenceの値は異なるため、異なるプレフィックスごとに異なる優先順位を設定できています。
まとめ
Local Preferenceは、AS内での経路選択に大きな影響を与える非常に強力なBGP属性です。デフォルト値の変更や、route-mapを使った柔軟な設定により、特定の出口経路を優先させることができます。これにより、ネットワークのトラフィック管理が一層効率的になり、特定のポリシーに基づいた経路選択が可能となります。
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント