【CCNA/CCNP/ネットワーク入門】BGP学ぶ上で重要なAttribute(属性)

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

今回は、BGPを学ぶ上で非常に重要となるAttribute(属性)について説明していきたいと思います。

BGP記事一覧

そもそもAttribute(属性)とは?

Attribute(属性)とは「BGP経路を制御するための機能」です。

これは、迂回やベストパス(最適経路)の制御、経路集約、経路選択などで利用されることが多い機能となります。

Attribute(属性)には、「Weight(Cisco独自)」や「Local_Preference」、「Origin」、「AS path」、「MED」の5つがあります。

それぞれのAttirbute(属性)についてはこの後説明したいと思います。

Cisco独自で最も優先度の高い「Weight」

このWeight値は「Cisco独自であり一番優先度が高いAttribute(属性)」となります。

この値は、AS内部から他AS向けへの経路を制御するために利用するAttribute(属性)となります。

このAttribute(属性)は、値が大きいほど優先度が高く隣接ルータと情報を交換しません。

では、どんな時に利用するのか?

それは、あるASに属する1つのルータから同一の宛先に対し、複数の経路がある場合に利用します。

AS40
AS40
AS20
AS20
AS30
AS30
AS10
AS10
ベストパス
ベストパス
バックアップパス
バックアップパス
Lo0:10.2.0.1
Lo0:10.2….
Lo0:10.3.0.1
Lo0:10.3….
Lo0:10.4.0.1
Lo0:10.4….
Lo0:10.1.0.1
Lo0:10.1….
■Config内容
router bgp 10
 neighbor 10.3.0.1 weight 100
 neighbor 10.2.0.1 weight 50
!
■Config内容…
Text is not SVG – cannot display

このAttribute(属性)を設定するコマンドは以下の通りとなります。

・パターン①
 router bgp <AS番号>
  neighbor <iPアドレス> weight <weight値>
 !

・パターン②(Route-mapを利用)
 ip prefix-list <Prefix List名> permit <IPアドレス>/<prefix>
 route-map <route-map名> permit 10
  match ip address prefix-list <Prefix List名>
  set weight <weight値>
 !
 route-map <route-map名> permit 20
 router bgp <AS番号>
  neighbor <IPアドレス> route-map <route-map名> in
 !

下記の図で、AS10→AS40への経路が「AS30経由とAS20経由」の2つが存在するとします。

そこで、AS30経由をベストパスとして利用したい場合、AS30を経由する経路のWeight値を大きく設定することでベストパスとして選択されます。

AS40
AS40
AS20
AS20
AS30
AS30
AS10
AS10
ベストパス
ベストパス
バックアップパス
バックアップパス
Lo0:10.2.0.1
Lo0:10.2….
Lo0:10.3.0.1
Lo0:10.3….
Lo0:10.4.0.1
Lo0:10.4….
Lo0:10.1.0.1
Lo0:10.1….
■Config内容
router bgp 10
 neighbor 10.3.0.1 weight 100
 neighbor 10.2.0.1 weight 50
!
■Config内容…
Text is not SVG – cannot display

BGP共通で一番優先度の高い「Local Preference」

このLocal Preferenceは「各ベンダー独自のAttribute(属性)を除いた共通の中で最も優先度の高いAttribute(属性)」になります。

これは「値が大きいほど優先度が高く、iBGPピアに広報されるAttribute(属性)」となります。

このAttribute(属性)は、Weight値と同様にAS内部から他ASへの経路に対しよく利用されます。

Local Preferenceの一般的な設定方法は、ACLやPrefix-List、Route-mapを作成しネイバーに適用します。

ip prefix-list <prefix list名> <ネットワークアドレス>/<prefix長>

route-map <route-map名> permit 10
 match ip address prefix-list <prefix list名>
 set local-preference <local pref値>
!

route-map <route-map名> permit 20

router bgp <AS番号>
 neighbor <IPアドレス> route-map <route-map名> [in|out]
!

以下の例では、AS40宛経路はAS20とAS30からそれぞれ受信している場合を想定します。

その際、AS20向けのネイバーにLocal Preference値を333とし、AS30向けのネイバーに対しLocal Preference値を222と設定するRoute-mapを適用しています。

この場合、「10.1.0.1」を持つルータからはAS20経由の経路がベストパスとして選択されます。

AS40
AS40
AS20
AS20
AS30
AS30
AS10
AS10
ベストパス
ベストパス
バックアップパス
バックアップパス
Lo0:10.2.0.1
Lo0:10.2….
Lo0:10.3.0.1
Lo0:10.3….
Lo0:10.4.0.1
Lo0:10.4….
Lo0:10.1.0.2
Lo0:10.1….
■Config内容(10.1.0.2)
ip prefix-list example 10.2.0.0/15

route-map ETG permit 10
 match ip address prefix-list example
 set local-preference 333
!

router bgp 10
 neighbor 10.2.0.1 route-map ETG in
!
■Config内容(10.1.0.2)…
Lo0:10.1.0.3
Lo0:10.1….
Lo0:10.1.0.1
Lo0:10.1….
■Config内容(10.1.0.3)
ip prefix-list example 10.2.0.0/15

route-map ETG permit 10
 match ip address prefix-list example
 set local-preference 222
!

router bgp 10
 neighbor 10.3.0.1 route-map ETG in
!
■Config内容(10.1.0.3)…
Text is not SVG – cannot display

では、実際の動作を実機で確認していきましょう。

上記の図でも説明した通り、Local Preferenceの設定は「ACL設定→Route-Mapの設定→ネイバーへの適用」の順で実施します。

また、動作確認を実施した構成は以下の通りとなります。

Lo0:10.0.1.1
Lo0:10.0.1.1
Router1
Router1
Router2
Router2
Router3
Router3
Router4
Router4
Router5
Router5
Router6
Router6
Router8
Router8
Router7
Router7
Router9
Router9
Lo0:10.0.1.2
Lo0:10.0.1.2
Lo0:10.0.1.3
Lo0:10.0.1.3
Lo0:10.0.1.5
Lo0:10.0.1.5
Lo0:10.0.1.4
Lo0:10.0.1.4
Lo0:10.0.1.6
Lo0:10.0.1.6
Lo0:10.0.2.7
Lo0:10.0.2.7
Lo0:10.0.2.8
Lo0:10.0.2.8
Lo0:10.0.2.9
Lo0:10.0.2.9
192.168.1.2
192.168.1.2
192.168.1.7
192.168.1.7
192.168.2.8
192.168.2.8
192.168.2.4
192.168.2.4
ベストパス
ベストパス
AS20
AS20
IGP:OSPF
IGP:OSPF
AS10
AS10
IGP:OSPF
IGP:OSPF
バックアップ
バックアップ
Text is not SVG – cannot display

上記の構成で、AS10からAS20向けの経路のベストパスをRouter8/Router4側になるように設定します。

具体的には、Router4上でRouter8から受信する経路に対し、Local Preference値を「200」に設定します。

Local Preferenceの変更前の状態は、Router7/Router2側がベストパスとなっています。

Router1の事前確認(Router2側がベストパス想定)

Router1で「show ip bgp」による状態確認を行いました。

その結果は、「10.0.1.2」を持つRouter2がベストパスとなっていることがわかります。

また、Local Preference値がデフォルトの「100」になっていることがわかります。

Router1#show ip bgp
BGP table version is 82, local router ID is 10.0.1.1
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, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.0.1.1/32      0.0.0.0                  0         32768 i
 r>i  10.0.1.2/32      10.0.1.2                 0    100      0 i
 r>i  10.0.1.3/32      10.0.1.3                 0    100      0 i
 r>i  10.0.1.4/32      10.0.1.4                 0    100      0 i
 r>i  10.0.1.5/32      10.0.1.5                 0    100      0 i
 r>i  10.0.1.6/32      10.0.1.6                 0    100      0 i
 *>i  10.0.2.7/32      10.0.1.2                 0    100      0 20 i ※Router2経由がベストパス
 * i                   10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.8/32      10.0.1.2                 0    100      0 20 i ※Router2経由がベストパス
 * i                   10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.9/32      10.0.1.2                 0    100      0 20 i ※Router2経由がベストパス
 * i                   10.0.2.8                 0    100      0 20 i

Router4上でLocal Preference値の設定

ここで、Router4のLocal Preference値を変更していきます。

設定方法は「ACL設定、Route-map設定、ネイバーに対するRoute-mapの反映」を実施します。

今回は「AS20のループバック経路全てを対象」とします。

#ACL設定
Router4(config)#access-list 1 permit 10.0.2.0 0.0.0.255 

#Route-Map設定
Router4(config)#route-map local_pref permit 10
Router4(config-route-map)#match ip address 1
Router4(config-route-map)#set local-preference 200

#ネイバーへの適用
Router4(config)#router bgp 10
Router4(config-router)#neighbor 10.0.2.8 route-map local_pref in

上記設定の適用後のデバッグログを見ると、Router4(10.0.1.4)からUPDATEメッセージを受信し、Router8をNexthopとした経路のLocal Preferenceが「200」になっていることがわかります。

また、UPDATEメッセージ受信後、NexthopをRouter2(10.0.1.2)とした経路は削除(Withdraw)されていることがわかります。

Router1#
*Apr 23 06:56:31.444: BGP(0): 10.0.1.4 rcvd UPDATE w/ attr: nexthop 10.0.2.8, origin i, localpref 200, metric 0, merged path 20, AS_PATH 
*Apr 23 06:56:31.444: BGP(0): 10.0.1.4 rcvd 10.0.2.7/32
*Apr 23 06:56:31.444: BGP(0): 10.0.1.4 rcvd UPDATE w/ attr: nexthop 10.0.2.8, origin i, localpref 200, metric 0, merged path 20, AS_PATH 
*Apr 23 06:56:31.444: BGP(0): 10.0.1.4 rcvd 10.0.2.8/32
*Apr 23 06:56:31.444: BGP(0): 10.0.1.4 rcvd UPDATE w/ attr: nexthop 10.0.2.8, origin i, localpref 200, metric 0, merged path 20, AS_PATH 
*Apr 23 06:56:31.444: BGP(0): 10.0.1.4 rcvd 10.0.2.9/32

*Apr 23 06:56:31.444: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.7/32 -> 10.0.2.8(global) to main IP table
*Apr 23 06:56:31.444: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.8/32 -> 10.0.2.8(global) to main IP table
*Apr 23 06:56:31.444: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.9/32 -> 10.0.2.8(global) to main IP table

*Apr 23 06:56:31.447: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.7/32 -- withdrawn
*Apr 23 06:56:31.447: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.8/32 -- withdrawn
*Apr 23 06:56:31.447: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.9/32 -- withdrawn

また、パケットキャプチャによるパケットの中身を見ると、Debugログ通りの結果となっています。

また、各経路の削除(withdraw)もDebug Log通り受信していることがわかります。

Local Preference変更後のRouter1の状態は?

Router4でのLocal Preference値を変更したので、Router1の状態を確認してみましょう。

確認結果は想定通り「Router8(10.0.2.8)」をNexthopとし、Local Prefが200になっていることがわかります。

Router1#show ip bgp
BGP table version is 85, local router ID is 10.0.1.1
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, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.0.1.1/32      0.0.0.0                  0         32768 i
 r>i  10.0.1.2/32      10.0.1.2                 0    100      0 i
 r>i  10.0.1.3/32      10.0.1.3                 0    100      0 i
 r>i  10.0.1.4/32      10.0.1.4                 0    100      0 i
 r>i  10.0.1.5/32      10.0.1.5                 0    100      0 i
 r>i  10.0.1.6/32      10.0.1.6                 0    100      0 i
 *>i  10.0.2.7/32      10.0.2.8                 0    200      0 20 i
 *>i  10.0.2.8/32      10.0.2.8                 0    200      0 20 i
 *>i  10.0.2.9/32      10.0.2.8                 0    200      0 20 i

生成元を示す「ORIGIN」

ORIGINは「BGP経路の生成元を示すAttribute(属性)」です。

このAttribute(属性)は、主に「IGP」、「EGP」、「生成元不明」の3つに分けられます。

これらは、基本、デフォルトでどれかに分別されますが、意図的に生成元の情報を変更することも可能となります。

生成元詳細
IGP(表記:i)AS内部でIGPにより生成された経路(BGPでは自己生成や集約経路が該当)
EGP(表記:e)AS外部からの経路
Incomplete(表記:?)生成元が不明な経路(IGPからBGPへRedistributeされた経路等)

意図的に生成元を変更する場合は、以下のコマンドで実行します

(config)# route-map <map名> 
(config-route-map)# match <条件>
(config-route-map)# set origin ( igp | egp | incomplete )

生成元の差によるベストパスの選択を変更したい場合等に利用します。

通過するASを示す「AS PATH」

AS PATHは「通過するASを示すAttirbute(属性)」となります。

このAttribute(属性)は、AS数が少ない経路ほど優先度が高くなります。

AS40
AS40
AS20
AS20
AS10
AS10
ベストパス
ベストパス
バックアップパス
バックアップパス
Lo0:10.2.0.1
Lo0:10.2….
Lo0:10.4.0.1
Lo0:10.4….
Lo0:10.1.0.2
Lo0:10.1….
AS Path
・AS40, AS20
AS Path…
Lo0:10.1.0.3
Lo0:10.1….
Lo0:10.1.0.1
Lo0:10.1….
AS Path
・AS40
AS Path…
■Config内容(10.4.0.1)
access-list 10 permit 10.4.0.0 0.0.0.255

route-map AS_PATH permit 10
 match ip address 1
 set as-path prepend 40 40 40
!

router bgp 40
 neighbor 10.1.0.3 route-map AS_PATH out
!
■Config内容(10.4.0.1)…
Text is not SVG – cannot display

また、このAS PATHに自分のAS番号が含まれているかどうかで「ループの有無」を確認しています。

もし、自分のAS番号が含まれている場合、ループしていると判断し他ASに経路広報しない仕様になっています。

また、AS PATH長を意図的に長くしたい場合は、「AS PATH prepends」という機能を利用します。

この機能を利用することで、意図的にベストパスを変更することが可能となります。

設定コマンドは以下の通りとなります。

#ACL設定
access-list <ACL番号> permit 10.0.2.0 0.0.0.255
#Route-Map設定
route-map <Route-Map名> permit 10
 match ip address <ACL番号>
 set as-path prepend <AS番号>・・・・<AS番号>
!
route-map <Route-Map名> permit 20
#BGP設定
router bgp <AS番号>
 neighbor <IPアドレス> route-map <Route-Map名> out
!

上記設定により、AS_PATHのAttribute(属性)にAS番号が追加されます。

AS40
AS40
AS20
AS20
AS10
AS10
バックアップパス
バックアップパス
ベストパス
ベストパス
Lo0:10.2.0.1
Lo0:10.2….
Lo0:10.4.0.1
Lo0:10.4….
Lo0:10.1.0.2
Lo0:10.1….
AS Path
・AS40, AS20
AS Path…
Lo0:10.1.0.3
Lo0:10.1….
Lo0:10.1.0.1
Lo0:10.1….
AS Path
・AS40 40 40 40
AS Path…
■Config内容(10.4.0.1)
access-list 10 permit 10.4.0.0 0.0.0.255

route-map AS_PATH permit 10
 match ip address 1
 set as-path prepend 40 40 40
!

router bgp 40
 neighbor 10.1.0.3 route-map AS_PATH out
!
■Config内容(10.4.0.1)…
Text is not SVG – cannot display

実際にPrependを実機で確認してみよう!

Prepend機能を実機で確認するために利用した構成は、以下の図となっています。

Lo0:10.0.1.1
Lo0:10.0.1.1
Router1
Router1
Router2
Router2
Router3
Router3
Router4
Router4
Router5
Router5
Router6
Router6
Router8
Router8
Router7
Router7
Router9
Router9
Lo0:10.0.1.2
Lo0:10.0.1.2
Lo0:10.0.1.3
Lo0:10.0.1.3
Lo0:10.0.1.5
Lo0:10.0.1.5
Lo0:10.0.1.4
Lo0:10.0.1.4
Lo0:10.0.1.6
Lo0:10.0.1.6
Lo0:10.0.2.7
Lo0:10.0.2.7
Lo0:10.0.2.8
Lo0:10.0.2.8
Lo0:10.0.2.9
Lo0:10.0.2.9
192.168.1.2
192.168.1.2
192.168.1.7
192.168.1.7
192.168.2.8
192.168.2.8
192.168.2.4
192.168.2.4
ベストパス
ベストパス
AS20
AS20
IGP:OSPF
IGP:OSPF
AS10
AS10
IGP:OSPF
IGP:OSPF
バックアップ
バックアップ
Text is not SVG – cannot display

Router1のBGPテーブルを確認すると「Router7経由」がベストパスとなっていることがわかります。

また、この時、Pathは「AS 20」のみとなっています。

Router1#show ip bgp
BGP table version is 91, local router ID is 10.0.1.1
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, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.0.1.1/32      0.0.0.0                  0         32768 i
 r>i  10.0.1.2/32      10.0.1.2                 0    100      0 i
 r>i  10.0.1.3/32      10.0.1.3                 0    100      0 i
 r>i  10.0.1.4/32      10.0.1.4                 0    100      0 i
 r>i  10.0.1.5/32      10.0.1.5                 0    100      0 i
 r>i  10.0.1.6/32      10.0.1.6                 0    100      0 i
 *>i  10.0.2.7/32      10.0.1.2                 0    100      0 20 i
 * i                   10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.8/32      10.0.1.2                 0    100      0 20 i
 * i                   10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.9/32      10.0.1.2                 0    100      0 20 i
 * i                   10.0.2.8                 0    100      0 20 i

上記の事前確認が終わったところで、以下のコマンドを用いて設定を投入します。

Router7(config)#access-list 1 permit 10.0.2.0 0.0.0.255
Router7(config)#route-map AS_PATH permit 10
Router7(config-route-map)#match ip address 1
Router7(config-route-map)#set as-path prepend 20 20 20
Router7(config)#route-map AS_PATH permit 20
Router7(config)#router bgp 20
Router7(config-router)#neighbor 192.168.1.2 route-map AS_PATH out   
Router7(config-router)#end

投入を終えた後のBGPテーブルを確認すると、今度はRouter8経由がベストパスに変更されました。

Router1#show ip bgp
BGP table version is 100, local router ID is 10.0.1.1
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, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.0.1.1/32      0.0.0.0                  0         32768 i
 r>i  10.0.1.2/32      10.0.1.2                 0    100      0 i
 r>i  10.0.1.3/32      10.0.1.3                 0    100      0 i
 r>i  10.0.1.4/32      10.0.1.4                 0    100      0 i
 r>i  10.0.1.5/32      10.0.1.5                 0    100      0 i
 r>i  10.0.1.6/32      10.0.1.6                 0    100      0 i
 *>i  10.0.2.7/32      10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.8/32      10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.9/32      10.0.2.8                 0    100      0 20 i

この時のDebug Logを見るとRouter7経由の経路が削除されていることがわかります。

*Apr 23 07:11:01.698: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.7/32 -- withdrawn
*Apr 23 07:11:01.698: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.8/32 -- withdrawn
*Apr 23 07:11:01.698: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.9/32 -- withdrawn
*Apr 23 07:11:01.698: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.7/32 -> 10.0.2.8(global) to main IP table
*Apr 23 07:11:01.698: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.8/32 -> 10.0.2.8(global) to main IP table
*Apr 23 07:11:01.699: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.9/32 -> 10.0.2.8(global) to main IP table

また、設定直後のBGP UPDATEメッセージのパケットを見てみると、Router7→Router2のUPDATE メッセージにPrependの「20 20 20 20」情報が載っていることがわかります。

このように、AS Prependを利用することで意図的にベストパスを制御することが可能となります。

So-net 光 プラス Sプラン

経路制御でよく利用されるイメージの「MED」

MEDは、「下りトラフィック(外部ASから自ASへのトラフィック)を制御するために利用するAttribute(属性)」となります。

このMEDは、値が小さい程優先度が高く、直接接続されているAS間のみで効果を発揮します。

AS40
AS40
AS20
AS20
AS10
AS10
MED:100
MED:100
MED:200
MED:200
MED:100
ベストパス
MED:100…
MED:200
バックアップ
MED:200…
Text is not SVG – cannot display

一般的な設定方法は、「Route-map」か「BGP配下に直接設定」のどちらかになります。

主な設定コマンドを以下に記載します。

#Route-Mapでの指定
access-list <ACL番号> permit <IPアドレス>/<サブネット>
route-map <Route-Map名> permit <番号>
 match ip address <ACL番号>
 set metric <MED値>
!
router bgp <AS番号>
 neighbor <IPアドレス> route-map <Route-Map名> out
!

#BGP配下の設定
route bgp <AS番号>
 default-metric <MED値>
!

それでは、実機確認をしていきましょう。

今回の確認で利用した構成は以下の図の通りです。

Lo0:10.0.1.1
Lo0:10.0.1.1
Router1
Router1
Router2
Router2
Router3
Router3
Router4
Router4
Router5
Router5
Router6
Router6
Router8
Router8
Router7
Router7
Router9
Router9
Lo0:10.0.1.2
Lo0:10.0.1.2
Lo0:10.0.1.3
Lo0:10.0.1.3
Lo0:10.0.1.5
Lo0:10.0.1.5
Lo0:10.0.1.4
Lo0:10.0.1.4
Lo0:10.0.1.6
Lo0:10.0.1.6
Lo0:10.0.2.7
Lo0:10.0.2.7
Lo0:10.0.2.8
Lo0:10.0.2.8
Lo0:10.0.2.9
Lo0:10.0.2.9
192.168.1.2
192.168.1.2
192.168.1.7
192.168.1.7
192.168.2.8
192.168.2.8
192.168.2.4
192.168.2.4
ベストパス
ベストパス
AS20
AS20
IGP:OSPF
IGP:OSPF
AS10
AS10
IGP:OSPF
IGP:OSPF
バックアップ
バックアップ
Text is not SVG – cannot display

MEDのデフォルト値は「0」のため、設定変更前の状態は「0」になっています。

その上で、Router1ではベストパスがRouter2(Nexthop「10.0.1.2」)となっていることがわかります。

Router1# show ip bgp
BGP table version is 109, local router ID is 10.0.1.1
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, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.0.1.1/32      0.0.0.0                  0         32768 i
 r>i  10.0.1.2/32      10.0.1.2                 0    100      0 i
 r>i  10.0.1.3/32      10.0.1.3                 0    100      0 i
 r>i  10.0.1.4/32      10.0.1.4                 0    100      0 i
 r>i  10.0.1.5/32      10.0.1.5                 0    100      0 i
 r>i  10.0.1.6/32      10.0.1.6                 0    100      0 i
 *>i  10.0.2.7/32      10.0.1.2                 0    100      0 20 i
 * i                   10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.8/32      10.0.1.2                 0    100      0 20 i
 * i                   10.0.2.8                 0    100      0 20 i
 *>i  10.0.2.9/32      10.0.1.2                 0    100      0 20 i
 * i                   10.0.2.8                 0    100      0 20 i

以下のコマンドでRouter7にMED値変更の設定を投入していきます。

Router7#conf t
Router7(config)#route-map MED permit 10
Router7(config-route-map)#match ip address 1
Router7(config-route-map)#set metric 100
Router7(config)#router bgp 20
Router7(config-router)#neighbor 192.168.1.2 route-map MED out
Router7(config-router)#end  

MEDは直接接続されているルータでのみ確認が可能のため、Router2での確認となります。

BGPテーブルを確認してみると、MED値がRouter7経由の経路(Nexthopが192.168.1.7)が100になっていることがわかります。

Router2#show ip bgp
BGP table version is 129, local router ID is 10.0.1.2
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, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 r>i  10.0.1.1/32      10.0.1.1                 0    100      0 i
 *>   10.0.1.2/32      0.0.0.0                  0         32768 i
 r>i  10.0.1.3/32      10.0.1.3                 0    100      0 i
 r>i  10.0.1.4/32      10.0.1.4                 0    100      0 i
 r>i  10.0.1.5/32      10.0.1.5                 0    100      0 i
 r>i  10.0.1.6/32      10.0.1.6                 0    100      0 i
 r    10.0.2.7/32      192.168.1.7            100             0 20 i
 r>i                   10.0.2.8                 0    100      0 20 i
 *    10.0.2.8/32      192.168.1.7            100             0 20 i
 *>i                   10.0.2.8                 0    100      0 20 i
 *    10.0.2.9/32      192.168.1.7            100             0 20 i
 *>i                   10.0.2.8                 0    100      0 20 i

Debug Logでも以下の出力があり、ベストパスに変化があったことがわかります。

Router2#
*Apr 23 07:28:06.915: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.7/32 -- withdrawn
*Apr 23 07:28:06.915: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.8/32 -- withdrawn
*Apr 23 07:28:06.915: BGP(0): 10.0.1.2 rcv UPDATE about 10.0.2.9/32 -- withdrawn
*Apr 23 07:28:06.915: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.7/32 -> 10.0.2.8(global) to main IP table
*Apr 23 07:28:06.915: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.8/32 -> 10.0.2.8(global) to main IP table
*Apr 23 07:28:06.915: BGP(0): Revise route installing 1 of 1 routes for 10.0.2.9/32 -> 10.0.2.8(global) to main IP table

そして、いつも通りパケットの中身も見てみましょう。

UPDATEメッセージのMED値が100に変わっており、NLRIにも乗っていることがわかります。

最後に

ここまで、BGPの基本的な部分について記事をまとめてきました。個人的にもBGPについてより詳細を理解できてきたなと感じております。

次回は、コミュニティ値をまとめ、その後にMP-BGPやNHT、NHR、BGP-PICといった少し応用編的な部分を投稿していきたいと思います。

  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次