05-NAT配置
本章节下载: 05-NAT配置 (491.23 KB)
· 配置了本地策略路由或接口策略路由后,不支持配置NAT。有关策略路由的详细介绍请参见“三层技术-IP路由配置指导”中的“策略路由”。
· 设备支持两种运行模式:独立运行模式和IRF模式,缺省情况下为独立运行模式。有关IRF模式的介绍,请参见“IRF配置指导”中的“IRF”。
NAT(Network Address Translation,网络地址转换)是将IP数据报头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公网IP地址代表较多的私网IP地址的方式,将有助于减缓可用IP地址空间的枯竭。
私网IP地址是指内部网络或主机的IP地址,公网IP地址是指在因特网上全球唯一的IP地址。
RFC 1918为私有网络预留出了三个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
(上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP或注册中心申请而在公司或企业内部自由使用。)
NAT最初的设计目的是用于实现私有网络访问公共网络的功能,后扩展到实现任意两个网络间进行访问时的地址转换应用,本文中将这两个网络分别称为内部网络(内网)和外部网络(外网),通常私网为内部网络,公网为外部网络。
图1-1描述了一个基本的NAT应用。
· 内网用户主机PC(192.168.1.3)向外网服务器(1.1.1.2)发送的IP报文通过NAT设备。
· NAT设备查看报头内容,发现该报文是发往外网的,将其源IP地址字段的私网地址192.168.1.3转换成一个可在Internet上选路的公网地址20.1.1.1,并将该报文发送给外网服务器,同时在NAT设备的网络地址转换表中记录这一映射。
· 外网服务器给内网用户发送的应答报文(其初始目的IP地址为20.1.1.1)到达NAT设备后,NAT设备再次查看报头内容,然后查找当前网络地址转换表的记录,用内网私有地址192.168.1.3替换初始的目的IP地址。
上述的NAT过程对终端(如图中的Host和Server)来说是透明的。对外网服务器而言,它认为内网用户主机的IP地址就是20.1.1.1,并不知道有192.168.1.3这个地址。因此,NAT“隐藏”了企业的私有网络。
地址转换的优点在于,在为内部网络主机提供了“隐私”保护的前提下,实现了内部网络的主机通过该功能访问外部网络的资源。但它也有一些缺点:
· 由于需要对数据报文进行IP地址的转换,涉及IP地址的数据报文的报头不能被加密。在应用协议中,如果报文中有地址或端口需要转换,则报文不能被加密。例如,不能使用加密的FTP连接,否则FTP协议的port命令不能被正确转换。
· 网络调试变得更加困难。比如,某一台内部网络的主机试图攻击其它网络,则很难指出究竟哪一台主机是恶意的,因为主机的IP地址被屏蔽了。
在实际应用中,我们可能希望某些内部网络的主机可以访问外部网络,而某些主机不允许访问,即当NAT设备查看IP数据报文的报头内容时,如果发现源IP地址属于禁止访问外部网络的内部主机,它将不进行地址转换。另外,也希望只有指定的公网地址才可用于地址转换。
设备可以利用ACL(Access Control List,访问控制列表)和地址池来对地址转换进行控制。
· 访问控制列表可以有效地控制地址转换的使用范围,只有满足访问控制列表规则的数据报文才可以进行地址转换。
· 地址池是用于地址转换的一些连续的公网IP地址的集合,它可以有效地控制公网地址的使用。用户可根据自己拥有的合法IP地址数目、内部网络主机数目以及实际应用情况,定义合适的地址池。在地址转换的过程中,NAT设备将会从地址池中挑选一个IP地址作为数据报文转换后的源IP地址。
从图1-1的地址转换过程可见,当内部网络访问外部网络时,地址转换将会选择一个合适的外部地址,来替代内部网络数据报文的源地址。在图1-1中是选择NAT设备出接口的IP地址(公网IP地址)。这样所有内部网络的主机访问外部网络时,只能拥有一个外部网络的IP地址,因此,这种情况同时只允许最多有一台内部网络主机访问外部网络。
当内部网络的多台主机并发的要求访问外部网络时,NAT也可实现对并发性请求的响应,允许NAT设备拥有多个公有IP地址。当第一个内网主机访问外网时,NAT选择一个公有地址IP1,在地址转换表中添加记录并发送数据报;当另一内网主机访问外网时,NAT选择另一个公有地址IP2,以此类推,从而满足了多台内网主机访问外网的请求。
NAT设备拥有的公有IP地址数目要远少于内部网络的主机数目,因为所有内网主机并不会同时访问外网。公有IP地址数目的确定,应根据网络高峰期可能访问外网的内网主机数目的统计值来确定。
NAPT(Network Address Port Translation,网络地址端口转换)是基本地址转换的一种变形,它允许多个内部地址映射到同一个公有地址上,也可称之为“多对一地址转换”。
NAPT同时映射IP地址和端口号:来自不同内部地址的数据报的源地址可以映射到同一外部地址,但它们的端口号被转换为该地址的不同端口号,因而仍然能够共享同一地址,也就是“私有地址+端口号”与“公网IP地址+端口号”之间的转换。
图1-2描述了NAPT的基本原理。
图1-2 NAPT基本原理示意图
如图1-2所示,三个带有内部地址的数据报文到达NAT设备,其中报文1和报文2来自同一个内部地址但有不同的源端口号,报文1和报文3来自不同的内部地址但具有相同的源端口号。通过NAPT映射,三个数据报的源IP地址都被转换到同一个外部地址,但每个数据报都被赋予了不同的源端口号,因而仍保留了报文之间的区别。当各报文的回应报文到达时,NAT设备网关仍能够根据回应报文的目的地址和端口号来区别该报文应转发到的内部主机。
采用NAPT可以更加充分地利用IP地址资源,实现更多内部网络主机对外部网络的同时访问。
NAT隐藏了内部网络的结构,具有“屏蔽”内部主机的作用,但是在实际应用中,可能需要给外部网络提供一个访问内网主机的机会,如给外部网络提供一台Web服务器,或是一台FTP服务器。
NAT设备提供的内部服务器功能,就是通过静态配置“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,实现公网IP地址到私网IP地址的“反向”转换。例如,可以将20.1.1.1:8080配置为内网某Web服务器的外部网络地址和端口号供外部网络访问。
如图1-3所示,外部网络用户访问内部网络服务器的数据报文经过NAT设备时,NAT设备根据报文的目的地址查找地址转换表项,将访问内部服务器的请求报文的目的IP地址和端口号转换成内部服务器的私有IP地址和端口号。当内部服务器回应该报文时,NAT设备再根据已有的地址映射关系将回应报文的源IP地址和端口号转换成公网IP地址和端口号。
一般情况下,DNS服务器和访问私网服务器的用户都在公网,通过在NAT设备的公网接口上配置内部服务器,可以将公网地址、端口等信息映射到私网内的服务器上,使得公网用户可以通过内部服务器的域名或公网地址来访问内部服务器。但是,如图1-4所示,如果DNS服务器在公网,私网用户希望通过域名来访问私网的Web服务器,则会由于DNS服务器向私网用户发送的响应报文中包含的是私网服务器的公网地址,而导致收到响应报文的私网用户无法利用域名访问私网服务器。通过在设备上配置DNS mapping可以解决该问题。
图1-4 NAT DNS mapping工作示意图
DNS mapping功能是指,通过配置“域名+公网IP地址+公网端口号+协议类型”的映射表,建立内部服务器域名与内部服务器公网信息的对应关系。在配置了NAT的接口上,设备检查接收到的DNS响应报文,根据报文中的域名查找用户配置的DNS mapping映射表,并根据表项内的“公网地址+公网端口+协议类型”信息查找内部服务器地址映射表中该信息对应的私网地址,替换DNS查询结果中的公网地址。这样,私网用户收到的DNS响应报文中就包含了要访问的内部服务器的私网地址,也就能够使用内部服务器域名访问同一私网内的内部服务器。
Easy IP功能是指进行地址转换时,直接使用接口的外网IP地址作为转换后的源地址,能够最大程度的节省IP地址资源。它也可以利用访问控制列表控制哪些内部地址可以进行地址转换。
NAT不仅实现了一般的地址转换功能,同时提供了完善的地址转换ALG (Application Layer Gateway,应用级网关)机制,使其可以支持一些特殊的应用协议,而不需要对NAT平台进行任何的修改,具有良好的可扩充性。这些特殊协议的报文载荷里携带了地址或端口信息,该信息也可能需要进行地址转换。
可支持的特殊协议包括:FTP(File Transfer Protocol,文件传输协议)、ICMP(Internet Control Message Protocol,因特网控制消息协议)、DNS(Domain Name System,域名系统)、ILS(Internet Locator Service,Internet定位服务)、H.323、SIP(Session Initiation Protocol,会话发起协议)、NetMeeting 3.01、NBT(NetBIOS over TCP/IP,基于TCP/IP的网络基本输入输出系统)等。
NAT多实例允许分属于不同MPLS VPN的用户通过同一个出口访问外部网络,同时允许分属于不同MPLS VPN的用户使用相同的私网地址。当MPLS VPN用户访问外部网络时,地址转换将内部网络主机的IP地址和端口替换为设备的外部网络地址和端口,同时还记录了用户的MPLS VPN信息(如协议类型和路由标识符RD等)。回应报文到达时,地址转换将外部网络地址和端口还原为内部网络主机的IP地址和端口,同时可得知是哪一个MPLS VPN用户的访问。无论是NAT方式的地址转换还是NAPT方式的地址转换都支持多实例。
同时,地址转换支持内部服务器的多实例,给外部提供访问MPLS VPN内主机的机会。例如,MPLS VPN1内提供Web服务的主机地址是10.110.1.1,可以使用202.110.10.20作为Web服务器的外部地址,Internet的用户使用202.110.10.20的地址就可以访问到MPLS VPN1提供的Web服务。
另外,NAT还可利用外部网络地址所携带的MPLS VPN信息,支持多个MPLS VPN之间的互访。
表1-1 NAT配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置地址转换 |
配置静态地址转换 |
二者必选其一 |
|
配置动态地址转换 |
|||
配置内部服务器 |
必选 |
||
配置DNS mapping |
可选 |
||
配置地址转换有效时间 |
可选 |
||
配置NAT ALG功能 |
可选 |
||
配置NAT日志 |
可选 |
||
配置NAT连接限制 |
可选 |
||
使能链路down时NAT表项老化功能 |
可选 |
· 接口下的NAT相关配置(地址转换或内部服务器配置)改变时,为保证连接的稳定性,建议用户在完成所有NAT相关的配置之后,保存配置并重启设备(或通过命令reset nat session手工清除与NAT相关的表项),以避免可能会产生的问题。这些问题主要包括:NAT相关的配置删除后,已建立的连接仍然可以进行地址转换处理;在连接过程中进行NAT配置,会因为配置顺序的不一致,导致相同的配置产生不同的处理结果。
· 必须保证各接口板上引用的地址池所定义的IP地址没有重叠。
通过NAT网关设备上静态建立或动态生成的地址映射关系,实现内部网络与外部网络IP地址的转换。通常,我们按照地址映射关系的产生方式将地址转换分为动态地址转换和静态地址转换两类:
· 静态地址转换
外部网络和内部网络之间的地址映射关系在配置中确定。适用于内部网络与外部网络之间的少量固定访问需求。
· 动态地址转换
外部网络和内部网络之间的地址映射关系由报文动态决定。通过配置访问控制列表和地址池(或接口地址)的关联,由“具有某些特征的IP报文”挑选使用“地址池中地址(或接口地址)”,从而建立动态地址映射关系。适用于内部网络有大量用户需要访问外部网络的需求。这种情况下,关联中指定的地址池资源由内网报文按需从中选择使用,访问外网的会话结束之后该资源便释放给其它用户。
无论静态地址转换还是动态地址转换,都可以支持NAT多实例的配置。只要指定地址所属的vpn-instance-name,即可以实现对MPLS VPN的支持。
配置静态地址转换时,需要首先在系统视图下配置静态地址转换映射,然后在接口下使该转换生效。
静态地址转换映射支持两种方式:一对一静态转换映射、网段对网段静态转换映射。
实现一个内部私有网络地址到一个外部公有网络地址的转换。
表1-2 配置一对一静态地址转换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置一对一静态地址转换映射 |
nat static local-ip [ vpn-instance local-name ] global-ip [ vpn-instance global-name ] |
必选 |
进入接口视图 |
interface interface-type interface-number |
- |
使配置的NAT静态转换在接口上生效 |
nat outbound static |
必选 |
实现一个内部私有网络到一个外部公有网络的地址转换。
表1-3 配置网段对网段静态地址转换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置网段对网段静态地址转换映射 |
nat static net-to-net local-start-address local-end-address global global-network { netmask-length | netmask } |
必选 |
进入接口视图 |
interface interface-type interface-number |
- |
使配置的NAT静态转换在接口上生效 |
nat outbound static |
必选 |
通过在接口上配置访问控制列表和地址池(或接口地址)的关联即可实现动态地址转换。
· 若直接使用接口的IP地址作为转换后的地址,则配置Easy IP功能来实现动态地址转换。
· 若选择使用地址池中的地址作为转换后的地址,则根据地址转换过程中是否使用端口信息可将动态地址转换分为NO-PAT和NAPT两种方式:NO-PAT为不使用TCP/UDP端口信息实现的多对多地址转换;NAPT为使用TCP/UDP端口信息实现的多对一地址转换。
地址转换关联一般在NAT设备的出接口上配置,但是当某内网主机需要通过多个出接口访问外网时,就需要在多个出接口上配置地址转换关联,过程复杂,因此设备提供了入接口地址关联的配置。这样,当NAT设备作为VPN间互访的工具时,在出接口较多的情况下,通过在接入各私网的入接口上配置地址转换关联达到简化配置的目的。
· 若配置出接口地址关联,那么从出接口发送的首个数据包会首先由访问控制列表(或报文源地址)进行判定是否允许进行地址转换,然后根据关联找到与之对应的地址池(或接口地址)进行源地址转换,并建立地址转换表项,后续数据包直接根据地址转换表项进行转换。
· 若配置入接口地址关联,那么从该接口接收的符合指定访问控制列表的数据包首先会被重定向到NAT业务板,然后再做与出接口地址转换类似的源地址转换处理。该方式下地址转换不支持Easy IP功能。
在同时配置了入接口和出接口地址关联的情况下,若报文同时命中了入接口和出接口的地址转换关联规则,则以出接口规则优先,即只按照出接口地址转换关联进行转换。
· 配置控制地址转换范围的访问控制列表。
· 确定是否直接使用接口的IP地址作为转换后的报文源地址。
· 配置根据实际网络情况,合理规划公网IP地址池的起始和结束IP地址。
· 确定地址转换过程中是否使用端口信息。
访问控制列表的配置请参见“ACL和QoS配置指导”中的“ACL”。
动态地址转换的过程中,NAT设备将会从定义的地址池中挑选一个地址作为转换后的报文源地址。
表1-4 配置地址池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
定义一个地址池 |
nat address-group group-number start-address end-address |
必选 对于Easy IP功能,不需要配置NAT地址池,直接使用接口地址作为转换后的IP地址 |
通过配置Easy IP功能,实现直接使用接口的IP地址作为转换后的报文源地址。
表1-5 配置Easy IP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置访问控制列表和接口地址关联,实现Easy IP功能 |
nat outbound acl-number |
必选 |
通过配置访问控制列表和地址池(或接口地址)的关联,将与访问控制列表匹配的报文的源地址映射为地址池中的地址(或接口地址),且不使用端口信息。
表1-6 配置NO-PAT
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在出接口配置访问控制列表和地址池关联,且不使用端口信息,实现NO-PAT |
nat outbound acl-number [ address-group group-number [ vpn-instance vpn-instance-name ] [ no-pat ] ] |
必选 |
通过配置访问控制列表和地址池(或接口地址)的关联,将与访问控制列表匹配的报文的源地址映射为地址池中的地址(或接口地址),且使用端口信息。
nat outbound acl-number address-group group-number [ vpn-instance vpn-instance-name ] |
通过配置内部服务器,可以将相应的外部地址和端口映射到内部服务器的私有地址和端口上,从而使外部网络用户能够访问内部服务器。内部服务器与外部网络的映射表是通过在接口上配置nat server命令生成的。
配置内部服务器时需要配置的信息包括:外部网络的信息(外部网络地址global-address、外部网络端口global-port)、内部网络的信息(内部网络地址local-address、内部网络端口local-port)以及服务协议类型。
配置内部服务器是将私网服务器的地址和端口(local-address、local-port)映射为公网地址和端口(global-address、global-port)允许外部网络访问位于私网的服务器。
内部服务器以及对外公布的外网地址均可以支持MPLS L3VPN。当内部服务器位于MPLS L3VPN时,还应指定所属的vpn-instance-name。如果不设置该值,表示内部服务器不属于任何一个VPN。
表1-8 配置内部服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置内部服务器 |
nat server protocol pro-type global { global-address | interface interface-type interface-number | current-interface } [ global-port ] [ vpn-instance global-name ] inside local-address [ local-port ] [ vpn-instance local-name ] |
二者必选其一 |
nat server protocol pro-type global { global-address | interface interface-type interface-number | current-interface } global-port1 global-port2 [ vpn-instance global-name ] inside local-address1 local-address2 local-port [ vpn-instance local-name ] |
通过配置DNS mapping,可以实现私网用户通过域名(DNS服务器在公网)访问位于同一私网的内部服务器的功能。
表1-9 配置DNS mapping
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置一条域名到内部服务器的映射 |
nat dns-map domain domain-name protocol pro-type ip global-ip port global-port |
必选 |
该配置用于设置地址转换连接表项的有效时间,可支持多种协议。
表1-10 配置地址转换有效时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置地址转换有效时间 |
nat aging-time { dns | ftp-ctrl | ftp-data | icmp | no-pat | pptp | tcp | tcp-fin | tcp-syn | udp } seconds |
可选 缺省情况下,各协议的地址转换有效时间如下: · DNS协议地址转换表项的有效时间为10秒; · FTP协议控制链路(ftp-ctrl)地址转换表项的有效时间为300秒; · FTP协议数据链路(ftp-data)地址转换表项的有效时间为300秒; · ICMP地址转换表项的有效时间为10秒; · NO-PAT转换方式下的私网地址和公网地址转换表项的有效时间为240秒; · PPTP协议地址转换表项的有效时间为300秒; · TCP地址转换表项的有效时间为300秒; · TCP协议fin、rst连接地址转换表项的有效时间为10秒; · TCP协议syn连接地址转换表项的有效时间为10秒; · UDP地址转换表项的有效时间为240秒 |
该配置用于设置地址转换的应用级网关功能,可支持多种协议。
表1-11 配置NAT ALG功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能地址转换应用网关功能 |
nat alg { all | dns | ftp | h323 | ils | nbt | sip } |
可选 缺省情况下,地址转换应用网关功能处于使能状态
|
NAT日志是NAT设备在进行NAT转换时生成的一种系统信息。该信息包括报文的源IP地址、源端口、目的IP地址、目的端口、转换后的源IP地址、转换后的源端口以及用户执行的操作等。它只用于记录内网用户访问外部网络的情况,不记录外部用户对内网服务器的访问。
内网用户通过NAT设备访问外部网络时,多个用户共用一个公网地址,从而无法定位访问网络的用户。利用日志功能可以实时跟踪、记录私网用户访问外部网络的情况,增强网络的安全性。
表1-12 开启NAT日志功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能NAT日志功能 |
nat log enable [ acl acl-number ] |
必选 缺省情况下,NAT日志功能处于关闭状态 |
|
设置在创建NAT连接时生成NAT日志的记录 |
nat log flow-begin |
二者至少选其一 |
缺省情况下,创建NAT连接时不生成NAT 日志 |
使能NAT活跃流的日志功能,并设置生成活跃流日志的时间间隔 |
nat log flow-active minutes |
缺省情况下,NAT活跃流的日志功能处于关闭状态 |
NAT日志信息有两种输出方式:
· 输出至信息中心
NAT日志将被转化成系统日志输出到本设备的信息中心,再通过设置信息中心的输出方向,最终决定NAT日志的输出方向。一次最多可以输出10条NAT日志到信息中心。
· 输出至日志服务器
系统将NAT日志封装成UDP报文发送给网络中的日志服务器,如图1-5所示。输出的NAT日志报文可以有多种版本,不同的版本使用的UDP报文格式不同,目前使用的NAT日志报文格式为版本1。UDP报文中可以包含多条NAT日志记录的原始信息,它由一个报文头和若干条NAT日志记录组成。
NAT日志的两种输出方式互斥,同一时刻只能选择一种输出方式。如果同时配置了两种输出方式,则系统会自动选择输出到信息中心,而不会发送到日志服务器。
图1-5 NAT日志信息输出至日志服务器示意图
表1-13 配置NAT日志输出至信息中心
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置NAT日志输出至信息中心 |
userlog nat syslog |
必选 缺省情况下,NAT日志输出至NAT日志服务器 |
· NAT日志输出到信息中心会占用设备的存储空间,所以,建议在日志量较小的情况下,使用该输出方向。
· NAT日志输出至信息中心时,NAT日志信息的优先级为informational,即作为设备的一般提示信息。
· 有关信息优先级及信息中心的详细介绍请参见“网络管理和监控配置指导”中的“信息中心”。
以UDP报文方式将NAT日志发送给NAT日志服务器时,可以配置三项参数:
· NAT日志服务器的IP地址和UDP端口号。如果不配置信息中心输出方向,也不指定日志服务器的地址,NAT日志就会无法正常输出。
· NAT日志报文的源IP地址。在日志服务器端,通过识别NAT日志的源IP地址,可以迅速定位日志信息的来源,建议使用Loopback接口地址作为日志报文的源IP地址。
· NAT日志报文版本号。输出的日志报文可以有多种版本,不同的版本使用的报文格式不同,目前设备支持版本1。
表1-14 配置NAT日志服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置NAT日志服务器的IP地址和UDP端口号(独立运行模式) |
userlog nat export slot slot-number host { ipv4-address | ipv6 ipv6-address } udp-port |
必选 |
设置NAT日志服务器的IP地址和UDP端口号(IRF模式) |
userlog nat export chassis chassis-number slot slot-number host { ipv4-address | ipv6 ipv6-address } udp-port |
|
设置承载NAT日志的UDP报文的源IP地址 |
userlog nat export source-ip ip-address |
可选 缺省情况下,承载NAT日志的UDP报文的源IP地址为发送该报文的接口的IP地址 |
设置NAT日志报文的版本号 |
userlog nat export version version-number |
可选 缺省情况下,NAT日志报文的版本号为1 |
· 当设备工作在独立运行模式时,通过指定slot参数,可以为不同的接口板指定不同的日志服务器,实现日志服务器的负载分担。
· 当设备工作在IRF模式时,通过指定chassis参数,可以为成员设备的不同接口板指定不同的日志服务器,实现日志服务器的负载分担。
· NAT日志服务器的IP地址必须是合法的IPv4或IPv6单播地址。
· 为避免与系统自定义的端口号冲突,建议用户使用1024以上的UDP端口作为日志服务器的UDP端口号。
因此,为了保护内部网络资源(主机或服务器)以及合理分配设备系统资源,需要制定相应的连接限制策略来对设备上建立的连接进行统计和限制。目前,设备支持的连接限制策略可通过限制用户发起的连接数、限制用户创建连接的速率以及限制用户建立连接所占用的带宽资源来实现。
表1-15 创建连接限制策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建连接限制策略,并进入连接限制策略视图 |
connection-limit policy policy-number |
必选 |
对于未指定具体连接限制规则的用户所建立的连接,将按照缺省的连接限制动作进行处理。
缺省连接限制动作和参数的涵义如下:
· 若缺省的连接限制动作为deny,则表示不对这些用户进行连接数统计和限制;
· 若缺省的连接限制动作为permit,则需按照缺省连接限制参数的配置来限制用户连接,即按照指定的连接数上限值来控制用户最大可建立的连接数,并在连接数下降到指定的下限值后允许新建连接。
需要注意的是,只有配置连接限制策略与NAT模块绑定之后,缺省的连接限制配置才能生效。关于连接限制策略与NAT模块绑定的配置请参见“4. 配置连接限制策略与NAT模块绑定”。
表1-16 配置缺省连接限制动作/参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入连接限制策略视图 |
connection-limit policy policy-number |
必选 |
设置缺省连接限制动作 |
connection-limit default action { deny | permit } |
可选 缺省情况下,连接限制动作为deny,表示不对用户连接进行统计和限制 |
设置缺省连接限制参数 |
connection-limit default amount upper-limit max-amount lower-limit min-amount |
可选 缺省情况下,upper-limit为512,lower-limi为256 |
可以根据ACL来限定用户范围,则对匹配ACL规则的用户连接数进行统计和限制。
同一个连接限制策略下可配置多种模式的连接限制规则,不同的连接限制模式对应不同的子规则范围。
连接数限制是指,当某类型的连接数达到上限值时,设备将不接受该类型的新建连接请求,直到设备上已有连接因老化而删除,使得当前该类型的连接数等于或者低于连接数下限后,才允许新建连接。
基于ACL的连接限制策略可支持以下三种类型的连接限制规则:
· per-destination:按目的地址方式统计和限制,即到同一个目的地址的连接数目受限。
· per-service:按服务方式统计和限制,即同一种服务(或应用)的连接数目受限。
· per-source:按源地址方式统计和限制,即同一个源地址发起的连接数目受限。
如果在一条规则中同时指定per-destination、per-service、per-source类型中的多个,则各种统计和限制类型组合生效。例如,同时指定per-destination和per-service类型,则表示对同一个目的地址的同一种服务的连接进行统计和限制。
表1-17 配置基于ACL的连接限制策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入连接限制策略视图 |
connection-limit policy policy-number |
必选 |
配置基于ACL的连接限制规则
|
limit limit-id acl acl-number [ { per-destination | per-service | per-source } * amount max-amount min-amount ] |
必选 |
· 在连接限制规则中未配置的参数,将采用缺省连接限制参数的配置。
· 连接限制规则按照规则编号从小到大的顺序进行匹配。
通过连接限制策略与NAT模块的绑定,将已配置的连接限制策略应用到NAT模块上,对相关的连接进行限制。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置连接限制策略与NAT模块绑定 |
nat connection-limit-policy policy-number |
必选 |
· 一个模块只能绑定一条策略。
· 只有在连接限制策略与NAT模块绑定后,缺省的连接限制配置才能生效。
在链路备份组网环境中,NAT设备的主接口和备份接口上均配置了地址转换,当主备链路发生切换时,若NAT设备已使能了NAT表项的老化功能,则可以立即将当前所有NAT表项的状态置为已老化,这样后续报文会使用切换后新接口上的NAT配置重新建立NAT表项,使得NAT流量快速切换到新的链路上。
表1-19 使能链路down时NAT表项老化功能
作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能接口链路down时NAT表项老化功能 |
nat link-down reset-session enable |
必选 缺省情况下,接口链路down时NAT表项老化功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示NAT配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除地址转换的统计信息。
表1-20 NAT显示和维护
操作 |
命令 |
显示NAT地址池的信息 |
display nat address-group [ group-number ] [ | { begin | exclude | include } regular-expression ] |
显示地址转换的有效时间 |
display nat aging-time [ | { begin | exclude | include } regular-expression ] |
显示所有的NAT配置信息 |
display nat all [ | { begin | exclude | include } regular-expression ] |
显示NAT模块创建的连接限制统计信息 |
display nat connection-limit [ source src-address { mask-length | mask } ] [ destination dst-address { mask-length | mask } ] [ destination-port { eq | gt | lt | neq | range } port-number ] [ vpn-instance vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
显示地址转换关联的配置信息 |
display nat bound [ | { begin | exclude | include } regular-expression ] |
显示DNS mapping的配置信息 |
display nat dns-map [ | { begin | exclude | include } regular-expression ] |
显示内部服务器的信息 |
display nat server [ | { begin | exclude | include } regular-expression ] |
显示静态配置的信息 |
display nat static [ | { begin | exclude | include } regular-expression ] |
显示指定单板上的NAT转换表项信息(独立运行模式) |
display nat session [ vpn-instance vpn-instance-name ] slot slot-number [ source { global global-address | inside inside-address } ] [ destination dst-address ] [ | { begin | exclude | include } regular-expression ] |
显示指定单板上的NAT转换表项信息(IRF模式) |
display nat session [ vpn-instance vpn-instance-name ] chassis chassis-number slot slot-number [ source { global global-address | inside inside-address } ] [ destination dst-address ] [ | { begin | exclude | include } regular-expression ] |
显示用户当前配置的连接限制策略 |
display connection-limit policy { policy-number | all } [ | { begin | exclude | include } regular-expression ] |
显示连接限制统计信息 |
display connection-limit statistics [ source src-address { mask-length | mask } ] [ destination dst-address { mask-length | mask } ] [ destination-port { eq | gt | lt | neq | range } port-number ] [ vpn-instance vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
显示NAT日志的配置信息 |
display nat log [ | { begin | exclude | include } regular-expression ] |
查看指定单板上输出到日志服务器的日志的配置和统计信息(独立运行模式) |
display userlog export slot slot-number [ | { begin | exclude | include } regular-expression ] |
查看指定单板上输出到日志服务器的日志的配置和统计信息(IRF模式) |
display userlog export chassis chassis-number slot slot-number [ | { begin | exclude | include } regular-expression ] |
清除指定单板上的NAT日志缓存中的记录(独立运行模式) |
reset userlog nat logbuffer slot slot-number |
清除指定单板上的NAT日志缓存中的记录(IRF模式) |
reset userlog nat logbuffer chassis chassis-number slot slot-number |
清除指定单板上的NAT日志的统计信息(独立运行模式) |
reset userlog nat export slot slot-number |
清除指定单板上的NAT日志的统计信息(IRF模式) |
reset userlog nat export chassis chassis-number slot slot-number |
清除指定单板上的内存中地址转换的映射表,释放动态分配的用于存放映射表的内存(独立运行模式) |
|
清除指定单板上的内存中地址转换的映射表,释放动态分配的用于存放映射表的内存(IRF模式) |
reset nat session chassis chassis-number slot slot-number |
清除NAT日志缓存区中的记录会造成NAT日志信息的丢失,正常情况下,建议不要进行清除操作。
缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP状态。
内部网络用户10.110.10.8/24使用公网地址202.38.1.100访问Internet。
图1-6 静态地址转换典型配置组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 配置一对一静态地址转换映射。
<Device> system-view
[Device] nat static 10.110.10.8 202.38.1.100
# 使配置的静态地址转换在接口 vlan-int20上生效。
[Device] interface Vlan-interface 20
[Device-Vlan-interface20] nat outbound static
[Device-Vlan-interface20] quit
一个公司拥有202.38.1.1/24至202.38.1.3/24三个公网IP地址,内部网址为10.110.0.0/16,需要实现如下功能:
· 内部网络中10.110.10.0/24网段的用户可以访问Internet,其它网段的用户不能访问Internet。使用的公网地址为202.38.1.2和202.38.1.3。
· 对源地址为10.110.10.100的用户按目的地址进行统计,限制用户连接数的上限值为1000,下限值为200,即要求与外部服务器建立的连接数不超过1000,不少于200。
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 配置IP地址池1,包括两个公网地址202.38.1.2和202.38.1.3。
<Device> system-view
[Device] nat address-group 1 202.38.1.2 202.38.1.3
# 配置访问控制列表2001,仅允许内部网络中10.110.10.0/24网段的用户可以访问Internet。
[Device] acl number 2001
[Device-acl-basic-2001] rule permit source 10.110.10.0 0.0.0.255
[Device-acl-basic-2001] rule deny
[Device-acl-basic-2001] quit
# 在出接口Vlan-interface20上配置ACL 2001与IP地址池1相关联。
[Device] interface Vlan-interface 20
[Device-Vlan-interface20] nat outbound 2001 address-group 1
[Device-Vlan-interface 20] quit
# 配置连接限制策略1,对源地址为10.110.10.100的用户按照目的地址进行统计,限制用户连接数的上限值为1000,下限值为200。
[Device] acl number 2002
[Device-acl-basic-2002] rule permit source 10.110.10.100 0.0.0.0
[Device-acl-basic-2002] rule deny
[Device-acl-basic-2002] quit
[Device] connection-limit policy 1
[Device-connection-limit-policy-1] limit 0 acl 2002 per-destination amount 1000 200
[Device-connection-limit-policy-1] quit
# 配置连接限制策略1与NAT模块绑定。
[Device] nat connection-limit-policy 1
某公司内部对外提供Web、FTP和SMTP服务,而且提供两台Web服务器。公司内部网址为10.110.0.0/16。其中,内部FTP服务器地址为10.110.10.3/16,内部Web服务器1的IP地址为10.110.10.1/16,内部Web服务器2的IP地址为10.110.10.2/16,内部SMTP服务器IP地址为10.110.10.4/16。公司拥有202.38.1.1/24至202.38.1.3/24三个IP地址。需要实现如下功能:
· 外部的主机可以访问内部的服务器。
· 选用202.38.1.1作为公司对外提供服务的IP地址,Web服务器2对外采用8080端口。
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 进入接口Vlan-interface20。
<Device> system-view
[Device] interface Vlan-interface 20
# 设置内部FTP服务器。
[Device-Vlan-interface20] nat server protocol tcp global 202.38.1.1 21 inside 10.110.10.3 ftp
# 设置内部Web服务器1。
[Device-Vlan-interface20] nat server protocol tcp global 202.38.1.1 80 inside 10.110.10.1 www
# 设置内部Web服务器2。
[Device-Vlan-interface20] nat server protocol tcp global 202.38.1.1 8080 inside 10.110.10.2 www
# 设置内部SMTP服务器。
[Device-Vlan-interface20] nat server protocol tcp global 202.38.1.1 smtp inside 10.110.10.4 smtp
[Device-Vlan-interface20] quit
某公司内部对外提供Web和FTP服务。公司内部网址为10.110.0.0/16。其中,Web服务器地址为10.110.10.1/16,FTP服务器地址为10.110.10.2/16。公司具有202.38.1.1/24至202.38.1.3/24三个合法的IP地址。另外公司在公网有一台DNS服务器,IP地址为202.38.1.4/24。需要实现如下功能:
· 选用202.38.1.2作为公司对外提供服务的IP地址。
· 公网用户可以通过域名或IP地址访问内部服务器。
· 私网用户可以通过域名访问内部服务器。
图1-9 NAT DNS mapping典型配置组网
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 进入VLAN接口 20。
<Device> system-view
[Device] interface Vlan-interface 20
# 配置内部Web服务器。
[Device-Vlan-interface20] nat server protocol tcp global 202.38.1.2 inside 10.110.10.1 www
# 配置内部FTP服务器。
[Device-Vlan-interface20] nat server protocol tcp global 202.38.1.2 inside 10.110.10.2 ftp
[Device-Vlan-interface20] quit
# 配置两条DNS mapping表项:Web服务器的域名www.server.com对应IP地址202.38.1.2;FTP服务器的域名ftp.server.com对应IP地址202.38.1.2。
[Device] nat dns-map domain www.server.com protocol tcp ip 202.38.1.2 port www
[Device] nat dns-map domain ftp.server.com protocol tcp ip 202.38.1.2 port ftp
[Device] quit
# 上述配置完成后,可以用display命令查看DNS mapping的配置情况。
<Device> display nat dns-map
NAT DNS mapping information:
There are currently 2 NAT DNS mapping(s)
Domain-name: www.server.com
Global-IP : 202.38.1.2
Global-port: 80(www)
Protocol : 6(TCP)
Domain-name: ftp.server.com
Global-IP : 202.38.1.2
Global-port: 21(ftp)
Protocol : 6(TCP)
私网Host A和公网Host B均可通过域名www.server.com访问私网内的Web服务器,以及通过域名ftp.server.com访问私网内的FTP服务器。
· 私网上的Host通过Device A访问公网上的设备Device B;
· Device A开启NAT转换功能,它对私网用户和公网设备之间往来的报文做NAT转换,并将NAT日志转化成系统日志送到信息中心;
· 通过查看信息中心的记录,实现对私网用户的监控。
图1-10 NAT日志输出到信息中心组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
下面只列出了与NAT日志相关的配置,各设备的IP地址及NAT网关NAT功能的配置略。
# 设置Device A的NAT日志输出到信息中心。
<DeviceA> system-view
[DeviceA] userlog nat syslog
# 在Device A上开启NAT日志功能。
[DeviceA] nat log enable
# 通过查看日志缓冲区监视私网用户的访问记录。
[DeviceA] quit
<DeviceA> dir
Directory of cf:/
0 -rw- 16850028 Aug 07 2009 04:02:42 mainpack.bin
1 drw- - Aug 07 2005 05:13:48 logfile
2 -rw- 1747 Aug 07 2009 04:05:38 vrpcfg.cfg
3 -rw- 524288 Aug 13 2009 01:27:40 basicbtm.bin
4 -rw- 524288 Aug 13 2009 01:27:40 extendbtm.bin
249852 KB total (232072 KB free)
File system type of cf: FAT32
<DeviceA> cd logfile
<DeviceA> more logfile.log
……略……
%@250005%Jul 7 04:20:04:72 2005 DeviceA USERLOG/7/NAT:
ICMP; 192.168.1.6:768--->1.1.1.1:12288; 2.2.2.2:768;
[2005/07/07 04:20:03-0000/00/00 00:00:00];
Operator 8: Data flow created
%@250006%Jul 7 04:20:10:72 2005 DeviceA USERLOG/7/NAT:
ICMP; 192.168.1.6:768--->1.1.1.1:12288; 2.2.2.2:768;
[2005/07/07 04:20:03-2005/07/07 04:20:09];
Operator 1: Normal over
%@250007%Jul 7 04:20:30:72 2005 DeviceA USERLOG/7/NAT:
ICMP; 192.168.1.6:768--->1.1.1.1:12288; 2.2.2.2:768;
[2005/07/07 04:20:29-0000/00/00 00:00:00];
Operator 8: Data flow created
……略……
日志文件中除了有NAT日志外,还有其他的系统日志。该举例里的NAT日志信息表示的具体含义如表1-21所示。
表1-21 NAT日志显示信息描述表
字段 |
描述 |
ICMP |
ICMP协议 |
192.168.1.6:768 |
转换前报文的源地址和源端口 |
1.1.1.1:12288 |
转换后报文的源地址和源端口 |
2.2.2.2:768 |
目的地址和目的端口 |
2005/07/07 04:20:03 2005/07/07 04:20:29 |
NAT会话创建时间(本例中的时间是设备的系统时间,当采用UDP报文方式输出日志记录时,在UDP报文中填写的是系统时间距格林威治时间1970年1月1日0时整的秒数,日志服务器再根据自己的系统时间设置转换后再输出) |
2005/07/07 04:20:09 0000/00/00 00:00:00 |
NAT会话的结束时间 0000/00/00 00:00:00表示结束时间不确定 |
Operator |
NAT日志创建的原因,包括: · Aged for reset or config-change表示配置改变或者手工删除会话时生成的日志; · Aged for no-pat of NAT表示no-pat会话老化时生成的日志; · Active data flow timeout表示NAT会话的持续时间超过流活跃时间时生成的日志 · Data flow created表示NAT会话创建时生成的日志; · Normal over表示会话老化时生成的日志 |
· 私网上的PC通过Device A访问公网上的设备Device B;
· Device A上配置NAT转换功能,它对私网用户和公网设备之间往来的报文做地址转换,并将NAT日志以UDP报文方式送往NAT日志服务器;
· NAT日志服务器运行XLog软件,查看收到的NAT日志信息。
图1-11 NAT日志输出到日志服务器组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
下面只列出了与NAT日志相关的配置,各设备的IP地址及NAT设备上的NAT配置略。
# 设置Device A的NAT日志输出到NAT日志服务器。
<DeviceA> system-view
[DeviceA] userlog nat export host 3.3.3.7 9021
# 设置Device A的NAT日志报文的源地址为9.9.9.9。
[DeviceA] userlog nat export source-ip 9.9.9.9
# 在Device A上开启NAT日志功能。
[DeviceA] nat log enable
在NAT日志/系统日志服务器上需要允许Xlog软件来查看收到的NAT日志信息。
故障排除:通过打开NAT的调试信息开关,根据设备上的调试信息,初步定位错误,然后使用其它命令作进一步的判断。调试时,注意观察地址转换后的源地址,要保证这个地址是希望转换的地址,否则可能会是地址池配置错误。同时要保证目的网络到地址池中地址段的路由可达。注意防火墙以及地址转换本身的访问控制列表对地址转换造成的影响,同时注意路由的配置。
故障排除:如果外部主机不能正常访问内部服务器,请检查是否是内部服务器主机的配置有错或路由器上对内部服务器的配置有错,如对内部服务器的IP地址指定错误等等。同时也有可能是防火墙禁止了外部主机对内部网络的访问,可以用display acl命令来查看。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!