はじめに
こんにちは。ネットワークエンジニアの「だいまる」です。
今回は、BGPで広報している経路をPrefix-ListとRoute-mapを使った制御についてまとめていきます。
Prefix-ListとRoute-mapを使った経路制御
概要
BGPでフィルターをかけない場合、Cisco IOSでは全ての経路を広報することがデフォルトの動作となっています。
必要な経路のみを広報する場合が多くあるため、今回まとめる設定を使う必要があります。
設定方法(Cisco IOS)
作成したPrefix-ListをRoute-mapに適用することが一般的ですが、Cisco IOSではPrefix-Listそのもので適用することができます。
Prefix-Listによる経路制御
Prefix-Listによる経路制御は以下のコマンドで実施します。
(config)# ip prefix-list <List名> seq <シーケンス番号> [permit | deny] <prefix> ge <length> le <length>
(config)#router bgp <AS番号>
(config-router)#neighbor <neighborアドレス> prefix-list [in|out]
| 項目 | 詳細 |
|---|---|
| List名 | Prefix-Listのリスト名 |
| シーケンス番号 | 複数あるルールの中で参照するSequence番号 |
| [permit | deny] | permit:経路を広報、deny:経路を停止 |
| prefix | 対象とするPrefix |
| ge <length> | <prefix>に対するprefix長以上となる |
| le <length> | <prefix>に対するprefix長未満となる |
Route-mapによる経路制御
Prefix-ListとRoute-mapの2つを使った方法を以下に記載します。(Prefix-Listは割愛)
(config)#route-map <route-map名> [permit|deny] <seq番号>
(config-route-map)#match ip address prefix-list <prefix-list名>
(config)#router bgp <AS番号>
(config-router)# neighbor <neighborアドレス> route-map <route-map名> [in|out]
Prefix-listによる動作確認(Cisco IOS)
今回も同じように「prefix-listによる制御」と「route-mapによる制御」の2パターンの動作確認します。
検証構成
今回も同様の検証構成で確認していきます。
事前確認
今回はAS100に属するルータのLoopbackのうち、ルータ4とルータ3のみをAS200に広報してみたいと思います。
Router6#show ip bgp
BGP table version is 13, local router ID is 10.20.6.1
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,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* 10.10.1.1/32 192.168.4.2 0 300 100 i
*> 192.168.2.1 0 100 i
* i 10.20.5.1 0 100 0 100 i
* i 10.10.2.1/32 10.20.5.1 0 100 0 100 i
* 192.168.4.2 0 300 100 i
*> 192.168.2.1 0 0 100 i
* i 10.10.3.1/32 10.20.5.1 0 100 0 100 i
* 192.168.4.2 0 300 100 i
*> 192.168.2.1 0 100 i
* 10.10.4.1/32 192.168.4.2 0 300 100 i
*> 192.168.2.1 0 100 i
* i 10.20.5.1 0 100 0 100 i
* i 10.20.0.0/16 10.20.5.1 0 100 0 100 i
* 192.168.4.2 0 300 100 i
*> 192.168.2.1 0 0 100 i
r>i 10.20.5.1/32 10.20.5.1 0 100 0 i
*> 10.20.6.1/32 0.0.0.0 0 32768 i
r>i 10.20.7.1/32 10.20.7.1 0 100 0 i
* 10.30.8.1/32 192.168.2.1 0 100 300 i
*> 192.168.4.2 0 0 300 i
* 10.40.9.1/32 192.168.4.2 0 300 100 400 i
*> 192.168.2.1 0 100 400 i
* i 10.20.5.1 0 100 0 400 400 i
* 10.40.19.1/32 192.168.4.2 0 300 100 400 i
*> 192.168.2.1 0 100 400 i
* i 10.20.5.1 0 100 0 400 400 i
設定方法(Prefix-List)
まずはPrefix-list形式での経路制御を行っていきたいと思います
Router2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router2(config)#ip prefix-list Loopback seq 10 permit 10.10.3.1/32
Router2(config)#ip prefix-list Loopback seq 20 permit 10.10.4.1/32
Router2(config)#router bgp 100
Router2(config-router)#neighbor 192.168.2.2 prefix-list Loopback out
Router2(config-router)#end
事後確認
ルータ6のBGPテーブルを確認すると「10.10.1.1/32」と「10.10.2.1/32」のNext-Hop 192.168.2.1の経路がなくなっていることがわかると思います。
Router6#show ip bgp
BGP table version is 18, local router ID is 10.20.6.1
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,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* 10.10.1.1/32 192.168.4.2 0 300 100 i
*>i 10.20.5.1 0 100 0 100 i
*>i 10.10.2.1/32 10.20.5.1 0 100 0 100 i
* 192.168.4.2 0 300 100 i
* i 10.10.3.1/32 10.20.5.1 0 100 0 100 i
* 192.168.4.2 0 300 100 i
*> 192.168.2.1 0 100 i
* 10.10.4.1/32 192.168.4.2 0 300 100 i
*> 192.168.2.1 0 100 i
* i 10.20.5.1 0 100 0 100 i
*>i 10.20.0.0/16 10.20.5.1 0 100 0 100 i
* 192.168.4.2 0 300 100 i
r>i 10.20.5.1/32 10.20.5.1 0 100 0 i
*> 10.20.6.1/32 0.0.0.0 0 32768 i
r>i 10.20.7.1/32 10.20.7.1 0 100 0 i
*> 10.30.8.1/32 192.168.4.2 0 0 300 i
* 10.40.9.1/32 192.168.4.2 0 300 100 400 i
*>i 10.20.5.1 0 100 0 400 400 i
* 10.40.19.1/32 192.168.4.2 0 300 100 400 i
*>i 10.20.5.1 0 100 0 400 400 i
Route-mapによる動作確認(Cisco IOS)
Prefix-Listによる経路制御を確認した後は、一般的に使われることが多いRoute-mapによる制御を確認していきましょう。
事前確認
次はルータ1とルータ5で確認してみましょう。
想定では、Next-Hop 192.168.1.1の経路が削除されます。
Router5#show ip bgp
BGP table version is 15, local router ID is 10.20.5.1
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,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* 10.10.1.1/32 192.168.6.2 0 400 400 100 i
*> 192.168.1.1 0 0 100 i
* 10.10.2.1/32 192.168.6.2 0 400 400 100 i
*> 192.168.1.1 0 100 i
* 10.10.3.1/32 192.168.6.2 0 400 400 100 i
*> 192.168.1.1 0 100 i
* i 10.20.6.1 0 100 0 100 i
* 10.10.4.1/32 192.168.6.2 0 400 400 100 i
* i 10.20.6.1 0 100 0 100 i
*> 192.168.1.1 0 100 i
* 10.20.0.0/16 192.168.6.2 0 400 400 100 i
*> 192.168.1.1 0 100 i
*> 10.20.5.1/32 0.0.0.0 0 32768 i
r>i 10.20.6.1/32 10.20.6.1 0 100 0 i
r>i 10.20.7.1/32 10.20.7.1 0 100 0 i
* 10.30.8.1/32 192.168.1.1 0 100 300 i
*>i 10.20.6.1 0 100 0 300 i
* 10.40.9.1/32 192.168.1.1 0 100 400 i
*> 192.168.6.2 0 0 400 400 i
* 10.40.19.1/32 192.168.1.1 0 100 400 i
*> 192.168.6.2 0 0 400 400 i
設定方法(Route-map)
以下のコマンドで設定していきます。
Router1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip prefix-list Loopback seq 10 permit 10.10.3.1/32
Router1(config)#ip prefix-list Loopback seq 20 permit 10.10.4.1/32
Router1(config)#
Router1(config)#route-map Loopback_Out permit 10
Router1(config-route-map)#match ip address prefix-list Loopback
Router1(config-route-map)#exit
Router1(config)#router bgp 100
Router1(config-router)#neighbor 192.168.1.2 route-map Loopback_Out out
Router1(config-router)#end
事後確認
以下の状態を見るとしっかり消えていることがわかります。
outer5#show ip bgp
BGP table version is 34, local router ID is 10.20.5.1
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,
t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*>i 10.10.1.1/32 10.20.6.1 0 100 0 300 100 i
* 192.168.6.2 0 400 400 100 i
*>i 10.10.2.1/32 10.20.6.1 0 100 0 300 100 i
* 192.168.6.2 0 400 400 100 i
*> 10.10.3.1/32 192.168.1.1 0 100 i
* 192.168.6.2 0 400 400 100 i
* i 10.20.6.1 0 100 0 100 i
*> 10.10.4.1/32 192.168.1.1 0 100 i
* 192.168.6.2 0 400 400 100 i
* i 10.20.6.1 0 100 0 100 i
*>i 10.20.0.0/16 10.20.6.1 0 100 0 300 100 i
* 192.168.6.2 0 400 400 100 i
*> 10.20.5.1/32 0.0.0.0 0 32768 i
r>i 10.20.6.1/32 10.20.6.1 0 100 0 i
r>i 10.20.7.1/32 10.20.7.1 0 100 0 i
*>i 10.30.8.1/32 10.20.6.1 0 100 0 300 i
*> 10.40.9.1/32 192.168.6.2 0 0 400 400 i
*> 10.40.19.1/32 192.168.6.2 0 0 400 400 i
最後に
今回もBGPのシリーズとして、経路制御の方法についてまとめてみました。
この記事もみなさんの参考になれば幸いです。


