07-NAT配置
本章节下载: 07-NAT配置 (404.64 KB)
NAT(Network Address Translation,网络地址转换)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要应用在连接两个网络的边缘设备上,用于实现允许内部网络用户访问外部公共网络以及允许外部公共网络访问部分内部网络资源(例如内部服务器)的目的。
NAT基本概念如下:
· NAT设备:配置了NAT功能的连接内部网络和外部网络的边缘设备。
· NAT接口:NAT设备上应用了NAT相关配置的接口。
· NAT地址:用于进行地址转换的公网IP地址,与外部网络路由可达,可静态指定或动态分配。
· NAT表项:NAT设备上用于记录网络地址转换映射关系的表项。关于NAT表项的详细介绍请参见“1.6 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“隐藏”了企业的私有网络。
报文经过NAT设备时,在NAT接口上仅进行一次源IP地址转换或一次目的IP地址转换。对于内网访问外网的报文,在出接口上进行源IP地址转换;对于外网访问内网的报文,在入接口上进行目的地址IP地址转换。
报文入接口和出接口均为NAT接口。报文经过NAT设备时,先后进行两次NAT转换。对于内网访问外网的报文和外网访问内网的报文,均在入接口进行目的IP地址转换,在出接口进行源IP地址转换。这种方式常用于支持地址重叠的VPN间互访。
报文经过NAT设备时,在NAT接口上同时进行一次源IP地址转换和一次目的IP地址转换。对于内网访问外网的报文,在出接口上同时进行源IP地址和目的IP地址的转换;对于外网访问内网的报文,同时在入接口上进行目的地址IP地址和源IP地址的转换。这种方式常用于支持内网用户主动访问与之地址重叠的外网资源。
NAT hairpin功能用于满足位于内网侧的用户之间或内网侧的用户与服务器之间通过NAT地址进行访问的需求。开启NAT hairpin的内网侧接口上会对报文同时进行源地址和目的地址的转换。它支持两种组网模式:
· P2P:位于内网侧的用户之间通过动态分配的NAT地址互访。内网各主机首先向外网服务器注册自己的外网地址信息,该地址信息为外网侧出方向地址转换的NAT地址,然后内网主机之间通过使用彼此向外网服务器注册的外网地址进行互访。
· C/S:位于内网侧的用户使用NAT地址访问内网服务器。NAT在内网接口上同时转换访问内网服务器的报文的源和目的IP地址,其中,目的IP地址转换通过匹配某外网接口上的内部服务器配置来完成,源地址转换通过匹配内部服务器所在接口上的出方向动态地址转换或出方向静态地址转换来完成。
在实际应用中,用户可能希望某些内部网络的主机可以访问外部网络,而某些主机不允许访问;或者希望某些外部网络的主机可以访问内部网络,而某些主机不允许访问。即NAT设备只对符合要求的报文进行地址转换。
NAT设备可以利用ACL(Access Control List,访问控制列表)来对地址转换的使用范围进行控制,通过定义ACL规则,并将其与NAT配置相关联,实现只对匹配指定的ACL permit规则的报文才进行地址转换的目的。而且,NAT仅使用规则中定义的源IP地址、源端口号、目的IP地址、目的端口号、传输层协议类型和VPN实例这几个元素进行报文匹配,忽略其它元素。
静态地址转换是指外部网络和内部网络之间的地址映射关系由配置确定,该方式适用于内部网络与外部网络之间存在固定访问需求的组网环境。静态地址转换支持双向互访:内网用户可以主动访问外网,外网用户也可以主动访问内网。
动态地址转换是指内部网络和外部网络之间的地址映射关系在建立连接的时候动态产生。该方式通常适用于内部网络有大量用户需要访问外部网络的组网环境。
NO-PAT(Not Port Address Translation)模式下,一个外网地址同一时间只能分配给一个内网地址进行地址转换,不能同时被多个内网地址共用。当使用某外网地址的内网用户停止访问外网时,NAT会将其占用的外网地址释放并分配给其他内网用户使用。
该模式下,NAT设备只对报文的IP地址进行NAT转换,同时会建立一个NO-PAT表项用于记录IP地址映射关系,并可支持所有IP协议的报文。
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网关之后的主机进行互访。
· Address and Port-Dependent Mapping(关心对端地址和端口转换模式):对于来自相同源地址和源端口号的报文,相同的源地址和源端口号并不要求被转换为相同的外部地址和端口号,若其目的地址或目的端口号不同,通过PAT映射后,相同的源地址和源端口号通常会被转换成不同的外部地址和端口号。与Endpoint-Independent Mapping模式不同的是,NAT设备只允许这些目的地址对应的外部网络的主机可以通过该转换后的地址和端口来访问这些内部网络的主机。这种模式安全性好,但由于同一个内网主机地址转换后的外部地址不唯一,因此不便于位于不同NAT网关之后的主机使用内网主机转换后的地址进行互访。
在实际应用中,内网中的服务器可能需要对外部网络提供一些服务,例如给外部网络提供Web服务,或是FTP服务。这种情况下,NAT设备允许外网用户通过指定的NAT地址和端口访问这些内部服务器,NAT内部服务器的配置就定义了NAT地址和端口与内网服务器地址和端口的映射关系。
如图1-3所示,外部网络用户访问内部网络服务器的数据报文经过NAT设备时,NAT设备将报文的目的地址与接口上的NAT内部服务器配置进行匹配,并将匹配上的访问内部服务器的请求报文的目的IP地址和端口号转换成内部服务器的私有IP地址和端口号。当内部服务器回应该报文时,NAT设备再根据已有的地址映射关系将回应报文的源IP地址和端口号转换成外网IP地址和端口号。
端口块方式是一种基于端口范围的PAT动态地址转换,即一个私网IP地址在一个时间段内独占一个公网IP地址的某个端口块。例如:假设私网IP地址10.1.1.1独占公网IP地址202.1.1.1的一个端口块10001~10256,则该私网IP向公网发起的所有连接,源IP地址都将被转换为同一个公网IP地址202.1.1.1,而源端口将被转换为端口块10001~10256之内的一个端口。
当前设备支持的端口块方式包括为动态映射,主要应用在DS-Lite网络中。
(1) 端口块动态映射
当内网用户向公网发起连接时,首先根据动态地址转换中的ACL规则进行过滤,决定是否需要进行源地址转换。对于需要进行源地址转换的连接,当该连接为该用户的首次连接时,从所匹配的动态地址转换配置引用的NAT地址组中获取一个公网IP地址,从该公网IP地址中动态分配一个端口块,创建动态端口块表项,然后从端口块表项中动态分配一个公网端口,进行地址转换。对该用户后续连接的转换,均从生成的动态端口块表项中分配公网端口。当该用户的所有连接都断开时,回收为其分配的端口块资源,删除相应的动态端口块表项。
端口块动态映射支持增量端口块分配。当为某私网IP地址分配的端口块资源耗尽(端口块中的所有端口都被使用)时,如果该私网IP地址向公网发起新的连接,则无法再从端口块中获取端口,无法进行地址转换。此时,如果预先在相应的NAT地址组中配置了增量端口块数,则可以为该私网IP地址分配额外的端口块,进行地址转换。
NAT设备处理一个连接的首报文时便确定了相应的地址转换关系,并同时创建会话表项,该会话表项中添加了NAT扩展信息(例如接口信息、转换方式)。会话表项中记录了首报文的地址转换信息。这类经过NAT处理的会话表项,也称为NAT会话表项。
当该连接的后续报文经过NAT设备时,将与NAT会话表项进行匹配,NAT设备从匹配到的会话表项中得到首报文的转换方式,并根据首报文的转换方式对后续报文进行处理:
· 后续报文方向与首报文相同时,源和目的的转换方式与首报文相同。
· 后续报文方向与首报文相反时,转换方式与首报文相反。即,如果首报文转换了源地址,则后续报文需要转换目的地址;如果首报文转换了目的地址,则后续报文需要转换源地址。
NAT会话表项的更新和老化由会话管理模块维护,关于会话管理的相关介绍请参见“安全配置指导”中的“会话管理”。
如果NAT设备上开启了Endpoint-Independent Mapping模式,则在PAT方式的动态地址转换过程中,会首先创建一个NAT会话表项,然后创建一个用于记录地址和端口的转换关系(内网地址和端口<-->NAT地址和端口)的EIM三元组表项,该表项有以下两个作用:
· 保证后续来自相同源地址和源端口的新建连接与首次连接使用相同的转换关系。
· 允许外网主机向NAT地址和端口发起的新建连接根据EIM表项进行反向地址转换。
该表项在与其相关联的所有NAT会话表项老化后老化。
在NO-PAT方式进行源地址的动态转换过程中,NAT设备首先创建一个NAT会话表项,然后建立一个NO-PAT表项用于记录该转换关系(内网地址<-->NAT地址)。除此之外,在NAT设备进行ALG处理时,也会触发创建NO-PAT表项。NAT ALG的相关介绍请参见“1.8 NAT支持ALG”。
NO-PAT表项有以下两个作用:
· 保证后续来自相同源地址的新建连接与首次连接使用相同的转换关系。
· 允许满足指定条件的主机向NAT地址发起的新建连接根据NO-PAT表项进行反向地址转换。
该表项在与其相关联的所有NAT会话表项老化后老化。
端口块表项记录1个用户在网关转换前的私网IP地址、转换后对应的公网IP地址及其端口块。关于端口块表项的详细介绍,请参见“1.5.4 端口块方式”。
支持多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服务。
ALG(Application Level Gateway,应用层网关)主要完成对应用层报文的解析和处理。通常情况下,NAT只对报文头中的IP地址和端口信息进行转换,不对应用层数据载荷中的字段进行分析和处理。然而对于一些应用层协议,它们的报文的数据载荷中可能包含IP地址或端口信息,这些载荷信息也必须进行有效的转换,否则可能导致功能不正常。
例如,FTP(File Transfer Protocol,文件传输协议)应用由FTP客户端与FTP服务器之间建立的数据连接和控制连接共同实现,而数据连接使用的地址和端口由控制连接协商报文中的载荷信息决定,这就需要ALG利用NAT的相关转换配置完成载荷信息的转换,以保证后续数据连接的正确建立。
NAT通用配置限制和指导如下:
· NAT只对匹配指定的ACL permit规则的报文才进行地址转换,匹配时仅关注ACL规则中定义的源IP地址、源端口号、目的IP地址、目的端口号、传输层协议类型和VPN实例,不关注ACL规则中定义的其它元素。
· 若接口上同时存在普通NAT静态地址转换、普通NAT动态地址转换、内部服务器和DS-Lite B4地址转换的配置,则在地址转换过程中,它们的优先级从高到低依次为:
a. 内部服务器
b. 普通NAT静态地址转换。
c. 普通NAT动态地址转换。
d. DS-Lite B4地址转换。
NAT配置任务如下:
(2) 配置接口上的地址转换方式
¡ 配置静态地址转换
¡ 配置动态地址转换
¡ 配置内部服务器
(3) (可选)配置NAT hairpin功能
(4) (可选)配置NAT ALG
(5) (可选)配置NAT日志功能
入方向的静态地址转换建议与接口上的出方向动态地址转换(nat outbound)、内部服务器(nat server)或出方向静态地址转换(nat static outbound)配合使用,以实现双向NAT。
对于硬件转发的设备,需要在用户流量的入方向上应用QoS策略。否则设备无法进行地址转换。QoS策略中的类用于匹配需要进行地址转换的流量,流行为用于将流量重定向到CPU。
· 配置控制地址转换范围的ACL。ACL配置的相关介绍请参见“ACL和QoS配置指导”中的“ACL”。
· 对于入方向静态地址转换,需要手动添加路由:目的地址为静态地址转换配置中指定的local-ip或local-network;下一跳为静态地址转换配置中指定的外网地址,或者报文出接口的实际下一跳地址。
出方向一对一静态地址转换通常应用在外网侧接口上,用于实现一个内部私有网络地址到一个外部公有网络地址的转换,具体过程如下:
· 对于经过该接口发送的内网访问外网的报文,将其源IP地址与指定的内网IP地址local-ip进行匹配,并将匹配的源IP地址转换为global-ip。
· 对于该接口接收到的外网访问内网的报文,将其目的IP地址与指定的外网IP地址global-ip进行匹配,并将匹配的目的IP地址转换为local-ip。
(6) 进入系统视图。
system-view
(7) 配置出方向一对一静态地址转换映射。
nat static outbound local-ip global-ip
(8) 进入接口视图。
interface interface-type interface-number
(9) 开启接口上的NAT静态地址转换功能。
nat static enable
缺省情况下,NAT静态地址转换功能处于关闭状态。
出方向网段对网段静态地址转换通常应用在外网侧接口上,用于实现一个内部私有网络到一个外部公有网络的地址转换,具体过程如下:
· 对于经过该接口发送的内网访问外网的报文,将其源IP地址与指定的内网网络地址进行匹配,并将匹配的源IP地址转换为指定外网网络地址之一。
· 对于该接口接收到的外网访问内网的报文,将其目的IP地址与指定的外网网络地址进行匹配,并将匹配的目的IP地址转换为指定的内网网络地址之一。
(10) 进入系统视图。
system-view
(11) 配置出方向网段对网段静态地址转换映射。
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 ] ]
(12) 进入接口视图。
interface interface-type interface-number
(13) 开启接口上的NAT静态地址转换功能。
nat static enable
缺省情况下,NAT静态地址转换功能处于关闭状态。
入方向一对一静态地址转换用于实现一个内部私有网络地址与一个外部公有网络地址之间的转换,具体过程如下:
· 对于经过该接口发送的内网访问外网的报文,将其目的IP地址与指定的内网IP地址local-ip进行匹配,并将匹配的目的IP地址转换为global-ip。
· 对于该接口接收到的外网访问内网的报文,将其源IP地址与指定的外网IP地址global-ip进行匹配,并将匹配的源IP地址转换为local-ip。
(14) 进入系统视图。
system-view
(15) 配置入方向一对一静态地址转换映射。
nat static inbound global-ip [ vpn-instance global-vpn-instance-name ] local-ip [ vpn-instance local-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ]
(16) 进入接口视图。
interface interface-type interface-number
(17) 开启接口上的NAT静态地址转换功能。
nat static enable
缺省情况下,NAT静态地址转换功能处于关闭状态。
入方向网段对网段静态地址转换用于实现一个内部私有网络与一个外部公有网络之间的地址转换,具体过程如下:
· 对于经过该接口发送的内网访问外网的报文,将其目的IP地址与指定的内网网络地址进行匹配,并将匹配的目的IP地址转换为指定的外网网络地址之一。
· 对于该接口接收到的外网访问内网的报文,将其源IP地址与指定的外网网络地址进行匹配,并将匹配的源IP地址转换为指定的内网网络地址之一。
(18) 进入系统视图。
system-view
(19) 配置入方向网段对网段静态地址转换映射。
nat static inbound net-to-net global-start-address global-end-address [ vpn-instance global-vpn-instance-name ] local local-network { mask-length | mask } [ vpn-instance local-vpn-instance-name ] [ acl { ipv4-acl-number | name ipv4-acl-name } [ reversible ] ]
(20) 进入接口视图。
interface interface-type interface-number
(21) 开启接口上的NAT静态地址转换功能。
nat static enable
缺省情况下,NAT静态地址转换功能处于关闭状态。
在同时配置了多条动态地址转换的情况下:
· 指定了ACL参数的动态地址转换配置的优先级高于未指定ACL参数的动态地址转换配置;
· 对于指定了ACL参数的动态地址转换配置,其优先级由ACL编号的大小决定,编号越大,优先级越高。
对于硬件转发的设备,需要在用户流量的入方向上应用QoS策略。否则设备无法进行地址转换。QoS策略中的类用于匹配需要进行地址转换的流量,流行为用于将流量重定向到CPU。
· 配置控制地址转换范围的ACL。ACL配置的相关介绍请参见“ACL和QoS配置指导”中的“ACL”。
· 确定是否直接使用接口的IP地址作为转换后的报文源地址。
· 配置根据实际网络情况,合理规划可用于地址转换的公网IP地址组。
· 确定地址转换过程中是否使用端口信息。
出方向动态地址转换通常应用在外网侧接口上,用于实现一个内部私有网络地址到一个外部公有网络地址的转换。
(22) 进入系统视图。
system-view
(23) 创建NAT地址组,并进入NAT地址组视图。
nat address-group group-id
(24) 添加地址组成员。
address start-address end-address
可通过多次执行本命令添加多个地址组成员。
当前地址组成员的IP地址段不能与该地址组中或者其它地址组中已有的地址成员组成员重叠。
(25) 退回系统视图。
quit
(26) 进入接口视图。
interface interface-type interface-number
(27) 配置出方向动态地址转换。请至少选择其中一项进行配置。
¡ 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表项中记录的内网地址 |
(28) (可选)请依次执行以下命令配置PAT方式地址转换的模式。
quit
nat mapping-behavior endpoint-independent [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情况下,PAT方式地址转换的模式为Address and Port-Dependent Mapping。
该配置只对PAT方式的出方向动态地址转换有效。
入方向动态地址转换功能通常与接口上的出方向动态地址转换(nat outbound)、内部服务器(nat server)或出方向静态地址转换(nat static outbound)配合,用于实现双向NAT应用,不建议单独使用。
由于自动添加路由表项速度较慢,通常建议手工添加路由。
(29) 进入系统视图。
system-view
(30) 创建NAT地址组,并进入NAT地址组视图。
nat address-group group-id
(31) 添加地址组成员。
address start-address end-address
可通过多次执行本命令添加多个地址组成员。
当前地址组成员的IP地址段不能与该地址组中或者其它地址组中已有的地址组成员重叠。
(32) 退回系统视图。
quit
(33) 进入接口视图。
interface interface-type interface-number
(34) 配置入方向动态地址转换。
nat inbound { ipv4-acl-number | name ipv4-acl-name } address-group group-id [ vpn-instance vpn-instance-name ] [ no-pat [ reversible ] [ add-route ] ]
一个接口下可配置多个入方向的动态地址转换。
参数 |
功能 |
no-pat reversible |
指定该参数,并且已经存在NO-PAT表项的情况下,对于经过该接口发送的内网访问外网的首报文,将其目的IP地址与NO-PAT表项进行匹配,并将目的IP地址转换为匹配的NO-PAT表项中记录的外网地址 |
add-route |
· 指定该参数,则有报文命中该配置时,设备会自动添加路由表项:目的地址为本次地址转换使用的地址组中的地址,出接口为本配置所在接口,下一跳地址为报文的源地址 · 没有指定该参数,则用户需要在设备上手工添加路由 |
内部服务器通常配置在外网侧接口上。通过在NAT设备上配置内部服务器,建立一个或多个内网服务器内网地址和端口与外网地址和端口的映射关系,使外部网络用户能够通过配置的外网地址和端口来访问内网服务器。内部服务器可以位于一个普通的内网内,也可以位于一个VPN实例内。
内部服务器可以通过如下配置方式实现。
· 普通内部服务器:将内网服务器的地址和端口映射为外网地址和端口,允许外部网络中的主机通过配置的外网地址和端口访问位于内网的服务器。
· 负载分担内部服务器:在配置内部服务器时,将内部服务器的内网信息指定为一个内部服务器组,组内的多台主机可以共同对外提供某种服务。外网用户向内部服务器指定的外网地址发起应用请求时,NAT设备可根据内网服务器的权重和当前连接数,选择其中一台内网服务器作为目的服务器,实现内网服务器负载分担。
在配置负载分担内部服务器时,若配置一个外网地址,N个连续的外网端口号对应一个内部服务器组,或N个连续的外网地址,一个外网端口号对应一个内部服务器组,则内部服务器组的成员个数不能小于N,即同一用户不能通过不同的外网地址或外网端口号访问相同内网服务器的同一服务。
(35) 进入系统视图。
system-view
(36) 进入接口视图。
interface interface-type interface-number
(37) 配置普通内部服务器。请至少选择其中一项进行配置。
¡ 外网地址单一,未使用外网端口或外网端口单一。
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 } ]
一个接口下可以配置多个普通内部服务器。
(38) 进入系统视图。
system-view
(39) 配置内部服务器组,并进入服务器组视图。
nat server-group group-id
(40) 添加内部服务器组成员。
inside ip inside-ip port port-number [ weight weight-value ]
一个内部服务器组内可以添加多个组成员。
(41) 退回系统视图。
quit
(42) 进入接口视图。
interface interface-type interface-number
(43) 配置负载分担内部服务器。
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 } ]
一个接口下可以配置多个负载分担内部服务器。
DS-Lite B4地址转换配置在外网侧接口上,关联IPv6 ACL控制地址转换范围,目前仅支持端口块动态映射方式。
(44) 进入系统视图。
system-view
(45) (可选)配置PAT方式地址转换的模式。
nat mapping-behavior endpoint-independent [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情况下,PAT方式出方向动态地址转换的模式为Address and Port-Dependent Mapping。
(46) 创建NAT地址组,并进入NAT地址组视图。
nat address-group group-id
(47) 添加地址组成员。
address start-address end-address
可通过多次执行本命令添加多个地址组成员。
当前地址组成员的IP地址段不能与该地址组中或者其它地址组中已有的地址成员组成员重叠。
(48) 配置端口范围。
port-range start-port-number end-port-number
缺省情况下,端口范围为1-65535。
该配置仅对PAT方式地址转换生效。
(49) 配置端口块参数。
port-block block-size block-size [ extended-block-number extended-block-number ]
该配置仅对PAT方式地址转换生效。
(50) 退回系统视图。
quit
(51) 进入接口视图。
interface interface-type interface-number
(52) 配置DS-Lite B4端口块映射。
nat outbound ds-lite-b4 { ipv6-acl-number | name ipv6-acl-name } address-group group-id
NAT hairpin功能需要与内部服务器(nat server)、出方向动态地址转换(nat outbound)或出方向静态地址转换(nat static outbound)配合工作,且这些配置所在的接口必须在同一个接口板,否则NAT hairpin功能无法正常工作。
P2P方式下,外网侧的出方向地址转换必须配置为PAT转换方式,并开启EIM模式。
(53) 进入系统视图。
system-view
(54) 进入接口视图。
interface interface-type interface-number
(55) 开启NAT hairpin功能。
nat hairpin enable
缺省情况下,NAT hairpin功能处于关闭状态。
(56) 进入系统视图。
system-view
(57) 开启指定或所有协议类型的NAT ALG功能。
nat alg { all | dns | ftp | h323 | icmp-error | ils | mgcp | nbt | pptp | rsh | rtsp | sccp | sip | sqlnet | tftp | xdmcp }
缺省情况下,所有协议类型的NAT ALG功能均处于开启状态。
NAT会话日志是为了满足网络管理员安全审计的需要,对NAT会话(报文经过设备时,源或目的信息被NAT进行过转换的连接)信息进行的记录,包括IP地址及端口的转换信息、用户的访问信息以及用户的网络流量信息。
有三种情况可以触发设备生成NAT会话日志:
· 新建NAT会话。
· 删除NAT会话。新增高优先级的配置、删除配置、报文匹配规则变更、NAT会话老化以及执行删除NAT会话的命令时,都可能导致NAT会话被删除。
· 存在NAT活跃流。NAT活跃流是指在一定时间内存在的NAT会话。当设置的生成活跃流日志的时间间隔到达时,当前存在的NAT会话信息就被记录并生成日志。
(58) 进入系统视图。
system-view
(59) 开启NAT日志功能。
nat log enable [ acl { ipv4-acl-number | name ipv4-acl-name } ]
缺省情况下,NAT日志功能处于关闭状态。
(60) 开启NAT相关日志功能。请至少选择其中一项进行配置。
¡ 开启NAT新建会话的日志功能。
nat log flow-begin
¡ 开启NAT删除会话的日志功能。
nat log flow-end
¡ 开启NAT活跃流的日志功能,并设置生成活跃流日志的时间间隔。
nat log flow-active time-value
缺省情况下,创建、删除NAT会话或存在NAT活跃流时,均不生成NAT日志。
在完成上述配置后,在任意视图下执行display命令可以显示NAT配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除NAT表项。
表2-1 NAT显示和维护
操作 |
命令 |
显示所有的NAT配置信息 |
display nat all |
显示NAT地址组的配置信息 |
display nat address-group [ group-id ] |
显示NAT EIM表项信息 |
display nat eim [ slot slot-number ] |
显示NAT入接口动态地址转换关系的配置信息 |
display nat inbound |
显示NAT日志功能的配置信息 |
display nat log |
显示NAT NO-PAT表项信息 |
display nat no-pat [ slot slot-number ] |
显示NAT出接口动态地址转换关系的配置信息 |
display nat outbound |
显示NAT会话 |
display nat session [ { source-ip source-ip | destination-ip destination-ip } * [ vpn-instance vpn -instance-name ] ] [ slot slot-number ] [ verbose ] |
显示NAT静态地址转换的配置信息 |
display nat static |
显示NAT统计信息 |
display nat statistics [ summary ] [ slot slot-number ] |
删除NAT会话 |
reset nat session [ slot slot-number ] |
内部网络用户10.110.10.8/24使用外网地址202.38.1.100访问Internet。
图2-1 内网用户通过NAT地址访问外网(静态地址转换)配置组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 配置内网IP地址10.110.10.8到外网地址202.38.1.100之间的一对一静态地址转换映射。
<Switch> system-view
[Switch] nat static outbound 10.110.10.8 202.38.1.100
# 在接口Vlan-interface200上开启静态地址转换功能。
[Switch] interface vlan-interface 200
[Switch-Vlan-interface200] nat static enable
[Switch-Vlan-interface200] quit
# 配置ACL 2000,仅允许对内部网络中10.110.10.0/24网段的用户报文进行地址转换。
[Switch] acl basic 2000
[Switch-acl-ipv4-basic-2000] rule permit source 10.110.10.0 0.0.0.255
[Switch-acl-ipv4-basic-2000] quit
# 配置流分类nat,匹配ACL 2000。
[Switch] traffic classifier nat
[Switch-classifier-nat] if-match acl 2000
[Switch-classifier-nat] quit
# 配置流行为nat,将匹配ACL 2000的流量重定向CPU。
[Switch] traffic behavior nat
[Switch-behavior-nat] redirect cpu
[Switch-behavior-nat] quit
# 配置QoS策略p1,将流分类与流行为进行绑定。
[Switch] qos policy p1
[Switch-qospolicy-p1] classifier nat behavior nat
[Switch-qospolicy-p1] quit
# 将QoS策略p1应用在接口Ten-GigabitEthernet1/0/1的入方向。
[Switch] interface ten-gigabitethernet 1/0/1
[Switch-Ten-GigabitEthernet1/0/1] qos apply policy p1 inbound
[Switch-Ten-GigabitEthernet1/0/1] quit
# 以上配置完成后,内网主机可以访问外网服务器。通过查看如下显示信息,可以验证以上配置成功。
[Switch] display nat static
Static NAT mappings:
Totally 1 outbound static NAT mappings.
IP-to-IP:
Local IP : 10.110.10.8
Global IP : 202.38.1.100
Config status: Active
Interfaces enabled with static NAT:
Totally 1 interfaces enabled with static NAT.
Interface: Vlan-interface200
Config status: Active
# 通过以下显示命令,可以看到Host访问某外网服务器时生成NAT会话信息。
[Switch] display nat session verbose
Initiator:
Source IP/port: 10.110.10.8/42496
Destination IP/port: 202.38.1.111/2048
DS-Lite tunnel peer: -
VPN instance/VLAN ID/VLL ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface100
Responder:
Source IP/port: 202.38.1.111/42496
Destination IP/port: 202.38.1.100/0
DS-Lite tunnel peer: -
VPN instance/VLAN ID/VLL ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface200
State: TCP_ESTABLISHED
Application: FTP
Start time: 2022-05-11 10:06:55 TTL: 27s
Initiator->Responder: 5 packets 420 bytes
Responder->Initiator: 5 packets 420 bytes
Total sessions found: 1
· 某公司内网使用的IP地址为192.168.0.0/16。
· 该公司拥有202.38.1.2和202.38.1.3两个外网IP地址。
· 需要实现,内部网络中192.168.1.0/24网段的用户可以访问Internet,其它网段的用户不能访问Internet。使用的外网地址为202.38.1.2和202.38.1.3。
图2-2 内网用户通过NAT访问外网(地址不重叠)配置组网图
# 按照组网图配
置各接口的IP地址,具体配置过程略。
# 配置地址组0,包含两个外网地址202.38.1.2和202.38.1.3。
<Switch> system-view
[Switch] nat address-group 0
[Switch-address-group-0] address 202.38.1.2 202.38.1.3
[Switch-address-group-0] quit
# 配置ACL 2000,仅允许对内部网络中192.168.1.0/24网段的用户报文进行地址转换。
[Switch] acl basic 2000
[Switch-acl-ipv4-basic-2000] rule permit source 192.168.1.0 0.0.0.255
[Switch-acl-ipv4-basic-2000] quit
# 在接口Vlan-interface200上配置出方向动态地址转换,允许使用地址组0中的地址对匹配ACL 2000的报文进行源地址转换,并在转换过程中使用端口信息。
[Switch] interface vlan-interface 200
[Switch-Vlan-interface200] nat outbound 2000 address-group 0
[Switch-Vlan-interface200] quit
# 配置流分类nat,匹配ACL 2000。
[Switch] traffic classifier nat
[Switch-classifier-nat] if-match acl 2000
[Switch-classifier-nat] quit
# 配置流行为nat,将匹配ACL 2000的流量重定向CPU。
[Switch] traffic behavior nat
[Switch-behavior-nat] redirect cpu
[Switch-behavior-nat] quit
# 配置QoS策略p1,将流分类与流行为进行绑定。
[Switch] qos policy p1
[Switch-qospolicy-p1] classifier nat behavior nat
[Switch-qospolicy-p1] quit
# 将QoS策略p1应用在接口Ten-GigabitEthernet1/0/1的入方向。
[Switch] interface ten-gigabitethernet 1/0/1
[Switch-Ten-GigabitEthernet1/0/1] qos apply policy p1 inbound
[Switch-Ten-GigabitEthernet1/0/1] quit
# 以上配置完成后,Host A能够访问WWW server,Host B和Host C无法访问WWW server。通过查看如下显示信息,可以验证以上配置成功。
[Switch] display nat all
NAT address group information:
Totally 1 NAT address groups.
Address group 0:
Port range: 1-65535
Address information:
Start address End address
202.38.1.2 202.38.1.3
NAT outbound information:
Totallu 1 NAT outbound rules.
Interface: Vlan-interface200
ACL: 2000 Address group: 0 Port-preserved: N
NO-PAT: N Reversible: N
Config status: Active
NAT logging:
Log enable : Disabled
Flow-begin : Disabled
Flow-end : Disabled
Flow-active : Disabled
Port-block-assign : Disabled
Port-block-withdraw : Disabled
Alarm : Disabled
NAT mapping behavior:
Mapping mode : Address and Port-Dependent
ACL : ---
Config status: Active
Static NAT load balancing: Disabled
# 通过以下显示命令,可以看到Host A访问WWW server时生成NAT会话信息。
[Switch] display nat session verbose
Initiator:
Source IP/port: 192.168.1.10/52992
Destination IP/port: 200.1.1.10/2048
DS-Lite tunnel peer: -
VPN instance/VLAN ID/VLL ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface100
Responder:
Source IP/port: 200.1.1.10/4
Destination IP/port: 202.38.1.3/0
DS-Lite tunnel peer: -
VPN instance/VLAN ID/VLL ID: -/-/-
Protocol: ICMP(1)
Inbound interface: Vlan-interface200
State: ICMP_REPLY
Application: INVALID
Start time: 2022-05-11 10:39:49 TTL: 12s
Initiator->Responder: 1 packets 84 bytes
Responder->Initiator: 1 packets 84 bytes
Total sessions found: 1
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!