ACL与NAT

ACL

概述

  ACL是由一系列permit或deny语句组成的、有序规则的列表。
  ACL是一个匹配工具,能够对报文进行匹配和区分。
  通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
  ACL是由permit或deny语句组成的一系列有顺序的规则的集合;它通过匹配报文的相关字段实现对报文的分类。
  ACL是能够匹配一个IP数据包中的源IP地址、目的IP地址、协议类型、源目的端口等元素的基础性工具;ACL还能够用于匹配路由条目。
ACL与NAT_第1张图片
ACL与NAT_第2张图片

ACL的基本概念及其工作原理

ACL的组成

  ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。
ACL与NAT_第3张图片

规则编号

规则编号与步长

规则编号(Rule ID):
  一个ACL中的每一条规则都有一个相应的编号。
步长(Step):
  步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5。步长的作用是为了方便后续在旧规则之间,插入新的规则。
Rule ID分配规则:
  系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。

ACL与NAT_第4张图片

通配符

  通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。
  通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。
ACL与NAT_第5张图片
ACL与NAT_第6张图片

  当进行IP地址匹配的时候,后面会跟着32位掩码位,这32位称为通配符。
  通配符,也是点分十进制格式,换算成二进制后,“0”表示“匹配”,“1”表示“不关心”。
具体看下这2条规则:
  rule 5: 拒绝源IP地址为10.1.1.1报文通过——因为通配符为全0,所以每一位都要严格匹配,因此匹配的是主机IP地址10.1.1.1;
  rule 15:允许源IP地址为10.1.1.0/24网段地址的报文通过——因为通配符:0.0.0.11111111,后8位为1,表示不关心,因此10.1.1.xxxxxxxx 的后8位可以为任意值,所以匹配的是10.1.1.0/24网段。
例子:如果要精确匹配192.168.1.1/24这个IP地址对应的网段地址,通配符是多少?
  可以得出:网络位需要严格匹配,主机位无所谓,因此通配符为“0.0.0.255”。

匹配奇数IP地址

  匹配192.168.1.0/24这个子网中的奇数IP地址,例如192.168.1.1、192.168.1.3、192.168.1.5等。
ACL与NAT_第7张图片

  如果想匹配192.168.1.0/24网段中的奇数IP地址,通配符该怎么写呢?
   我们先来看一看,奇数IP地址都有哪些:192.168.1.1、192.168.1.5、192.168.1.11……
   后八位写成二进制:192.168.1.00000001、192.168.1.00000101、192.168.1.00001011……
   可以看出共同点:最后8位的高7位是任意值,最低位固定为1,因此答案是:192.168.1.1 0.0.0.254(0.0.0.11111110)
这就得出了通配符的一个特点:通配符中的1或者0是可以不连续的。
还有两个特殊的通配符:
  当通配符全为0来匹配IP地址时,表示精确匹配某个IP地址;
  当通配符全为1来匹配0.0.0.0地址时,表示匹配了所有IP地址。

ACL的分类与标识

基于ACL规则定义方式的分类

ACL与NAT_第8张图片

基于ACL标识方法的分类

在这里插入图片描述

注意:用户在创建ACL时可以为其指定编号,不同的编号对应不同类型的ACL。同时,为了便于记忆和识别,用户还可以创建命名型ACL,即在创建ACL时为其设置名称。命名型ACL,也可以是“名称 数字”的形式,即在定义命名型ACL时,同时指定ACL编号。如果不指定编号,系统则会自动为其分配一个数字型ACL的编号。

基本ACL&高级ACL

基本ACL

ACL与NAT_第9张图片
  主要针对IP报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999。
  比如这个例子,创建的是acl 2000,就意味着创建的是基本ACL。

高级ACL

ACL与NAT_第10张图片
  可以根据IP报文中的源IP地址、目的IP地址、协议类型,TCP或UDP的源目端口号等元素进行匹配,可以理解为:基本ACL是高级ACL的一个子集,高级ACL可以比基本ACL定义出更精确、更复杂、更灵活的规则。

ACL的匹配机制

ACL与NAT_第11张图片

ACL的匹配机制概括来说就是:
  配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。
  一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。
匹配流程:首先系统会查找设备上是否配置了ACL。
  如果ACL不存在,则返回ACL匹配结果为:不匹配。
  如果ACL存在,则查找设备是否配置了ACL规则。
    如果规则不存在,则返回ACL匹配结果为:不匹配。
    如果规则存在,则系统会从ACL中编号最小的规则开始查找。
      如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。
      如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。
      如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和“不匹配”。
  匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。
  不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。
匹配原则:一旦命中即停止匹配。

ACL的匹配顺序及匹配结果

配置顺序(config模式)
  系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。
ACL与NAT_第12张图片

ACL的匹配位置

ACL与NAT_第13张图片

入站 (Inbound)及出站 (Outbound)方向

ACL与NAT_第14张图片

ACL的基础配置命令

基本ACL的基础配置命令

ACL与NAT_第15张图片

案例:使用基本ACL过滤数据流量

ACL与NAT_第16张图片

高级ACL的基础配置命令

ACL与NAT_第17张图片
ACL与NAT_第18张图片

案例:使用高级ACL限制不同网段的用户互访

ACL与NAT_第19张图片
ACL与NAT_第20张图片

NAT网络地址转换

概述

私网IP地址

公有地址:由专门的机构管理、分配,可以在Internet上直接通信的IP地址。
私有地址:组织和个人可以任意使用,无法在Internet上直接通信,只能在内网使用的IP地址。
A、B、C类地址中各预留了一些地址专门作为私有IP地址:
  A类:10.0.0.0 ~ 10.255.255.255
  B类:172.16.0.0 ~ 172.31.255.255
  C类:192.168.0.0 ~ 192.168.255.255
ACL与NAT_第21张图片

NAT技术原理

  由于私有地址无法在Internet上路由转发,访问Internet的IP数据包将缺乏路由无法到达私有网络出口设备。

  如果使用了私有地址的私有网络需要访问Internet,必须在网络出口设备配置NAT,将访问Internet的IP数据报文中的私有网络源地址转换成公有网络源地址。
  NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
  NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
  通过私有地址的使用结合NAT技术,可以有效节约公网IPv4地址。

静态NAT

静态NAT原理

  静态NAT:每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
  支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。
ACL与NAT_第22张图片

静态NAT转换示例

ACL与NAT_第23张图片

静态NAT配置介绍

ACL与NAT_第24张图片

静态NAT配置示例

ACL与NAT_第25张图片

动态NAT

动态NAT原理

  动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
  当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。
ACL与NAT_第26张图片

动态NAT转换示例

ACL与NAT_第27张图片
ACL与NAT_第28张图片

动态NAT配置介绍

ACL与NAT_第29张图片

动态NAT配置示例

ACL与NAT_第30张图片

NAPT、Easy-IP

NAPT

  动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
  NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。
ACL与NAT_第31张图片
  NAPT借助端口可以实现一个公有地址同时对应多个私有地址。该模式同时对IP地址和传输层端口进行转换,实现不同私有地址(不同的私有地址,不同的源端口)映射到同一个公有地址(相同的公有地址,不同的源端口)。

NAPT转换示例

ACL与NAT_第32张图片
ACL与NAT_第33张图片

NAPT配置示例

ACL与NAT_第34张图片

Easy IP

  Easy IP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
  Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。
ACL与NAT_第35张图片

Easy IP配置示例

ACL与NAT_第36张图片

NAT Server

NAT Server使用场景

  NAT Server:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。
  外网主机主动访问[公有地址:端口]实现对内网服务器的访问。

ACL与NAT_第37张图片

NAT Server转换示例

ACL与NAT_第38张图片

NAT Server配置示例

ACL与NAT_第39张图片

你可能感兴趣的:(网络,网络协议,linux)