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

06-NAT配置指导

目录

01-NAT配置

本章节下载 01-NAT配置  (420.27 KB)

01-NAT配置


1 NAT概述

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

1.1  NAT基本概念

NAT基本概念如下:

·     NAT设备:配置了NAT功能的连接内部网络和外部网络的边缘设备。

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

·     NAT规则:用于进行地址转换的NAT配置称为NAT规则。NAT规则的位置决定了匹配的优先级,位置越靠前的NAT规则,其匹配优先级越高。

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

·     NAT表项:NAT设备上用于记录网络地址转换映射关系的表项。关于NAT表项的详细介绍请参见“1.6  NAT表项”。

·     Easy IP功能:NAT转换时直接使用设备上接口的IP地址作为NAT地址。设备上接口的地址可静态指定或通过DHCP或PPPoE等协议动态获取。

1.2  NAT工作机制

当内部网络访问外部网络的报文经过NAT设备时,NAT设备会用一个合法的公网地址替换原报文中的源IP地址,并对这种转换进行记录;之后,当报文从外网侧返回时,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.3  NAT应用

1.3.1  传统NAT

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

1.3.2  两次NAT

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

1.3.3  双向NAT

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

1.3.4  NAT hairpin

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

·     P2P:位于内网侧的用户之间通过动态分配的NAT地址互访。内网各主机首先向外网服务器注册自己的外网地址信息,该地址信息为外网侧出方向地址转换的NAT地址,然后内网主机之间通过使用彼此向外网服务器注册的外网地址进行互访。

·     C/S:位于内网侧的用户使用NAT地址访问内网服务器。NAT在内网接口上同时转换访问内网服务器的报文的源和目的IP地址,其中,目的IP地址转换通过匹配某外网接口上的内部服务器配置来完成,源地址转换通过匹配内部服务器所在接口上的出方向动态地址转换或出方向静态地址转换来完成。

1.3.5  NAT DNS mapping

一般情况下,DNS(Domain Name System,域名系统)服务器和访问私网服务器的用户都在公网,通过在NAT设备的公网接口上配置内部服务器,可以将公网地址、端口等信息映射到私网内的服务器上,使得公网用户可以通过内部服务器的域名或公网地址来访问内部服务器。但是,如图1-2所示,如果DNS服务器在公网,私网用户希望通过域名来访问私网的Web服务器,则会由于DNS服务器向私网用户发送的响应报文中包含的是私网服务器的公网地址,而导致收到响应报文的私网用户无法利用域名访问私网服务器。通过在设备上配置DNS mapping可以解决该问题。

图1-2 NAT DNS mapping工作示意图

 

NAT DNS mapping功能是指,通过配置“域名+公网IP地址+公网端口号+协议类型”的映射表,建立内部服务器域名与内部服务器公网信息的对应关系。在配置了NAT的接口上,设备检查接收到的DNS响应报文,根据报文中的域名查找用户配置的DNS mapping映射表,并根据表项内的“公网地址+公网端口+协议类型”信息查找内部服务器地址映射表中该信息对应的私网地址,替换DNS查询结果中的公网地址。这样,私网用户收到的DNS响应报文中就包含了要访问的内部服务器的私网地址,也就能够使用内部服务器域名访问同一私网内的内部服务器。

1.4  NAT转换控制

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

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

1.5  NAT转换方式

1.5.1  静态方式

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

1.5.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-3 PAT基本原理示意图

 

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

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

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

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

·     Address and Port-Dependent Mapping(关心对端地址和端口转换模式):对于来自相同源地址和源端口号的报文,相同的源地址和源端口号并不要求被转换为相同的外部地址和端口号,若其目的地址或目的端口号不同,通过PAT映射后,相同的源地址和源端口号通常会被转换成不同的外部地址和端口号。与Endpoint-Independent Mapping模式不同的是,NAT设备只允许这些目的地址对应的外部网络的主机可以通过该转换后的地址和端口来访问这些内部网络的主机。这种模式安全性好,但由于同一个内网主机地址转换后的外部地址不唯一,因此不便于位于不同NAT网关之后的主机使用内网主机转换后的地址进行互访。

1.5.3  内部服务器

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

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

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

 

 

1.5.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之内的一个端口。

端口块方式包括静态映射和动态映射两种。

(1)     端口块静态映射

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

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

(2)     端口块动态映射

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

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

1.6  NAT表项

1.6.1  NAT会话表项

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

当该连接的后续报文经过NAT设备时,将与NAT会话表项进行匹配,NAT设备从匹配到的会话表项中得到首报文的转换方式,并根据首报文的转换方式对后续报文进行处理。后续报文方向与首报文相同时,源和目的的转换方式与首报文相同;方向相反时,转换方式与首报文相反。即,如果首报文转换了源地址,则后续报文需要转换目的地址;如果首报文转换了目的地址,则后续报文需要转换源地址。

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

1.6.2  EIM表项

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

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

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

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

1.6.3  NO-PAT表项

在NO-PAT方式进行源地址的动态转换过程中,NAT设备首先创建一个NAT会话表项,然后建立一个NO-PAT表项用于记录该转换关系(内网地址<-->NAT地址)。

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

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

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

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

1.6.4  端口块表项

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

1.7  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.8  NAT支持ALG

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

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


2 配置SNAT/DNAT

2.1  SNAT/DNAT简介

SNAT/DNAT是全局NAT的一种实现方式,适用于出接口不固定的场景,当出接口发生变化时,用户无需更改相关配置,降低了维护成本。

SNAT(Source Network Address Translation,源地址转换)指的是对报文中的源地址进行转换,适用于内部主机主动访问外部网络中的主机或服务的场景,SNAT将私网IP转换成公网IP,使得私网用户可以使用转换后的公网IP访问Internet。

DNAT(Destination Network Address Translation,目的地址转换)指的是对报文中的目的地址进行转换,适用于内网服务器对外部网络用户提供服务的场景,例如内网服务器对外提供Web服务,或是FTP服务。DNAT对公网侧主机访问私网侧服务器的报文进行目的IP转换,使得公网侧主机可以使用私网侧服务器对外提供服务的公网IP访问相应的服务。

2.2  SNAT配置任务简介

(1)     创建SNAT规则

(2)     配置SNAT规则中源地址转换方式

(3)     配置SNAT规则的过滤条件

(4)     (可选)修改SNAT规则的优先级顺序

(5)     (可选)重命名SNAT规则

(6)     (可选)配置NAT日志功能

¡     配置NAT会话日志功能

¡     配置NAT用户日志功能

¡     开启NAT端口块分配失败的日志功能

¡     开启NAT端口分配失败的日志功能

¡     配置NAT阈值信息日志功能

2.3  DNAT配置任务简介

(1)     创建DNAT规则

(2)     配置DNAT规则中目的地址转换方式

(3)     配置DNAT规则的过滤条件

(4)     (可选)修改DNAT规则的优先级顺序

(5)     (可选)重命名DNAT规则的名称

(6)     (可选)显示和维护

¡     配置NAT会话日志功能

¡     配置NAT用户日志功能

¡     开启NAT端口块分配失败的日志功能

¡     开启NAT端口分配失败的日志功能

¡     配置NAT阈值信息日志功能

2.4  配置SNAT规则

2.4.1  功能简介

SNAT转换方式分为如下三种:

·     Static:静态地址转换方式,该方式仅转换IP地址,不转换端口。静态地址转换方式的私网地址和公网地址的映射关系由配置确定。适用于公网IP地址数量充足、仅有少量私网用户访问Internet的场景。

·     Dynamic-IP:动态地址转换方式,该方式仅转换IP地址,不转换端口,即转换后的端口号保持不变。适用于对私密性要求较高的业务场景。例如,金融行业客户要求隐藏内部地址,但是某些应用对端口号有固定要求,因此经过NAT转换后的端口号不能发生变化。

·     Dynamic-Port:动态地址和端口转换方式,同时转换源IP地址和源端口号。动态地址和端口转换方式属于多对一的地址转换,它通过使用“IP地址+端口号”的形式进行转换,使多个私网用户可共用一个公网IP地址访问外网,实现了地址的复用,因此是地址转换实现的主要形式。

¡     基于单个端口的动态地址和端口转换方式:NAT设备为用户分配公网IP地址和端口号,一个私网IP地址在一个时间段内独占一个公网IP地址和一个端口号。设备不支持EIM(Endpoint-Independent Mapping,不关心对端地址和端口转换模式)的话,不便于用户溯源。

¡     基于端口块的动态地址和端口转换方式:NAT设备为用户分配公网IP地址的同时,会为该用户分配一个端口块,一个私网IP地址在一个时间段内独占一个公网IP地址的某个端口块。该种方式便于用户溯源,广泛应用在运营商环境中。

SNAT公网资源包括转换后的公网IP地址和端口,其来源如表2-1所示:

表2-1 SNAT公网资源的来源

SNAT转换方式

公网资源的来源

静态地址转换方式

action snat object-group object-group-name static命令引用的IPv4地址对象组

动态地址转换方式

action snat object-group object-group-name dynamic命令引用的IPv4地址对象组

基于单个端口的动态地址和端口转换方式

action snat object-group object-group-name dynamic-port port-range start-port-number end-port-number [ port-preserved ]命令引用的IPv4地址对象组,以及该命令指定的端口资源

基于端口块的动态地址和端口转换方式

action snat object-group object-group-name dynamic-port port-range start-port-number end-port-number port-block-size block-size [ extended-block-number extended-block-number ]命令引用的IPv4地址对象组,以及该命令指定的端口块资源

基于单个端口的动态地址和端口转换方式

action snat egress-if-ip dynamic-port [ port-preserved ]命令使用报文出接口的地址作为转换后的地址

 

SNAT功能通过SNAT规则实现,一条有效的SNAT规则中必须包括源地址过滤条件、目的地址过滤条件和转换方式,使用display snat-rule命令可以查看SNAT规则的生效状态。

SNAT规则中过滤条件的作用以及必配/选配说明如表2-2所示。同一SNAT规则中添加了多个过滤条件时,SNAT规则仅对匹配所有过滤条件的报文进行地址转换,同一类型的过滤规则,与其中一个规则匹配即为通过匹配。

表2-2 SNAT规则中过滤条件的必配/选配说明

过滤条件

作用

必配/选配

source-ip

过滤报文的源IP地址

必配

destination-ip

过滤报文的目的IP地址

必配

service

过滤报文的传输层协议、源/目的端口号

选配

ingress-interface

过滤报文的入接口。源地址转换场景下,仅对NAT设备上ingress-interface命令指定的接口接收到的、且通过其余过滤条件的报文进行地址转换

选配

egress-interface

过滤报文的出接口。源地址转换场景下,仅对出接口为NAT设备上egress-interface命令指定的接口、且通过其余过滤条件的报文进行地址转换

选配

 

2.4.2  配置限制和指导

SNAT规则的优先级由配置顺序决定,先配置的优先级高。即配置了多个SNAT规则时,NAT设备先使用优先级最高的SNAT规则尝试对报文进行地址转换。当报文匹配该SNAT规则中所有过滤条件时,NAT设备使用该SNAT规则中的转换方式进行地址转换。如果报文未能通过该SNAT规则中所有过滤条件的过滤,则NAT设备使用优先级次高的SNAT规则尝试进行地址转换。以此类推,如果报文无法通过优先级最低的SNAT规则中所有过滤条件的过滤,则NAT设备不会对报文进行地址转换。

2.4.3  创建SNAT规则

(1)     进入系统视图。

system-view

(2)     创建SNAT规则,并进入SNAT规则视图。

snat-rule name rule-name [ id rule-id ]

2.4.4  配置SNAT规则中源地址转换方式

1. 功能简介

内网中的用户访问外部网络中的主机或服务时,需要将报文中的私网IP地址转换为公网地址。本功能用于指导NAT设备对通过过滤条件的报文进行地址转换。

不同使用场景的配置方式和过滤条件需要满足的要求不同,具体如表2-3所示。

表2-3 不同使用场景的配置方式和过滤条件需要满足的要求

使用场景

action命令的配置方式

源地址过滤条件需要满足的要求

目的地址过滤条件需要满足的要求

允许内部用户使用报文出接口的主IP地址访问外部网络中的主机或服务

action snat egress-if-ip dynamic-port [ port-preserved ]

内部网络与外部网络之间存在固定访问需求

action snat object-group object-group-name static

所有source-ip过滤条件中包含的IP地址的数量必须和action命令中object-group定义的IP地址数量相同

内部网络有大量用户需要访问外部网络

action snat object-group object-group-name dynamic

内部网络有大量用户需要访问外部网络,且需要支持用户溯源

action snat object-group object-group-name dynamic-port [ port-range start-port-number end-port-number ] port-block-size block-size [ extended-block-number extended-block-number ]

内部网络有大量用户需要访问外部网络,且尽量使用原始端口号

action snat object-group object-group-name dynamic-port [ port-range start-port-number end-port-number ] port-preserved

创建了数量较多的NAT规则后,希望对其中小范围的某些报文不进行源地址转换

action no-nat

 

2. 配置准备

内外网处于不同VPN的场景下,需要配置跨VPN路由保证内网到外网的路由可达。

3. 配置限制和指导

设定端口块大小时,需要根据私网IP地址个数,以及公网IP地址个数及其端口范围,确定一个合理的端口块大小值。端口块大小值不能超过公网地址的端口范围值。

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SNAT规则视图。

snat-rule name rule-name [ id rule-id ]

(3)     配置SNAT规则中源地址转换方式。

action { no-nat | snat { egress-if-ip dynamic-port [ port-preserved ] | object-group object-group-name { dynamic | dynamic-port [ port-range start-port-number end-port-number ] [ [ port-block-size block-size [ extended-block-number extended-block-number ] ] | port-preserved ] | static } } }

多次执行本命令,最后一次执行的命令生效。

2.4.5  配置SNAT规则的过滤条件

1. 功能简介

过滤条件用于帮助SNAT规则筛选报文,SNAT规则仅对匹配过滤条件的报文进行地址转换。一条有效的SNAT规则中必须包括源地址过滤条件、目的地址过滤条件和转换方式,使用display snat-rule命令可以查看的SNAT规则的生效状态。

SNAT规则中过滤条件的作用以及必配/选配说明分别如表2-4所示。

添加了多个过滤条件时,SNAT规则仅对匹配所有过滤条件的报文进行地址转换,同一类型的过滤规则,与其中一个规则匹配即为通过匹配。

表2-4 SNAT规则中过滤条件的必配/选配说明

过滤条件

作用

必配/选配

source-ip

过滤报文的源IP地址

必配

destination-ip

过滤报文的目的IP地址

必配

service

过滤报文的传输层协议、源/目的端口号

选配

ingress-interface

过滤报文的入接口。源地址转换场景下,仅对NAT设备上ingress-interface命令指定的接口接收到的、且通过其余过滤条件的报文进行地址转换

选配

egress-interface

过滤报文的出接口。源地址转换场景下,仅对出接口为NAT设备上egress-interface命令指定的接口、且通过其余过滤条件的报文进行地址转换

选配

 

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SNAT规则视图。

snat-rule name rule-name [ id rule-id ]

(3)     配置SNAT规则中用于匹配报文源IP地址的过滤条件。

source-ip object-group-name

(4)     配置SNAT规则中用于匹配报文目的IP地址的过滤条件。

destination-ip object-group-name

(5)     (可选)配置SNAT规则中用于匹配报文传输层协议和端口号的过滤条件。

service object-group-name

(6)     (可选)配置SNAT规则中用于匹配报文入接口的过滤条件。

ingress-interface interface-type interface-number

(7)     (可选)配置SNAT规则中用于匹配报文出接口的过滤条件。

egress-interface interface-type interface-number

2.4.6  修改SNAT规则的优先级顺序

1. 功能简介

配置了多条SNAT规则时,如果希望提升命中次数较多的SNAT规则的优先级,则可以通过counting enable命令开启SNAT规则的命中统计功能,然后通过display snat-rule命令查看各个SNAT规则的命中统计计数,再通过本功能提升命中次数较多的SNAT规则的优先级。从而减少匹配次数,提升地址转换效率。

2. 配置限制和指导

通过本命令调整SNAT规则的优先级顺序时,需要注意:

·     通过本命令只能调整已经存在的SNAT规则的优先级顺序。

·     待移动规则与目的移动规则不能为同一个规则。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     修改SNAT规则的优先级顺序。

snat-rule move { id rule1-id | name rule1-name } { { after | before } { id rule2-id | name rule2-name } | bottom | top }

缺省情况下,先配置的SNAT规则的优先级高于后配置的SNAT规则的优先级。

2.4.7  重命名SNAT规则

1. 功能简介

SNAT规则的名称能够帮助用户区分多个不同的SNAT规则,如果已有SNAT规则的名称不便于管理和记忆,可以通过本命令重命名SNAT规则的名称。

重命名SNAT规则的名称不会影响业务。

2. 配置限制和指导

通过本功能只能对已经存在的SNAT规则进行重命名。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     重命名SNAT规则。

snat-rule rename { id rule-id | name old-name } new-name

2.5  配置DNAT规则

2.5.1  功能简介

DNAT转换方式分为如下三种:

·     IP:一对一目的地址转换方式,该方式仅转换IP地址,不转换端口。

·     IP-port:一对一目的地址和端口转换方式,该方式同时转换IP地址和端口。适用于私网侧服务器通过不同的公网地址提供不同服务的场景。

DNAT功能通过DNAT规则实现,一条有效的DNAT规则中必须包括源地址过滤条件、目的地址过滤条件和转换方式,使用display dnat-rule命令可以查看DNAT规则的生效状态。

DNAT规则中过滤条件的作用以及必配/选配说明如表2-5所示。同一DNAT规则中添加了多个过滤条件时,DNAT规则仅对匹配所有过滤条件的报文进行地址转换,同一类型的过滤规则,与其中一个规则匹配即为通过匹配。

表2-5 DNAT规则中过滤条件的必配/选配说明

过滤条件

作用

必配/选配

source-ip

过滤报文的源IP地址

必配

destination-ip

过滤报文的目的IP地址

必配

service

过滤报文的传输层协议、源/目的端口号

选配

ingress-interface

过滤报文的入接口。目的地址转换场景下,仅对NAT设备上ingress-interface命令指定的接口接收到的、且通过其余过滤条件的报文进行地址转换

选配

egress-interface

过滤报文的出接口

DNAT规则下不允许配置egress-interface

 

2.5.2  配置限制和指导

DNAT规则的优先级由配置顺序决定,先配置的优先级高。即配置了多个DNAT规则时,NAT设备先使用优先级最高的DNAT规则尝试对报文进行地址转换。当报文匹配该DNAT规则中所有过滤条件时,NAT设备使用该DNAT规则中的转换方式进行地址转换。如果报文未能通过该DNAT规则中所有过滤条件的过滤,则NAT设备使用优先级次高的DNAT规则尝试进行地址转换。以此类推,如果报文无法通过优先级最低的DNAT规则中所有过滤条件的过滤,则NAT设备不会对报文进行地址转换。

2.5.3  创建DNAT规则

(1)     进入系统视图。

system-view

(2)     创建DNAT规则,并进入DNAT规则视图。

dnat-rule name rule-name [ id rule-id ]

2.5.4  配置DNAT规则中目的地址转换方式

1. 功能简介

内网中的服务器对外部网络提供服务时(例如FTP、Web等),NAT设备允许外网用户通过指定的NAT地址和端口访问这些内部服务器,配置本功能后,对于通过过滤条件的报文,它的目的地址和端口将被转换成内部服务器内网IP地址和端口。

对于不同的使用场景,action命令的配置方式、目的地址过滤条件以及源地址过滤条件需要满足的要求不同,具体如表2-6所示。

表2-6 不同使用场景的配置方式和过滤条件需要满足的要求

使用场景

action命令的配置方式

目的地址过滤条件需要满足的要求

service类型过滤条件需要满足的要求

源地址过滤条件需要满足的要求

允许外部用户通过一个外网地址访问内部服务器

action dnat object-group object-group-name

无,此时为私网到公网地址的静态多对一转换

允许外部用户通过多个不同的外网地址访问内部服务器

action dnat object-group object-group-name

所有destination-ip过滤条件中包含的IP地址的数量必须和action命令中object-group定义的IP地址数量相同。即私网地址和公网地址进行一对一转换

允许外部用户通过一个外网地址、一个固定的端口号访问内部服务器

action dnat object-group object-group-name port local-port

无,此时为私网到公网地址端口的静态多对一转换

允许外部用户通过一个或多个不同的外网地址、一个固定的端口号访问内部服务器

action dnat object-group object-group-name port local-port

所有destination-ip过滤条件中包含的IP地址的数量=action命令中的包含的IP地址数量×1

当前规则下必须存在destination port配置

允许外部用户通过一个或多个不同的外网地址、多个不同的端口号访问内部服务器

action dnat object-group object-group-name port local-port1 local-port2

所有destination-ip过滤条件中包含的IP地址的数量=action命令中包含的IP地址数量×action命令中的端口数量

当前规则下必须存在destination port配置

创建了数量较多的NAT规则后,希望对其中小范围的某些报文不进行目的地址转换

action no-nat

 

2. 配置准备

内外网处于不同VPN的场景下,需要配置跨VPN路由保证外网到内网的路由可达。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNAT规则视图。

dnat-rule name rule-name [ id rule-id ]

(3)     配置DNAT规则中目的地址的转换方式。

action { dnat object-group object-group-name [ port { local-port1 local-port2 | local-port } ] | no-nat }

缺省情况下,未配置DNAT规则中目的地址的转换方式。

2.5.5  配置DNAT规则的过滤条件

1. 功能简介

过滤条件用于帮助DNAT规则筛选报文,DNAT规则仅对匹配过滤条件的报文进行地址转换。一条有效的DNAT规则中必须包括源地址过滤条件、目的地址过滤条件和转换方式,使用display dnat-rule命令可以查看的DNAT规则的生效状态。

DNAT规则中过滤条件的作用以及必配/选配说明分别如表2-7所示。

添加了多个过滤条件时,DNAT规则仅对匹配所有过滤条件的报文进行地址转换,同一类型的过滤规则,与其中一个规则匹配即为通过匹配。

表2-7 DNAT规则中过滤条件的必配/选配说明

过滤条件

作用

必配/选配

source-ip

过滤报文的源IP地址

必配

destination-ip

过滤报文的目的IP地址

必配

service

过滤报文的传输层协议、源/目的端口号

选配

ingress-interface

过滤报文的入接口。目的地址转换场景下,仅对NAT设备上ingress-interface命令指定的接口接收到的、且通过其余过滤条件的报文进行地址转换

选配

 

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入DNAT规则视图。

dnat-rule name rule-name [ id rule-id ]

(3)     配置DNAT规则中用于匹配报文源IP地址的过滤条件。

source-ip object-group-name

(4)     配置DNAT规则中用于匹配报文目的IP地址的过滤条件。

destination-ip object-group-name

(5)     (可选)配置DNAT规则中用于匹配报文传输层协议和端口号的过滤条件。

service object-group-name

(6)     (可选)配置DNAT规则中用于匹配报文入接口的过滤条件。

ingress-interface interface-type interface-number

2.5.6  修改DNAT规则的优先级顺序

1. 功能简介

配置了多条DNAT规则时,如果希望提升命中次数较多的DNAT规则的优先级,则可以通过counting enable命令开启DNAT规则的命中统计功能,然后通过display dnat-rule命令查看各个DNAT规则的命中统计计数,再通过dnat-rule move命令提升命中次数较多的DNAT规则的优先级。从而减少匹配次数,提升地址转换效率。

2. 配置限制和指导

通过本功能调整DNAT规则的优先级顺序时,需要注意:

·     通过本命令只能调整已经存在的DNAT规则的优先级顺序。

·     待移动DNAT规则与目的DNAT规则不能为同一个规则。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     修改DNAT规则的优先级顺序。

dnat-rule move { id rule1-id | name rule1-name } { { after | before } { id rule2-id | name rule2-name } | bottom | top }

2.5.7  重命名DNAT规则的名称

1. 功能简介

DNAT规则的名称能够帮助用户区分多个不同的DNAT规则,如果已有DNAT规则的名称不便于管理和记忆,可以通过本命令重命名DNAT规则的名称。

重命名DNAT规则的名称不会影响业务。

2. 配置限制和指导

通过本功能只能对已经存在的DNAT规则进行重命名。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     修改DNAT规则的优先级顺序。

dnat-rule rename { id rule-id | name old-name } new-name

2.6  配置NAT日志功能

2.6.1  配置NAT会话日志功能

1. 功能简介

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

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

·     新建NAT会话。

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启NAT日志功能。

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

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

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

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

nat log flow-begin

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

nat log flow-end

缺省情况下,创建或删除NAT会话时,均不生成NAT日志。

2.6.2  配置NAT用户日志功能

1. 功能简介

开启NAT用户日志功能后,设备对每个用户的私网IP地址进行端口块分配或回收时,都会输出一条基于用户的日志,记录私网IP地址和端口块的映射关系。在进行用户溯源时,只需根据报文的公网IP地址和端口找到对应的端口块分配日志信息,即可确定私网IP地址。

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

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

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

2. 配置准备

在配置NAT用户日志功能前,必须先配置将用户定制日志发送到日志主机的功能,否则无法产生NAT用户日志。详细配置请参见“设备管理配置指导”中的“快速日志输出”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启NAT日志功能。

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

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

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

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

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

nat log port-block-assign

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

nat log port-block-withdraw

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

2.6.3  开启NAT端口块分配失败的日志功能

1. 功能简介

当NAT端口块地址转换发生端口块分配失败的情况时,通过开启本功能,系统会输出端口块分配失败的日志。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启NAT日志功能。

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

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

(3)     开启NAT端口块分配失败的日志功能。

nat log port-block-alloc-fail

缺省情况下,NAT端口块分配失败的日志功能处于关闭状态。

2.6.4  开启NAT端口分配失败的日志功能

1. 功能简介

当动态方式的NAT地址转换发生端口分配失败的情况时,通过开启本功能,系统会输出端口分配失败的日志。通常,端口块中所有的端口资源都被占用时会导致端口分配失败。

2. 配置准备

在开启本功能前,必须先配置将用户定制日志发送到日志主机的功能,否则无法产生NAT端口分配失败的日志。详细配置请参见“设备管理配置指导”中的“快速日志输出”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启NAT日志功能。

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

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

(3)     开启NAT端口块分配失败的日志功能。

nat log port-alloc-fail

缺省情况下,NAT端口分配失败的日志功能处于关闭状态。

2.6.5  配置NAT阈值信息日志功能

1. 功能简介

在NAT端口块地址转换中,当端口块或端口的使用率超过阈值时,通过开启本功能,输出日志信息。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启NAT日志功能。

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

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

(3)     配置NAT阈值信息日志功能。请至少选择其中一项进行配置。

¡     开启NAT端口块中端口使用率的阈值信息日志功能,并设置NAT端口使用率的阈值。

nat log port-block port-usage threshold value

缺省情况下,NAT端口块中端口使用率的阈值信息日志功能处于关闭状态。

¡     配置NAT端口块使用率的阈值。

nat log port-block usage threshold value

缺省情况下,NAT端口块使用率的阈值为90%。

2.7  SNAT/DNAT显示和维护

2.7.1  显示NAT配置

可在任意视图下执行以下命令:

·     显示所有的NAT配置信息。

display nat all

·     显示DNAT规则的配置及运行状况信息。

display dnat-rule [ name rule-name | id rule-id ]

·     显示SNAT规则的配置及运行状况信息。

display snat-rule [ id rule-id | name rule-name ]

·     显示NAT日志功能的配置信息。

display nat log

2.7.2  监控NAT运行情况

·     显示NAT NO-PAT表项信息。

display nat no-pat [ slot slot-number ]

·     显示端口块表项。

display nat port-block { dynamic | static } [ slot slot-number ]

·     显示NAT会话。

display nat session [ { source-ip source-ip | destination-ip destination-ip } * [ vpn-instance vpn -instance-name ] ] [ slot slot-number ] [ verbose ]

2.7.3  显示NAT统计信息

可在任意视图下执行以下命令,显示NAT统计信息。

display nat statistics [ summary ] [ slot slot-number ]

2.7.4  删除NAT会话

请在用户视图下执行以下命令,删除NAT会话。

reset nat session [ protocol { tcp | udp } ] [ slot slot-number ]

 

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们