09-NAT配置指导
本章节下载: 09-NAT配置指导 (398.71 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设备。
· NAT设备查看报头内容,发现该报文是发往外网的,将其源IP地址字段的私网地址92.168.1.3转换成一个可在Internet上选路的公网地址20.1.1.1,并将该报文发送给外网服务器,同时在NAT设备的网络地址转换表中记录这一映射。
(2) 外网服务器给内网用户发送的应答报文(其初始目的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地址属于禁止访问外部网络的内部主机,它将不进行地址转换。另外,也希望只有指定的公网地址才可用于地址转换。
设备可以NAT规则的匹配条件和NAT地址池来对地址转换进行控制。
· 匹配条件可以有效地控制地址转换的使用范围,只有满足匹配条件的数据报文才可以进行地址转换。
· 地址池是用于地址转换的一些连续的公网IP地址的集合,它可以有效地控制公网地址的使用。用户可根据自己拥有的合法IP地址数目、内部网络主机数目以及实际应用情况,定义合适的地址池。在地址转换的过程中,NAT设备将会从地址池中挑选一个IP地址作为数据报文转换后的源IP地址。
通过创建并执行NAT规则来实现NAT功能。NAT规则有三类,分别为源NAT规则、目的NAT规则和静态NAT规则。源NAT转换源IP地址,从而隐藏内部IP地址或者分享有限的IP地址;目的NAT转换目的IP地址,通常是将受保护的内部服务器的IP地址转换成公网IP地址;静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。
NAT日志是NAT设备在进行NAT转换时生成的一种系统信息。该信息包括报文的源IP地址、源端口、目的IP地址、目的端口、转换后的IP地址、转换后端口信息、NAT转换类型等。利用NAT日志功能可以实时跟踪、记录内网、外部用户互访网络的情况,增强网络的安全性。
表1-1 NAT配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置地址转换 |
配置源NAT |
三者必选其一 |
|
配置目的NAT |
|||
配置静态NAT |
|||
配置NAT ALG功能 |
可选 |
||
配置NAT地址池 |
可选 |
接口下的NAT相关配置改变时,为保证连接的稳定性,建议用户在完成所有NAT相关的配置之后,保存配置并重启设备(或通过命令clear ip connection all手工清除流表),以避免可能会产生的问题。这些问题主要包括:NAT相关的配置删除后,已建立的连接仍然可以进行地址转换处理;在连接过程中进行NAT配置,会因为配置顺序的不一致,导致相同的配置产生不同的处理结果。
· 确定是否直接使用接口的IP地址作为转换后的报文源地址。如果否的话,需要根据实际网络情况,合理规划可用于地址转换的公网IP地址池。
· 根据实际网络情况,配置源NAT转换的规则的匹配条件:源、目的IP地址对象、服务对象(具体配置见对象管理章节)。
源地址转换即内网地址向外访问时,发起访问的内网IP地址转换为指定的IP地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网的多部主机可以通过一个或者多个有效的公网IP地址访问外部网络。具体配置如表1-2所示。
命令 |
说明 |
|
进入系统视图 |
system-view |
必选 |
配置源NAT转换规则 |
ip nat source interface-name{source-addr | any}{destination-addr| any} service {pool|interface-name}[ log ][ id ] |
必选 |
· 确定是否需要做端口映射,如果需要,则参见端口映射的配置。
· 根据实际网络情况,配置目的NAT转换的规则的匹配条件:源、目的IP地址对象、服务对象(具体配置见对象管理章节)。
· 需要根据实际网络情况,配置可用于地址转换的内部服务器IP地址池。
目的NAT多用于外部网络到内部服务器的访问,内部服务器可使用保留IP地址。将外部主机访问设定好的全局地址的数据包的目的地址替换成内部主机的地址,也就是常见的虚拟服务器,可对转换业务进行端口映射。这样外部主机可以访问内部的主机,但内部主机无法主动访问外部主机。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
必选 |
配置目的NAT转换规则 |
ip nat destinationinterface-name{ ip-address | any}{ ip-address| any } servicepool[ log ] [ id ] |
必选 |
表1-4 配置目的NAT端口映射
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
必选 |
配置目的NAT端口映射 |
ip nat destination interface-name{ ip-address | any} {ip-address| any } servicepool server port-num[ log ][ id ] |
必选 |
外部网络和内部网络之间的地址映射关系在配置中确定。适用于内部网络与外部网络之间的少量固定访问需求。支持一对一的转换方式,即实现一个内部私网地址到一个外部公网地址的转换。具体配置如表1-5所示。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态NAT |
ip nat static interface-name global-addr local-addr[ id ] |
必选 |
NAT64转换,完成IPv6网络主机对IPv4网络主机访问的地址转换。需要在设备上配置收包接口、转换前目的IPv6地址前缀、转换后源IPv4地址范围。具体配置如下表所示。
表1-6 配置NAT64
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置添加NAT64转换策略 |
ip nat64 interface INTERFACE_NAME prefix X:X::X:X/M trans-to A.B.C.D A.B.C.D [ID] |
INTERFACE_NAME:网络接口,只处理指定接口的IPv6报文。 Prefix:IPv6地址前缀,只对指定前缀的IPv6地址报文进行转换。 X:X::X:X/M :IPv6地址前缀。 A.B.C.D:IPv4地址范围起始和结束地址,设备从地址范围中取IPv4地址替代IPv6源地址发起对IPv4服务器的访问。 |
配置NAT64日志使能 |
ip nat64 <1-65535> log { enable | disable } |
可选。 <1-65535>:NAT64转换策略ID。 log:NAT转换策略日志记录。 enable:使能。 disable:关闭。 |
添加NAT64描述 |
description desc |
可选 |
NAT46转换,完成IPv4网络主机对IPv6网络主机访问的地址转换,需要在设备上配置收包接口、转换前目的IPv6地址前缀、转换后源IPv4地址范围。具体配置如下表所示。
表1-7 配置NAT46
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置添加NAT46转换策略 |
ip nat46 interface interface_name A.B.C.D trans-to X:X::X:X src prefix X:X::X:X/M [ <1-65535> ] |
INTERFACE_NAME:网络接口,只处理指定接口的IPv6报文。 X:X::X:X:IPv6主机地址。 A.B.C.D: IPv6主机映射到IPv4网络中的地址。 prefix:IPv6地址前缀,设备使用地址前缀的IPv6地址加IPv4会话源地址生成IPv6地址发起对内网IPv6主机发起连接。 X:X::X:X/M: IPv6地址前缀。 <1-65535>:NAT46转换策略ID。 |
配置NAT64日志使能 |
ip nat46<1-65535> log { enable | disable } |
可选。 <1-65535>:NAT46转换策略ID。 log:NAT转换策略日志记录。 enable:使能。 disable:关闭。 |
添加NAT64描述 |
description desc |
- |
显示NAT46转换会话状态 |
display nat46 translation |
- |
开启或者关闭快速匹配维度 |
nat-policy (nat46 | nat64) accelerate ( all | enable|if-in|dip) (open|close) |
all:所有。 enable:使能。 if_in:指定用例接口。 dip:接口ip(ipv4或ipv6)。 open:开启。 close:关闭。 |
指定快速匹配的策略个数阈值 |
nat-policy (nat64|nat46) critical <0-1000> |
<0-1000>:配置条目; 默认20条。 |
显示策略的快速匹配信息 |
display nat-policy (nat64|nat46) accelerate |
- |
指定用例的开关 |
set { nat46 | nat64 } enable |
- |
指定用例的接口 |
set { nat46 | nat64 } if-in interface_name |
- |
指定NAT46用例的目的IP |
set { nat46 | nat64 } dip { A.B.C.D | X:X::X:X } |
- |
NAT66的主要功能如下:
(1) 源地址转换
将满足匹配条件的报文的源ipv6地址转换成配置的ipv6地址。主要用于局域网上网使用,同时可以隐藏本地网络拓扑结构,保证本地网络的安全运行。
(2) 目的地址转换
将满足匹配条件的报文的目的地址和端口转换成配置的目的地址和端口。主要用于将内网ipv6服务器地址和端口映射成公网ipv6地址和端口,当转换后的地址为多个的时候,可以实现简单的服务器负载分担的功能。
(3) 静态地址转换
将局部单播地址一对一的转换为全球单播地址。
(4) ipv6地址池
供NAT66源地址转换和目的地址策略转换引用,配置转换后的地址范围。
NAT66的具体配置如下表所示。
操作 |
命令 |
说明 |
配置源NAT 规则 |
ip nat6 source interface_name source destination server { { POOL | interface } [ log ] | no_trans } [ id ] |
- |
配置目的NAT规则 |
ip nat6 destination interface_name source destination server { POOL [ log | service <1-65535> ] | no_trans } [ id ] |
- |
配置静态地址转换 |
ip nat6 static interface_name X:X::X:X X:X::X:X |
- |
配置IPv6 debug开关 |
debug ipv6 nat |
- |
创建NAT地址池 |
ip nat6 pool NAME |
- |
添加IPv6地址范围 |
ipv6 address X:X::X:X X:X::X:X |
- |
在应用层协议中,有很多协议都包含多通道的信息,比如多媒体协议(H.323、SIP等)、FTP、TFTP等。这种多通道的应用需要首先在控制通道中对后续数据通道的地址和端口进行协商,然后根据协商结果创建多个数据通道连接。在NAT的实际应用过程中,NAT仅对网络层报文的报文头进行IP地址的识别和转换,对于应用层协议协商过程中报文载荷携带的地址信息则无法进行识别和转换,因此在有NAT处理的组网方案中,NAT利用ALG技术可以对多通道协议进行应用层的报文信息的解析和地址转换,保证应用层上通信的正确性。具体配置如表1-8所示。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置NAT ALG |
alg{ ftp | h323 | pptp | sip | tftp } |
必选 |
地址转换的过程中,NAT设备将会从配置的地址池中挑选一个IP地址作为转换后的报文源地址或者目的地址。每个地址池里可以指定多段非连续的IP地址。具体地址池的配置如表1-9所示。
表1-9 配置NAT地址池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建NAT地址池 |
ip nat pool pool-name |
必选 |
地址池中添加地址段 |
ip address start-ip-addr end-ip-addr |
必选 |
在完成上述配置后,在任意视图下执行display命令显示NAT的配置情况。
表1-10 NAT显示和维护
操作 |
命令 |
NAT 配置显示 |
display running-config nat |
内网有一台服务器对外提供服务,服务器的内网地址为192.168.0.3,映射的公网地址为202.118.3.1。
图1-2 配置静态NAT组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
# 配置静态地址转换映射。
host>
host>enable
host# configure terminal
host(config)# ip nat static ge0 192.168.0.3 202.118.3.1
host(config)#exit
(1) 通过执行display running-confignat命令来验证配置.
host# display running-config nat
ip nat static ge0 192.168.0.3 202.118.3.1 1
!
(2) 网关设备和链路均正常工作时,验证局域网内主机是否可以与外部网络通信
设备作为网关,内网用户通过设备访问外网资源。内网地址为192.168.0.0/24网段,公网地址为202.118.3.1。源NAT转换后的地址是202.118.3.1-202.118.3.3,组网如图1-3。
图1-3 配置源NAT组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
#创建一个地址对象。
host>
host>en
host# configure terminal
host(config)# address inside-net
host (config-address)#ip subnet 192.168.0.0/24
host (config-address)#exit
# 配置一个地址池。
host(config)#ipnat pool pub-pool
host(ip-nat-pool)#ip address 202.118.3.1 202.118.3.3
host(ip-nat-pool)#exit
host (config)#
# 配置源NAT规则。
host(config)# ip nat source ge0 inside-net any any pub-pool
host(config)#exit
(1) 通过执行display running-config nat命令来验证配置.
host# display running-config nat
ip nat pool pub-pool
ip address 202.118.3.1 202.118.3.3
!
ip nat source ge0inside-net any any pub-pool 1
!
(2) 网关设备和链路均正常工作时,验证局域网内主机是否可以与外部网络通信
在IP地址为192.168.0.3的PC上ping www.baidu.com,能ping通。
内网有一台服务器对外提供HTTP服务,内网地址为192.168.0.3,服务端口为tcp 80,对外开的地址为202.118.3.1,对外开放的服务端口为tcp 8080,组网如图1-4
图1-4 配置目的NAT组网图
# 按照组网图配置各接口的IP地址,具体配置过程略。
#创建一个地址对象。
host>
host>en
host# configure terminal
host(config)# address http-pub
host(config-address)#ip address 202.118.3.1
host(config-address)#exit
# 配置一个服务对象。
host(config)#service http8080
host(config-service)# tcp dst-port 8080 8080 src-port 1 65535
host(config-service)#exit
host(config)#
# 配置一个地址池。
host(config)#ipnat pool web-server
host(ip-nat-pool)#ip address 192.168.0.3 192.168.0.3
host(ip-nat-pool)# exit
# 配置目地NAT规则。
host(config)# ip nat destination ge0 any http-pub http8080 web-server
host(config)#exit
(1) 通过执行display running-config nat命令来验证配置。
host# display running-config nat
ip nat pool pub-pool
ip address 192.168.0.3 192.168.0.3
!
Ip nat destination ge0 any http-pub http8080 web-server1
!
(2) 网关设备和链路均正常工作时,验证局域网内主机是否可以与外部网络通信。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!