1 应用举例
OSPF过滤的方式很多,各种方式达到的过滤效果不尽相同,本文主要通过举例说明来阐述各种过滤方式的异同。
1.1 本地路由表过滤
1.1.1 相关命令
filter-policy import(OSPF)
1.1.2 需求
路由器A两个接口分别连接着测试仪RouterTester的两个端口,A从RT1学到5条前缀是10.1.1.x的外部路由,现在要从路由表过滤符合10.1.1.x的路由。
1.1.3 例子
路由器A两个接口分别连接着测试仪RouterTester的两个端口,A从RT1学到5条前缀是10.1.1.x的外部路由。
OSPF配置:
ospf 2
area 0.0.0.0
network 102.1.1.0 0.0.0.255
area 0.0.0.1
network 102.1.2.0 0.0.0.255
[RouterA]display ip routing-table protocol ospf
Public Routing Table : OSPF
Summary Count : 7
OSPF Routing table Status : < Active>
Summary Count : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.4/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.8/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.12/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.16/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
OSPF Routing table Status : < Inactive>
Summary Count : 2
Destination/Mask Proto Pre Cost NextHop Interface
102.1.1.0/24 OSPF 10 1 102.1.1.2 Ethernet0/0/0
102.1.2.0/24 OSPF 10 1 102.1.2.2 Ethernet0/0/1
配置acl 2000,在OSPF视图下过滤利用filter-policy import命令。
acl number 2000
rule 0 deny source 10.1.1.0 0.0.0.255
rule 1 permit
[RouterA]filter-policy 2000 import
[RouterA]display ip routing-table protocol ospf
Public Routing Table : OSPF
Summary Count : 7
OSPF Routing table Status : < Active>
Summary Count : 0
OSPF Routing table Status : < Inactive>
Summary Count : 7
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.4/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.8/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.12/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
10.1.1.16/30 O_ASE 150 2 102.1.1.2 Ethernet0/0/0
102.1.1.0/24 OSPF 10 1 102.1.1.2 Ethernet0/0/0
102.1.2.0/24 OSPF 10 1 102.1.2.2 Ethernet0/0/1
比较前后路由表发现前缀是10.1.1.x的外部路由的状态由<Active>变为<Inactive>。查看OSPF LSDB发现ASE LSA 仍然存在LSDB中。
[RouterA-ospf-2-area-0.0.0.1]dis ospf 2 lsdb
OSPF Process 2 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 1.1.1.1 1.1.1.1 25 36 8000000A 0
Router 102.1.1.2 102.1.1.2 30 48 80000006 0
Network 102.1.1.1 1.1.1.1 25 32 80000005 0
Sum-Net 102.1.2.0 1.1.1.1 26 28 80000006 1
Sum-Asbr 102.1.1.2 1.1.1.1 25 28 80000001 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 1.1.1.1 1.1.1.1 25 36 80000001 0
Router 102.1.1.2 102.1.1.2 30 48 80000006 0
Network 102.1.2.1 1.1.1.1 25 32 80000005 0
Sum-Net 102.1.1.0 1.1.1.1 26 28 80000001 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 10.1.1.16 102.1.1.2 199 36 80000005 1
External 10.1.1.12 102.1.1.2 199 36 80000005 1
External 10.1.1.8 102.1.1.2 199 36 80000005 1
External 10.1.1.4 102.1.1.2 199 36 80000005 1
External 10.1.1.0 102.1.1.2 199 36 80000005 1
1.2 外部路由过滤
1.2.1 相关命令
filter-policy export/ import-route(OSPF)
1.2.2 需求
从路由器A引入一些外部路由,要求不允许该路由器发布前缀是10.1.1.x的外部路由,使得整个OSPF域内的路由器都不会收到发布者是A的10.1.1.x前缀的ASE。
1.2.3 例子
路由器A为ASBR,将静态路由引入OSPF。
ospf 2
import-route static
area 0.0.0.0
network 102.1.1.0 0.0.0.255
area 0.0.0.1
network 102.1.2.0 0.0.0.255
[RouterA]dis ospf lsdb
OSPF Process 2 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 1.1.1.1 1.1.1.1 7 36 80000007 0
Router 102.1.1.2 102.1.1.2 53 60 8000000B 0
Network 102.1.1.1 1.1.1.1 530 32 80000002 0
Sum-Net 102.1.2.0 1.1.1.1 530 28 80000002 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 102.1.2.2 102.1.2.2 950 48 80000003 0
Router 1.1.1.1 1.1.1.1 7 36 80000007 0
Network 102.1.2.1 1.1.1.1 553 32 80000002 0
Sum-Net 102.1.1.0 1.1.1.1 531 28 80000002 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 200.0.0.0 1.1.1.1 8 36 80000001 1
External 10.1.1.5 1.1.1.1 8 36 80000001 1
External 10.1.1.4 1.1.1.1 8 36 80000001 1
External 10.1.1.1 1.1.1.1 9 36 80000001 1
External 10.1.1.3 1.1.1.1 9 36 80000001 1
External 10.1.1.2 1.1.1.1 9 36 80000001 1
配置acl 2000,在OSPF视图下利用filter-policy export命令进行过滤。
acl number 2000
rule 0 deny source 10.1.1.0 0.0.0.255
rule 1 permit
[RouterA]filter-policy 2000 export
查看过滤后的OSPF LSDB,比较前后,可以看见关于10.1.1.x前缀的ASE已经从LSDB库中消失。
[ROUTERA]dis ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
OSPF Process 2 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 1.1.1.1 1.1.1.1 27 36 80000007 0
Router 102.1.1.2 102.1.1.2 73 60 8000000B 0
Network 102.1.1.1 1.1.1.1 550 32 80000002 0
Sum-Net 102.1.2.0 1.1.1.1 550 28 80000002 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 102.1.2.2 102.1.2.2 970 48 80000003 0
Router 1.1.1.1 1.1.1.1 27 36 80000007 0
Network 102.1.2.1 1.1.1.1 573 32 80000002 0
Sum-Net 102.1.1.0 1.1.1.1 551 28 80000002 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 200.0.0.0 1.1.1.1 28 36 80000001 1
同样的需求也可以在OSPF视图利用import-route命令来实现。
acl number 2000
rule 0 deny source 10.1.1.0 0.0.0.255
rule 1 permit
route-policy 1 permit node 1
if-match acl 2000
ospf 2
import-route static route-policy 1
area 0.0.0.0
network 102.1.1.0 0.0.0.255
area 0.0.0.1
network 102.1.2.0 0.0.0.255
1.3 ASBR上的路由过滤
1.3.1 相关命令
asbr-summary not-advertise(OSPF)
asbr-summary not-advertise(OSPF)命令和filter-policy export(OSPF)命令作用一样,但是asbr-summary not-advertise(OSPF)命令可以在NSSA区域的ABR上对7转5的LSA做过滤,阻止本路由器根据nssa产生符合特定条件的ase,从而对NSSA LSA实现在ASBR过滤之后的二次过滤。
1.3.2 需求
在NSSA区域引入了一些外部路由,要求对10.1.1.x的外部路由只在该NSSA区域泛洪,不需要泛洪到整个OSPF域中。
1.3.3 例子
路由器A为ABR,其中area 1为NSSA区域,区域中ASBR引入外部路由10.1.1.x。
路由器A的配置:
ospf 2
area 0.0.0.1
network 102.1.2.0 0.0.0.255
nssa
area 0.0.0.0
network 102.1.1.0 0.0.0.255
路由器A的LSDB:
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 102.1.1.2 102.1.1.2 687 60 8000000b 0
Router 88.1.1.14 88.1.1.14 525 36 8000000c 0
Network 102.1.1.1 88.1.1.14 1187 32 80000004 0
Sum-Net 102.1.2.0 88.1.1.14 13 28 80000007 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 88.1.1.14 88.1.1.14 471 48 80000015 0
Router 84.2.4.1 84.2.4.1 49 48 8000000b 0
Network 102.1.1.2 88.1.1.14 13 28 80000006 0
Sum-Net 102.1.1.0 88.1.1.14 13 28 80000007 1
NSSA 10.1.1.1 84.2.4.1 46 36 80000001 1
NSSA 10.1.1.2 84.2.4.1 46 36 80000001 1
NSSA 10.1.1.3 84.2.4.1 46 36 80000001 1
NSSA 10.1.1.4 84.2.4.1 46 36 80000001 1
NSSA 10.1.1.5 84.2.4.1 46 36 80000001 1
NSSA 20.1.1.5 84.2.4.1 46 36 80000001 1
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
ASE 10.1.1.1 88.1.1.14 45 36 80000001 1
ASE 10.1.1.2 88.1.1.14 45 36 80000001 1
ASE 10.1.1.3 88.1.1.14 45 36 80000001 1
ASE 10.1.1.4 88.1.1.14 45 36 80000001 1
ASE 10.1.1.5 88.1.1.14 45 36 80000001 1
ASE 20.1.1.5 88.1.1.14 45 36 80000001 1
观察LSDB我们可以看出NSSA路由会通过ABR A产生ASE来通告到整个OSPF域中。现在我们可以利用asbr-summary not-advertise(OSPF)命令阻止NSSA转化为ASE,从而让某些路由只在NSSA区域通告而不通告到整个OSPF域中。
我们在A上配置asbr-summary 10.1.1.0 255.255.255.0 not-advertise不让10.1.1.x的路由通告到整个OSPF域中。
ospf 2
asbr-summary 10.1.1.0 255.255.255.0 not-advertise
area 0.0.0.1
network 102.1.2.0 0.0.0.255
nssa
area 0.0.0.0
network 102.1.1.0 0.0.0.255
配置过滤后,我们再来观察LSDB,发现已经没有10.1.1.x路由的ASE了。
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 102.1.1.2 102.1.1.2 719 60 8000000b 0
Router 88.1.1.14 88.1.1.14 557 36 8000000c 0
Network 102.1.1.1 88.1.1.14 1219 32 80000004 0
Sum-Net 102.1.2.0 88.1.1.14 45 28 80000007 1
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 88.1.1.14 88.1.1.14 503 48 80000015 0
Router 84.2.4.1 84.2.4.1 81 48 8000000b 0
Network 102.1.2.0 88.1.1.14 45 28 80000007 0
Sum-Net 102.1.1.0 88.1.1.14 45 28 80000006 1
NSSA 10.1.1.1 84.2.4.1 78 36 80000001 1
NSSA 10.1.1.2 84.2.4.1 78 36 80000001 1
NSSA 10.1.1.3 84.2.4.1 78 36 80000001 1
NSSA 10.1.1.4 84.2.4.1 78 36 80000001 1
NSSA 10.1.1.5 84.2.4.1 78 36 80000001 1
NSSA 20.1.1.5 84.2.4.1 78 36 80000001 1
AS External Database:
Type LinkState ID AdvRouter Age Len Sequence Metric
ASE 20.1.1.5 88.1.1.14 77 36 80000001 1
1.4 区域间路由过滤-1
1.4.1 相关命令
filter (area)
1.4.2 需求
路由器A从area 0学到10.1.1.x OSPF域内路由,但是不希望将这10.1.1.x的路由通过A发布到area 1中,area 1的路由器不会收到A发布的10.1.1.x 前缀的summary LSA。
1.4.3 例子