配布リスト OSPF(ACL・prefix-list)

ここでは、OSPFネットワークで以下の設定を行いルートフィルタリングの検証を行います。

  • ACLを使用した配布リストの設定
  • プレフィックスリストを使用した配布リストの設定

まずは、下のネットワークをOSPFで構築します。

検証には、IOS12.0を搭載するCisco2611を使用しています。

各ルータの設定は、以下のようになります。

●Router_Aの設定

!
version 12.0
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router_A
!
enable password cisco
!
ip subnet-zero
!
interface Loopback0
 ip address 10.0.0.1 255.0.0.0
 ip ospf network point-to-point
!
interface Loopback1
 ip address 20.0.0.1 255.0.0.0
 ip ospf network point-to-point
!
interface Ethernet0/0
 ip address 172.16.0.1 255.255.0.0
!
router ospf 1
 network 10.0.0.0 0.0.0.255 area 0
 network 20.0.0.0 0.0.0.255 area 0
 network 172.16.0.0 0.0.255.255 area 0
!
ip classless
!
line con 0
 exec-timeout 0 0
 transport input none
line aux 0
line vty 0 4
 password cisco
 login
!
no scheduler allocate
end

●Router_Bの設定

!
version 12.0
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router_B
!
enable password cisco
!
ip subnet-zero
!
interface Ethernet0/0
 ip address 172.16.0.2 255.255.0.0
!
router ospf 1
 network 172.16.0.0 0.0.255.255 area 0
!
ip classless
!
line con 0
 exec-timeout 0 0
 transport input none
line aux 0
line vty 0 4
 password cisco
 login
!
no scheduler allocate
end

 ルータの設定が完了したら、「copy run start」して保存しておきます。後ほど、この設定状態から、再設定できるようにしておきます。

Router_Bに「10.10.10.0/24」の経路情報をアドバタイズしないようにルートフィルタリングの設定をしていきます。

ACLを使用した配布リストの設定

Router_Aに次の設定を追加します。

Router_A(config)#access-list 1 deny 10.0.0.0 0.255.255.255
Router_A(config)#access-list 1 permit any
Router_A(config)#router ospf 1
Router_A(config-router)#distribute-list 1 out ethernet 0/0

 ところが、「distribute-list」コマンドをインターフェイスの「out」に適用させようとすると以下のメッセージが表示されます。

% Interface not allowed with OUT for OSPF

OSPFでは送信時にフィルタリングを行うことができません。

そこで、Router_Bで配布リストを適用させることにします。

先ほど、Router_Aで作成したACLを削除します。

Router_A(config)#no access-list 1 deny 10.0.0.0 0.255.255.255
Router_A(config)#no access-list 1 permit any

Router_Bで次の設定を追加します。

Router_B(config)#access-list 1 deny 10.0.0.0 0.255.255.255
Router_B(config)#access-list 1 permit any
Router_B(config)#router ospf 1
Router_B(config-router)#distribute-list 1 in ethernet 0/0

Router_Bのルーティングテーブルをクリアします。

Router_B#clear ip route *

Router_Bのルーティングテーブルを確認します。

●Router_Bのルーティングテーブル

Gateway of last resort is not set

O    20.0.0.0/8 [110/11] via 172.16.0.1, 00:00:03, Ethernet0/0
C    172.16.0.0/16 is directly connected, Ethernet0/0

Router_Aからの「10.10.10.0/24」の経路情報を、Router_Bでフィルタリングされていることが確認できます。

次に、プレフィックスリストを使用した配布リストの設定を行います。

Router_Aをリロードします。

Router_A#reload

プレフィックスリストを使用した配布リストの設定

Router_Aに次の設定を追加します。

Router_A(config)#ip prefix-list net-filter seq 10 deny 10.0.0.0/8
Router_A(config)#ip prefix-list net-filter seq 15 permit 0.0.0.0/0 le 32
Router_A(config)#router ospf 1
Router_A(config-router)#distribute-list prefix net-filter in ethernet 0/0

Router_Bのルーティングテーブルをクリアします。

Router_B#clear ip route *

Router_Bのルーティングテーブルを確認します。

●Router_Bのルーティングテーブル

Gateway of last resort is not set

O    20.0.0.0/8 [110/11] via 172.16.0.1, 00:00:30, Ethernet0/0
C    172.16.0.0/16 is directly connected, Ethernet0/0

Router_Aからの「10.10.10.0/24」の経路情報を、Router_Bでフィルタリングされていることが確認できます。