【OSPF】ABRでのLSAタイプ3 経路フィルタリング

エリア間の経路は、ABR が作るサマリー LSA(タイプ3)で伝わります。ABR で area filter-list コマンドを使うと、このタイプ3 LSA をプレフィックスリストで選んで止められます。設定で大事なのは、フィルタをどの向き(in/out)に掛けるかです。

この記事でわかること
  1. area filter-list の in と out の違い
  2. 特定のエリアへ入る経路を止める設定(in)
  3. 特定のエリアから出る経路を止める設定(out)

in と out の向き

area エリア番号 filter-list prefix リスト名 in|out の向きは、指定したエリアから見た向きです。

指定止める経路この記事の例
in指定したエリアへ入るエリア間経路(ほかのエリアの経路を、そのエリアへタイプ3で広告するとき)エリア23の 3.3.3.3/32 を、エリア12へ入れない
out指定したエリアから出るエリア間経路(そのエリアの経路を、ほかのエリアへタイプ3で広告するとき)エリア12の 1.1.1.1/32 を、エリア0・エリア23へ出さない

このフィルタが止めるのは、ABR が作るタイプ3 LSA だけです。エリアの中のタイプ1・2 LSA や、外部経路のタイプ5 LSA には効きません。

検証構成

R2 を ABR にして、エリア12(R1)、エリア23(R3)、エリア0(R5)の3つのエリアにつなぎます。R1 のループバック 1.1.1.1/32 と R3 のループバック 3.3.3.3/32 を、フィルタの対象にします。

Area 12Area 23Area 0192.168.12.0/24192.168.23.0/24192.168.25.0/24.1.2.2.3.5.2R1R2R3R5Lo0 1.1.1.1/32Lo0 3.3.3.3/32
図1 検証構成(R2 が3つのエリアにつながる ABR)

OSPF の基本設定

R1

R1(config)#router ospf 1
R1(config-router)# network 1.1.1.1 0.0.0.0 area 12
R1(config-router)# network 192.168.12.0 0.0.0.255 area 12

R2

R2(config)#router ospf 1
R2(config-router)# network 192.168.12.0 0.0.0.255 area 12
R2(config-router)# network 192.168.23.0 0.0.0.255 area 23
R2(config-router)# network 192.168.25.0 0.0.0.255 area 0

R3

R3(config)#router ospf 1
R3(config-router)# network 3.3.3.3 0.0.0.0 area 23
R3(config-router)# network 192.168.23.0 0.0.0.255 area 23

R5

R5(config)#router ospf 1
R5(config-router)# network 192.168.25.0 0.0.0.255 area 0

show ip route ospf:フィルタ前のルーティングテーブル

R1 は 3.3.3.3/32 を、R3 は 1.1.1.1/32 を、R5 は両方を、エリア間経路(O IA)として学習しています。コストの 3 は、ループバック 1 + リンク 1 + リンク 1 です。

R1

R1#show ip route ospf

      3.0.0.0/32 is subnetted, 1 subnets
O IA     3.3.3.3 [110/3] via 192.168.12.2, 00:00:01, FastEthernet0/0.12
O IA  192.168.23.0/24 [110/2] via 192.168.12.2, 00:11:11, FastEthernet0/0.12
O IA  192.168.25.0/24 [110/2] via 192.168.12.2, 00:11:08, FastEthernet0/0.12

R3

R3#show ip route ospf

      1.0.0.0/32 is subnetted, 1 subnets
O IA     1.1.1.1 [110/3] via 192.168.23.2, 00:03:28, FastEthernet0/0.23
O IA  192.168.12.0/24 [110/2] via 192.168.23.2, 00:03:28, FastEthernet0/0.23
O IA  192.168.25.0/24 [110/2] via 192.168.23.2, 00:03:24, FastEthernet0/0.23

R5

R5#show ip route ospf

      1.0.0.0/32 is subnetted, 1 subnets
O IA     1.1.1.1 [110/3] via 192.168.25.2, 00:04:03, FastEthernet0/0.25
      3.0.0.0/32 is subnetted, 1 subnets
O IA     3.3.3.3 [110/3] via 192.168.25.2, 00:04:03, FastEthernet0/0.25
O IA  192.168.12.0/24 [110/2] via 192.168.25.2, 00:04:03, FastEthernet0/0.25
O IA  192.168.23.0/24 [110/2] via 192.168.25.2, 00:04:03, FastEthernet0/0.25

インバウンド(in)のフィルタ

エリア12へ入る経路のうち、3.3.3.3/32 だけを止めます。3.3.3.3/32 はエリア23の経路なので、R2 はこれをタイプ3 LSA にしてエリア0とエリア12へ広告します。このうちエリア12へ入る向きだけを止めます。

Area 12Area 23Area 0R1R2R3R5Lo0 1.1.1.1/32Lo0 3.3.3.3/323.3.3.3/32area 12 filter-list … in
図2 in のフィルタ(3.3.3.3/32 をエリア12へ入れない)

プレフィックスリストを作る

3.3.3.3/32 だけを拒否し、ほかはすべて許可するプレフィックスリストを作ります。プレフィックスリストは最後に「すべて拒否」が暗黙で入るので、2行目の permit 0.0.0.0/0 le 32 がないと、ほかの経路まで止まります。

R2

R2(config)#ip prefix-list TO_AREA12 deny 3.3.3.3/32
R2(config)#ip prefix-list TO_AREA12 permit 0.0.0.0/0 le 32

area filter-list を in で設定する

ABR の R2 で、エリア12に in で適用します。

R2

R2(config)#router ospf 1
R2(config-router)# area 12 filter-list prefix TO_AREA12 in

結果を確認する

しばらくすると、R1 のルーティングテーブルから 3.3.3.3/32 が消えます。エリア0(R5)宛ての広告は止めていないので、R5 では 3.3.3.3/32 は残ります。

R1

R1# show ip route ospf

O IA  192.168.23.0/24 [110/2] via 192.168.12.2, 00:11:37, FastEthernet0/0.12
O IA  192.168.25.0/24 [110/2] via 192.168.12.2, 00:11:34, FastEthernet0/0.12

アウトバウンド(out)のフィルタ

エリア12から出る経路のうち、1.1.1.1/32 だけを止めます。R2 は 1.1.1.1/32 をタイプ3 LSA にしてエリア0とエリア23へ広告しますが、out はエリア12から出るすべての向きに効くので、両方への広告が止まります。

Area 12Area 23Area 0R1R2R3R5Lo0 1.1.1.1/32Lo0 3.3.3.3/321.1.1.1/32area 12 filter-list … out
図3 out のフィルタ(1.1.1.1/32 をエリア12から出さない)

プレフィックスリストを作る

R2

R2(config)#ip prefix-list FROM_AREA12  deny 1.1.1.1/32
R2(config)#ip prefix-list FROM_AREA12 permit 0.0.0.0/0 le 32

area filter-list を out で設定する

R2

R2(config)#router ospf 1
R2(config-router)# area 12 filter-list prefix FROM_AREA12 out

結果を確認する

R3 と R5 のルーティングテーブルから、1.1.1.1/32 が消えています。

R3

R3#show ip route ospf

O IA  192.168.12.0/24 [110/2] via 192.168.23.2, 00:12:45, FastEthernet0/0.23
O IA  192.168.25.0/24 [110/2] via 192.168.23.2, 00:12:41, FastEthernet0/0.23

R5

R5#show ip route ospf

      3.0.0.0/32 is subnetted, 1 subnets
O IA     3.3.3.3 [110/3] via 192.168.25.2, 00:12:49, FastEthernet0/0.25
O IA  192.168.12.0/24 [110/2] via 192.168.25.2, 00:12:49, FastEthernet0/0.25
O IA  192.168.23.0/24 [110/2] via 192.168.25.2, 00:12:49, FastEthernet0/0.25

まとめ

やりたいこと設定(R2)結果
エリア12へ 3.3.3.3/32 を入れないarea 12 filter-list prefix TO_AREA12 inR1 だけが 3.3.3.3/32 を学習しない
エリア12から 1.1.1.1/32 を出さないarea 12 filter-list prefix FROM_AREA12 outR3・R5 の両方が 1.1.1.1/32 を学習しない

向きは「指定したエリアに入る」か「指定したエリアから出る」かで考えます。特定のエリアにだけ見せたくない経路は in、エリアの外へ一切出したくない経路は out を使います。

参考

IP Routing: OSPF Configuration Guide, Cisco IOS Release 15M&T – OSPF ABR Type 3 LSA Filtering(Cisco)

 

コメント