• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

NAT配置


1 NAT配置说明

说明

NAT功能目前仅在独立运行模式下支持。

目前除SPC-CP2LA和SPC-CP2LB单板外,其他业务板都可以提供NAT处理。

1.1 NAT简介

NAT(Network Address Translation,网络地址转换)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要应用在连接两个网络的边缘设备上,用于实现允许内部网络用户访问外部公共网络以及允许外部公共网络访问部分内部网络资源(例如内部服务器)的目的。NAT最初的设计目的是实现私有网络访问公共网络的功能,后扩展为实现任意两个网络间进行访问时的地址转换应用。

1.1.1 NAT工作机制

配置了NAT功能的连接内部网络和外部网络的边缘设备,通常被称为NAT设备。当内部网络访问外部网络的报文经过NAT设备时,NAT设备会用一个合法的公网地址替换原报文中的源IP地址,并对这种转换进行记录;之后,当报文从外网侧返回时,NAT设备查找原有的记录,将报文的目的地址再替换回原来的私网地址,并转发给内网侧主机。这个过程,在私网侧或公网侧设备看来,与普通的网络访问并没有任何的区别。

1. 基本概念

l NAT接口:NAT设备上应用了NAT相关配置的接口。

l NAT地址:用于进行地址转换的IP地址,与外部网络路由可达,可静态指定或动态分配。

l NAT表项:NAT设备上用于记录网络地址转换映射关系的表项。

l Easy IP功能:NAT转换时直接使用设备上接口的IP地址作为NAT地址。设备上接口的地址可通过DHCP等协议动态获取,因此对于支持Easy IP的NAT配置,不直接指定NAT地址,而是指定对应的接口或当前接口。

2. NAT的基本组网类型

(1) 传统NAT

报文经过NAT设备时,在NAT接口上仅进行一次源IP地址转换或一次目的IP地址转换。对于内网访问外网的报文,在出接口上进行源IP地址转换;对于外网访问内网的报文,在入接口上进行目的地址IP地址转换。

(2) 两次NAT

报文入接口和出接口均为NAT接口。报文经过NAT设备时,先后进行两次NAT转换。对于内网访问外网的报文和外网访问内网的报文,均在入接口进行目的IP地址转换,在出接口进行源IP地址转换。这种方式常用于支持地址重叠的VPN间互访。

(3) 双向NAT

报文经过NAT设备时,在NAT接口上同时进行一次源IP地址转换和一次目的IP地址转换。对于内网访问外网的报文,在出接口上同时进行源IP地址和目的IP地址的转换;对于外网访问内网的报文,同时在入接口上进行目的地址IP地址和源IP地址的转换。这种方式常用于支持内网用户主动访问与之地址重叠的外网资源。

(4) NAT hairpin

NAT hairpin功能用于满足位于内网侧的用户之间或内网侧的用户与服务器之间通过NAT地址进行访问的需求。使能NAT hairpin的内网侧接口上会对报文同时进行源地址和目的地址的转换。它支持两种组网模式:

·P2P:位于内网侧的用户之间通过动态分配的NAT地址互访。

·C/S:位于内网侧的用户使用静态配置的NAT地址访问内网服务器。

3. 传统NAT的典型工作过程

图1-1 NAT基本工作过程示意图

如图1-1所示,一台NAT设备连接内网和外网,连接外网的接口为NAT接口,当有报文经过NAT设备时,NAT的基本工作过程如下:

(1) 当内网用户主机(192.168.1.3)向外网服务器(1.1.1.2)发送的IP报文通过NAT设备时,NAT设备查看报文的IP头内容,发现该报文是发往外网的,则将其源IP地址字段的内网地址192.168.1.3转换成一个可路由的外网地址20.1.1.1,并将该报文发送给外网服务器,同时在NAT设备上建立表项记录这一映射。

(2) 外网服务器给内网用户发送的应答报文到达NAT设备后,NAT设备使用报文信息匹配建立的表项,然后查找匹配到的表项记录,用内网私有地址192.168.1.3替换初始的目的IP地址20.1.1.1。

上述的NAT过程对终端(如图中的Host和Server)来说是透明的。对外网服务器而言,它认为内网用户主机的IP地址就是20.1.1.1,并不知道存在192.168.1.3这个地址。因此,NAT“隐藏”了企业的私有网络。

1.1.2 NAT转换控制

在实际应用中,我们可能希望某些内部网络的主机可以访问外部网络,而某些主机不允许访问;或者希望某些外部网络的主机可以访问内部网络,而某些主机不允许访问。即NAT设备只对符合要求的报文进行地址转换。

NAT设备可以利用ACL(Access Control List,访问控制列表)来对地址转换的使用范围进行控制,通过定义ACL规则,并将其与NAT配置相关联,实现只对匹配指定的ACL permit规则的报文才进行地址转换的目的。而且,NAT仅使用规则中定义的源IP地址、源端口号、目的IP地址、目的端口号、传输层协议类型、用户组和VPN实例这几个元素进行报文匹配,忽略其它元素。

1.1.3 NAT实现方式

1. 静态方式

静态地址转换是指外部网络和内部网络之间的地址映射关系由配置确定,该方式适用于内部网络与外部网络之间存在固定访问需求的组网环境。静态地址转换支持双向互访:内网用户可以主动访问外网,外网用户也可以主动访问内网。

2. 动态方式

动态地址转换是指内部网络和外部网络之间的地址映射关系在建立连接的时候动态产生。该方式通常适用于内部网络有大量用户需要访问外部网络的组网环境。动态地址转换存在两种转换模式:

(1) NO-PAT模式

NO-PAT(Not Port Address Translation)模式下,一个外网地址同一时间只能分配给一个内网地址进行地址转换,不能同时被多个内网地址共用。当使用某外网地址的内网用户停止访问外网时,NAT会将其占用的外网地址释放并分配给其他内网用户使用。

该模式下,NAT设备只对报文的IP地址进行NAT转换,同时会建立一个NO-PAT表项用于记录IP地址映射关系,并可支持所有IP协议的报文。

(2) PAT模式

PAT(Port Address Translation)模式下,一个NAT地址可以同时分配给多个内网地址共用。该模式下,NAT设备需要对报文的IP地址和传输层端口同时进行转换,且只支持TCP、UDP和ICMP(Internet Control Message Protocol,互联网控制消息协议)查询报文。

图1-2 PAT基本原理示意图

如图1-2所示,三个带有内网地址的报文到达NAT设备,其中报文1和报文2来自同一个内网地址但有不同的源端口号,报文1和报文3来自不同的内网地址但具有相同的源端口号。通过PAT映射,三个报文的源IP地址都被转换为同一个外网地址,但每个报文都被赋予了不同的源端口号,因而仍保留了报文之间的区别。当各报文的回应报文到达时,NAT设备仍能够根据回应报文的目的IP地址和目的端口号来区别该报文应转发到的内部主机。

采用PAT方式可以更加充分地利用IP地址资源,实现更多内部网络主机对外部网络的同时访问。

目前,PAT支持如下地址转换模式:

· Endpoint-Independent Mapping(不关心对端地址和端口转换模式):只要是来自相同源地址和源端口号的报文,不论其目的地址是否相同,通过PAT映射后,其源地址和源端口号都被转换为同一个外部地址和端口号,该映射关系会被记录下来并生成一个EIM表项;并且NAT设备允许所有外部网络的主机通过该转换后的地址和端口来访问这些内部网络的主机。这种模式可以很好的支持位于不同NAT网关之后的主机进行互访。

· Connection-Dependent Mapping(关心对端地址和端口的非共享转换模式):来自同一源地址和源端口号并且去往特定目的地址和端口号的报文,通过PAT映射后,其源地址和源端口号都被转换为同一个外部地址和端口号。同一源地址和源端口号并且去往不同目的地址和端口号的报文,通过PAT映射后,其源地址和源端口号被转换为不同的外部地址和端口号。与Endpoint-Independent Mapping模式不同的是,这种模式安全性好,即NAT设备只允许这些目的地址对应的外部网络的主机可以通过该转换后的地址和端口来访问这些内部网络的主机。

3. 内部服务器

在实际应用中,内网中的服务器可能需要对外部网络提供一些服务,例如给外部网络提供Web服务,或是FTP服务。这种情况下,NAT设备允许外网用户通过指定的NAT地址和端口访问这些内部服务器,NAT内部服务器的配置就定义了NAT地址和端口与内网服务器地址和端口的映射关系。

如图1-3所示,外部网络用户访问内部网络服务器的数据报文经过NAT设备时,NAT设备将报文的目的地址与接口上的NAT内部服务器配置进行匹配,并将匹配上的访问内部服务器的请求报文的目的IP地址和端口号转换成内部服务器的私有IP地址和端口号。当内部服务器回应该报文时,NAT设备再根据已有的地址映射关系将回应报文的源IP地址和端口号转换成外网IP地址和端口号。

图1-3 内部服务器基本原理示意图

4. 端口块方式

端口块方式是一种基于端口范围的PAT动态地址转换,即一个私网IP地址在一个时间段内独占一个公网IP地址的某个端口块。例如:假设私网IP地址10.1.1.1独占公网IP地址202.1.1.1的一个端口块10001~10256,则该私网IP向公网发起的所有连接,源IP地址都将被转换为同一个公网IP地址202.1.1.1,而源端口将被转换为端口块10001~10256之内的一个端口。

端口块方式包括静态映射和动态映射两种,主要应用在NAT444或DS-Lite网络中。

(1) 端口块静态映射

端口块静态映射是指,NAT网关设备根据配置自动计算私网IP地址到公网IP地址、端口块的静态映射关系,并创建静态端口块表项。当私网IP地址成员中的某个私网IP地址向公网发起新建连接时,根据私网IP地址匹配静态端口块表项,获取对应的公网IP地址和端口块,并从端口块中动态为其分配一个公网端口,对报文进行地址转换。

配置端口块静态映射时,需要创建一个端口块组,并在端口块组中配置私网IP地址成员、公网IP地址成员、端口范围和端口块大小。假设端口块组中每个公网IP地址的可用端口块数为m(即端口范围除以端口块大小),则端口块静态映射的算法如下:按照从小到大的顺序对私网IP地址成员中的所有IP地址进行排列,最小的m个私网IP地址对应最小的公网IP地址及其端口块,端口块按照起始端口号从小到大的顺序分配;次小的m个私网IP地址对应次小的公网IP地址及其端口块,端口块的分配顺序相同;依次类推。

(2) 端口块动态映射

在NAT与BRAS联动的场景中,用户上线成功后,设备将遍历所有接口上的地址转换配置,当用户流量与某接口的地址转换配置中的ACL规则相匹配时,为该用户分配公网地址以及端口块,并创建动态端口块表项。用户下线后,回收为其分配的端口块资源,删除相应的动态端口块表项。

非联动场景中,当内网用户向公网发起连接时,首先根据动态地址转换中的ACL规则进行过滤,决定是否需要进行源地址转换。对于需要进行源地址转换的连接,当该连接为该用户的首次连接时,从所匹配的动态地址转换配置引用的NAT地址组中获取一个公网IP地址,从该公网IP地址中动态分配一个端口块,创建动态端口块表项,然后从端口块表项中动态分配一个公网端口,进行地址转换。对该用户后续连接的转换,均从生成的动态端口块表项中分配公网端口。当该用户的所有连接都断开时,回收为其分配的端口块资源,删除相应的动态端口块表项。

端口块动态映射支持增量端口块分配。当为某私网IP地址分配的端口块资源耗尽(端口块中的所有端口都被使用)时,如果该私网IP地址向公网发起新的连接,则无法再从端口块中获取端口,无法进行地址转换。此时,如果预先在相应的NAT地址组中配置了增量端口块数,则可以为该私网IP地址分配额外的端口块,进行地址转换。

1.1.4 NAT表项和关联表项

1. NAT会话表项

NAT设备处理一个连接的首报文时便确定了相应的地址转换关系,并同时创建会话表项,该会话表项中添加了NAT扩展信息(例如接口信息、转换方式)。会话表项中记录了首报文的地址转换信息。这类经过NAT处理的会话表项,也称为NAT会话表项。

当该连接的后续报文经过NAT设备时,将与NAT会话表项进行匹配,NAT设备从匹配到的会话表项中得到首报文的转换方式,并根据首报文的转换方式对后续报文进行处理:

· 后续报文方向与首报文相同时,源和目的的转换方式与首报文相同。

· 后续报文方向与首报文相反时,转换方式与首报文相反。即,如果首报文转换了源地址,则后续报文需要转换目的地址;如果首报文转换了目的地址,则后续报文需要转换源地址。

NAT会话表项的更新和老化由会话管理模块维护,关于会话管理的相关介绍请参见“安全配置指导”中的“会话管理”。

2. EIM表项

如果NAT设备上开启了Endpoint-Independent Mapping模式,则在PAT方式的动态地址转换过程中,会首先创建一个NAT会话表项,然后创建一个用于记录地址和端口的转换关系(内网地址和端口<-->NAT地址和端口)的EIM三元组表项,该表项有以下两个作用:

· 保证后续来自相同源地址和源端口的新建连接与首次连接使用相同的转换关系。

· 允许外网主机向NAT地址和端口发起的新建连接根据EIM表项进行反向地址转换。

该表项在与其相关联的所有NAT会话表项老化后老化。

3. NO-PAT表项

在NO-PAT方式进行源地址的动态转换过程中,NAT设备首先创建一个NAT会话表项,然后建立一个NO-PAT表项用于记录该转换关系(内网地址<-->NAT地址)。除此之外,在NAT设备进行ALG处理时,也会触发创建NO-PAT表项。NAT ALG的相关介绍请参见“1.1.6 NAT支持ALG”。

NO-PAT表项有以下两个作用:

· 保证后续来自相同源地址的新建连接与首次连接使用相同的转换关系。

· 允许满足指定条件的主机向NAT地址发起的新建连接根据NO-PAT表项进行反向地址转换。

该表项在与其相关联的所有NAT会话表项老化后老化。

4. 端口块表项

端口块表项记录1个用户在网关转换前的私网IP地址、转换后对应的公网IP地址及其端口块。端口块表项分为静态端口块表项和动态端口块表项。关于端口块表项的详细介绍,请参见“1.1.3 4端口块方式”。

1.1.5 NAT支持VPN实例

支持VPN实例的NAT允许VPN实例内的用户访问外部网络,同时允许分属相同VPN实例的用户互访。例如,当某VPN实例内的用户经过NAT设备访问外部网络时,NAT将内部网络主机的IP地址和端口替换为NAT地址和端口,同时还记录了用户的VPN实例信息(如VPN实例名称)。外部网络的回应报文到达NAT设备时,NAT将外部网络地址和端口还原为内部网络主机的IP地址和端口,同时可得知该回应报文应该转发给哪一个VPN实例内的用户。另外,NAT还可利用外部网络地址所携带的VPN实例信息,支持相同VPN实例之间的互访。

同时,NAT内部服务器也支持VPN实例,这给外部网络提供了访问VPN实例内服务器的机会。例如,VPN1内提供Web服务的主机地址是10.110.1.1,可以使用202.110.10.20作为Web服务器的外部地址,Internet的用户使用202.110.10.20的地址就可以访问到VPN1提供的Web服务。

1.1.6 NAT支持ALG

ALG(Application Level Gateway,应用层网关)主要完成对应用层报文的解析和处理。通常情况下,NAT只对报文头中的IP地址和端口信息进行转换,不对应用层数据载荷中的字段进行分析和处理。然而对于一些应用层协议,它们的报文的数据载荷中可能包含IP地址或端口信息,这些载荷信息也必须进行有效的转换,否则可能导致功能不正常。

例如,FTP(File Transfer Protocol,文件传输协议)应用由FTP客户端与FTP服务器之间建立的数据连接和控制连接共同实现,而数据连接使用的地址和端口由控制连接协商报文中的载荷信息决定,这就需要ALG利用NAT的相关转换配置完成载荷信息的转换,以保证后续数据连接的正确建立。

1.2 配置NAT

1.2.1 NAT配置限制和指导

根据NAT规则的应用范围,将NAT地址转换方式分为接口NAT和全局NAT两类:

· 对于接口NAT,需要在接口上应用NAT规则,根据该NAT规则进行NAT操作。

· 对于全局NAT,需要配置NAT实例,通过QoS策略将需要进行地址转换的流量引到NAT实例中,按照NAT实例中的NAT规则进行NAT操作。

接口NAT和全局NAT互斥,存在接口NAT的配置时,将无法配置NAT实例,反之亦然。如果需要将NAT地址转换方式由接口NAT更改为全局NAT,则需要删除所有接口NAT的配置才能配置全局NAT;反之,如果需要将NAT地址转换方式由全局NAT更改为接口NAT,则需要删除所有NAT实例才能配置接口NAT。

NAT通用配置限制和指导如下:

· 如果NAT规则中使用了ACL进行报文过滤,则NAT只对匹配指定的ACL permit规则的报文才进行地址转换,匹配时仅关注ACL规则中定义的源IP地址、源端口号、目的IP地址、目的端口号、传输层协议类型、用户组和VPN实例,不关注ACL规则中定义的其它元素。

· 若同时存在普通NAT静态地址转换、普通NAT动态地址转换、内部服务器、NAT端口块静态映射、NAT端口块动态映射和DS-Lite B4地址转换的配置,则在地址转换过程中,它们的优先级从高到低依次为:

a. 内部服务器。

b. 普通NAT静态地址转换。

c. NAT端口块静态映射。

d. NAT端口块动态映射和普通NAT动态地址转换,系统在处理IPv4报文时对二者不做区分,统一按照ACL编号由大到小的顺序匹配。

e. DS-Lite B4地址转换的处理优先级与NAT端口块动态映射和NAT动态地址转换处于同一个级别,只不过DS-Lite B4地址转换处理的是IPv6报文。

· 应用NAT后,如果修改QoS策略中ACL的rule规则,不会影响已经NAT处理过的流量,只影响后续的流量。

· 在DS-Lite网络中,请确保DS-Lite隧道物理出接口的MTU值比DS-Lite隧道接口的MTU值至少大40字节(即IPv6基本报文头长度),否则可能导致报文转发失败。

· 对于CSPC类单板(CSPC-GE16XP4L-E、CSPC-GE24L-E和CSPC-GP24GE8XP2L-E除外)和CMPE-1104单板,不支持在VPN实例下配置NAT功能。

· 当端口容量不大于80G的CSPC类单板(CSPC-GE16XP4L-E、CSPC-GE24L-E和CSPC-GP24GE8XP2L-E除外)或CMPE-1104单板上的子接口使能QinQ终结功能后,该子接口无法作为NAT出接口。单板的端口容量是指整块单板上所有接口速率的总和,如CSPC-GP24XP2LB单板的端口容量为44G,即2x10G+24x1G。

· 当QoS策略的流量重定向动作切换至重定向到指定的单板,或者从重定向到指定单板切换至其他重定向动作后,需要使用reset ip fast-forwarding cache slot命令清除指定单板上的快速转发表中的信息。

· CSPC-GE16XP4L-E、CSPC-GE24L-E、CSPC-GP24GE8XP2L-E单板、CSPEX类单板、SPE类单板和CEPC类单板仅支持非VPN实例下或相同VPN实例内的地址转换。

· CSPC类单板(CSPC-GE16XP4L-E、CSPC-GE24L-E和CSPC-GP24GE8XP2L-E除外)和CMPE-1104单板仅支持非VPN实例下的地址转换。

配置BRAS联动功能时,需要注意:

· 目前,支持BRAS联动功能的用户地址类型包括私网IP地址(private-ipv4)、私网双栈地址(private-ds)和轻量级双栈地址(ds-lite)。

· 用户上线后,无法更改NAT端口块配置。只有在所有用户下线后,才能更改NAT端口块配置。

在特定场景下,用于定义地址转换的ACL规则,至少包含以下任意一项规则信息参数,如表1-1所示:

表1-1 特定场景下ACL规则的条件

场景

至少包含以下任意一项规则信息参数

普通的联动用户接入

源IP地址、VPN实例或user-group用户组

负载均衡的联动用户接入

user-group用户组

通过流量触发分配端口块

源IP地址、VPN实例、源端口、协议类型或user-group用户组

1.2.2 配置静态地址转换

配置静态地址转换时,需要首先在系统视图下配置静态地址转换映射,然后在接口下使该转换映射生效。

静态地址转换映射支持两种方式:一对一静态转换映射、网段对网段静态转换映射。静态地址转换可以支持配置在接口的出方向(nat static outbound)或入方向(nat static inbound)上,入方向的静态地址转换通常用于与其他NAT转换方式配合以实现双向NAT,不建议单独配置。

1. 配置出方向一对一静态地址转换

出方向一对一静态地址转换通常应用在外网侧接口上,用于实现一个内部私有网络地址到一个外部公有网络地址的转换,具体过程如下:

· 对于经过该接口发送的内网访问外网的报文,将其源IP地址与指定的内网IP地址local-ip进行匹配,并将匹配的源IP地址转换为global-ip。

· 对于该接口接收到的外网访问内网的报文,将其目的IP地址与指定的外网IP地址global-ip进行匹配,并将匹配的目的IP地址转换为local-ip。

具体步骤如下:

· 进入系统视图。

system-view

· 配置出方向一对一静态地址转换映射。

nat static outbound local-ip [ vpn-instance local-vpn-instance-name ] global-ip [ vpn-instance global-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ] [ failover-group group-name ]

· 进入接口视图。

interface interface-type interface-number

· 开启接口上的NAT静态地址转换功能。

nat static enable

缺省情况下,NAT静态地址转换功能处于关闭状态。

2. 配置出方向网段对网段静态地址转换

出方向网段对网段静态地址转换通常应用在外网侧接口上,用于实现一个内部私有网络到一个外部公有网络的地址转换,具体过程如下:

· 对于经过该接口发送的内网访问外网的报文,将其源IP地址与指定的内网网络地址进行匹配,并将匹配的源IP地址转换为指定外网网络地址之一。

· 对于该接口接收到的外网访问内网的报文,将其目的IP地址与指定的外网网络地址进行匹配,并将匹配的目的IP地址转换为指定的内网网络地址之一。

具体步骤如下:

· 进入系统视图。

system-view

· 配置出方向网段对网段静态地址转换映射。

nat static outbound net-to-net local-start-address local-end-address [ vpn-instance local-vpn-instance-name ] global global-network { mask-length | mask } [ vpn-instance global-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ] [ failover-group group-name ]

· 进入接口视图。

interface interface-type interface-number

· 开启接口上的NAT静态地址转换功能。

nat static enable

缺省情况下,NAT静态地址转换功能处于关闭状态。

1.2.3 配置动态地址转换

通过在接口上配置ACL和地址组(或接口地址)的关联即可实现动态地址转换。

· 直接使用接口的IP地址作为转换后的地址,即实现Easy IP功能。

· 选择使用地址组中的地址作为转换后的地址,根据地址转换过程中是否转换端口信息可将动态地址转换分为NO-PAT和PAT两种方式。

1. 配置出方向动态地址转换

出方向动态地址转换通常应用在外网侧接口上,用于实现一个内部私有网络地址到一个外部公有网络地址的转换。

具体步骤如下:

· 进入系统视图。

system-view

· (可选)配置PAT方式地址转换的模式为Endpoint-Independent Mapping。

nat mapping-behavior endpoint-independent { tcp [ tcp-5-tuple ] | udp [ udp-5-tuple ] } *

缺省情况下,PAT方式地址转换的模式为Connection-Dependent Mapping。

该配置只在定制了三元组模式的设备上适用,且只对出方向动态地址转换的PAT方式起作用。

· 创建NAT地址组,并进入NAT地址组视图。

nat address-group group-id

· 添加地址成员。

address start-address end-address

缺省情况下,不存在地址成员。

可通过多次执行本命令添加多个地址成员,但是地址成员的地址不能重叠。

· 退回系统视图。

quit

· 进入接口视图。

interface interface-type interface-number

· 配置接口上的出方向动态地址转换。请至少选择其中一项进行配置。

¡ NO-PAT方式。

nat outbound [ ipv4-acl-number | name ipv4-acl-name ] address-group group-id [ vpn-instance vpn-instance-name ] no-pat [ reversible ]

¡ PAT方式。

nat outbound [ ipv4-acl-number | name ipv4-acl-name ] [ address-group group-id ] [ vpn-instance vpn-instance-name ] [ port-preserved ]

一个接口下可配置多个出方向的动态地址转换。

参数

功能

address-group

不指定该参数时,则直接使用该接口的IP地址作为转换后的地址,即实现Easy IP功能

no-pat reversible

在指定该参数,并且已经存在NO-PAT表项的情况下,对于经过该接口收到的外网访问内网的首报文,将其目的IP地址与NO-PAT表项进行匹配,并将目的IP地址转换为匹配的NO-PAT表项中记录的内网地址

1.2.4 配置内部服务器

内部服务器通常配置在外网侧接口上。通过在NAT设备上配置内部服务器,建立一个或多个内网服务器内网地址和端口与外网地址和端口的映射关系,使外部网络用户能够通过配置的外网地址和端口来访问内网服务器。内部服务器可以位于一个普通的内网内,也可以位于一个VPN实例内。

内部服务器可以通过如下配置方式实现。

· 普通内部服务器:将内网服务器的地址和端口映射为外网地址和端口,允许外部网络中的主机通过配置的外网地址和端口访问位于内网的服务器。

· 负载分担内部服务器:在配置内部服务器时,将内部服务器的内网信息指定为一个内部服务器组,组内的多台主机可以共同对外提供某种服务。外网用户向内部服务器指定的外网地址发起应用请求时,NAT设备可根据内网服务器的权重和当前连接数,选择其中一台内网服务器作为目的服务器,实现内网服务器负载分担。

· 基于ACL的内部服务器:普通内部服务器方式必须指定公网地址,基于ACL内部服务器不用指定具体的公网地址,而是指定公网地址的集合,即通过ACL规则匹配过滤的一部分公网地址。对于符合ACL规则的报文,它的目的地址统一转换成相同的内部服务器地址和端口,它是普通内部服务器的扩展。

1. 配置接口上的普通内部服务器

· 进入系统视图。

system-view

· 进入接口视图。

interface interface-type interface-number

· 配置普通内部服务器。请至少选择其中一项进行配置。

¡ 外网地址单一,未使用外网端口或外网端口单一。

nat server [ protocol pro-type ] global { global-address | current-interface | interface interface-type interface-number } [ global-port ] [ vpn-instance global-vpn-instance-name ] inside local-address [ local-port ] [ vpn-instance local-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } ] [ reversible ]

¡ 外网地址单一,外网端口连续。

nat server protocol pro-type global { global-address | current-interface | interface interface-type interface-number } global-port1 global-port2 [ vpn-instance global-vpn-instance-name ] inside { { local-address | local-address1 local-address2 } local-port | local-address local-port1 local-port2 } [ vpn-instance local-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } ]

¡ 外网地址连续,未使用外网端口。

nat server protocol pro-type global global-address1 global-address2 [ vpn-instance global-vpn-instance-name ] inside { local-address | local-address1 local-address2 } [ local-port ] [ vpn-instance local-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } ]

¡ 外网地址连续,外网端口单一。

nat server protocol pro-type global global-address1 global-address2 global-port [ vpn-instance global-vpn-instance-name ] inside { local-address [ local-port1 local-port2 ] | [ local-address | local-address1 local-address2 ] [ local-port ] } [ vpn-instance local-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } ]

一个接口下可以配置多个普通内部服务器。

2. 配置接口上的负载分担内部服务器

· 进入系统视图。

system-view

· 创建内部服务器组,并进入服务器组视图。

nat server-group group-id

· 添加内部服务器组成员。

inside ip inside-ip port port-number [ weight weight-value ]

一个内部服务器组内可以添加多个组成员。

· 退回系统视图。

quit

· 进入接口视图。

interface interface-type interface-number

· 配置负载分担内部服务器。

nat server protocol pro-type global { { global-address | current-interface | interface interface-type interface-number } { global-port | global-port1 global-port2 } | global-address1 global-address2 global-port } [ vpn-instance global-vpn-instance-name ] inside server-group group-id [ vpn-instance local-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } ]

一个接口下可以配置多个负载分担内部服务器。

3. 配置接口上的基于ACL的内部服务器

· 进入系统视图。

system-view

· 进入接口视图。

interface interface-type interface-number

· 配置基于ACL的内部服务器。

nat server global { ipv4-acl-number | name ipv4-acl-name } inside local-address [ local-port ] [ vpn-instance local-vpn-instance-name ]

一个接口下可以配置多个基于ACL的内部服务器。

1.2.5 配置NAT端口块地址转换

NAT端口块地址转换是出方向地址转换,通常配置在外网侧接口上。例如,在NAT444场景中,通过在NAT444网关设备上配置NAT端口块地址转换,可以实现基于端口块的公网IP地址复用,使一个私网IP地址在一个时间段内独占一个公网IP地址的某个端口块。

1. 配置接口上的NAT端口块静态映射

· 进入系统视图。

system-view

· 创建NAT端口块组,并进入NAT端口块组视图。

nat port-block-group group-id

· 添加私网地址成员。

local-ip-address start-address end-address

一个端口块组内,可以配置多个私网地址成员,但各私网地址成员之间的IP地址不能重叠。

· 添加公网地址成员。

global-ip-pool start-address end-address

一个端口块组内,可以配置多个公网地址成员,但各公网地址成员之间的IP地址不能重叠。

· 配置公网地址的端口范围。

port-range start-port-number end-port-number

缺省情况下,公网地址的端口范围为1~65535。

· 配置端口块大小。

block-size block-size

缺省情况下,端口块大小为256。

· (可选)限制分配给协议的端口数量。

port-limit { icmp | tcp | total | udp } number

缺省情况下,不对分配给协议的端口数量做限制。

· 退回系统视图。

quit

· 进入接口视图。

interface interface-type interface-number

· 配置NAT端口块静态映射。

nat outbound port-block-group group-id

缺省情况下,不存在NAT端口块静态映射配置。

一个接口下可配置多条基于不同端口块组的NAT端口块静态映射。

· (可选)请依次执行以下命令配置PAT方式出方向动态地址转换的模式为Endpoint-Independent Mapping。

quit

nat mapping-behavior endpoint-independent [ acl { ipv4-acl-number | name ipv4-acl-name } ]

缺省情况下,PAT方式出方向动态地址转换的模式为Connection-Dependent Mapping。

2. 配置接口上的NAT端口块动态映射

· 进入系统视图。

system-view

· (可选)配置PAT方式地址转换的模式为Endpoint-Independent Mapping。

nat mapping-behavior endpoint-independent { tcp [ tcp-5-tuple ] | udp [ udp-5-tuple ] } *

缺省情况下,PAT方式地址转换的模式为Connection-Dependent Mapping。

· 创建NAT地址组,并进入NAT地址组视图。

nat address-group group-id

· 添加地址成员。

address start-address end-address

可通过多次执行本命令添加多个地址成员,但是地址成员的地址不能重叠。

· (可选)配置端口范围。

port-range start-port-number end-port-number

缺省情况下,端口范围为1~65535。

该配置仅对PAT方式地址转换生效。

· (可选)限制分配给协议的端口数量。

port-limit { icmp | tcp | total | udp } number

缺省情况下,不对分配给协议的端口数量做限制。

· 配置端口块参数。

port-block block-size block-size [ extended-block-number extended-block-number [ extended-block-size extended-block-size] ] ]

缺省情况下,未配置NAT地址组的端口块参数。

该配置仅对PAT方式地址转换生效。

· 退回系统视图。

quit

· 进入接口视图。

interface interface-type interface-number

· 配置PAT方式出方向动态地址转换。

nat outbound [ ipv4-acl-number | name ipv4-acl-name ] [ address-group group-id ] [ vpn-instance vpn-instance-name ] [ port-preserved ]

port-preserved参数对NAT端口块动态映射无效。

1.2.6 配置处理NAT的业务板

如果需要使用具有NAT能力的业务板进行NAT处理,则必须在配置了NAT业务的接口上指定该业务板,才能使通过该接口进行NAT转换的报文重定向到业务板上进行处理。在NAT业务板上进行业务处理,可以提高了NAT业务处理的性能。

· 目前除CSPC-CP2LB单板外,其他业务板都可以提供NAT处理。

· 当前业务板NAT规格限制:单卡支持200万条NAT,整机NAT规格为3200万条。

· 指定处理NAT业务的slot后,将无法配置nat instance命令,反之亦然。

具体步骤如下:

· 进入系统视图。

system-view

· 进入接口视图。

interface interface-type interface-number

· 指定处理NAT的业务板。

(独立运行模式)

nat service slot slot-number

(IRF模式)

nat service chassis chassis-number slot slot-number

缺省情况下,未指定处理NAT的业务板。

· 配置QoS策略

a) 创建QoS策略,定义匹配NAT业务流的类,以及重定向到处理NAT的业务板。

b) 将类和流行为绑定。

c) 在设备的入接口上应用QoS策略。

1.2.7 配置NAT DNS mapping功能

DNS mapping功能需要和内部服务器配合使用,由nat server配置定义内部服务器对外提供服务的外网IP地址和端口号,由DNS mapping建立“内部服务器域名<-->外网IP地址+外网端口号+协议类型”的映射关系。

具体步骤如下:

· 进入系统视图。

system-view

· 配置一条域名到内部服务器的映射。

nat dns-map domain domain-name protocol pro-type { interface interface-type interface-number | ip global-ip } port global-port

可配置多条域名到内部服务器的映射。

1.2.8 配置NAT hairpin功能

NAT hairpin功能需要与内部服务器(nat server)、出方向动态地址转换(nat outbound)或出方向静态地址转换(nat static outbound)配合工作,且这些配置所在的接口必须在同一个接口板,否则NAT hairpin功能无法正常工作。

具体步骤如下:

· 进入系统视图。

system-view

· 进入接口视图。

interface interface-type interface-number

· 开启NAT hairpin功能。

nat hairpin enable

缺省情况下,NAT hairpin功能处于关闭状态。

1.2.9 配置NAT ALG

通过开启指定应用协议类型的ALG功能,实现对应用层报文数据载荷字段的分析和NAT处理。

具体步骤如下:

· 进入系统视图。

system-view

· 开启指定或所有协议类型的NAT ALG功能。

nat alg { all | dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }

缺省情况下,FTP协议、ICMP差错控制报文和RTSP协议的NAT ALG功能处于开启状态,其他协议类型的NAT ALG功能处于关闭状态。

1.2.10 配置NAT日志和告警功能

1. 配置NAT会话日志功能

NAT会话日志是为了满足网络管理员安全审计的需要,对NAT会话(报文经过设备时,源或目的信息被NAT进行过转换的连接)信息进行的记录,包括IP地址及端口的转换信息、用户的访问信息以及用户的网络流量信息。

有三种情况可以触发设备生成NAT会话日志:

· 新建NAT会话。

· 删除NAT会话。新增高优先级的配置、删除配置、报文匹配规则变更、NAT会话老化以及执行删除NAT会话的命令时,都可能导致NAT会话被删除。

· 存在NAT活跃流。NAT活跃流是指在一定时间内存在的NAT会话。当设置的生成活跃流日志的时间间隔到达时,当前存在的NAT会话信息就被记录并生成日志。

具体步骤如下:

· 进入系统视图。

system-view

· 开启NAT日志功能。

nat log enable [ acl { ipv4-acl-number | name ipv4-acl-name } ]

缺省情况下,NAT日志功能处于关闭状态。

· 开启NAT相关日志功能。请至少选择其中一项进行配置。

¡ 开启NAT新建会话的日志功能。

nat log flow-begin

¡ 开启NAT删除会话的日志功能。

nat log flow-end

¡ 开启NAT活跃流的日志功能,并设置生成活跃流日志的时间间隔。

nat log flow-active time-value

缺省情况下,创建、删除NAT会话或存在NAT活跃流时,均不生成NAT日志。

2. 配置NAT444用户日志功能

在NAT444场景中,为了满足运营商对互联网用户的溯源需要,对每个用户的私网IP地址进行端口块分配或回收时,都会输出一条基于用户的日志,记录私网IP地址和端口块的映射关系。在进行用户溯源时,只需根据报文的公网IP地址和端口找到对应的端口块分配日志信息,即可确定私网IP地址。

有两种情况可以触发设备输出NAT444用户日志:

· 端口块分配:端口块静态映射方式下,在某私网IP地址的第一个新建连接通过端口块进行地址转换时输出日志;端口块动态映射方式下,在为某私网IP地址分配端口块或增量端口块时输出日志。

· 端口块回收:端口块静态映射方式下,在某私网IP地址的最后一个连接拆除时输出日志;端口块动态映射方式下,在释放端口块资源(并删除端口块表项)时输出日志。

具体步骤如下:

· 进入系统视图。

system-view

· 开启NAT日志功能。

nat log enable [ acl { ipv4-acl-number | name ipv4-acl-name } ]

缺省情况下,NAT日志功能处于关闭状态。

ACL参数对NAT444用户日志功能无效。

· 开启端口块用户日志功能。请至少选择其中一项进行配置。

¡ 开启端口块分配的NAT444用户日志功能。

nat log port-block-assign

¡ 开启端口块回收的NAT444用户日志功能。

nat log port-block-withdraw

缺省情况下,分配和回收端口块时,均不输出NAT444用户日志。

3. 开启NAT告警功能

开启NAT告警功能后,当资源使用率超过设定的阈值时,系统会生成告警信息。

生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关特性。关于告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

具体步骤如下:

· 进入系统视图。

system-view

· 开启NAT的告警功能。

snmp-agent trap enable nat [ address-group-usage | bandwidth-usage | ip-pool-usage ]

缺省情况下,NAT的告警功能处于开启状态。

新华三官网
联系我们