2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BGP Third-Party Next Hopってなんだ?

Last updated at Posted at 2024-08-31

eBGPのNext Hop

Third-Party Next Hopについて語る前にまずは通常のeBGPのNext Hopについておさらいします。
eBGPでは経路情報を広報する時にNEXTHOPを自身のアドレスに書き換えます。
例えば以下ネットワークにおいて、AS1のルータはAS2のルータに対して、192.0.2.0/24のネットワークを広報する時にNEXTHOPを198.51.1.1に書き換えます。
つまり、AS2のルータのルーティングテーブルには192.0.2.0/24宛てのネクストホップは198.51.1.0となります。

image.png

Third-Party Next Hop

CMLで以下のようなLABを作成しました。
R1-R2、R1-R3でeBGP Peerを張り、R2-R3ではeBGP Peerを張りません
image.png

先に記載した通り、eBGPで経路情報を広報する時はNEXTHOPを自身のアドレスに書き換えます。
その為、R2は1.1.1.1宛ての経路を100.0.0.1として学習しています。(R3も同様)

R2#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 3
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  65001
    100.0.0.1 from 100.0.0.1 (1.1.1.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
R2#

では、R2がR3のループバックアドレス3.3.3.3を学習する時の挙動を考えます。
R2とR3はeBGP Peerではない為、R3→R1→R2の順に広報されます。
普通に考えれば、R1はR2にR3のループバックアドレスを広報する時に自身のアドレスに書き換える為、NEXTHOPは100.0.0.1となるはずです。
しかし、NEXTHOPは100.0.0.3になっています。学習元はR1だしAS Pathも65001を経由しているように見えるのにNEXTHOPだけがR3に向いています。

R2#sh ip bgp 3.3.3.3
BGP routing table entry for 3.3.3.3/32, version 4
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  65001 65003
    100.0.0.3 from 100.0.0.1 (1.1.1.1)
      Origin IGP, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
R2#

このように他のASを経由した場合においても、同一セグメント内の経路広報であればNEXTHOPを書き換えないという仕様がThird-Party Next Hopです。
上記のようにハブアンドスポークでPeerを張った場合でもスポーク間で直接通信を行います。
しかし、BGPの経路広報はハブを経由する(他ASを経由している)点には注意が必要です。
例えば、R2で発出したMED値はR1からR3に経路広報される時にクリアされます。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?