访问控制列表概述
企业网络中的设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定。访问控制列表ACL(Access Control List)可以定义一系列的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。
ACL就是由一系列规则组成的集合。设备可以通过这些规则对数据包进行分类,并对不同类型的报文进行不同的处理。
例如:可以通过定义规则来允许或拒绝流量的通过。
image.png
设备可以依据ACL中定义的条件(例如源IP地址)来匹配入方向的数据,并对匹配了条件的数据执行相应的动作。
image.png
根据不同的划分规则,ACL可以有不同的分类。最常见的三种分类是基本ACL、高级ACL和二层ACL。

  1. 基本ACL可以使用报文的源IP地址、分片标记和时间段信息来匹配报文,其编号取值范围是2000-2999。
  2. 高级ACL可以使用报文的源/目的IP地址、源/目的端口号以及协议类型等信息来匹配报文。高级ACL可以定义比基本ACL更准确、更丰富、更灵活的规则,其编号取值范围是 3000-3999。
  3. 二层ACL可以使用源/目的MAC地址以及二层协议类型等二层信息来匹配报文,其编号取值范围是4000-4999。
    一个ACL可以由多条“deny | permit”语句组成,每一条语句描述了一条规则。设备收到数据流量后,会逐条匹配ACL规则,看其是否匹配。如果不匹配,则匹配下一条。一旦找到一条匹配的规则,则执行规则中定义的动作,并不再继续与后续规则进行匹配。如果找不到匹配的规则,则设备不对报文进行任何处理。需要注意的是,ACL中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级,ACL通过设置规则的优先级来处理规则之间重复或矛盾的情形。
    image.png
    ARG3系列路由器支持两种匹配顺序:配置顺序和自动排序。
  4. 配置顺序按ACL规则编号(rule-id)从小到大的顺序进行匹配。设备会在创建ACL的过程中自动为每一条规则分配一个编号,规则编号决定了规则被匹配的顺序。例如,如果将步长设定为5,则规则编号将按照5、10、15…这样的规律自动分配。如果步长设定为2,则规则编号将按照2、4、6、8…这样的规律自动分配。通过设置步长,使规则之间留有一定的空间,用户可以在已存在的两个规则之间插入新的规则。路由器匹配规则时默认采用配置顺序。另外,ARG3系列路由器默认规则编号的步长是5。
  5. 自动排序使用“深度优先”的原则进行匹配,即根据规则的精确度排序。
    本示例中,RTA收到了来自两个网络的报文。默认情况下,RTA会依据ACL的配置顺序来匹配这些报文。网络172.16.0.0/24发送的数据流量将被RTA上配置的ACL2000的规则15 匹配,因此会被拒绝。而来自网络172.17.0.0/24的报文不能匹配访问控制列表中的任何规则,因此RTA对报文不做任何处理,而是正常转发。
    基本ACL
    基本ACL可以使用报文的源IP地址、分片标记和时间段信息来匹配报文,其编号取值范围是2000-2999
    配置流程: 1、编写规则:
    acl [ number ] 命令用来创建一个ACL,并进入ACL视图。
    rule [ rule-id ] { deny | permit } source { source-address sourcewildcard | any } 命令用来增加或修改ACL的规则。deny用来指定拒绝符合条件的数据包,permit用来指定允许符合条件的数据包,source用来指定ACL规则匹配报文的源地址信息,any表示任意源地址。例如:
[Huawei]acl 2100  
[Huawei-acl-basic-2100]rule deny source 192.168.1.0 0.0.0.255  
[Huawei-acl-basic-2100]rule permit source 192.168.2.0 0.0.0.255  
[Huawei-acl-basic-2100]rule deny source 192.168.3.100 0  
[Huawei-acl-basic-2100]dis this  
[V200R003C00]
acl number 2100  
rule 5 deny source 192.168.1.0 0.0.0.255  
rule 10 permit source 192.168.2.0 0.0.0.255  
rule 15 deny source 192.168.3.100 0

return
2、 将规则应用到接口上
traffic-filter { inbound | outbound }acl{ acl-number }命令用来在接口上配置基于ACL对报文进行过滤。
例如:

[Huawei]interface GigabitEthernet 0/0/0  
[Huawei-GigabitEthernet0/0/0]traffic-filter inbound acl 2100  

3、 检查确认
执行display acl 命令可以验证配置的基本ACL。
执行display traffic-filter applied-record命令可以查看设备上所有基于ACL进行报文过滤
的应用信息,这些信息可以帮助用户了解报文过滤的配置情况并核对其是否正确,同时也有助于进行相关的故障诊断与排查。

[Huawei]display traffic-filter applied-record

---

Interface Direction AppliedRecord  
----------------------------------------------------------GigabitEthernet0/0/1 outbound acl 2000  
GigabitEthernet0/0/0 inbound acl 2100  
----------------------------------------------------------[Huawei]display acl 2100  
Basic ACL 2100, 3 rules  
Acl’s step is 5  
rule 5 deny source 192.168.1.0 0.0.0.255  
rule 10 permit source 192.168.2.0 0.0.0.255  
rule 15 deny source 192.168.3.100 0  

4、可以添加ACL生效时间
先建立一个时间范围

[Huawei]time-range work-time 09:00 to 17:00 working-day  

写ACL时进行时间段调用

[Huawei]acl 2500  
[Huawei-acl-basic-2500]rule deny source 192.168.5.0 0.0.0.255 time-range worktime  

高级ACL
高级ACL能够依据源/目的IP地址、源/目的端口号、网络层及传输层协议以及IP流量分
类和TCP标记值等各种参数(SYN|ACK|FIN等)进行报文过滤。
高级ACL控制的参数更多,所以对网络数据控制的更精细,应用的也更广泛。
高级ACL的编号范围是3000-3999
1、 编写高级ACL

[Huawei]acl 3000  
[Huawei-acl-adv-3000]rule permit tcp source 192.168.1.0 0.0.0.255 destination  
192.168.100.100 0 destination-port eq 22  
[Huawei-acl-adv-3000]rule deny tcp source 192.168.1.0 0.0.0.255 destination  
192.168.100.100 0 destination-port eq 23  

2、 应用ACL

[Huawei]interface GigabitEthernet 0/0/0  
[Huawei-GigabitEthernet0/0/0]traffic-filter inbound acl 3000  

NAT的工作原理
随着Internet的发展和网络应用的增多,IPV4地址枯竭已经成为制约网络发展的瓶颈。
尽管IPV6可以从根本上解决IPV4地址空间不足的问题,但是目前众多的网络设备和网络应用仍是基于IPV4的,所以在IPV6广泛应用之前,一些过度技术的使用是解决这个问题的主要技术手段。
NAT(Network Address Translation)网络地址转换技术主要用于实现位于公司内部网络的主机访问互联网的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样即可以保证网络互通,又节省了公网地址。
NAT还有一个主要功能是把位于内网的服务器发布到公网上,让公网用户来访问,这样隐藏了内网服务器,起到了一定的安全作用。
NAT一般部署在连接内网和外网的网关设备上。
image.png
NAT是将IP数据报文头部中的IP地址转换为另一个IP地址的过程,根据NAT实现方式,也会转换传输层中的端口号,网关路由器会把这些转换信息记录到NAT映射表中,这张
NAT映射表可以静态产生也可以动态产生。NAT功能会加大网关路由器的负载,有些应用
NAT也还是不能支持:比如DNS区域复制,NAT就不支持,所以NAT还是有些缺点的。
NAT的实现方式有多种,适用于不同的场景。
静态NAT实现了私有地址和公有地址的一对一映射。如果希望一台主机优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时,可以使用静态
NAT。但是在大型网络中,这种一对一的IP地址映射无法缓解公用地址短缺的问题。
动态NAT通过使用地址池来实现转换。动态NAT地址池中的地址用尽以后,只能等待被占用的公用IP被释放后,其他主机才能使用它来访问公网。
网络地址端口转换NAPT(Network Address Port Translation)允许多个内部地址映射到同一个公有地址的不同端口。
Easy IP适用于小规模局域网中的主机访问Internet的场景。小规模局域网通常部署在
小型的网吧或者办公室中,这些地方内部主机不多,出接口可以通过拨号方式获取一个临时公网IP地址。Easy IP可以实现内部主机使用这个临时公网IP地址访问Internet。
NAT Server可以实现外网用户访问内网服务器的不同端口,需要配置服务器私网IP地址和端口号转换为公网IP地址和端口号并发布出去,实现了一个公网IP对应多个私网服务器的需求。
配置共享上网
如果要实现公司内网用户上网需求,可以选择动态NAT、NATP或Easy IP的方式
1、动态NAT配置先定义公网地址池:nat address-group命令用来配置NAT地址池。

[Huawei]nat address-group 1 100.1.1.1 100.1.1.100  

定义ACL匹配要转换的内网地址段

[Huawei]acl 2005  
[Huawei-acl-basic-2005]rule permit source 192.168.10.0 0.0.0.255  
[Huawei-acl-basic-2005]rule permit source 192.168.11.0 0.0.0.255  

在外网接口上进行映射

[Huawei]interface GigabitEthernet 0/0/1  
[Huawei-GigabitEthernet0/0/1]nat outbound 2005 address-group 1 no-pat  

nat outbound命令用来将一个访问控制列表ACL和一个地址池关联起来,表示ACL中规定的地址可以使用地址池进行地址转换。ACL用于指定一个规则,用来过滤特定流量。 no-pat表示只转换数据报文的地址而不转换端口信息。
检查NAT配置情况: display nat address-group group-index命令用来查看NAT地址池配置信息。

[Huawei]display nat address-group 1  
NAT Address-Group Information:

Index Start-address End-address


1 100.1.1.1 100.1.1.100


Total : 1
命令display nat outbound用来查看动态NAT配置信息。
[Huawei]display nat outbound NAT Outbound Information:


Interface Acl Address-group/IP/Interface Type


GigabitEthernet0/0/1 2005 1 no-pat


Total : 1
2、Easy IP配置
首先定义内网要转换的网段的ACL:
[Huawei]acl 2005
[Huawei-acl-basic-2005]rule permit source 192.168.10.0 0.0.0.255
[Huawei-acl-basic-2005]rule permit source 192.168.11.0 0.0.0.255 然后在外部接口上启用NAT
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]nat outbound 2005
验证配置:命令display nat outbound用于查看命令nat outbound的配置结果。
[Huawei]display nat outbound NAT Outbound Information:


Interface Acl Address-group/IP/Interface Type


GigabitEthernet0/0/1 2005 100.1.1.5 easyip
————————————————————————- Total : 1
Address-group/IP/Interface表项表明接口和ACL已经关联成功,type表项表明Easy IP已
经配置成功

发布内网服务器

公司内网服务器一般采用的是私网地址,如果想跨公网来访问它,就需要发布服务器,
可以通过静态NAT方式或者NAT Server方式来实现这种需求。
1、静态NAT配置: nat static global { global-address} inside {host-address } 命令用于创建静态NAT。 global参数用于配置外部公网地址。
inside参数用于配置内部私有地址。例如:
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]nat static enable
[Huawei-GigabitEthernet0/0/1]nat static global 100.1.1.6 inside 192.168.1.100 静态NAT不仅只做地址映射,也可以静态映射端口
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]nat static protocol tcp global 100.1.1.8 2300 inside 192.168.1.200 22
[Huawei-GigabitEthernet0/0/1]nat static protocol tcp global 100.1.1.8 2400 inside 192.168.2.200 22
查看配置:命令display nat static用于查看静态NAT的配置
[Huawei]display nat static Static Nat Information:
Interface : GigabitEthernet0/0/1
Global IP/Port : 100.1.1.6/—-
Inside IP/Port : 192.168.1.100/— Protocol : —-
VPN instance-name : —-
Acl number : —-
Netmask : 255.255.255.255 Description : —-

Global IP/Port     : 100.1.1.8/2300 
Inside IP/Port     : 192.168.1.200/22
Protocol : 6(tcp)   
VPN instance-name  : ----                            
Acl number         : ----
Netmask  : 255.255.255.255 
Description : ----

Global IP/Port     : 100.1.1.8/2400 
Inside IP/Port     : 192.168.2.200/22
Protocol : 6(tcp)   
VPN instance-name  : ----                            
Acl number         : ----
Netmask  : 255.255.255.255 
Description : ----

Total : 3
2、NAT Server配置
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]nat server protocol tcp global 100.1.1.10 2500 inside 192.168.1.150 80
[Huawei-GigabitEthernet0/0/1]nat server protocol tcp global 100.1.1.10 80 inside 192.168.1.160 80
验证配置:
display nat server命令用于查看详细的NAT服务器配置结果
[Huawei]display nat server

Nat Server Information:
Interface : GigabitEthernet0/0/1
Global IP/Port : 100.1.1.10/2500
Inside IP/Port : 192.168.1.150/80(www)
Protocol : 6(tcp)
VPN instance-name : —-
Acl number : —-
Description : —-

Global IP/Port     : 100.1.1.10/80(www) 
Inside IP/Port     : 192.168.1.160/80(www)
Protocol : 6(tcp)   
VPN instance-name  : ----                            
Acl number         : ----
Description : ----

Total : 2