BGP Local Preferenceを使いこなす!Ciscoルータでの設定手順と確認

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)まとめ << より参照できます。

コメント