OSPFルートフィルタ実機確認 ネットワーク構成
前回までで解説したOSPFのルートフィルタの動作について、Ciscoルータで実際に確認します。まずは、下記のネットワーク構成で考えます。
R1、R2、R3の初期設定を抜粋したものが下記のログです。
R1 初期設定抜粋
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ interface Serial1/0 ip address 10.1.12.1 255.255.255.0 clock rate 64000 ! interface Serial1/1 ip address 10.1.13.1 255.255.255.0 clock rate 64000 ! router ospf 100 router-id 1.1.1.1 log-adjacency-changes network 10.1.12.0 0.0.0.255 area 0 network 10.1.13.0 0.0.0.255 area 0 ! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2 初期設定抜粋
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ interface Loopback0 ip address 172.16.1.2 255.255.255.0 ip ospf network point-to-point ! interface Loopback1 ip address 172.16.2.2 255.255.255.0 ip ospf network point-to-point ! interface Loopback2 ip address 172.16.3.2 255.255.255.0 ip ospf network point-to-point ! interface Serial0/0 ip address 10.1.12.2 255.255.255.0 ! router ospf 100 router-id 2.2.2.2 log-adjacency-changes network 10.1.12.0 0.0.0.255 area 0 network 172.16.0.0 0.0.255.255 area 0 ! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R3 初期設定抜粋
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ interface Loopback0 ip address 192.168.1.3 255.255.255.0 ip ospf network point-to-point ! interface Loopback1 ip address 192.168.2.3 255.255.255.0 ip ospf network point-to-point ! interface Loopback2 ip address 192.168.3.3 255.255.255.0 ip ospf network point-to-point ! interface Serial0/0 ip address 10.1.13.3 255.255.255.0 ! router ospf 100 router-id 3.3.3.3 log-adjacency-changes network 10.1.13.0 0.0.0.255 area 0 network 192.168.0.0 0.0.255.255 area 0 ! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
このネットワーク構成でR1でOSPFのルートフィルタの動作を確認します。フィルタをかけていないときのR1のルーティングテーブルは次のようになります。
R1 ルーティングテーブル
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show ip route
~省略~
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 3 subnets
O 172.16.1.0 [110/782] via 10.1.12.2, 00:04:21, Serial1/0
O 172.16.2.0 [110/782] via 10.1.12.2, 00:04:21, Serial1/0
O 172.16.3.0 [110/782] via 10.1.12.2, 00:04:21, Serial1/0
10.0.0.0/24 is subnetted, 2 subnets
C 10.1.13.0 is directly connected, Serial1/1
C 10.1.12.0 is directly connected, Serial1/0
O 192.168.1.0/24 [110/782] via 10.1.13.3, 00:04:21, Serial1/1
O 192.168.2.0/24 [110/782] via 10.1.13.3, 00:04:21, Serial1/1
O 192.168.3.0/24 [110/782] via 10.1.13.3, 00:04:23, Serial1/1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
また、R1のLSDBのサマリーは次の出力です。
R1 LSDBサマリー
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show ip ospf database
OSPF Router with ID (1.1.1.1) (Process ID 100)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 354 0x80000005 0x0054F1 4
2.2.2.2 2.2.2.2 351 0x80000003 0x000EE0 5
3.3.3.3 3.3.3.3 285 0x80000007 0x009247 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
現在の構成は、シングルエリアでなおかつマルチアクセスのネットワークがありません。そのため、R1のLSDBは各ルータが生成したLSAタイプ1のみで構成されていることがわかります。
インタフェースを対象としたoutのフィルタ
まずは、OSPFでは機能しないインタフェースを対象としたout方向のフィルタの設定を行います。
R1のSerial1/0のoutで、192.168.1.0/24を送信しないようなフィルタを設定します。R1で、次のようにコマンドを入力していきます。
R1 Serial1/0のoutで192.168.1.0/24をフィルタ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ R1(config)#access-list 1 deny 192.168.1.0 R1(config)#access-list 1 permit any R1(config)#router ospf 100 R1(config-router)#distribute-list 1 out serial 1/0 % Interface not allowed with OUT for OSPF ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
outでインタフェースを指定すると、エラーメッセージが出てくることがわかります。そして、コマンドは受け付けられません。次のようにインタフェースを指定しないで設定すれば、コマンド自体は受け付けられます。
R1 インタフェースを指定せずにoutのディストリビュートリスト
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ R1(config)#router ospf 100 R1(config-router)#distribute-list 1 out R1(config-router)#do show run ~省略~ router ospf 100 router-id 1.1.1.1 log-adjacency-changes network 10.1.12.0 0.0.0.255 area 0 network 10.1.13.0 0.0.0.255 area 0 distribute-list 1 out ~省略~ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ただし、コマンドが受け付けられても、実際には想定したようなフィルタは一切かかっていません。R2のルーティングテーブルを見ると、192.168.1.0/24のルートが載せられています。
R2 ルーティングテーブル
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R2#show ip route
~省略~
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 3 subnets
C 172.16.1.0 is directly connected, Loopback0
C 172.16.2.0 is directly connected, Loopback1
C 172.16.3.0 is directly connected, Loopback2
10.0.0.0/24 is subnetted, 2 subnets
O 10.1.13.0 [110/845] via 10.1.12.1, 00:14:59, Serial0/0
C 10.1.12.0 is directly connected, Serial0/0
O 192.168.1.0/24 [110/846] via 10.1.12.1, 00:14:59, Serial0/0
O 192.168.2.0/24 [110/846] via 10.1.12.1, 00:14:59, Serial0/0
O 192.168.3.0/24 [110/846] via 10.1.12.1, 00:15:00, Serial0/0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
インタフェースを省略すると、全インタフェースが対象です。しかし、OSPFではインタフェースを対象としたディストリビュートリストは機能していないことがわかります。
OSPFのディストリビュートリストでoutの後は、ルーティングプロトコルを指定するとこで、再配送時のルートフィルタを行うことができます。このことについては、別途、あらためて解説します。
inのフィルタ
次にディストリビュートリストをinで適用してフィルタします。
R1で172.16.3.0/24のルートをディストリビュートリストのinによって、フィルタします。R1で、次のように設定します。
R1 Serial1/0のinで172.16.3.0/24をフィルタ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ R1(config)#access-list 2 deny 172.16.3.0 R1(config)#access-list 2 permit any R1(config)#router ospf 100 R1(config-router)#distribute-list 2 in serial 1/0 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
そして、R1のルーティングテーブルを見ると、172.16.3.0/24のルートがなくなっています。
R1 ルーティングテーブル
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#sh ip route
~省略~
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 2 subnets
O 172.16.1.0 [110/782] via 10.1.12.2, 00:00:16, Serial1/0
O 172.16.2.0 [110/782] via 10.1.12.2, 00:00:16, Serial1/0
10.0.0.0/24 is subnetted, 2 subnets
C 10.1.13.0 is directly connected, Serial1/1
C 10.1.12.0 is directly connected, Serial1/0
O 192.168.1.0/24 [110/782] via 10.1.13.3, 00:00:16, Serial1/1
O 192.168.2.0/24 [110/782] via 10.1.13.3, 00:00:16, Serial1/1
O 192.168.3.0/24 [110/782] via 10.1.13.3, 00:00:16, Serial1/1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ただし、LSA自体はフィルタしていません。この状態で、R1のLSDBのサマリーを確認します。
R1 LSDBサマリー
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1#show ip ospf database
OSPF Router with ID (1.1.1.1) (Process ID 100)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 1839 0x80000005 0x0054F1 4
2.2.2.2 2.2.2.2 1836 0x80000003 0x000EE0 5
3.3.3.3 3.3.3.3 1770 0x80000007 0x009247 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
「Age」の部分を除いて、初期状態のときとLSDBのサマリーはいっさい変わっていません。前回解説したようにLSAのフィルタではなく、ルーティングテーブルにルートを登録するときにフィルタをかけています。
なお、inでインタフェースを指定したときは、出力インタフェースが指定したインタフェースであるルートが対象です。次のように設定を変更すれば、フィルタはかからなくなります。
R1 インタフェースの変更
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1(config)#router ospf 100
R1(config-router)#no distribute-list 2 in serial 1/0
R1(config-router)#distribute-list 2 in serial 1/1
R1(config-router)#do show ip route
~省略~
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 3 subnets
O 172.16.1.0 [110/782] via 10.1.12.2, 00:00:30, Serial1/0
O 172.16.2.0 [110/782] via 10.1.12.2, 00:00:30, Serial1/0
O 172.16.3.0 [110/782] via 10.1.12.2, 00:00:30, Serial1/0
10.0.0.0/24 is subnetted, 2 subnets
C 10.1.13.0 is directly connected, Serial1/1
C 10.1.12.0 is directly connected, Serial1/0
O 192.168.1.0/24 [110/782] via 10.1.13.3, 00:00:30, Serial1/1
O 192.168.2.0/24 [110/782] via 10.1.13.3, 00:00:30, Serial1/1
O 192.168.3.0/24 [110/782] via 10.1.13.3, 00:00:31, Serial1/1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
これは、R1では172.16.3.0/24のルートの出力インタフェースがSerial1/0であるためです。また、インタフェースの指定を省略すれば全インタフェースが対象となります。そのため、172.16.3.0/24のルートはルーティングテーブルに載らなくなります。
R1 インタフェースの省略
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
R1(config-router)#no distribute-list 2 in serial 1/1
R1(config-router)#distr
R1(config-router)#distribute-list 2 in
R1(config-router)#do show ip rou
~省略~
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 2 subnets
O 172.16.1.0 [110/782] via 10.1.12.2, 00:00:03, Serial1/0
O 172.16.2.0 [110/782] via 10.1.12.2, 00:00:03, Serial1/0
10.0.0.0/24 is subnetted, 2 subnets
C 10.1.13.0 is directly connected, Serial1/1
C 10.1.12.0 is directly connected, Serial1/0
O 192.168.1.0/24 [110/782] via 10.1.13.3, 00:00:03, Serial1/1
O 192.168.2.0/24 [110/782] via 10.1.13.3, 00:00:03, Serial1/1
O 192.168.3.0/24 [110/782] via 10.1.13.3, 00:00:03, Serial1/1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OSPFを本格的に学ぶなら!Gene製作の究めるシリーズ&セミナー教材セットがお勧め!







