[ 网络协议篇 ] 一篇文章让你掌握神秘的 ACL

Posted _PowerShell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 网络协议篇 ] 一篇文章让你掌握神秘的 ACL相关的知识,希望对你有一定的参考价值。

[ 网络模型篇 ]大白话告诉你什么是OSI七层模型

[ 网络协议篇 ] 一篇文章让你掌握神秘的 ACL

[ 网络协议篇 ] 一篇文章让你掌握神秘的 NAT

[ 网络协议篇 ] 一篇文章让你掌握神秘的 DHCP

目录

一、引入

二、ACL概念:

基本概念:

匹配模式:config和auto

三、ACL的作用:

1)限制网络流量、提高网络性能。

2)提供对通信流量的控制手段。

3)提供网络访问的基本安全手段。

4)在网络设备接口处,决定哪种类型的通信流量被转发、哪种类型的通信流量被阻塞。

四、ACL工作过程:查路由表-->查ACL-->匹配ACL-->找路由

 1.进方向:

2.出方向:

五、ACL分类:

1. 基本ACL(2000-2999)

深度优先匹配原则:

基本配置示例:

2. 高级ACL(3000-3999)

基本配置示例:

3. 二层ACL(4000-4999)

基本配置示例:

4. 用户自定义ACL:

5. 用户ACL:

六.、注意事项


一、引入

1. 如果说你正在玩游戏,你姐姐正在看电影,占用很多带宽,导致游戏卡顿。

能不能想办法限制姐姐的网速或者阻止姐姐看电影,以此来让自己游戏变得流畅呢?

2. 在公司中为了某个部门的保密性,能不能有一种手段,只允许其访问外网,而不允许外网访问它呢 ?
3. 要是之某个部门要求只能使用XXX这个功能,如何实现呢?

4. 在公司摸鱼现象频发,有没有一种手段去限制员工在上班时间,无法通过网络玩游戏、刷剧呢?

对于以上问题其实都可以通过访问控制列表去实现,访问控制列表也就是我们常常听到的ACL

下面我们就来深入的学习一下ACL

二、ACL概念:

基本概念:

ACL:访问控制列表,ACL是一种基于ip包过滤访问控制技术

它可以根据设定的条件接口上的数据包进行过滤,允许其通过或丢弃

应用设备:访问控制列表被广泛地应用于路由器三层交换机

借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。

包过滤:直接通过控制数据包是转发还是丢弃

接口上的数据包:进入和出去两种

一条规则的格式: rule x (编号) permit/deny …

       Rule表示定义一条规则,编号1.2.3…   类型(允许/拒绝)

一个acI可以包含多条rule

匹配模式:config和auto

模式:     config(默认)顺序匹配(按照规则编号从0开始)

       编号可以手动写,也可以自动生成(步长为5)(5,10,15…)

       好处:按123紧贴着写,万一我想在中间插入一条规则呢,旧要把后面的删掉重新写

                步长为5就可以随时插入

auto深度优先(自动模式)(规则越复杂  月优先)

两种模式的区别:匹配的顺序不同

通配符:点分十进制表示,32比特,为0表示一定要匹配,为1表示可以不匹配

       通配符为全0的可以直接缩写成1个0

匹配过程:

Rule permit source 10.0.0.0/0.0.0.255

数据包源IP:10.0.0.00000001(00001010.00000000.00000000.00000001)

ACL源IP:10.0.0.00000000

通配符: 0.0.0.11111111

红色部分一定要匹配,黑色可以不匹配(则此IP匹配成功)

三、ACL的作用:

1)限制网络流量、提高网络性能。

例如,ACL可以根据数据包的协议,指定这种类型的数据包具有更高的优先级,同等情况下可预先被网络设备处理。

又如学生什么时间可以上网,什么时间不能上网就可以ACL实现。(结合了时间限制)

2)提供对通信流量的控制手段。

3)提供网络访问的基本安全手段。

4)在网络设备接口处,决定哪种类型的通信流量被转发、哪种类型的通信流量被阻塞。

例如,用户可以允许E- mail通信流量被路由,拒绝所有的Telnet通信流量。(结合了上层协议  利用端口号)

例如,某部门要求只能使用WWW这个功能,就可以通过ACL实现;(只允许80端口)

例如,为了某部门的保密性,不允许其访问外网,也不允许外网访问它,可通过ACL实现。

四、ACL工作过程:查路由表-->查ACL-->匹配ACL-->找路由

 1.进方向:

当一个数据包进入一个端口,路由器检查这个数据报是否可路由。(查路由表)

如果是可以路由的,路由器检查这个端口是否有ACL控制进入数据报。(查ACL)

如果有,根据ACL中的条件指令,检查这个数据报。                          (匹配ACL)

如果数据报是被允许的,就查询路由表决定数据报的目标端口。   (找路由)

2.出方向:

路由器检查目标端口是否存在ACL控制流出的数据报。

若不存在,这个数据报就直接发送到目标端口。

若存在,就再根据ACL进行取舍。然后在转发到目的端口

当ACL处理数据包时,一旦数据包与某条ACL规则语句匹配,则会跳过列表中剩余的其他语句,根据该条匹配的语句内容决定允许或者拒绝该数据包。

如果数据包内容与ACL语句不匹配,那么将依次使用ACL列表中的下一条语句测试数据包。 该匹配过程会一直继续, 直到抵达列表末尾。

最后一条隐含的语句适用于不满足之前任何条件的所有数据包。

这条最后的测试条件与这些数据包匹配,通常会隐含拒绝一切数据包的指令。

此时路由器不会让这些数据进入或送出接口,而是直接丢弃。

最后这条语句通常称为隐式的"deny any"语句。

由于该语句的存在,所以在ACL中应该至少包含一条permit语句

否则,默认情况下,ACL将阻止所有流量。

五、ACL分类:

1. 基本ACL(2000-2999)

用编号来区分ACL

基本acI编号: 2000-2999 只能过滤源IP地址  

(用的是最多的)(如防火墙  允许内部访问外部所有东西)

深度优先匹配原则:

1.源ip范围,越小越优先通配符中的0越多 表示范围越小  (0表示一定要匹配)

2.是否带有fragment参数,有fragment的优先                (人为添加)

3.编号顺序

基本配置示例:

[Huawei]acl 2000 match-order (config/auto) 选择模式  默认config

[Huawei-acl-basic- 2000]rule deny (permit) source 10.0.0.1 0.0.0.0

定义规则拒绝或允许10.0.0.1通过节点

[Huawei-GigabitEthernet0/0/1]traffic-filter inbound (outbound)

接口调用       acl 2000本接C口进方向或出方向调用acl2000

如果已经调用  要修改ACL,必须先取消调用

[Huawei -GigabitEthernet0/0/0]undo traffic-filter inbound  (outbound)  

真实设备:末尾要加一条 rule permit

2. 高级ACL(3000-3999)

高级acl编号: 3000-3999

过滤源/目的IP地址、协议(基于IP运行的协议(IP承载协议))、端口号等

       IP承载协议:tcp upd icmp ping vrrp ospf…

高级acl深度优先原则:

//1.ip承载协议范围,指定了承载协议的优先(老的) (现在的必须指定IP承载协议)

2.源ip范围,越小越优先

3.目的地址范围,越小越优先

4.端口号范围,越小越优先

5.参数个数,越多越优先

端口号参数:

eq等于、It小于等于、gt大于等于、neq不等于(现在取消)、range范围(现在加的)

基本配置示例:

[Huawei-acl-adv-3000]rule permit tcp source 10.0.0.1 0 destination 10.0.1.1 0 destination-port eq 80

允许10.0.0.1这个地址通过tcp协议访问10.0.1.1这个地址的80号端口

[Huawei-GigabitEthernet0/0/1 ]traffic-filter inbound (outbound) acl 3000               

接口调用       本接口进方向或出方向调用acl3000

3. 二层ACL(4000-4999)

二层ACL编号: 4000-4999       过滤二二层协议、mac地址、 vlan等

基本配置示例:

[Huawei-acl-L2- 4000]rule deny source-mac 0102-0102-0a0b destination-mac 0201 -0203-0a0b

拒绝mac地址为0102-0102-0a0b的主机访问mac地址为0201-0203-0a0b的主机

[Huawei-GigabitEthernet0/0/1 ]traffic-filter inbound (outbound) acl 4000

接口调用       本接口进方向或出方向调用acI4000

4. 用户自定义ACL:

ACL编号5000-5999,使用报文头、偏移位置、字符串掩码、用户自定义字符串来定义规则;

5. 用户ACL:

ACL编号6000-6999,可用IP报文的源/目标IP地址、IP协议类型、ICMP类型、端口来定义规则;

用户自定义ACL和用户ACL用的相对较少,再此不做详细介绍

六.、注意事项

1.time-range时间范围

[Huawei]time-range a from 10:30 2019/11/25 to 13:30 2019/11/26     定义time-range

定义时间范围a:从2019年11月25日10: 30到2019年11月26日11: 30

[Huawei-acl- basic-2000]rule deny (permit) time-range a source  10.0.0.1 0.0.0.0

ACL里调用/配置acI时调用时间范围

定义规则拒绝或允许10.0.0.1在时间范围a内通过节点

2.一个接口的一个方向只能调用一条acl, 一条acl可包含多条规则。

3.二层acI只能用在二层,基本和高级ACL只能用在三层。

再接口调用ACL是最基本的使用方法

ACL更多的适用场景是结合上层的使用协议或者服务

以上是关于[ 网络协议篇 ] 一篇文章让你掌握神秘的 ACL的主要内容,如果未能解决你的问题,请参考以下文章

[ 网络协议篇 ] 一篇文章让你掌握神秘的 VRRP(虚拟路由器冗余协议)

[ 网络模型篇 ]大白话告诉你什么是OSI七层模型

[ 网络协议篇 ] 一篇文章让你掌握什么是 HTTPS ?

网络编程

一文让你掌握单元测试的MockStub和Fake

一文让你掌握单元测试的MockStub和Fake