ACLとPrefix-list
初期設定&確認
iosv-4(config)#int lo1
iosv-4(config-if)#ip add
*Sep 11 10:57:08.165: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback1, changed state to up
iosv-4(config-if)#ip add 169.254.100.4 255.255.255.0
iosv-4(config-if)#exit
iosv-4(config)#router ospf 1
iosv-4(config-router)#net 169.254.100.0 0.0.0.255 area 0
iosv-3#sh ip ro ospf | b Gate
Gateway of last resort is not set
O 1.0.0.0/8 [110/2] via 13.1.1.1, 06:33:01, GigabitEthernet0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/2] via 34.1.1.4, 08:07:14, GigabitEthernet0/2
O 5.0.0.0/8 [110/3] via 34.1.1.4, 06:33:01, GigabitEthernet0/2
45.0.0.0/24 is subnetted, 1 subnets
O 45.1.1.0 [110/2] via 34.1.1.4, 06:33:01, GigabitEthernet0/2
46.0.0.0/24 is subnetted, 1 subnets
O 46.1.1.0 [110/2] via 34.1.1.4, 08:07:14, GigabitEthernet0/2
169.254.0.0/32 is subnetted, 1 subnets
O 169.254.100.4 [110/2] via 34.1.1.4, 00:00:02, GigabitEthernet0/2
検証用にiosv-4にてLoopback1を作成(169.254.100.4/24)し、OSPFに所属させる。
ACL設定&確認
iosv-3(config)#access-list 1 deny 169.254.100.0 0.0.0.255
iosv-3(config)#access-list 1 permit any
iosv-3(config)#router ospf 1
iosv-3(config-router)#distribute-list 1 in gi0/2
iosv-3(config)#do sh ip ro ospf | b Gate
Gateway of last resort is not set
O 1.0.0.0/8 [110/2] via 13.1.1.1, 00:00:37, GigabitEthernet0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/2] via 34.1.1.4, 00:00:37, GigabitEthernet0/2
O 5.0.0.0/8 [110/3] via 34.1.1.4, 00:00:37, GigabitEthernet0/2
45.0.0.0/24 is subnetted, 1 subnets
O 45.1.1.0 [110/2] via 34.1.1.4, 00:00:37, GigabitEthernet0/2
46.0.0.0/24 is subnetted, 1 subnets
O 46.1.1.0 [110/2] via 34.1.1.4, 00:00:37, GigabitEthernet0/2
とりあえずprefix-listと比較してみよう。
Prefix-list設定&確認
1) 例外問題
iosv-3(config)#ip prefix-list PRE deny 169.254.100.0/24 le 28
iosv-3(config)#ip prefix-list PRE permit 0.0.0.0/0 le 32
iosv-3(config)#
iosv-3(config)#router ospf 1
iosv-3(config-router)#distribute-list prefix PRE in gi0/2
iosv-3(config-router)#
iosv-3(config-router)#do sh ip ro ospf | b Gate
Gateway of last resort is not set
O 1.0.0.0/8 [110/2] via 13.1.1.1, 00:00:09, GigabitEthernet0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/2] via 34.1.1.4, 00:00:09, GigabitEthernet0/2
O 5.0.0.0/8 [110/3] via 34.1.1.4, 00:00:09, GigabitEthernet0/2
45.0.0.0/24 is subnetted, 1 subnets
O 45.1.1.0 [110/2] via 34.1.1.4, 00:00:09, GigabitEthernet0/2
46.0.0.0/24 is subnetted, 1 subnets
O 46.1.1.0 [110/2] via 34.1.1.4, 00:00:09, GigabitEthernet0/2
169.254.0.0/32 is subnetted, 1 subnets
O 169.254.100.4 [110/2] via 34.1.1.4, 00:00:09, GigabitEthernet0/2
"deny 169.254.100.0/24 le 28"
これは、169.254.100.が合致していて、第四オクテットはなんでもよくて、さらにプレフィックスが28よりも少ない場合にdenyするという意味。
初期設定時に「ip add 169.254.100.4/24」でiosv-4 lo1にアドレスを設定した。これは上記denyの条件を満たしている。
つまり、ルーティングテーブルには載らないはずなのに存在している。
な~ぜだ。
2) 答え
iosv-4(config)#int lo1
iosv-4(config-if)#ip o net point-to-point
iosv-3(config)#do sh ip ro ospf | b Gate
Gateway of last resort is not set
O 1.0.0.0/8 [110/2] via 13.1.1.1, 00:00:07, GigabitEthernet0/1
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/2] via 34.1.1.4, 00:00:07, GigabitEthernet0/2
O 5.0.0.0/8 [110/3] via 34.1.1.4, 00:00:07, GigabitEthernet0/2
45.0.0.0/24 is subnetted, 1 subnets
O 45.1.1.0 [110/2] via 34.1.1.4, 00:00:07, GigabitEthernet0/2
46.0.0.0/24 is subnetted, 1 subnets
O 46.1.1.0 [110/2] via 34.1.1.4, 00:00:07, GigabitEthernet0/2
iosv-4 Loopback1のネットワークタイプがLoopbackになっていたため。
Loopbackだと必ず/32でアドバタイズするので、「le 28」に引っかからなくなる。
とりあえず総括
169.254.100.4/24というアドレスがあったとして
・ACLでdeny 169.254.100.0 0.0.0.255を設定するときは、第一~三オクテットまでが169.254.100と一致しているかをチェックする
・ACLでdeny 169.254.100.0/24 ge 28と設定するときは、ACLの時の条件に加え、プレフィックスが28以上かどうかもチェックする
したがって上記の場合、ACLはdenyが通るが、prefix-listは通らない(対象アドレスのプレフィックスが/24なのに対してprefix-listの条件文はge 28、つまり28以上でないといけなく、不一致)
このようにACLはネットワーク部のアドレスだけをチェックするが、プレフィックスリストはネットワーク部のみならずプレフィックスもチェックする。
睡魔に負けた午前1時。本当はもっと面白いコンフィグがあったのに……明日以降やる。おやすみなさい。
この記事が気に入ったらサポートをしてみませんか?