07-NAT配置
本章节下载 (447.84 KB)
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应用。
(1) 内网用户主机(192.168.1.3)向外网服务器(1.1.1.2)发送的IP报文通过NAT设备。
(2) NAT设备查看报头内容,发现该报文是发往外网的,将其源IP地址字段的私网地址192.168.1.3转换成一个可在Internet上选路的公网地址20.1.1.1,并将该报文发送给外网服务器,同时在NAT设备的网络地址转换表中记录这一映射。
(3) 外网服务器给内网用户发送的应答报文(其初始目的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地址+端口号”与“公网IP地址+端口号”之间的转换。
图1-2描述了NAPT的基本原理。
图1-2 NAPT基本原理示意图
如图1-2所示,三个带有内部地址的数据报文到达NAT设备,其中报文1和报文2来自同一个内部地址但有不同的源端口号,报文1和报文3来自不同的内部地址但具有相同的源端口号。通过NAPT映射,三个数据报的源IP地址都被转换到同一个外部地址,但每个数据报都被赋予了不同的源端口号,因而仍保留了报文之间的区别。当各报文的回应报文到达时,NAT设备仍能够根据回应报文的目的IP地址和目的端口号来区别该报文应转发到的内部主机。
采用NAPT可以更加充分地利用IP地址资源,实现更多内部网络主机对外部网络的同时访问。
目前,NAPT支持两种不同的地址转换模式:
· Endpoint-Independent Mapping(不关心对端地址和端口转换模式)
该模式下,NAT设备通过建立三元组(源地址、源端口号、协议类型)表项来进行地址分配和报文过滤。即,只要是来自相同源地址和源端口号的报文,不论其目的地址是否相同,通过NAPT映射后,其源地址和源端口号都被转换为同一个外部地址和端口号,并且NAT设备允许外部网络的主机通过该转换后的地址和端口来访问这些内部网络的主机。这种模式可以很好得支持位于不同NAT设备之后的主机间进行互访。
· Address and Port-Dependent Mapping(关心对端地址和端口转换模式)
该模式下,NAT设备通过建立五元组(源地址、源端口号、协议类型、目的地址、目的端口号)表项为依据进行地址分配和报文过滤。即,对于来自相同源地址和源端口号的报文,若其目的地址和目的端口号不同,通过NAPT映射后,相同的源地址和源端口号将被转换为不同的外部地址和端口号,并且NAT设备只允许这些目的地址对应的外部网络的主机才可以通过该转换后的地址和端口来访问这些内部网络的主机。这种模式安全性好,但是不便于位于不同NAT设备之后的主机间进行互访。
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,文件传输协议)、PPTP(Point-to-Point Tunneling Protocol,点到点隧道协议)、DNS(Domain Name System,域名系统)、ILS(Internet Locator Service,Internet定位服务)、H.323、SIP(Session Initiation Protocol,会话初始协议)、NBT(NetBIOS over TCP/IP,基于TCP/IP的网络基本输入输出系统)等。
NAT多实例允许分属于不同MPLS VPN的用户通过同一个出口访问外部网络,同时允许分属于不同MPLS VPN的用户使用相同的私网地址。当MPLS VPN用户访问外部网络时,地址转换将内部网络主机的IP地址和端口替换为设备的外部网络地址和端口,同时还记录了用户的MPLS VPN信息(如协议类型和路由标识符RD等)。回应报文到达时,地址转换将外部网络地址和端口还原为内部网络主机的IP地址和端口,同时可得知是哪一个MPLS VPN用户的访问。
同时,地址转换支持内部服务器的多实例,给外部提供访问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配置,会因为配置顺序的不一致,导致相同的配置产生不同的处理结果。
通过NAT设备上静态建立或动态生成的地址映射关系,实现内部网络与外部网络IP地址的转换。通常,我们按照地址映射关系的产生方式将地址转换分为动态地址转换和静态地址转换两类:
· 静态地址转换
外部网络和内部网络之间的地址映射关系在配置中确定。适用于内部网络与外部网络之间的少量固定访问需求。
· 动态地址转换
外部网络和内部网络之间的地址映射关系由报文动态决定。通过配置访问控制列表和地址池(或接口地址)的关联,由“具有某些特征的IP报文”挑选使用“地址池中地址(或接口地址)”,从而建立动态地址映射关系。适用于内部网络有大量用户需要访问外部网络的需求。这种情况下,关联中指定的地址池资源由内网报文按需从中选择使用,访问外网的会话结束之后该资源便释放给其它用户。
无论静态地址转换还是动态地址转换,都可以支持NAT多实例的配置。只要指定地址所属的vpn-instance-name,即可以实现对MPLS VPN的支持。
配置静态地址转换时,需要首先在系统视图下配置静态地址转换映射,然后在接口下使该转换生效。
静态地址转换映射支持两种方式:一对一静态转换映射、网段对网段静态转换映射。
实现一个内部私有网络地址到一个外部公有网络地址的转换。
表1-2 配置一对一静态地址转换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置一对一静态地址转换映射 |
nat static [ acl-number ] local-ip [ vpn-instance local-name ] global-ip [ vpn-instance global-name ] |
必选 |
进入接口视图 |
interface interface-type interface-number |
- |
使配置的NAT静态转换在接口上生效 |
nat outbound static [ track vrrp virtual-router-id ] |
必选 |
实现一个内部私有网络到一个外部公有网络的地址转换。
表1-3 配置网段对网段静态地址转换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置网段对网段静态地址转换映射 |
nat static [ acl-number ] net-to-net local-start-address local-end-address global global-network { netmask-length | netmask } |
必选 |
进入接口视图 |
interface interface-type interface-number |
- |
使配置的NAT静态转换在接口上生效 |
nat outbound static [ track vrrp virtual-router-id ] |
必选 |
通过在接口上配置访问控制列表和地址池(或接口地址)的关联即可实现动态地址转换。
· 若直接使用接口的IP地址作为转换后的地址,则配置Easy IP功能来实现动态地址转换。
· 若选择使用地址池中的地址作为转换后的地址,则根据地址转换过程中是否使用端口信息可将动态地址转换分为NO-PAT和NAPT两种方式:NO-PAT为不使用TCP/UDP端口信息实现的多对多地址转换;NAPT为使用TCP/UDP端口信息实现的多对一地址转换。
· 配置控制地址转换范围的访问控制列表。
· 确定是否直接使用接口的IP地址作为转换后的报文源地址。
· 配置根据实际网络情况,合理规划可用于地址转换的公网IP地址池。
· 确定地址转换过程中是否使用端口信息。
访问控制列表的配置请参见“ACL和QoS配置指导”中的“ACL”。
用于地址转换的IP地址池有两种配置方式,一种是直接定义一个包含一段连续地址的地址池,另外一种是配置可包含多段连续地址的地址组。一个地址组中可以添加多个地址组成员,每个地址组成员都可以指定一段连续的地址池,因此通过配置地址组,可以指定多段非连续的IP地址。
动态地址转换的过程中,NAT设备将会从配置的地址池中挑选一个IP地址做为转换后的报文源地址。
表1-4 定义地址池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
定义一个地址池 |
nat address-group group-number start-address end-address |
必选 |
表1-5 配置地址组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个地址组,并进入地址组视图 |
nat address-group group-number |
必选 |
添加地址组成员 |
address start-address end-address |
必选 |
配置地址池地址的端口范围 |
port-range port-range-start port-range-end |
可选 缺省情况下,地址池地址的端口范围为1~65535 |
· 不同地址池中定义的IP地址段之间不允许重叠。
· 地址组成员的IP地址段不能与其它地址池或者地址组成员的IP地址段重叠。
通过配置Easy IP功能,实现直接使用接口的IP地址作为转换后的报文源地址。
表1-6 配置Easy IP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置访问控制列表和地址池地址的端口范围关联,实现Easy IP功能 |
nat outbound [ acl-number ] [ port-range port-range-start port-range-end ] [ track vrrp virtual-router-id ] |
必选 |
通过配置访问控制列表和地址池(或接口地址)的关联,将与访问控制列表匹配的报文的源地址映射为地址池中的地址(或接口地址),且不使用端口信息。
表1-7 配置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 [ reversible ] [ track vrrp virtual-router-id ] |
必选 |
通过配置访问控制列表和地址池(或接口地址)的关联,将与访问控制列表匹配的报文的源地址映射为地址池中的地址(或接口地址),且使用端口信息。
通过配置内部服务器,可以将相应的外部地址和端口映射到内部服务器的私有地址和端口上,从而使外部网络用户能够访问内部服务器。内部服务器与外部网络的映射表是通过在接口上配置nat server命令生成的。
配置内部服务器时需要配置的信息包括:外部网络的信息(外部网络地址global-address、外部网络端口global-port)、内部网络的信息(内部网络地址local-address、内部网络端口local-port)以及服务协议类型。根据配置的内外部网络信息的不同,可以将内部服务器分为普通内部服务器和负载分担内部服务器。
内部服务器以及对外公布的外网地址均可以支持MPLS L3VPN。当内部服务器位于MPLS L3VPN时,还应指定所属的vpn-instance-name。如果不设置该值,表示内部服务器不属于任何一个VPN。
配置普通的内部服务器是将内网服务器的地址和端口(local-address、local-port)映射为外网地址和端口(global-address、global-port),允许外部网络中的主机访问位于内网的服务器。
表1-9 配置普通内部服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置普通内部服务器 |
nat server index protocol pro-type global { global-address global-port1 global-port2 inside local-address1 local-address2 local-port [ vpn-instance local-name ] [ track vrrp virtual-router-id ] | current-interface [ global-port ] inside local-address [ local-port ] [ vpn-instance local-name ] [ remote-host host-address ] [ lease-duration lease-time ] [ description string ] } |
二者必选其一 |
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 ] [ track vrrp virtual-router-id ] |
· 目前设备支持引用接口地址作为内部服务器的外网地址,即可配置Easy IP方式的内部服务器。可以指定的接口只能是Loopback接口,且该Loopback接口必须是已存在的。
· 配置Easy IP方式的内部服务器时,如果指定的接口未配置地址,则对应的内部服务器的配置不生效。
通过配置DNS mapping,可以实现私网用户通过域名(DNS服务器在公网)访问位于同一私网的内部服务器的功能。
表1-10 配置DNS mapping
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置一条域名到内部服务器的映射 |
nat dns-map domain domain-name protocol pro-type ip global-ip port global-port |
必选 |
该配置用于设置各协议地址转换表项的有效时间。
表1-11 配置地址转换有效时间
操作 |
命令 |
说明 |
进入系统视图 |
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-12 配置NAT ALG功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能地址转换应用网关功能 |
nat alg { all | dns | ftp | h323 | ils | nbt | pptp | sip } |
可选 缺省情况下,地址转换应用网关功能处于使能状态 |
NAT日志是NAT设备在进行NAT转换时生成的一种系统信息。该信息包括报文的源IP地址、源端口、目的IP地址、目的端口、转换后的源IP地址、转换后的源端口以及用户执行的操作等。它只用于记录内网用户访问外部网络的情况,不记录外部用户对内网服务器的访问。
内网用户通过NAT设备访问外部网络时,多个用户共用一个外网地址,从而无法定位访问网络的用户。利用日志功能可以实时跟踪、记录内网用户访问外部网络的情况,增强网络的安全性。
表1-13 开启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-14 配置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-15 配置NAT日志服务器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置NAT日志服务器的IP地址和UDP端口号 |
userlog nat export 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 |
· NAT日志服务器的IP地址必须是合法的IPv4或IPv6单播地址。
· 为避免与系统自定义的端口号冲突,建议用户使用1024以上的UDP端口作为日志服务器的UDP端口号。
NAT连接限制功能的配置介绍请参见平台“安全配置指导”中的“连接限制”。
在链路备份组网环境中,NAT设备的主接口和备份接口上均配置了地址转换,当主备链路发生切换时,若NAT设备已使能了NAT表项的老化功能,则可以立即将当前所有NAT表项的状态置为已老化,这样后续报文会使用切换后新接口上的NAT配置重新建立NAT表项,使得已有的NAT流量快速切换到新的链路上。
表1-16 使能链路down时NAT表项老化功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能接口链路down时NAT表项老化功能 |
nat link-down reset-session enable |
必选 缺省情况下,接口链路down时NAT表项老化功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示NAT配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除地址转换的统计信息。
表1-17 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 ] |
显示地址转换关联的配置信息 |
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 ] [ source { global global-address | inside inside-address } ] [ destination dst-address ] [ | { begin | exclude | include } regular-expression ] |
显示NAT的统计信息 |
display nat statistics [ | { begin | exclude | include } regular-expression ] |
显示NAT日志的配置信息 |
display nat log [ | { begin | exclude | include } regular-expression ] |
查看输出到日志服务器的日志的配置和统计信息 |
display userlog export [ | { begin | exclude | include } regular-expression ] |
清除NAT日志缓存中的记录 |
reset userlog nat logbuffer |
清除NAT日志的统计信息 |
reset userlog nat export |
清除内存中地址转换的映射表,释放动态分配的用于存放映射表的内存 |
清除NAT日志缓存区中的记录会造成NAT日志信息的丢失,正常情况下,建议不要进行清除操作。
内部网络用户10.110.10.8/24使用公网地址202.38.1.100访问Internet。
图1-6 静态地址转换典型配置组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 配置一对一静态地址转换映射。
<Router> system-view
[Router] nat static 10.110.10.8 202.38.1.100
# 使配置的静态地址转换在接口GigabitEthernet1/2上生效。
[Router] interface gigabitethernet 1/2
[Router-GigabitEthernet1/2] nat outbound static
[Router-GigabitEthernet1/2] 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。
<Router> system-view
[Router] nat address-group 1 202.38.1.2 202.38.1.3
# 配置访问控制列表2001,仅允许内部网络中10.110.10.0/24网段的用户可以访问Internet。
[Router] acl number 2001
[Router-acl-basic-2001] rule permit source 10.110.10.0 0.0.0.255
[Router-acl-basic-2001] rule deny
[Router-acl-basic-2001] quit
# 在出接口GigabitEthernet1/2上配置ACL 2001与IP地址池1相关联,并实现NAPT。
[Router] interface gigabitethernet 1/2
[Router-GigabitEthernet1/2] nat outbound 2001 address-group 1
[Router-GigabitEthernet1/2] quit
# 配置连接限制策略1,对源地址为10.110.10.100的用户按照目的地址进行统计,限制用户连接数的上限值为1000,下限值为200。
[Router] acl number 2002
[Router-acl-basic-2002] rule permit source 10.110.10.100 0.0.0.0
[Router-acl-basic-2002] rule deny
[Router-acl-basic-2002] quit
[Router] connection-limit policy 1
[Router-connection-limit-policy-1] limit 0 acl 2002 per-destination amount 1000 200
[Router-connection-limit-policy-1] quit
# 配置连接限制策略1与NAT模块绑定。
[Router] nat connection-limit-policy 1
一个公司拥有202.38.1.1/24至202.38.1.3/24三个公网IP地址,内部网址为10.110.0.0/16。通过配置NAT使得仅内部网络中10.110.10.0/24网段的用户可以访问Internet。
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 配置IP地址池1,包括两个公网地址202.38.1.2和202.38.1.3。
<Router> system-view
[Router] nat address-group 1 202.38.1.2 202.38.1.3
# 配置访问控制列表2001,仅允许内部网络中10.110.10.0/24网段的用户可以访问Internet。
[Router] acl number 2001
[Router-acl-basic-2001] rule permit source 10.110.10.0 0.0.0.255
[Router-acl-basic-2001] rule deny
[Router-acl-basic-2001] quit
# 在出接口GigabitEthernet1/2上配置ACL 2001与IP地址池1相关联,并实现NAPT。
[Router] interface gigabitethernet 1/2
[Router-GigabitEthernet1/2] nat outbound 2001 address-group 1
[Router-GigabitEthernet1/2] quit
某公司内部对外提供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地址,具体配置过程略。
# 进入接口GigabitEthernet1/2。
<Router> system-view
[Router] interface gigabitethernet 1/2
# 设置内部FTP服务器。
[Router-GigabitEthernet1/2] nat server protocol tcp global 202.38.1.1 21 inside 10.110.10.3 ftp
# 设置内部Web服务器1。
[Router-GigabitEthernet1/2] nat server protocol tcp global 202.38.1.1 80 inside 10.110.10.1 www
# 设置内部Web服务器2。
[Router-GigabitEthernet1/2] nat server protocol tcp global 202.38.1.1 8080 inside 10.110.10.2 www
# 设置内部SMTP服务器。
[Router-GigabitEthernet1/2] nat server protocol tcp global 202.38.1.1 smtp inside 10.110.10.4 smtp
[Router-GigabitEthernet1/2] 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-10 NAT DNS mapping典型配置组网
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 进入接口GigabitEthernet1/2。
<Router> system-view
[Router] interface gigabitethernet 1/2
# 配置内部Web服务器。
[Router-GigabitEthernet1/2] nat server protocol tcp global 202.38.1.2 inside 10.110.10.1 www
# 配置内部FTP服务器。
[Router-GigabitEthernet1/2] nat server protocol tcp global 202.38.1.2 inside 10.110.10.2 ftp
[Router-GigabitEthernet1/2] quit
# 配置两条DNS mapping表项:Web服务器的域名www.server.com对应IP地址202.38.1.2;FTP服务器的域名ftp.server.com对应IP地址202.38.1.2。
[Router] nat dns-map domain www.server.com protocol tcp ip 202.38.1.2 port www
[Router] nat dns-map domain ftp.server.com protocol tcp ip 202.38.1.2 port ftp
[Router] quit
# 上述配置完成后,可以用display命令查看DNS mapping的配置情况。
<Router> 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日志转化成系统日志送到信息中心;
· 通过查看信息中心的记录,实现对私网用户的监控。
图1-11 NAT日志输出到信息中心组网图
下面只列出了与NAT日志相关的配置,各设备的IP地址及NAT设备NAT功能的配置略。
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 设置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-18所示。
表1-18 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-12 NAT日志输出到日志服务器组网图
下面只列出了与NAT日志相关的配置,各设备的IP地址及NAT设备上的NAT配置略。
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 设置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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!