概要

BGPネイバーは基本的にKEEPALIVEメッセージを定期的に交換することで維持します。KEEPALIVEメッセージに関するタイマの設定について解説します。

KEEPALIVEタイマ/ホールドタイムとは

BGPネイバーの維持を行うために、KEEPALIVEメッセージを利用します。ネイバーに自身が正常に動作していることを知らせるためにKEEPALIVEメッセージを定期的に送信します。KEEPALIVEメッセージを送信する間隔がKEEPALIVEタイマです。また、ネイバーからの定期的なKEEPALIVEが届かずにネイバーがダウンしたとみなす時間がホールドタイムです。

Cisco IOSでのそれぞれのデフォルト値は次の通りです。

  • KEEPALIVEタイマ:60秒
  • ホールドタイム:180秒

ホールドタイムは当然ながらKEEPALIVEタイマよりも大きくなくてはいけません。ホールドタイムはKEEPALIVEタイマの3倍の値が推奨されています。これらのタイマの値を制御することで、ネイバーのダウンの検出を早くしてコンバージェンスを改善することができます。

BGPのKEEPALIVEメッセージによらずにBFD(Bidirectional Forwarding Detection)によってBGPネイバーを維持することもできます。

KEEPALIVEタイマ/ホールドタイムの設定と確認コマンド

KEEPALIVEタイマ/ホールドタイムの設定

KEEPALIVEタイマ、ホールドタイムの値を変更するには、次のコマンドを使います。

KEEPALIVEタイマ/ホールドタイムの設定

(config)#router bgp <AS>
(config-router)#timers bgp <keepalive> <holdtime>

<AS>:AS番号
<keepalive>:KEEPALIVEタイマ値。デフォルト60秒。秒単位
<holdtime>:ホールドタイム値。デフォルト180秒。秒単位

timers bgpコマンドでは、すべてのネイバーに対するタイマが変更されます。ネイバー単位で個別にKEEPALIVEタイマ値、ホールドタイム値を設定することも可能です。

KEEPALIVEタイマ/ホールドタイムの設定 (ネイバー単位)

(config)#router bgp <AS>
(config-router)#neighbor <ip-address> timers <keepalive> <holdtime>

<AS>:AS番号
<ip-address>:ネイバーのIPアドレス
<keepalive>:KEEPALIVEタイマ値。デフォルト60秒。秒単位
<holdtime>:ホールドタイム値。デフォルト180秒。秒単位

timers bgpコマンドとneighbor timersコマンドが両方設定されている場合、neighbor timersコマンドの設定で上書きされます。また、ネイバー間でKEEPALIVEタイマ値、ホールドタイム値の設定が一致していない場合、ネイバー確立時に自動的に小さい方の値に合わされます。

KEEPALIVEタイマ/ホールドタイムの確認

KEEPALIVEタイマ/ホールドタイムを確認する主なコマンドです。

コマンド概要
#show ip bgp neighborBGPネイバーの詳細を表示します。

show ip bgp neigbhor

R1#show ip bgp neighbors 172.16.1.11
BGP neighbor is 172.16.1.11,  remote AS 1, external link
  BGP version 4, remote router ID 111.1.1.11
  BGP state = Established, up for 00:18:51
  Last read 00:00:31, hold time is 150, keepalive interval is 50 seconds
  Neighbor capabilities:
    Route refresh: advertised and received(old & new)
    Address family IPv4 Unicast: advertised and received
-- omitted --
R1#show ip bgp neighbors 172.16.1.22
BGP neighbor is 172.16.1.22,  remote AS 2, external link
  BGP version 4, remote router ID 222.2.2.22
  BGP state = Established, up for 00:15:27
  Last read 00:01:00, hold time is 30, keepalive interval is 10 seconds
  Configured hold time is 30, keepalive interval is 10 seconds
  Neighbor capabilities:
    Route refresh: advertised and received(old & new)
    Address family IPv4 Unicast: advertised and received
-- omitted --

KEEPALIVEタイマ/ホールドタイムの設定例

ネットワーク構成

次のようなネットワーク構成でKEEPALIVEタイマ/ホールドタイムを確認します。

図 BGP KEEPALIVEタイマ/ホールドタイムの設定
図 BGP KEEPALIVEタイマ/ホールドタイムの設定

各ルータのBGP設定

各ルータのBGPの設定は次の通りです。

R1 BGP設定

router bgp 100
 no synchronization
 bgp log-neighbor-changes
 neighbor 172.16.1.11 remote-as 1
 neighbor 172.16.1.22 remote-as 2
 neighbor 172.16.1.22 timers 10 30
 no auto-summary

ISP1 BGP設定

router bgp 1
 bgp log-neighbor-changes
 timers bgp 50 150
 neighbor 172.16.1.1 remote-as 100
 no auto-summary

ISP2 BGP設定

router bgp 2
 no synchronization
 bgp log-neighbor-changes
 timers bgp 70 210
 neighbor 172.16.1.1 remote-as 100
 no auto-summary

KEEPALIVEタイマ/ホールドタイムの確認

各ネイバー間で設定されているタイマ値と実際のタイマ値をまとめます。

  • R1-ISP1
    • R1の設定:KEEPALIVE 60s/ホールドタイム 180s (デフォルト)
    • ISP1の設定:KEEPALIVE 50s/ホールドタイム 150s
    • 実際のタイマ:KEEPALIVE 50s/ホールドタイム 150s
  • R1-ISP2
    • R1の設定:KEEPALIVE 10s/ホールドタイム 30s
    • ISP2の設定:KEEPALIVE 70s/ホールドタイム 210s
    • 実際のタイマ:KEEPALIVE 10s/ホールドタイム 30s

タイマの値がネイバー間で一致していないと、小さい方のタイマ値になります。R1でshow ip bgp neighborコマンドで確認します。

R1 show ip bgp neigbhor

R1#show ip bgp neighbors 172.16.1.11
BGP neighbor is 172.16.1.11,  remote AS 1, external link
  BGP version 4, remote router ID 111.1.1.11
  BGP state = Established, up for 00:18:51
  Last read 00:00:31, hold time is 150, keepalive interval is 50 seconds
  Neighbor capabilities:
    Route refresh: advertised and received(old & new)
    Address family IPv4 Unicast: advertised and received
-- omitted --
R1#show ip bgp neighbors 172.16.1.22
BGP neighbor is 172.16.1.22,  remote AS 2, external link
  BGP version 4, remote router ID 222.2.2.22
  BGP state = Established, up for 00:15:27
  Last read 00:01:00, hold time is 30, keepalive interval is 10 seconds
  Configured hold time is 30, keepalive interval is 10 seconds
  Neighbor capabilities:
    Route refresh: advertised and received(old & new)
    Address family IPv4 Unicast: advertised and received
-- omitted --

まとめ

ポイント

  • BGPネイバーは基本的に定期的にKEEPALIVEメッセージを交換することで維持します。
  • KEEPALIVEメッセージを送信するKEEPALIVEタイマとネイバーがダウンしたとみなすホールドタイムのデフォルトは以下です。
    • KEEPALIVEタイマ:60秒
    • ホールドタイム:180秒
  • タイマの変更は、BGPプロセスでの設定とネイバー単位の設定が可能です。
  • ネイバー間でタイマが一致していないと、小さい値に合わせます。

BGPの仕組み