1、ACL的基本原理。
ACL由一系列规则组成,通过将报文与ACL规则进行匹配,设备可以过滤出特定的报文。设备支持软件ACL和硬件ACL两种实现方式。
2、ACL的组成。
-
ACL名称:通过名称来标识ACL,就像用域名代替IP地址一样,更加方便记忆。这种ACL,称为命名型ACL。
命名型ACL一旦创建成功,便不允许用户再修改其名称。
仅基本ACL与基本ACL6,以及高级ACL与高级ACL6,可以使用相同的ACL名称;其他类型ACL之间,不能使用相同的ACL名称。
命名型ACL实际上是“名字+数字”的形式,可以在定义命名型ACL时同时指定ACL编号。如果不指定编号,则由系统自动分配,设备为其分配的编号是该类型ACL可用编号中取值范围内的最大值。
-
ACL编号:用于标识ACL,也可以单独使用ACL编号,表明该ACL是数字型。
不同的ACL类型使用不同的ACL编号取值标识。
-
规则:即描述报文匹配条件的判断语句。
-
规则编号:用于标识ACL规则。可以自行配置规则编号,也可以由系统自动分配。
ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。系统按照规则编号从小到大的顺序,将规则依次与报文匹配,一旦匹配上一条规则即停止匹配。
-
动作:报文处理动作,包括permit/deny两种,表示允许/拒绝。
-
匹配项:ACL定义了极其丰富的匹配项。除了图中中的源地址和生效时间段,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型),三层报文信息(如目的IP地址、协议类型),以及四层报文信息(如TCP/UDP端口号)等。
3、ACL的实现方式。
-
目前设备支持的ACL,有以下两种实现方式。
软件ACL:针对与本机交互的报文(必须上送CPU处理的报文),由软件实现来过滤报文的ACL,比如FTP、TFTP、Telnet、SNMP、HTTP、路由协议、组播协议中引用的ACL。
硬件ACL:针对所有报文,通过下发ACL资源到硬件来过滤报文的ACL,比如流策略、基于ACL的简化流策略、用户组以及为接口收到的报文添加外层Tag功能中引用的ACL。
两者主要区别在于:
过滤的报文类型不同:软件ACL用来过滤与本机交互的报文,硬件ACL可以用来过滤所有报文。
报文过滤方式不同:软件ACL是被上层软件引用来实现报文的过滤,硬件ACL是被下发到硬件来实现报文的过滤。通过软件ACL过滤报文时,会消耗CPU资源,通过硬件ACL过滤报文时,则会占用硬件资源。通过硬件ACL过滤报文的速度更快。
对不匹配ACL的报文的处理动作不同:当使用软件ACL时,如果报文未匹配上ACL中的规则,设备对该报文采取的动作为deny,即拒绝报文通过;当使用硬件ACL时,如果报文未匹配上ACL中的规则,设备对该报文采取的动作为permit,即允许报文通过。
4、实验案例。
设备名 | 接口 | 对应的VLANIF | IP地址 |
---|---|---|---|
S1 | GE0/0/1 | VLANIF10 | 192.168.1.1/24 |
S2 | GE0/0/1 | VLANIF10 | 192.168.1.2/24 |
S2 | GE0/0/2 | VLANIF20 | 192.168.2.1/24 |
S3 | GE0/0/1 | VLANIF20 | 192.168.2.2/24 |
实验拓扑:
1、S1配置。
##基础IP地址配置
[S1]vlan 10
[S1-vlan10]q
[S1]interface Vlanif 10
[S1-Vlanif10]ip add 192.168.1.1 24
[S1-Vlanif10]q
[S1]int g0/0/1
[S1-GigabitEthernet0/0/1]port link-type access
[S1-GigabitEthernet0/0/1]port default vlan 10
配置OSPF宣告网络
[S1]ospf
[S1-ospf-1]area 0
[S1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[S1-ospf-1-area-0.0.0.0]q
[S1-ospf-1]q
配置5条静态路由,并将它们引入到OSPF中
[S1]ip route-static 172.16.16.0 24 NULL 0
[S1]ip route-static 172.16.17.0 24 NULL 0
[S1]ip route-static 172.16.18.0 24 NULL 0
[S1]ip route-static 172.16.19.0 24 NULL 0
[S1]ip route-static 172.16.20.0 24 NULL 0
[S1]ospf
[S1-ospf-1]import-route static
[S1-ospf-1]q
在S2上查看路由表可以发现拥有5条静态,所有需要配置路由发布策略只允许17.0、18.0、19.0网段通过
[S1]acl number 2002
[S1-acl-basic-2002]rule permit source 172.16.17.0 0.0.0.255
[S1-acl-basic-2002]rule permit source 172.16.18.0 0.0.0.255
[S1-acl-basic-2002]rule permit source 172.16.19.0 0.0.0.255
[S1-acl-basic-2002]quit
[S1]ospf
[S1-ospf-1]filter-policy 2002 export static
[S1-ospf-1]quit
此时再查看就只能看到3条路由了
2、S2配置。
##基础IP地址配置
[S2]vlan batch 10 20
[S2]interface Vlanif 10
[S2-Vlanif10]ip add 192.168.1.2 24
[S2-Vlanif10]q
[S2]vlan 20
[S2-vlan20]q
[S2]interface Vlanif 20
[S2-Vlanif20]ip add 192.168.2.1 24
[S2-Vlanif20]q
[S2]int g0/0/1
[S2-GigabitEthernet0/0/1]port link-type access
[S2-GigabitEthernet0/0/1]port default vlan 10
[S2-GigabitEthernet0/0/1]q
[S2]int g0/0/2
[S2-GigabitEthernet0/0/2]port link-type access
[S2-GigabitEthernet0/0/2]port default vlan 20
[S2-GigabitEthernet0/0/2]q
配置OSPF宣告网络
[S2]ospf
[S2-ospf-1]area 0
[S2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[S2-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[S2-ospf-1-area-0.0.0.0]q
[S2-ospf-1]q
3、S3配置。
##基础IP地址配置
[S3]vlan 20
[S3-vlan10]q
[S3]interface Vlanif 20
[S3-Vlanif10]ip add 192.168.2.2 24
[S3-Vlanif10]q
[S3]int g0/0/1
[S3-GigabitEthernet0/0/1]port link-type access
[S3-GigabitEthernet0/0/1]port default vlan 10
[S3-GigabitEthernet0/0/1]q
配置OSPF宣告
[S3]ospf
[S3-ospf-1]area 0
[S3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]q
[S3-ospf-1]q
S3同样需要配置路由策略只允许18.0通过
[S3]acl number 2003
[S3-acl-basic-2003]rule permit source 172.16.18.0 0.0.0.255
[S3-acl-basic-2003]quit
[S3] ospf
[S3-ospf-1]filter-policy 2003 import
[S3-ospf-1]quit
4、实验结果。
S2和S3的路由表只允许部分网段通过
S2:
S3: