BGP プレフィクス数の制限

ネイバーの設定ミスなどで大量のルート情報(プレフィクス)が送信されると、ルータの負荷が高まり悪影響を受けることがあります。そこで、ネイバーから受信するルート情報の数を制限するためにneighbor maximum-prefixコマンドを使います。このコマンドにより、ネイバーから受信するルート情報の数を制限することで、ルータに過剰な負荷がかかってしまうことを防止します。

neighbor maximum-prefixのコマンドフォーマットは次の通りです。

BGPプレフィクス数の制限 コマンドフォーマット

Router(config)#router bgp <AS>
Router(config-router)#neighbor <ip-address> maximum-prefix <maximum> [<threshold>] [restart <restart-interval>] [warning-only]

<AS>:AS番号
<ip-address>:ネイバーのIPアドレス
<maximum>:受信するルート情報の最大数。デフォルトでは、最大数を超えるとネイバーをダウンさせます。
<threshold>:ワーニング(警告)を表示するしきい値。%で指定。デフォルト75%
restart:ネイバーを自動的に再確立するためのオプション
<restart-interval>:ネイバーを自動的に再確立するまでの時間。分単位
warning-only:受信するルート情報の最大数を超えてもダウンさせずにワーニングを表示するだけにします。

BGP プレフィクス制限の設定例

以下、BGPプレフィクス制限の簡単な設定例です。

図 プレフィクス数の制限
図 プレフィクス数の制限

ISP1からR1へ4つのルートを送信しています。R1で次のように最大の受信ルート数を8として設定します。

R1 maxmum-prefix

router bgp 100
 neighbor 172.16.1.11 maximum-prefix 8

ここでISP1からさらに100.1.4.0/24と100.1.5.0/24、100.1.6.0/24をR1に送信するようにします。すると、R1には次のようなワーニングメッセージが表示されます。

R1 maxmum-prefixのワーニング

*Mar  1 01:31:02.293: %BGP-4-MAXPFX: No. of prefix received from 172.16.1.11 (afi 0) reaches 7, max 8

デフォルトでは、しきい値は75%です。最大数8の75%である6よりも多くのルートを受信したのでワーニングが表示されています。さらにISP1から100.1.7.0/24、100.1.8.0/24のルート情報をR1へ送信します。

R1 最大プレフィクスの超過

R1#
*Mar  1 01:36:02.369: %BGP-4-MAXPFX: No. of prefix received from 172.16.1.11 (afi 0) reaches 8, max 8
R1#
*Mar  1 01:37:02.392: %BGP-3-MAXPFXEXCEED: No. of prefix received from 172.16.1.11 (afi 0):
9 exceed limit 8
*Mar  1 01:37:02.392: %BGP-5-ADJCHANGE: neighbor 172.16.1.11 Down BGP Notification sent
*Mar  1 01:37:02.392: %BGP-3-NOTIFICATION: sent to neighbor 172.16.1.11 3/1 (update malformed) 0 bytes
R1# FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 0034 0200 0000 1940 0101 0040 0204 0201 0001
4003 04AC 1001 0B80 0404 0000 0000 1864 0108
R1#

R1はISP1から設定された最大プレフィクス数8を超えるルートを受け取ったので、ISP1とのネイバーをダウンさせるためにNOTIFICATIONメッセージが送信されていることがわかります。また、show ip bgp summaryでネイバーの状態を見ると、プレフィクス数を超過している状態であることがわかります。

R1 show ip bgp summary

R1#show ip bgp summary
BGP router identifier 100.100.0.1, local AS number 100
BGP table version is 31, main routing table version 31
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.1.11     4     1      88      98        0    0    0 00:02:30 Idle (PfxCt)

続いて、R1でmaximum-prefixの設定にwarning-onlyのオプションを追加します。

R1 maximum-prefix warning-only

router bgp 100
 neighbor 172.16.1.11 maximum-prefix 8 warning-only

すると、下記のように8つよりもたくさんルートを受信してもワーニングメッセージが表示されるだけでネイバーはダウンしないようになります。

R1 warning-onlyのときのワーニングメッセージ

*Mar  1 01:44:19.023: %BGP-5-ADJCHANGE: neighbor 172.16.1.11 Up
*Mar  1 01:44:19.128: %BGP-4-MAXPFX: No. of prefix received from 172.16.1.11 (afi 0) reaches 7, max 8
R1#
*Mar  1 01:44:19.132: %BGP-3-MAXPFXEXCEED: No. of prefix received from 172.16.1.11 (afi 0):
9 exceed limit 8

関連記事

BGPの仕組み