distribute-listコマンドを使用することで、経路情報をフィルタすることができます。OSPFの場合、同一エリア内でLSDBが同期されている必要があるため、LSDB自体をフィルタリングの対象にできません。ただし、distribute-listコマンドで、LSDBからルーティングテーブルへ反映するところでフィルタリングが可能です。
以下の構成で、R1の1.1.1.1/32をOSPFで広告し、R2でdistribute-listを使用し、フィルタリングします。
基本設定
OSPFの基本設定をします。
R1(config)#router ospf 1 R1(config-router)#network 1.1.1.1 0.0.0.0 area 0 R1(config-router)#network 192.168.12.0 0.0.0.255 area 0
R2(config)#router ospf 1 R2(config-router)#network 192.168.12.0 0.0.0.255 area 0 R2(config-router)#network 192.168.23.0 0.0.0.255 area 0
R3(config)#router ospf 1 R3(config-router)#network 192.168.23.0 0.0.0.255 area 0
R2、R3のルーティングテーブルを確認します。全てのルータで1.1.1.1/32が学習されています。
R2#show ip route ospf O 1.1.1.1 [110/2] via 192.168.12.1, 00:32:15, FastEthernet0/0.12
R3#show ip route ospf O 1.1.1.1 [110/3] via 192.168.23.2, 00:32:12, FastEthernet0/0.23 O 192.168.12.0/24 [110/2] via 192.168.23.2, 00:32:12, FastEthernet0/0.23
R2で経路フィルタ(distribute-list)設定
R2で、1.1.1.1/32のみを経路フィルタします。まず、アクセスリストで、1.1.1.1/32のみを拒否するエントリーを作成します。
R2(config)# access-list 1 deny 1.1.1.1 R2(config)# access-list 1 permit any
R2で上のアクセスリスト1に対して、distribute-listを適用します。
R2(config)# router ospf 1 R2(config-router)# distribute-list 1 in
確認
R2のルーティングテーブルを確認します。
R2# show ip route ospf
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
R2# show ip route 1.1.1.1
% Network not in table
1.1.1.1/32が学習されていません。R3のルーティングテーブルを確認します。
R3# show ip route ospf O 1.1.1.1 [110/3] via 192.168.23.2, 00:41:14, FastEthernet0/0.23 O 192.168.12.0/24 [110/2] via 192.168.23.2, 00:41:14, FastEthernet0/0.23 R3# show ip route 1.1.1.1 Routing entry for 1.1.1.1/32 Known via "ospf 1", distance 110, metric 3, type intra area Last update from 192.168.23.2 on FastEthernet0/0.23, 00:41:31 ago Routing Descriptor Blocks: * 192.168.23.2, from 1.1.1.1, 00:41:31 ago, via FastEthernet0/0.23 Route metric is 3, traffic share count is 1
R3はルーティングテーブルに1.1.1.1/32が存在します。R2で経路フィルタしても、R3には反映されません。
R2のLSDBを確認すると、1.1.1.1/32が存在していることがわかります。
R2# show ip ospf database
OSPF Router with ID (2.2.2.2) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 723 0x80000004 0x004ADA 2
2.2.2.2 2.2.2.2 748 0x80000005 0x00D544 2
3.3.3.3 3.3.3.3 719 0x80000003 0x000210 1
Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
192.168.12.2 2.2.2.2 748 0x80000002 0x008D20
192.168.23.3 3.3.3.3 719 0x80000002 0x004055
OSPFエリア内では、LSDBは必ず同期される必要があるので、distribute-listのフィルタはLSDBからルーティングテーブルへの反映時に適用されます。
OSPFでdistribute-listを使用する際は、ルータ間のルーティングテーブルの整合性は取れないため、ルーティングループなど発生する可能性があり、十分に注意する必要があります。
R3# traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 192.168.23.2 12 msec 24 msec 20 msec
2 192.168.23.2 !H !H !H
※ !H は ICMP Type=3/Code=1の Host Unreachable を意味します。
コメント