BGPセッションを切らずに経路を更新する!ルートリフレッシュ機能【Cisco環境】

BGP(Border Gateway Protocol)は、ネットワーク同士をつなぐための主要な経路制御プロトコルであり、特に大規模ネットワークやインターネット全体で使用される重要な役割を果たしています。BGPでは、経路情報が変更された場合、差分のみがアップデートされますが、ルーティングポリシーの変更(例えば、経路フィルタや属性値の変更)が行われた際には、すべての経路情報に対して再度適用しなければなりません。

 一番簡単なのは、ピアとのBGPセッション(TCPセッション)を再確立することで、ハードリセットと言います。コマンドはclear ip bgp * です。 「 * 」は全てのネイバーが対象 という意味です。

特定のネイバーのセッションを再確立するには、clear ip bgp 192.168.23.3 というように、「 * 」の代わりに、ネイバーのアドレスを指定します。

ハードリセットは、ラボ環境などでは問題ないですが、運用環境では、TCPセッションを切断による通信断が発生するため、通常は許容されません。

 TCPセッションを確立したまま、ルート情報だけを再送信するルートリフレッシュ機能について確認します。

スポンサーリンク

ルートリフレッシュ機能

 BGPピアへのTCPセッションを確立した後、BGP OPENメッセージによりBGPバージョンやAS番号などをお互いに通知します。

 OPENメッセージについては以下の記事を参考にしてください。

  >> 参考 :  ルータ間通信をキャプチャしてみた

 OPENメッセージの中に、オプションパラメータというフィールドがあり、この中に、ルートリフレッシュ機能をサポートしているか否かをピアに通知します

 ピア間で、ルートリフレッシュ機能が使用できるのであれば、以下のとおり出力されます。

R3# show ip bgp neighbors  | section neighbor
BGP neighbor is 192.168.23.2,  remote AS 2, external link
  BGP version 4, remote router ID 2.2.2.2
  BGP state = Established, up for 00:18:49
  Last read 00:00:45, last write 00:00:36, hold time is 180, keepalive interval is 60 seconds
  Neighbor sessions:
    1 active, is not multisession capable (disabled)
  Neighbor capabilities:
    Route refresh: advertised and received(new)
    Four-octets ASN Capability: advertised and received
    Address family IPv4 Unicast: advertised and received
    Enhanced Refresh Capability: advertised and received
    Multisession Capability:
    Stateful switchover support enabled: NO for session 1

clear ip bgp * in

 R2で clear ip bgp * in コマンドを実行すると、R3に対して、ルートリフレッシュの要求が送信されます。

R2# clear ip bgp * in

 次にR3はR2に対して、ルートリフレッシュの開始(Subtype=1)で送信し、その後、アップデートによりルートが再送信されます。

 アップデートメッセージによりBGPルート(3.3.3.3/32)や属性などを送信し、ルートリフレッシュの終了(Subtype=2)を送付します。

clear ip bgp * out

 R2で clear ip bgp * out コマンドを実行すると、R3に対して、アップデートが送信されます。

R2# clear ip bgp * out

 R2でコマンドを実行すると、ルートリフレッシュの要求を送信せず、R3に対して、ルートリフレッシュの開始(Subtype=1)が送信されます。

 次にアップデートメッセージによりBGPルート(2.2.2.2/32)や属性などを送信し、ルートリフレッシュの終了(Subtype=2)が送信されます。

 以上のコマンドで、BGPルートが再送信され、BGPポリシー(属性変更やルートフィルタ)を適用することができます。

スポンサーリンク

ルートキャッシュ機能(ソフト再構成)

 ルートリフレッシュ機能がサポートされていない場合は、ルートキャッシュ機能を使用します。 これは、BGPポリシー適用前のルート情報のキャッシュテーブルをネイバー毎に保存し、そのキャッシュテーブルに対して、ポリシーを適用します。

追加でメモリ消費しますので、特にルート数やネイバー数が多い場合は、注意をしてください。

 キャッシュテーブルは以下のコマンドで確認できます。デフォルトでは、ルートキャッシュ機能は無効ですので、テーブルはありません。

R2# show ip bgp neighbors 192.168.23.3 received-routes 
% Inbound soft reconfiguration not enabled on 192.168.23.3

 ルートキャッシュ機能を有効にするには、以下の設定をします。

R2(config)# router bgp 2
R2(config-router)# neighbor 192.168.23.3 soft-reconfiguration inbound

 BGPセッションをクリアし、再度、R3からBGPルートを受信すると、その情報がキャッシュテーブルに保存されます。

R2# show ip bgp neighbors 192.168.23.3 received-routes 
BGP table version is 5, local router ID is 2.2.2.2
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
 *>  3.3.3.3/32       192.168.23.3             0             0 3 i

Total number of prefixes 1

 このキャッシュテーブルに対して、設定変更されたBGPポリシーを適用して、ルーティングテーブルに反映するには、clear ip bgp * soft in を実行します。

R2# clear ip bgp * soft in

その他 BGP関連記事は   >>  ルーティングプロトコル(BGP)まとめ << より参照できます。

コメント