1、什么是ACL?
(Access Control List)访问控制列表,作用:在众多数据包里面抓取某一个数据流
2、ACL的作用
本身没有过滤的作用 ,依靠我们我们数据包里面的五元组(SIP DIP Sport Dport 协议)进行抓取数据流量
RTA允许192.168.1.0/24中的主机可以访问Internet;而192.168.2.0/24中的主机则被禁止访问Internet。对于服务器A而言,情况则相反。网关允许192.168.2.0/24中的主机访问服务器A,但却禁止192.168.1.0/24中的主机访问服务器A
3、ACL的分类
基本ACL(basic)
取值范围:2000~2999
匹配的条件不是特别多 一般是SIP和DIP
高级ACL(Advanced)
取值范围:3000~3999
匹配的条件特别多 一般来说 SIP DIP Sport Dport 协议
小结:
基本ACL
优点:语法简单
缺点:匹配的条件太泛了,无法做到更加精细的匹配流量
高级ACL
优点:可以做到更加精细的匹配流量
缺点:语法复杂
3.1、基本ACL的用法
acl 2000
rule 5 permit/deny source 192.168.1.0 0.0.0.255
规则 序列号 动作 条件(匹配是是1.0网段 其中0.0.0.255是反掩码)
注意点:基本acl这一块的匹配不是特别精确
序列号可以写可以不写 默认情况 step(步长)为5 不建议把很多规则写成连续的 序列号只能是正整数 匹配的顺序就是这个序列号的从小到大进行匹配
rule 5
rule 10
rule 15
rule 20
匹配的结论:如果rule 5规则匹配正确 下面的所有规则就不用看了 如果rule 5 和rule 10和rule 15都没有匹配上 敲好rule 20匹配完成 后面的规则就不用看了 如果说 所有规则都没有匹配上 默认acl情况是允许所有通过
3.2、高级ACL的用法
[RTA]acl 3000
[RTA-acl-adv-3000]rule deny tcp source 192.168.1.0 0.0.0.255 destination 172.16.10.1 0.0.0.0 destination-port eq 21
SIP是192.168.1.0/24
DIP是172.16.10.1/32
Sport是任意的
Dport是21号端口
协议是TCP协议
就是拒绝源IP是192.168.1.0去访问目标IP是172.16.10.1的FTP的连接
匹配的时候 五个条件缺一不可
[RTA-acl-adv-3000]rule deny tcp source 192.168.2.0 0.0.0.255 destination 172.16.10.2
0.0.0.0
SIP是:192.168.2.0/24
DIP是:172.16.10.2
Sport:任意端口
Dport:任意端口
协议:TCP
就是拒绝源IP是192.168.2.0去访问目标172.16.10.2的所有TCP协议
匹配的时候 五个条件缺一不可
3.3、实际操作
基本ACL的配置思路
完成acl实验的第一步
1、你得完成R1 R2 R3之间能够实现我们loopback之间得互通
方法就是使用静态路由实现
在R3上面能够ping -a 3.3.3.3 2.2.2.2 能够ping通得
2、在我们R1上面我们可以做一些条件
[R1]acl 2000 创建基本acl 2000
rule 5 deny source 3.3.3.3 0 拒绝SIP是3.3.3.3得路由条目 相当于匹配某个条件
3、我们可以在R1路由器得G0/0/0接口得inbount方向上或者R1得G0/0/1接口得outbount方向上进行应用
interface GigabitEthernet0/0/0
traffic-filter inbound acl 2000 执行应用
或者
interface GigabitEthernet0/0/1
traffic-filter outbound acl 2000 执行应用
4、得出得现象就是在我们R3路由器上面
<R3>ping -a 3.3.3.3 2.2.2.2
PING 2.2.2.2: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
5、看下是否是acl生效了
在我们R1上面通过命令查看 display acl all
<R1>dis acl all
Total quantity of nonempty ACL number is 1
Basic ACL 2000, 1 rule
Acl's step is 5
rule 5 deny source 3.3.3.3 0 (15 matches) 这个就是表示acl已经配置生效了
高级acl的配置配置思路
[R1]undo acl 2000
[R1-GigabitEthernet0/0/0]undo traffic-filter inbound
[R2]user-interface vty 0 4
[R2-ui-vty0-4]authentication-mode password
Please configure the login password (maximum length 16):huawei
[R2-ui-vty0-4]
R3这边就可以远程过去了
<R3>telnet 2.2.2.2
Press CTRL_] to quit telnet mode
Trying 2.2.2.2 ...
Connected to 2.2.2.2 ...
Login authentication
Password:
我在R1上面定义acl 3000的规则
acl number 3000
rule 5 deny tcp source 192.168.13.0 0.0.0.255 destination-port eq telnet
含义就是拒绝源IP地址是192.168.13.0网段的telnet流量 也就是R3这边telnet 2.2.2.2的时候访问不了
interface GigabitEthernet0/0/0
ip address 192.168.13.1 255.255.255.0
traffic-filter inbound acl 3000 进行应用就可以了
检查是否生效
[R1]dis acl all
Total quantity of nonempty ACL number is 1
Advanced ACL 3000, 1 rule
Acl's step is 5
rule 5 deny tcp source 192.168.13.0 0.0.0.255 destination-port eq telnet (3 mat
ches) 这边已经是生效了
telnet协议使用得就是tcp得23号端口
3.4、基于时间的ACL
例子1:创建一个工作时间段(周一到周五)每天早上9:00~下午18:00
[Huawei]time-range wordtime 9:00 to 18:00 working-day daily
如图所示,有三个电脑需要访问远端的路由器AR1,通过基本ACL来进行限制源端PC的访问,允许PC1能够访问到路由器,拒绝PC2在工作时间段访问路由器,其他用户不允许访问
AR1的配置文件
#
sysname R1
#
time-range PC2 09:00 to 18:00 daily
#
acl number 2000
rule 5 permit source 172.16.1.1 0
rule 10 deny source 172.16.1.2 0 time-range PC2
rule 15 deny
#
interface GigabitEthernet0/0/0
ip address 172.16.1.254 255.255.255.0
traffic-filter inbound acl 2000
#
测试
查看ACL的状态信息
<R1>display acl all
Total quantity of nonempty ACL number is 1
Basic ACL 2000, 3 rules
Acl's step is 5
rule 5 permit source 172.16.1.1 0 (5 matches)
rule 10 deny source 172.16.1.2 0 time-range PC2(Active) (5 matches)
rule 15 deny (304 matches)
前缀掩码
(ip-prefix)特点就是更精确得匹配到路由 两条命令的区别
[SW1]ip ip-prefix key permit 192.168.1.0 24
这个24代表ip地址的前面24位是固定的,后面由于没有加掩码的参数,那么这个24也代表着该前缀的掩码长度同样也为24位,也就是只能匹配到一条路由,为192.16.1.0/24
ip ip-prefix key permit 192.168.1.0 24 greater-equal 25 less-equal 32
这个24代表ip地址的前面24位是固定的,后面掩码的范围是25到32之间,可以匹配
192.168.1.0/25
192.168.1.0/26
192.168.1.0/27
192.168.1.0/28
192.168.1.0/29
192.168.1.0/30
192.168.1.0/31
192.168.1.0/32但是不能匹配到192.168.1.0/24 因为掩码的位数是25到32之间