【図解】BGP経路制御~route-mapでweight/Local_Pref/AS_PATH/Origin/MED属性値を変更~

BGP の各種属性による経路制御例を紹介します。

WEIGHT属性による経路制御

WEIGHT は Cisco 独自属性であり、BGPパケットを使って伝搬することができません。なので必然的にローカルルータへの適用しかできません。BGP のルートが 2 つ以上あり、どのルートから出ていくかを制御するときに使えます。

以下の構成図において、"1.1.1.0/24" の宛先ルートは RT6 においてはベストパス選択アルゴリズムの『⑪ ネイバーのルータID が最小のもの』により RT4 がベストパスとして選択される状態です。

RT6 に以下コマンドを投入すると、RT6 内のみで Weight 属性に値がセットされます。確認は BGP テーブル (show ip bgp) で行います。

RT6(config)# router bgp 65002
RT6(config-router)# neighbor 10.1.56.5 weight 20
RT6(config-router)# end
RT6# sh ip bgp

     Network          Next Hop            Metric LocPrf Weight Path
 * i 1.1.1.0/24       10.1.56.5                0    100      0 65001 i
 *>i                  10.1.46.4                0    100      0 65001 i
 *>  6.6.6.0/24       0.0.0.0                  0         32768 i
RT6# clear ip bgp * soft
RT6# sh ip bgp

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 1.1.1.0/24       10.1.56.5                0    100     20 65001 i
 *   i                10.1.46.4                0    100      0 65001 i
 *>  6.6.6.0/24       0.0.0.0                  0         32768 i
RT6#

なお、route-map を使って以下のような設定をしても同じ効果があります。route-map XXX in コマンドにより入ってくるときに route-map での条件アクションに従って属性を変更できます。今回は条件 (match) については未設定のため無条件でアクション (set) weight 20 を実行します。

RT6(config)# route-map SetWeight
RT6(config-route-map)# set weight 20
RT6(config-route-map)# exit
RT6(config)# router bgp 65002
RT6(config-router)# neighbor 10.1.56.5 route-map SetWeight in

Local-Preference属性による経路制御

LOCAL_PREF 属性は iBGP でのみ伝達可能な属性です。なので Weight より使い勝手が良いケースが多いです。

例えば先程の構成例と同じことを、以下のように設定することができます。

[RT5]

RT5(config)# route-map SetLocPref
RT5(config-route-map)# set local-preference 200
RT5(config-route-map)# exit
RT5(config)# router bgp 65002
RT5(config-router)# neighbor 10.1.35.3 route-map SetLocPref in
RT5(config-router)# end
RT5# clear ip bgp * soft

これにより [RT6] 側が以下のように変化します。

RT6# show ip bgp

     Network          Next Hop            Metric  LocPrf  Weight  Path
 *>i 1.1.1.0/24       10.1.56.5                0     200       0  65001 i
 * i                  10.1.46.4                0     100       0  65001 i
 *>  6.6.6.0/24       0.0.0.0                  0           32768  i
RT6#

AS_PATH 属性による経路制御

他 AS から自 AS へ入ってくるときの通信に優先度をつけてほしいときに設定します。もちろん、相手が WEIGHT や LOCAL_PREF 等で意図とは異なる設定はできてしまいますが。

[RT2]

RT2(config)# route-map SetASPrepend
RT2(config-route-map)# set as-path prepend 65001
RT2(config-route-map)# exit
RT2(config)# router bgp 65001
RT2(config-router)# neighbor 10.1.24.4 route-map SetASPrepend out
RT2(config-router)# end
RT2# clear ip bgp * soft

RT2 で AS_PATH を普段より多く付けることで RT6 は RT4 側のルートが遠いと判断し、RT5 側のルートを優先的に使うようになります。

RT6# show ip bgp

     Network          Next Hop    Metric  LocPrf  Weight  Path
 *>i 1.1.1.0/24       10.1.56.5        0    100        0  65001 i
 *i                   10.1.46.4        0    100        0  65001 65001 i
 *>  6.6.6.0/24       0.0.0.0          0           32768  i

ORIGIN 属性による経路制御

他 AS から自 AS へ入ってくるときの通信に優先度をつけてほしいときに設定します。AS_PATH による制御と変わりませんが、あまり使われないやり方です。

[RT2]

RT2(config)# route-map SetORIGIN
RT2(config-route-map)# set origin incomplete
RT2(config-route-map)# exit
RT2(config)# router bgp 65001
RT2(config-router)# neighbor 10.1.24.4 route-map SetORIGIN out
RT2(config-router)# end
RT2# clear ip bgp * soft

RT2 で ORIGIN を i (= IGP) ではなく ? (= incomplete) にすることで RT6 は RT4 側のルートを信頼性が低いと判断し、RT5 側のルートを優先的に使うようになります。

RT6# sh ip bgp

     Network          Next Hop     Metric  LocPrf  Weight  Path
 *>i 1.1.1.0/24       10.1.56.5         0     100       0  65001 i
 *i                   10.1.46.4         0     100       0  65001 ?
 *>  6.6.6.0/24       0.0.0.0           0           32768  i

MED 属性による経路制御

他 AS から自 AS へ入ってくるときの通信に優先度をつけてほしいときに設定します。AS_PATH による制御と変わりません。AS_PATH よりも好まれる傾向にあります。

[RT2]

RT2(config)# route-map SetMED
RT2(config-route-map)# set metric 300
RT2(config-route-map)# exit
RT2(config)# router bgp 65001
RT2(config-router)# neighbor 10.1.24.4 route-map SetMED out
RT2(config-router)# end
RT2# clear ip bgp * soft

RT2 で MED をデフォルトの 0 から 300 に変更することで RT6 は RT4 側のルートを遠いと判断し、RT5 側のルートを優先的に使うようになります。

RT6# sh ip bgp

     Network          Next Hop     Metric  LocPrf  Weight  Path
 *>i 1.1.1.0/24       10.1.56.5         0     100       0  65001 i
 *i                   10.1.46.4       300     100       0  65001 i
 *>  6.6.6.0/24       0.0.0.0           0           32768  i

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG