経路情報のフィルタ(ネットワーク番号)
・ディストリビュート・リストを使って,RouterAが10.10.10.0/24の経路情報をRouterBに送信しないようにする
・経路情報がフィルタされていることを確かめる
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname RouterA
!
interface Loopback0
ip address 10.10.10.10 255.255.255.0
!
interface Loopback1
ip address 20.20.20.20 255.255.255.0
!
interface Serial0
ip address 192.168.1.1 255.255.255.0
clockrate 64000
!
interface Serial1
ip address 192.168.2.1 255.255.255.0
clockrate 64000
!
router bgp 100
no synchronization
bgp log-neighbor-changes
network 10.10.10.0 mask 255.255.255.0
network 20.20.20.0 mask 255.255.255.0
neighbor 192.168.1.2 remote-as 200
neighbor 192.168.2.2 remote-as 200
neighbor 192.168.2.2 distribute-list 1 out ←192.168.1.2(RouterB)へ経路情報を送信するときにディストリビュートリスト(アクセスリスト)1番を適用
no auto-summary
!
access-list 1 deny 10.10.10.0 0.0.0.255 ←10.10.10.0/24の経路情報は拒否(遮断)
access-list 1 permit any

!
line con 0
line aux 0
line vty 0 4
login
!
end
RouterBのコンフィグ
!
version 12.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterB
!
interface Loopback0
ip address 2.2.2.2 255.255.255.255
!
interface Serial0
ip address 192.168.1.2 255.255.255.0
!
interface Serial1
ip address 192.168.3.1 255.255.255.0
!
router ospf 1
log-adjacency-changes
passive-interface Serial0
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 200
no synchronization
bgp log-neighbor-changes
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 update-source Loopback0
neighbor 4.4.4.4 remote-as 200
neighbor 4.4.4.4 update-source Loopback0
neighbor 192.168.1.1 remote-as 100
no auto-summary
!
line con 0
line aux 0
line vty 0 4
login
!
end
RouterCのコンフィグ
!
version 12.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterC
!
interface Loopback0
ip address 3.3.3.3 255.255.255.255
!
interface Serial0
ip address 192.168.2.2 255.255.255.0
no fair-queue
!
interface Serial1
ip address 192.168.4.1 255.255.255.0
!
router ospf 1
log-adjacency-changes
passive-interface Serial0
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 200
no synchronization
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 update-source Loopback0
neighbor 4.4.4.4 remote-as 200
neighbor 4.4.4.4 update-source Loopback0
neighbor 192.168.2.1 remote-as 100
no auto-summary
!
line con 0
line aux 0
line vty 0 4
login
!
end
RouterDのコンフィグ
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname RouterD
!
interface Loopback0
ip address 4.4.4.4 255.255.255.255
!
interface Serial0
ip address 192.168.3.2 255.255.255.0
clockrate 64000
!
interface Serial1
ip address 192.168.4.2 255.255.255.0
clockrate 64000
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 200
no synchronization
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 update-source Loopback0
no auto-summary
!
line con 0
line aux 0
line vty 0 4
login
!
end
確認
BGPでは,経路情報の送信や受信を細かく制御したいときが出てきます。
制御方法にはいろいろありますが,その中の一つが「ディストリビュート・リスト」を使う方法です。
デストリビュート・リストは,要は経路情報のフィルタリングです。
ネットワーク・アドレスを指定して,そのアドレスの経路情報の送受信を許可したり拒否したりできます。

●設定前の確認
ここでは,RouterAがRouterBに配信する10.10.10.0/24の経路情報を止めてみましょう。
この作業は,AS100がAS200に対して「AS100にパケットを送るときはRouterB経由でお願い」という作業になります。
上に示したRouteAのコンフィグで,太字のコマンドがディストリビュート・リストの設定です。
そこで,このディストリビュート・リストのコマンドを入れていない状態から見ていきましょう。

●ディストリビュート・リスト設定前の状態
最初に,ディストリビュート・リスト設定前の,RouterDの経路情報を確認しましょう。
RouterDのBGPテーブルを見てみます。
10.0.0.0/24と20.20.20.0/24の二つの経路情報を受け取っているのがわかります。
いずれもベストパスは,ネクストホップが192.168.1.1になっていて,これはRouterB経由ですね。

RouterD#show ip bgp
BGP table version is 3, local router ID is 4.4.4.4
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
* i10.10.10.0/24  192.168.2.1       0  100    0  100 i
*>i            192.168.1.1       0  100    0  100 i
* i20.20.20.0/24  192.168.2.1       0  100    0  100 i
*>i            192.168.1.1       0  100    0  100 i


では次に,RouterAがRouterBにどんなルートを通知しているかを見てみましょう。
show ip bgp neighbors 192.168.1.2 advertised-routesというコマンドを使うと,それがわかります。
10.10.10.0/24と20.20.20.0/24の二つの経路情報を通知していますね。

RouterA#show ip bgp neighbors 192.168.1.2 advertised-routes
BGP table version is 3, local router ID is 20.20.20.20
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
*> 10.10.10.0/24  0.0.0.0         0      32768   i
*> 20.20.20.0/24  0.0.0.0         0      32768   i


以上が,ディストリビュート・リスト設定前の状態です。

●ディストリビュート・リストの設定
それでは,RouterAにRouterBあてのディストリビュート・リストを設定しましょう。
目標は「RouterBに10.10.10.0/24の経路情報を通知しないようにする」ということです。
最初に,「10.10.10.0/24の経路情報を拒否」という内容を,アクセスリストで定義します。
そして,ここで定義したアクセスリストを,192.168.1.2(RouterB)へ経路情報を送信する際(out)に適用します。

RouterA(config)#access-list 1 deny 10.10.10.0 0.0.0.255
RouterA(config)#access-list 1 permit any
RouterA(config)#router bgp 100
RouterA(config-router)#neighbor 192.168.1.2 distribute-list 1 out


設定が終わったら,すべてのBGPピアをいったんリセットして再確立します。
すると二つのピアがリセットして,しばらくすると再びアップしたことを示すメッセージが出てきます。

RouterA#clear ip bgp *
RouterA#
*Mar 1 01:44:45.331: %BGP-5-ADJCHANGE: neighbor 192.168.1.2 Down User reset
*Mar 1 01:44:45.335: %BGP-5-ADJCHANGE: neighbor 192.168.2.2 Down User reset
*Mar 1 01:45:23.299: %BGP-5-ADJCHANGE: neighbor 192.168.2.2 Up
*Mar 1 01:45:23.375: %BGP-5-ADJCHANGE: neighbor 192.168.1.2 Up


●ディストリビュート・リスト設定後の動作の確認
RouterAがRouterBにどんな経路情報を通知しているか再度確認してみましょう。
表示を見ると,通知している経路情報が,20.20.20.0/24だけになったことがわかります。

RouterA#show ip bgp neighbors 192.168.1.2 advertised-routes
BGP table version is 3, local router ID is 20.20.20.20
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
*> 20.20.20.0/24  0.0.0.0         0       32768  i


RouterDのBGPテーブルを見てみます。
10.10.10.0/24の経路情報が,RouterC(192.168.2.1)経由になりました。
これは,RouterBが10.10.10.0/24の経路情報を配信しなくなったので,RouterDは,RouterCから受け取った10.10.10.0/24の経路情報を採用したためです。

RouterD#show ip bgp
BGP table version is 7, local router ID is 4.4.4.4
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
*>i10.10.10.0/24  192.168.2.1       0  100   0   100 i
* i20.20.20.0/24   192.168.2.1       0  100   0   100 i
*>i             192.168.1.1       0  100   0   100 i


これで,RouterAがRouterBに送っていた経路情報が遮断されたことが確認できました。

●おまけ(RouterCへの送信も遮断してみる)
おまけで,RouterCに送っている10.10.10.0/24の経路情報も遮断してみましょう。
ディストリビュート・リストをRouterC(192.168.2.2)のネイバーに適用してあげればOKです。

RouterA(config)#router bgp 100
RouterA(config-router)#neighbor 192.168.2.2 distribute-list 1 out


設定したら,ピアを再確立させます。

RouterA#clear ip bgp *
RouterA#
*Mar 1 01:53:16.087: %BGP-5-ADJCHANGE: neighbor 192.168.1.2 Down User reset
*Mar 1 01:53:16.091: %BGP-5-ADJCHANGE: neighbor 192.168.2.2 Down User reset
*Mar 1 01:53:59.831: %BGP-5-ADJCHANGE: neighbor 192.168.1.2 Up
*Mar 1 01:54:02.251: %BGP-5-ADJCHANGE: neighbor 192.168.2.2 Up


RouterDのBGPテーブルを見てみましょう。
10.10.10.0/24の経路情報がなくなりました。
これは,RouterAから10.10.10.0/24の経路情報がまったく出されなくなったためです。

RouterD#show ip bgp
BGP table version is 11, local router ID is 4.4.4.4
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
* i20.20.20.0/24  192.168.2.1       0  100    0   100 i
*>i            192.168.1.1       0  100    0   100 i


ディストリビュート・リストを使うとこのように,やりとりする経路情報を許可したり拒否したりできるわけです。

BGPラボ
BGPの基本設定
BGP同期
BGPの経路集約
ルート・リフレクタ

経路選択(Local Preference)
経路選択(MED)

経路選択(AS Path)
経路情報のフィルタ(ネットワーク番号)
経路情報のフィルタ(AS Path)
BGPコンフェデレーション

バックドア・リンク

BGPコミュニティ