华为NAT转换


我拿NE系列的路由器给你举例子.
1.先建立NAT地址池,这个池子里就是SP给你的公网地址,对应你的192的地址.

#
nat address-group 1 210.75.198.31 210.75.198.36
#

注:可以定义多个地址池

2.在连接内网的接口上定义私有地址段.

interface Ethernet4/2/0
ip address 210.75.198.1 255.255.255.0
nat outbound 2001 address-group 2 (这里是在做NAT时附加的ACL表,用来控制内部什么地址能被影射,什么地址可以用什么服务之类的.)

nat server protocol tcp global 210.75.198.185 www inside 10.11.110.14 www
nat server protocol tcp global 210.75.198.184 www inside 10.11.110.13 www
nat server protocol tcp global 210.75.198.153 www inside 10.11.105.83 www
nat server protocol tcp global 210.75.198.70 www inside 10.11.2.93 www

上面这些就是对应公网地址的私有地址. CISCO的要分outside inside 华为的不用.
1.1 NAT转换的应用需求

当INTERNET世界刚问世时,人们设计了IP地址(IPv4)分配方案:采用32比

特长度来标识1个IP地址。理论上,有2^32=4,294,967,296个地址空间可供分

配。但实际上由于出于管理考虑,IP地址被划分为不同的类别(A类、B类、

C类)按使用者网络规模的大小分给各个机构和组织。由于这些根据类别划分

的IP地址是成段分配的,使用中存在极大的浪费,申请新的IP地址网段也越

来越困难。在RFC1918中,设计采用私网地址(见下)的解决方案来解决IP地

址缺乏的问题。

10.0.0.0 - 10.255.255.255 (10/8 prefix)

172.16.0.0 - 172.31.255.255 (172.16/12 prefix)

192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
某个组织可以不需要申请,根据内部网络的规模大小采用私网地址网段分配

给 内 部 网 络 , 满 足 内 部 网 络 互 连 的 需 求 。 如 果 需 要 访 问 外 部 网 络

( INTERNET ) , 则在 网 络 出 口 路 由 器 上 采 用 NAT( Network Address 

Translate 网络地址转换):在NAT出口路由器上维护一张NAT地址转换表,

将内部网络到外部网络的IP包的源地址进行私网地址到公网地址的转换(对

返回的IP包进行类似的转换)。这样,由于同时需要访问外部网络的主机毕

竟是少数,只需要在NAT出口路由器上分配少量公网地址即可满足内网访问外

网的互连需求。

以上即是NAT的基本思想和最初应用: 在企业网内部使用私有IP地址,在企

业网的边缘,把这些私有IP地址转换为公网唯一IP地址。随着网络技术的发

展,NAT在不同的方面也显示出其应用价值:


1、为解决IPv4网络地址匮乏的难题

,有人提出IPV6的解决方案。但由于

INTERNET的IPv4地址分配方案已经广为采用,以前的路由器等网络互联设备

都采用IPv4,IPv6要想替代已经非常困难。而NAT可以较好解决IPv4的网络地



2、从INTERNET上进行对政府、企业的网络攻击日益频繁。采用NAT可以有效

地将内部网络地址对外隐藏,在NAT出口路由器上实施安全措施的机制将网络

安全配置工作的难度减小。
3、许多企业采用RFC1918的私网地址方案,存在重复使用相同私网IP地址的

问题。某种情况下两个企业的内部网络需要合并成一个网络,就存在地址重

叠问题。这时,需要重新规划IP地址,而有时这个工作在短时间内难以实施。

这时,可以采用在两个内部网络的出口路由器上都配置NAT。在某个内部网络

出口路由器上将另一个网络的主机IP地址的映射提供给内部网络的主机,内

部网络的主机访问这个映射即可通过NAT路由器转换目的IP地址、源IP地址到

达另一个网络,反之亦然。
1.2 NAT转换的类型

有四种NAT转换模型可以涵盖当前NAT的基本应用。

1、静态转换(Static NAT)

在路由器上手工配置私有IP地址和公网IP地址的对应关系,一经配置,转换

表永久存在。明显的例子是NAT路由器上配置外网用户访问内网的服务器:内

网服务器依然使用私网地址,在NAT路由器上,分配一个公网地址并配置私网

地址/公网地址的转换表,对外提供公网IP地址给外部网络用户访问。
命令如下:

nat server protocol tcp global 202.110.10.10 8080 inside 10.110.10.10 www

对外提供202.110.10.10的公网IP地址供外网用户访问,提供TCP连接的端口号为

8080。在NAT路由器上,将外部访问IP包的目的地址重新定向为10.110.10.10,

端口号转换为内网服务器提供的www服务端口号。

NAT转换表:

202.110.10.10 8080 ---> 10.110.10.10 80 (www)
2、动态转换(Dynamic NAT)
路由器上保留一个合法地址列表,每当有转换需求的时候,从列表中选择一

个进行转换。注意:动态转换依然是一对一的。

1)由于从列表中选择,每次转换采用的IP地址并不一定是同一个;

2)合法地址被采用后,其他的转换需求不能再使用这个合法IP。
3、复用转换(Overloading NAT)

在动态转换中,每个合法的IP地址只能在转换表中使用一次,在内部网络主

机访问外部需求增多的情况下,合法地址列表中的IP地址会很快不够

用。这

时,可以利用上层协议标识,例如利用传输层TCP/UDP的端口号字段来协助建

立NAT转换表项(ICMP报文的ICMP头中的Identifier字段也可以用来实现与端

口号类似的功能)。这样,多个私有地址可以通过一个合法地址进行转换,

这种类型的NAT转换也可以称为PAT(端口地址转换)。
转换表项例子:
10.10.1.1 100 202.110.10.1 100

10.10.1.1 101 202.110.10.1 101
10.10.1.2 102 202.110.10.1 102
......

理论上,1个公网地址可以提供的转换表项为2^16=65535个(尚未扣除知名端

口数量)。

这是INTERNET上NAT的典型应用。通过复用转换,还可以实现服务器负载分担

的功能。

4、重叠转换(Overlapping NAT)

内部网使用的地址跟外部网重叠,这时需要把跟外部重叠的IP地址进行变换。

建立的转换表项如下:

10.10.10.1 168.192.10.1 172.10.1.1 10.10.10.1

10.10.10.1 172.10.1.1 168.192.10.1 10.10.10.1


在NAT路由器上,将外部网的重叠IP重新映射成不重叠的IP地址。这个方案可

以解决使用相同私网网段的企业网络的合并问题。

1.3 NAT转换的地址类型

在NAT的世界里,将NAT应用的地址分成4种类型,用来描述NAT转换模型中的

IP地址位置和作用。

4种地址类型分别是:

内部局部地址(IL Inside local address)

内部全局地址(IG Inside global address)

外部局部地址(OL Outside local address)

外部全局地址(OG Outside global address)


NAT重叠转换作为例子,以左边的主机10.10.10.1作为参考点。

1.4 NAT转换表

NAT按照转换表进行数据包的转发。


1)转发原则根据数据包的来源是内部还是外部而不同。
以NAT重叠转换为例,建立如下转换表:
内部局部 内部全局 外部局部 外部全局
10.10.10.1 172.10.10.1 — — — — — — — —


— — — — — — — — 168.192.10.1 10.10.10.1


10.10.10.1 172.10.10.1 168.192.10.1 10.10.10.1


左边主机访问右边主机发出的Packet_1 IP包到达NAT路由器转换后,源IP地

址将根据转换表项第1行转换为172.10.10.1,目的IP地址将根据转换表项第

2行转换为10.10.10.1,反之亦然。

2)按照数据驱动的方式建立,有静态,动态两种。静态地址转换类型表项一

旦建立,将一直存在。动态地址表项在需要时动态建立,如果一段时间没有

IP报文查询利用这个表项,到达老化时间后将自动删除,释放资源重新使

用。


在NAT复用转换(PAT端口地址转换)中,建立IP:PORT ==> IP:PORT 的转换

表项。在NAT中建立某个NAT转换表项后,启动一个定时器。后续IP报文查找

NAT转换表,如果是相同的目的IP/端口、相同的源IP/端口,将沿用已生成的

转换表项直接进行转换。否则,建立新的转换表项。如果一直没有IP报文使

用某个转换表项,定时器到时后(老化)转换表项将删除。


配置地址转换有效时间:

nat timeout default

设置地址转换有效时间为系统默认值

nat timeout {tcp | udp | icmp time-value}

配置地址转换有效时间

time-value 为设定的时间值单位为秒

有些跨NAT路由器的应用程序建立TCP连接后,开始的时候工作正常。如果

一段时间始终没有收发IP报文使用已经建立的NAT转换表项,转换表项将删除,

程序可能由于网络中断而不能正确运行。这时,可以修改增大TCP的地址转换

有效时间。

第二章 NAT应用

2.1 典型NAT应用

1)中小企业上网

中小企业内部机器数量较少,可以通过NAT方式接入INTERNET,这时,仅

仅需要一个合法的IP地址。如果今后规模增大,可以配置IP POOL,支持更多

的内部主机访问INTERNET的需求。
2)企业合并

两个使用同一IP地址网段的企业合并,可以使用NAT而不用重新规划IP地址,

保留了以前的投资。但不可避免的是,采用NAT可能使NAT路由器出现IP报文

转发效率的损失。

3)负载分担
通过给一个服务器集群一个逻辑IP地址(10.10.10.100),在路由器上配置

NAT可以做到负载分担。常见的例子是TCP load balancing,将外部网络对

10.10.10.100的访问顺序定位到不同的服务器。

2.2 NAT应用层网关

在上述的NAT转换的讨论中,涉及到对IP报文的IP头中源地址、目的地址的

转换,在PAT中还可能进行TCP/UDP报文中TCP/UDP头中的端口号或者

ICMP报文ICMP头中Identifier字段的转换。如果在某些协议或应用程序的应

用层数据中带有IP地址、端口的描述,则NAT必须实现NAT应用层网关

(ALG)功能才能使这些协议或应用程序正常运行。NAT对某些常用协议的

ALG网关功能在NAT路由器上实现了,可以进行对应的转换。但某些应用

ALG功能路由器不提供,需要自己开发。

1)FTP应用层网关
先了解FTP建立控制(Control)、数据(Data)2个TCP连接(逻辑通道),

传送文件数据过程。如图所示:

1、FTP server打开port 21( cont

rol端口),进行监听;

2、HOST随机选择2个port准备建立逻辑通道:1026(control端口)、1027

(data端口);

3、HOST发起control通道连接,最终建立一个port 1026和port 21之间的

TCP连接;


4、为开始传送文件,HOST通过control通道发送PORT命令(包含HOST的端口

号,NAT必须支持对这个IP、端口的转换),告诉FTP server:“在HOST的

1027端口上打开data通道”;

5、由FTP server发起,在port 20和port1027之间建立data通道的TCP连接;

6、文件传送通过data通道进行。

由FTP连接的例子可以看出,如果在HOST和FTP server之间采用了NAT地址

转换,可能在第4步后出现转换后IP报文源端口号同数据中的PORT包含的端

口号不匹配的情况。这样在第5步就无法建立data通道的TCP连接,整个

FTP连接无法顺利完成。

所幸的是,一般NAT软件均识别FTP协议,支持FTP的TCP IP报文数据区中

PORT内容的转换,可以在使用NAT的情况下顺利建立FTP连接。这里,

NAT完成FTP应用层网关的功能。



2)DNS应用层网关

在重叠转换方式中,DNS响应报文中含有重叠的IP地址,这时必须把返回的

IP地址转换为外部局部地址,用到的就是DNS ALG。

第三章 NAT应用相关问题


3.1 基本问题

1)NAT应用需要对每个进出路由器的IP报文进行IP地址检查并且对需要转换

的报文IP地址、端口进行转换,这不可避免地造成IP报文转发效率的降低。

NAT在带来方便配置的同时也带来的效率的降低。

2)每个转换的IP报文需要重新计算IP报文的CHECKSUM,对路由器的性能

和资源提出了需求。
3)典型的NAT每个转换项需要160字节的存储空间,1个拥有4 MB DRAM的

路由器理论上可以同时处理26,214 个转换。需要支持更多的转换项则需要更

多的存储空间。


3.2 NAT应用网关不支持某些协议引起的问题

某些协议在去除IP包头后的数据区中携带发送主机的源IP地址,在目的主机

上的协议或应用程序需要用到这个携带的IP地址,如果NAT应用网关不能识别

这种协议,将无法转换其中携带的IP地址。

某地有如下组网,采用NAT进行地址转换。出现内网的主机(私网地址)

HOST无法点播位于外网的Video server(公网地址)提供的视频流格式的影

片。尝试将NAT路由器上的NAT取消,主机HOST暂时采用公网地址,这时可以

顺利点播影片。可以判断,是采用NAT后造成的问题。进一步的测试后了解到,

应用NAT的路由器暂不支持对H

.323协议内容的转换,因此视频流报文无法正
常传送到主机。
支持的协议种类越多,NAT路由器应用的范围越广。

HTTP/TFTP/Telnet/.....

ICMP/FTP(including PORT and PASV)/H.323/DNS/......

IP Multicast/Routing table updates/SNMP......


3.3 NAT转换时使用IP POOL中不同IP引起的问题

某地的组网类似例3.2,不同的是外部网络有A网站提供WEB EMAIL服务。

内网的用户反映可以访问A网站的WWW页面,但无法成功登录访问A网站的

WEB EMAIL服务。工程师小L通过跟踪NAT转换后的报文发现,在第1次登录

A网站WWW首页时,新建了1个TCP连接,并在IP报文(TCP的HTTP报文)中观察

到记录有识别用户身份的cookie。在随后的登录WEB EMAIL服务页面时,又建

立了一个TCP连接,所不同的是,这次对源IP(私网地址)转换采用的公网

IP不同于第1次,随后出现无法登录WEB EMAIL服务页面的情况。为测试,不

采用NAT IP POOL的方式,而是只配置1个公网IP做地址转换,同样测试WEB 

EMAIL服务,这次登录成功。可以推测,A网站的WEB EMAIL服务对访问的用户

进行了源IP地址的鉴别,如果登录WWW页面和登录WEB EMAIL页面IP报文的源

IP地址不同(可以对HTTP报文中的cookie来判断2次连接均属同一个用户所为)

,则拒绝登录。为解决这个问题,NAT软件做了修改,保证从同一个采用私网

地址的主机IP报文经过NAT转换后,使用相同的公网IP地址进行转换,以避免

上述的问题。


3.4 NAT转换可能无法应用于加密的IP报文

一些应用中对数据区包含的IP地址进行改变,但如果数据区进行了加密,

NAT路由器将无法识别。


3.5 NAT对分片(Fragmentation)IP报文的处理

在复用(Overloading)转换类型的NAT地址转换中,NAT除了对IP地址转换外,

还使用到TCP/UDP报文的端口号、ICMP报文的ICMP头中的Identifier字段信息。

以ICMP报文为例,说明NAT对分片的IP报文进行的处理。在ICMP报文分片后,

只有在第1片ICMP报文中包含ICMP头的Identifier字段,在第1片报文到达

NAT路由器后,根据正常的转换流程,根据源IP地址和Identifier信息生成转

换表项并转发出去,在第2个及后续分片到达后,由于只包含IP地址却无

Identifier信息,可能因此无法进行NAT转换。解决的办法有2种:


1)先重组,再进行NAT,最后重新分片转发出去


在第1个分片到达后,先进缓存,等属于(可以根据IP报头中的Fragment

 

ID字段识别)这个IP报文的其他分片到达后进行重组,再进行NAT地址转换。

最后将NAT转换完成的IP报文重新分片后发送。

2)在第1个分片到达并转换后,NAT程序记录保存转换第1个分片使用的IP及

Idnentifier信息,并在后续分片到达后应用同样的转换表项进行转换。


说明:NAT对分片报文的处理情况是比较复杂的。在对分片报文的NAT转换中,

可能存在转换前NAT中已有相应转换表项存在的情况,也可能存在后续分片先

于第1个分片到达的情况。在不同的情况下,NAT对分片报文的处理存在差别:

有可能所有分片报文NAT转换成功,到达对方可以重组;有可能处理后的几个

分片报文的源IP地址、Identifier出现不一致,无法到达目的或无法进行重

组。

相关文档
最新文档