BGP Origin属性を徹底解説!Ciscoルーターでの動作確認手順

音声で聞く

読む前にこの記事のポイントを音声で確認できます。この音声は本記事をもとにAIツール(NotebookLM)で自動生成したもので、発音や言い回しが不自然な箇所や、内容の誤りが含まれる可能性があります。理解の補助としてご利用ください。

BGP の経路には、パス属性と呼ばれる情報がいくつも付いています。Origin 属性はその1つで、経路がどのような方法で BGP に入ったかを示します。

この記事では、Origin 属性の3つの値と、ベストパス選択の中で Origin が比較される順番を整理します。そのうえで、Cisco ルータで同じプレフィックスを network コマンドと redistribute コマンドで広告し、受け取ったルータがどちらを選ぶかを確認します。

この記事でわかること
  1. Origin 属性の3つの値(IGP、EGP、Incomplete)と、show ip bgp での表示
  2. ベストパス選択の中で Origin が比較される順番
  3. network と redistribute connected で広告した経路の違い(実機での確認)

Origin属性とは

Origin 属性は、経路を最初に BGP へ入れたルータが付ける属性です。すべての BGP ルータが認識し、経路を載せた UPDATE メッセージに必ず含める属性(Well-known Mandatory)の1つです。途中のルータは、基本的に値を変えずに次のピアへ渡します。

値show ip bgp の表示どのように BGP に入った経路か
IGPinetwork コマンドで BGP に入れた経路
EGPeEGP(BGP より前に使われていた、同じ名前の古いプロトコル)で学習した経路。現在はほとんど見かけない
Incomplete?redistribute コマンドで再配布した経路など、生成元がわからない(不完全な)経路
名前に注意

Origin が IGP でも、OSPF や EIGRP などの IGP から学習した経路という意味ではありません。network コマンドで AS の中から BGP に入れた経路という意味です。OSPF の経路を redistribute ospf で BGP に入れると、Origin は Incomplete になります。

Origin属性の優先順位

同じプレフィックスに複数の経路があるとき、Origin は次の順で優先されます。

優先順位Origin
1(最も優先)IGP(i)
2EGP(e)
3Incomplete(?)

ただし、Origin はベストパス選択の最初に比べる項目ではありません。Cisco ルータは次の順番で経路を比べ、差が付いた時点で決めます。Origin が比べられるのは、それより前の項目がすべて同じだったときだけです。

順番比べる項目優先する経路
1Weight(Cisco 独自)大きい方
2LOCAL_PREF大きい方
3自分で生成した経路か自分で生成した経路(network、redistribute など)
4AS_PATH の長さ短い方
5OriginIGP > EGP > Incomplete
6MED小さい方
7 以降eBGP か iBGP か、Next Hop までの IGP メトリック、ルータID など—

検証の概要

AS23 の2台のルータ(R2 と R3)から、同じプレフィックス 23.23.23.23/32 を別の方法で AS6 の R6 へ広告します。R6 で、2つの経路の Origin と、どちらがベストパスになるかを確認します。

  • R2:network コマンドで広告する(Origin は IGP になる)
  • R3:redistribute connected コマンドで広告する(Origin は Incomplete になる)
  • R6:R2 と R3 の両方から経路を受け取り、ベストパスの選択結果を確認する

構成

AS23AS623.23.23.23/32network23.23.23.23/32redistribute connectedR2R3R6.2.3.6.6192.168.26.0/24eBGP192.168.36.0/24eBGP
図1 検証構成(R2 と R3 が同じ 23.23.23.23/32 を別の方法で広告する)

R2 と R3 はどちらも Loopback23 に 23.23.23.23/32 を設定し、R6 とそれぞれ eBGP でピアを張ります。

設定

R2:network コマンドで広告する

R2

R2(config)# int loopback 23
R2(config-if)# ip add 23.23.23.23 255.255.255.255

R2(config)# router bgp 23  
R2(config-router)# network 23.23.23.23 mask 255.255.255.255
R2(config-router)# neighbor 192.168.26.6 remote-as 6

network コマンドは、指定したプレフィックスと同じ経路(ここでは Loopback23 の connected ルート)がルーティングテーブルにあるときに、その経路を BGP に入れます。この経路の Origin は IGP になります。

R3:redistribute connected で広告する

R3

R3(config)# int loopback 23
R3(config-if)# ip add 23.23.23.23 255.255.255.255
R3(config)# router bgp 23
R3(config-router)# redistribute connected

redistribute connected は、R3 の connected ルートを BGP に再配布します。再配布した経路の Origin は Incomplete になります。

補足
  • 上の設定には書かれていませんが、R3 にも R2 と同じように R6 とのネイバー設定(neighbor 192.168.36.6 remote-as 6)が必要です。
  • redistribute connected は、Loopback23 だけでなく R3 のすべての connected ルート(R6 との接続ネットワークなど)を BGP に入れます。広告する経路を絞りたい場合は、redistribute connected route-map <名前> のように route-map を付けます。

R6:R2 と R3 から経路を受け取る

R6

R6(config)# router bgp 6
R6(config-router)# neighbor 192.168.26.2 remote-as 23
R6(config-router)# neighbor 192.168.36.3 remote-as 23

R6 は、R2(192.168.26.2)と R3(192.168.36.3)の両方と eBGP でピアを張ります。

動作確認

BGP テーブルで Origin を確認する

R6 の BGP テーブルを確認します。R2 と R3 の両方から 23.23.23.23/32 を受け取っています。

R6

R6# show ip bgp
BGP table version is 9, 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
 *   23.23.23.23/32   192.168.36.3             0             0 23 ?
 *>                       192.168.26.2             0             0 23 i
表示意味
Origin codes: i – IGP, e – EGP, ? – incompletePath 列の最後の文字が Origin を表す
23 ?R3(Next Hop 192.168.36.3)からの経路。AS_PATH は 23、Origin は Incomplete
23 iR2(Next Hop 192.168.26.2)からの経路。AS_PATH は 23、Origin は IGP
*>* は有効な経路、> はベストパス。R2 からの経路がベストパスになっている
Network 列が空欄上の行と同じプレフィックス(23.23.23.23/32)の別の経路

経路の詳細でベストパスを確認する

23.23.23.23/32 の詳細を確認します。

R6

R6# show bgp 23.23.23.23
BGP routing table entry for 23.23.23.23/32, version 4
Paths: (2 available, best #2, table default)
  Advertised to update-groups:
     1         
  23
    192.168.36.3 from 192.168.36.3 (3.3.3.3)
      Origin incomplete, metric 0, localpref 100, valid, external
      rx pathid: 0, tx pathid: 0
  23
    192.168.26.2 from 192.168.26.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
表示意味
2 available, best #2経路が2つあり、2番目に表示されている経路(R2 から)がベストパス
Origin incompleteR3(192.168.36.3)からの経路の Origin
Origin IGPR2(192.168.26.2)からの経路の Origin
metric 0MED の値。どちらも 0
localpref 100LOCAL_PREF の値。どちらも既定値の 100(eBGP で受け取った経路は、show ip bgp の LocPrf 列には表示されない)
external, besteBGP で受け取った経路で、ベストパスに選ばれている

R2 の経路が選ばれた理由

2つの経路を、ベストパス選択の順番に沿って比べると次のようになります。Weight、LOCAL_PREF、AS_PATH の長さはどちらも同じで、どちらも R6 が自分で生成した経路ではありません。そのため5番目の Origin で差が付き、IGP の R2 の経路がベストパスになりました。

R2 からR3 から結果1番目Weight00同じ2番目LOCAL_PREF100100同じ3番目自分で生成した経路いいえいいえ同じ4番目AS_PATHの長さ23(1つ)23(1つ)同じ5番目OriginIGPIncompleteR2 を選ぶ6番目MED——比較しない
図2 R6 でのベストパス選択(Origin で初めて差が付く)
補足

AS_PATH が短い経路や LOCAL_PREF が大きい経路が別にあれば、Origin が Incomplete でもそちらが選ばれます。Origin が結果を決めるのは、この検証のように前の項目がすべて同じ場合です。Cisco ルータでは、route-map の set origin で Origin の値を書き換えることもできます。

まとめ

広告したルータ広告の方法OriginPath 列R6 での結果
R2network 23.23.23.23 mask 255.255.255.255IGP23 iベストパス
R3redistribute connectedIncomplete23 ?ベストパスではない

Origin 属性は、経路がどのような方法で BGP に入ったかを示し、IGP > EGP > Incomplete の順で優先されます。ただし比べられるのは、Weight、LOCAL_PREF、AS_PATH の長さなどがすべて同じときです。

コメント