概要
ルート フィルタリングは、Border Gateway Protocol(BGP)のポリシーを設定するための基礎です。BGP ピアから 1 つ以上のネットワークをフィルタリングするには、ネットワーク層到達可能性情報(NLRI)、AS_Path およびコミュニティ属性などを使ったさまざまな方法があります。このドキュメントでは、NLRI に基づくフィルタリングだけについて説明します。AS_Path に基づくフィルタリング方法については、『BGP での正規表現の使用法』を参照してください。詳細については、『BGP 導入事例』の「BGP フィルタリング」の項を参照してください。
前提条件
要件
BGP 設定に関する基本的な知識があることをお勧めします。詳細については、「BGP ケース スタディ」および「BGP の設定」を参照してください。
使用するコンポーネント
このドキュメントの情報は、Cisco IOS® ソフトウェア リリース 12.2(28) に基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
NLRI ベースルートの識別とフィルタリング
ルータが学習またはアドバタイズするルーティング情報を制限するには、ルーティング更新に基づくフィルタを使用できます。フィルタは、ネイバーへの更新およびネイバーからの更新に適用されるアクセス リストまたはプレフィックス リストで構成されます。このドキュメントでは、次のネットワーク図で次のオプションを検討します。
ネットワーク図
標準アクセスリスト付きの配布リストを使用すたフィルタリング
ルータ 200 は、次のネットワークをピアのルータ 100 に通知します。
- 192.168.10.0/24
- 10.10.10.0/24
- 10.10.0.0/19
この設定例では、ルータ 100 は BGP テーブルでネットワーク 10.10.10.0/24 用の更新を拒否し、ネットワーク 192.168.10.0/24 と 10.10.0.0/19 の更新を許可することができます。
ルータ 100 |
hostname Router 100
!
router bgp 100
neighbor 172.16.1.2 remote-as 200
neighbor 172.16.1.2 distribute-list 1 in
!
access-list 1 deny 10.10.10.0 0.0.0.255
access-list 1 permit any |
ルータ 200 |
hostname Router 200
!
router bgp 200
no synchronization
network 192.168.10.0
network 10.10.10.0 mask 255.255.255.0
network 10.10.0.0 mask 255.255.224.0
no auto-summary
neighbor 172.16.1.1 remote-as 100 |
次の show ip bgp コマンドの出力は、ルータ 100 の動作を示しています。
Router 100# show ip bgp
BGP table version is 3, local router ID is 172.16.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.10.0.0/19 172.16.1.2 0 0 200 i
*> 192.168.10.0/24 172.16.1.2 0 0 200 i
拡張アクセスリスト付きの配布リストを使用したフィルタリング
標準のアクセス リストを使用してスーパーネットをフィルタリングするのが難しい場合があります。ルータ 200 が次のネットワークを通知するとします。
- 10.10.1.0/24 から 10.10.31.0/24 まで
- 10.10.0.0/19(その集約)
ルータ 100 では集約ネットワーク 10.10.0.0/19 だけを受信し、他の個々のネットワークはすべてフィルタリングしたいとします。
access-list 1 permit 10.10.0.0 0.0.31.255 のような標準アクセス リストは、必要以上のネットワークを許可するため機能しません。標準アクセス リストは、ネットワーク アドレスのみを調べ、ネットワーク マスクの長さをチェックできません。この標準アクセス リストは、/19 の集約ネットワークだけでなく個々の /24 ネットワークも許可します。
スーパーネット10.10.0.0/19だけを許可するには、access-list 101 permit ip 10.10.0.0 0.0.0.0 255.255.224.0 0.0.0などの拡張アクセスリストを使用します。拡張access-listコマンドの形式については、access-list (IP拡張)を参照してください。
次の例では、送信元は 10.10.0.0 で、送信元を完全一致させるためにソース ワイルドカード 0.0.0.0 が設定されています。送信元のマスクを完全に一致させるために、マスク 255.255.224.0 とマスク ワイルドカード 0.0.0.0 が設定されています。これらのどちらか(発信元またはマスク)が完全に一致していない場合、アクセス リストは拒否します。
これで、拡張 access-list コマンドは、完全に一致した、マスク 255.255.224.0 の送信元のネットワーク番号 10.10.0.0(したがって 10.10.0.0/19)を許可できます。 他の 24 の個々のネットワークはフィルタリングされます。
注:ワイルドカードを設定する場合、0 は完全一致のビットであることを、1 は完全一致でなくてもかまわないビットであることを示します。
次にルータ 100 の設定を示します。
ルータ 100 |
hostname Router 100
!
router bgp 100
!--- Output suppressed.
neighbor 172.16.1.2 remote-as 200
neighbor 172.17.1.2 distribute-list 101 in
!
!
access-list 101 permit ip 10.10.0.0 0.0.0.0 255.255.224.0 0.0.0.0 |
次のルータ 100 からの show ip bgp コマンドの出力は、アクセス リストが期待どおりに動作していることを示しています。
Router 100# show ip bgp
BGP table version is 2, local router ID is 172.16.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.10.0.0/19 172.16.1.2 0 0 200 i
このセクションで分かるように、同じ主ネットワーク内で許可するネットワークと拒否するネットワークがある場合は、拡張アクセス リストを使うと便利です。次に、拡張アクセス リストが役立つ状況をいくつか紹介します。
- access-list 101 permit ip 192.168.0.0 0.0.0.0 255.255.252.0 0.0.0.0
このアクセス リストは、スーパーネット 192.168.0.0/22 だけを許可します。
- access-list 102 permit ip 192.168.10.0 0.0.0.255 255.255.255.0 0.0.0.255
このアクセスリストは、192.168.10.0/24のすべてのサブネットを許可します。つまり、192.168.10.0/24、192.168.10.0/25、192.168.10.128/25などを許可します。マスクが 24 ~ 32 の 192.168.10.x ネットワークすべてを許可します。
- access-list 103 permit ip 0.0.0.0 255.255.255.255 255.255.255.0 0.0.0.255
このアクセス リストは、マスクが 24 ~ 32 の任意のネットワーク プレフィックスを許可します。
ip prefix-list コマンドを使用したフィルタリング
ルータ 200 は、次のネットワークをピアのルータ 100 に通知します。
- 192.168.10.0/24
- 10.10.10.0/24
- 10.10.0.0/19
このセクションの設定例では、ip prefix-listコマンドを使用します。これにより、ルータ100は次の2つのことを実行できます。
- プレフィックス マスクの長さが 19 以下のネットワークの更新を許可する。
- ネットワーク マスクの長さが 19 より長いすべてのネットワークの更新を拒否する。
ルータ 100 |
hostname Router 100
!
router bgp 100
neighbor 172.16.1.2 remote-as 200
neighbor 172.16.1.2 prefix-list cisco in
!
ip prefix-list cisco seq 10 permit 0.0.0.0/0 le 19 |
ルータ 200 |
hostname Router 200
!
router bgp 200
no synchronization
network 192.168.10.0
network 10.10.10.0 mask 255.255.255.0
network 10.10.0.0 mask 255.255.224.0
no auto-summary
neighbor 172.16.1.1 remote-as 100 |
次の show ip bgp コマンドの出力は、プレフィックス リストがルータ 100 で想定どおりに動作していることを示しています。
Router 100# show ip bgp
BGP table version is 2, local router ID is 172.16.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.10.0.0/19 172.16.1.2 0 0 200 i
結論として、BGP でネットワークをフィルタリングするには、プレフィックス リストを使用するのが最も便利な方法です。ただし、場合によっては、マスク長も制御しながら、奇数および偶数のネットワークをフィルタリングする場合などは、拡張アクセス リストのほうがプレフィックス リストより柔軟に制御できます。
BGP ピアからのデフォルト ルートのフィルタリング
prefix-list コマンドを使用して、BGP ピアによってアドバタイズされる 0.0.0.0/32 のようなデフォルト ルートをフィルタリングまたはブロックできます。show ip bgp コマンドを使用すると、0.0.0.0 エントリを使用できることが分かります。
Router 100#show ip bgp
BGP table version is 5, local router ID is 172.16.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 0.0.0.0 172.16.1.2 0 0 200 i
このセクションの設定例は ip prefix-list コマンドを使用して、ルータ 100 で実行されます。
ルータ 100 |
hostname Router 100
!
router bgp 100
neighbor 172.16.1.2 remote-as 200
neighbor 172.16.1.2 prefix-list deny-route in
!
ip prefix-list deny-route seq 5 deny 0.0.0.0/0
ip prefix-list deny-route seq 10 permit 0.0.0.0/0 le 32
|
この設定後に show ip bgp を実行すると、前の show ip bgp 出力で使用できた 0.0.0.0 エントリは表示されません。
関連情報