BGP

BGP next-hop-self

BGPのパスアトリビュート NEXT_HOP において基本(eBGPでも保持するケースがあります詳細は下記記事)は iBGP を保持、eBGPは自身のneighborのアドレスに書き換えします。
未設定ではBGPのNEXT_HOPが保持するケースを、next-hop-selfを設定することで自身のneighborアドレスにNEXT_HOPを書き換え動作に変更する設定です。

BGP next-hop-self による設定例を紹介します。

iBGP next-hop-self

iBGPのNEXT_HOP 未設定

next-hop-self未設定のため経路無効状態

eBGPから受け取った経路をiBGPに再度広報する際は、NEXT_HOPを書き換えません。上記構成ではR21のeBGPインターフェイスの30.10.21.0/24をOSPFが未設定のためR22に30.10.21.0/24経路がない状態です。

R22では30.10.21.0の経路がルーティングテーブルに登録されていません。

R22では 10.0.0.0/8 のBGPテーブルを確認すると Next Hop(30.10.21.10) がR10のアドレスから変更されていません。NextHopの到達性チェックの結果経路は有効にならず、Best( > )にならない状態となっています。

show ip bgp 10.0.0.0 にて確認すると 30.10.21.10 が ( inaccessible ) と表示されて NextHopの到達性がないことを示しています。

R22のルーティングテーブルに 10.0.0.0/8 の経路は登録されませんでした。

10.0.0.0/8の経路を有効にするには NextHop の到達性を確保する必要があります。設定するには、30.10.21.10 の到達性を確保する(R21でOSPFで経路を広報、R22でstaticで30.10.21.10を記載するなど。。)、もう一つの方法としてnext-hop-selfを設定でNEXT_HOPを書き換えることで到達性を確保する。

iBGPのNEXT_HOP 設定

next-hop-self設定を有効にすることで経路有効状態

上記はR21での設定例(Cisco IOS-XE)の BGP next-hop-self の設定例です。neighbor単位で設定します。
設定することでneighborの自身のアドレスにNEXT_HOPに書き換えします。

R22での10.0.0.0/8 BGPテーブルを確認すると Next Hopが20.0.0.21 となり経路は > best となって有効になります。

R22でshow ip bgp 10.0.0.0/8 を確認すると NextHopが20.0.0.21となり、 20.0.0.21 までのOSPFのCost 2が ( metric 2 ) として表示されます。

R22のルーティングテーブルに BGP(Known via "bgp 20")経路として登録されました。

BGP記事一覧

BGP RFC/関連サイト

その他ネットワーク

-BGP