NSX-T BGP BFDとの連携

今回はNSX-TのBGPとBFDの連携動作の検証証跡をまとめました。

 

概要

BGPとBFDの連携

下図のように、R1がR2からBGP経由で10.1.1.0/24を学習している状況で、R2のインタフェースに障害が発生したと仮定します。

この際、Holdtimeが経過するまで、R1のR2に対するBGPネイバーはアップし続けます。その結果、R1のルーティングテーブルにはR2からBGP経由で学習した10.1.1.0/24が残り続けます。

 

上記の問題を回避するには、BGPとBFDを連携させ、BFDネイバーがダウンした際に、BGPネイバーも一緒にダウンさせる必要があります。
BFDは1秒未満での障害検出が可能なため、障害発生後、即座にBGPネイバーをダウンさせ、ルーティングテーブルから該当するルート情報を削除することが可能です。

 

検証結果

検証内容、構成

Tier-0 GWのSRをAS 100、R2をAS 200として、EBGPネイバーを構築します。

Tier-0 GWのSRとR2間でBFDネイバーを構築します。そして、BFDネイバーがダウンした際に、EBGPネイバーを即座にダウンさせます。

 

ネットワーク機器のCLIの設定


interface GigabitEthernet2
 ip address 20.1.1.100 255.255.255.0
 bfd interval 500 min_rx 500 multiplier 3
!
router bgp 200
 bgp router-id 2.2.2.2
 neighbor 20.1.1.1 remote-as 100
 neighbor 20.1.1.1 fall-over bfd
            

 

BGPの設定

BFDを使用してBGPネイバーの死活を監視するために、BGPネイバーに対してBFDを有効にします。また、BFDパケットの送信間隔、何回連続でBFDパケットを受信できない場合にBFDネイバーがダウンしたと判断するか、を指定します。

 

正常時の状態確認

Tier-0 GWのSRにおいて、R2とのBFDネイバーがアップしていることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bfd-sessions
BFD Session
Dest_port                     : 3784
Diag                          : No Diagnostic
Encap                         : vlan
Forwarding                    : last true (current true)
Interface                     : 8d96d39b-ff32-48d8-9857-52d660fff25b
Keep-down                     : false
Last_cp_diag                  : No Diagnostic
Last_cp_rmt_diag              : No Diagnostic
Last_cp_rmt_state             : up
Last_cp_state                 : up
Last_fwd_state                : UP
Last_local_down_diag          : No Diagnostic
Last_remote_down_diag         : No Diagnostic
Last_up_time                  : 2020-08-21 13:23:46
Local_address                 : 20.1.1.1
Local_discr                   : 2736811217
Min_rx_ttl                    : 255
Multiplier                    : 3
Received_remote_diag          : No Diagnostic
Received_remote_state         : up
Remote_address                : 20.1.1.100
Remote_admin_down             : false
Remote_diag                   : No Diagnostic
Remote_discr                  : 4097
Remote_min_rx_interval        : 500
Remote_min_tx_interval        : 500
Remote_multiplier             : 3
Remote_state                  : up
Router                        : e75612f1-c47a-497f-b747-692d2c1071c2
Router_down                   : false
Rx_cfg_min                    : 500
Rx_interval                   : 500
Service-link                  : false
Session_type                  : LR_PORT
State                         : up
Tx_cfg_min                    : 500
Tx_interval                   : 500
            

 

Tier-0 GWのSRにおいて、R2とのBGPネイバーにBFDネイバーの状態が関連付けられていることが確認できます。しかし、BFDパケットの送受信間隔が300ミリ秒と表示されています。(設定値やget bfd-sessionsコマンドの出力は500ミリ秒になっています。)

NSX Edge1

edge1(tier0_sr)> get bgp neighbor
BGP neighbor is 20.1.1.100, remote AS 200, local AS 100, external link
  BGP version 4, remote router ID 2.2.2.2, local router ID 20.1.1.1
  BGP state = Established, up for 00:23:28
  Last read 00:00:02, Last write 00:00:28
  Hold time is 180, keepalive interval is 30 seconds
  Configured hold time is 180, keepalive interval is 30 seconds
  .
  <一部省略>
  .
Local host: 20.1.1.1, Local port: 42159
Foreign host: 20.1.1.100, Foreign port: 179
Nexthop: 20.1.1.1
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 10
Estimated round trip time: 1 ms
Read thread: on  Write thread: on

  BFD: Type: single hop
    Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300
    Status: Up, Last update: 0:00:20:35
            

 

以下はTier-0 GWのSRが送信したBFDパケットのみをキャプチャした結果になります。Tier-0 GWのSRは500ミリ秒間隔でBFDパケットを送信していることが確認できます。

 

 

R2のインタフェース障害後の状態確認

R2のインタフェースをダウンさせます。

 

Tier-0 GWのSRにおいて、R2とのBFDネイバーがダウンしていることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bfd-sessions
BFD Session
Dest_port                     : 3784
Diag                          : Control Detection Time Expired
Encap                         : vlan
Forwarding                    : last false (current false)
Interface                     : 8d96d39b-ff32-48d8-9857-52d660fff25b
Keep-down                     : false
Last_cp_diag                  : Control Detection Time Expired
Last_cp_rmt_diag              : No Diagnostic
Last_cp_rmt_state             : up
Last_cp_state                 : down
Last_down_time                : 2020-08-22 11:26:28
Last_fwd_state                : DOWN
Last_local_down_diag          : Control Detection Time Expired
Last_remote_down_diag         : No Diagnostic
Last_up_time                  : 2020-08-22 11:23:03
Local_address                 : 20.1.1.1
Local_discr                   : 3750106795
Min_rx_ttl                    : 255
Multiplier                    : 3
Received_remote_diag          : No Diagnostic
Received_remote_state         : up
Remote_address                : 20.1.1.100
Remote_admin_down             : false
Remote_diag                   : No Diagnostic
Remote_discr                  : 0
Remote_min_rx_interval        : 0
Remote_min_tx_interval        : 1
Remote_multiplier             : 3
Remote_state                  : down
Router                        : e75612f1-c47a-497f-b747-692d2c1071c2
Router_down                   : false
Rx_cfg_min                    : 500
Rx_interval                   : 500
Service-link                  : false
Session_type                  : LR_PORT
State                         : down
Tx_cfg_min                    : 500
Tx_interval                   : 1000

            

 

Tier-0 GWのSRにおいて、R2とのBFDネイバーのダウンに伴い、R2とのBGPネイバーもダウンしたことが確認できます。(Connectはネイバーの確立を試みている状態になります。)

NSX Edge1(障害発生後、Holdtimeが経過する前に取得)

edge1(tier0_sr)> get bgp neighbor
BGP neighbor is 20.1.1.100, remote AS 200, local AS 100, external link
  BGP version 4, remote router ID 0.0.0.0, local router ID 20.1.1.1
  BGP state = Connect
  Last read 00:00:24, Last write 00:00:13
  Hold time is 180, keepalive interval is 30 seconds
  Configured hold time is 180, keepalive interval is 30 seconds
  .
  <一部省略>
  .
BGP Connect Retry Timer in Seconds: 10
Next connect timer due in 2 seconds
Read thread: off  Write thread: off

  BFD: Type: single hop
    Detect Multiplier: 3, Min Rx interval: 300, Min Tx interval: 300
    Status: Down, Last update: 0:00:00:08
            

コメント

タイトルとURLをコピーしました