搜档网
当前位置:搜档网 › NAT技术基本原理及其在实际中的应用

NAT技术基本原理及其在实际中的应用

NAT技术基本原理及其在实际中的应用
NAT技术基本原理及其在实际中的应用

2009年1月第14卷第1期

西 安 邮 电 学 院 学 报

JOURNAL OF XI ’AN UN IV ERSIT Y OF POST AND TEL ECOMMUN ICA TIONS Jan.2009

Vol 114No 11

收稿日期:2008-10-21

作者简介:李广华(1981-),男,河南洛阳人,西安邮电学院通信技术研究所硕士研究生;

朱志祥(1959-),男,天津人,西安邮电学院通信技术研究所教授;

李振兴(1976-),男,山西太原人,西安邮电学院通信技术研究所硕士研究生。

NA T 技术基本原理及其在实际中的应用

李广华,朱志祥,李振兴

(西安邮电学院通信技术研究所,陕西西安 710061)

摘要:网络地址翻译(NA T )技术是Internet 上最常见的网络技术之一。正确检测识别NA T 的具体实现形式,无论对于网络安全还是网络应用都是十分必要的。论文给出了NA T 技术的基本原理和类型,深入分析了NA T 穿越技术在P2P 中的应用,并描述应用程序穿越中间设备建立P2P 通讯时可能产生的安全问题。关键词:NA T ;公有地址;私有地址;地址映射;地址翻译

中图分类号:TP393 文献标识码:A 文章编号:1007-3264(2009)01-0091-05

随着Internet 的飞速发展,网上丰富的资源产生着巨大的吸引力,接入Internet 、访问Internet 已经成为大众需求。这样就面临两个最迫切的问题:IP 地址的匮乏和路由规模的扩大。对此,长期的和

短期的解决方案都有所发展,那就是网络地址转换(NA T )和IPv6技术。

几年前,人们就意识到目前的IPv4地址空间将会耗尽。在IPv6技术上在研究中切还未完全取代现有的IPv4的情况下,短期解决方案NA T 技术对于缓解目前的地址缺乏问题,具有积极意义。NA T 核心就是要把一个私有地址域里的地址转换为可路由的全局因特网地址,这样就使得内部主机访问因特网得以实现。

1 基本原理及其类型

1.1 基本原理

NA T (Network Address Translation ,网络地址

转换),它允许一个机构以一个公有IP 地址出现在Internet 上。将局域网内每个节点的私有地址转换

成一个公有IP 地址,反之亦然。而且,它可以应用于防火墙技术,把个别地址隐藏起来不被外界发现,

使外界无法直接访问内部网络设备。同时,它可以帮助网络超越地址的限制,合理地安排网络中的公有Internet 地址和私有IP 地址的使用。

NA T 技术能帮助解决令人头疼的IP 地址紧缺

的问题,实现公网地址和私网地址之间的映射,而且能使内部和外部的网络隔离,提供一定程度的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过NA T 把内部地址翻译成合法的IP 地址在Internet 上使用,其具体的做法是把IP 包

内的地址域用合法的外部IP 地址来替换。工作的基本流程可以从两个方面来概括:

(1)当私网内的IP 包经NA T 流入公网时,NA T 将此IP 包的源IP 地址改为NA T 接口上的一

个公网地址。

(2)当公网中的IP 包经NA T 访问私网资源时,NA T 将此IP 包目的地址改为某一私网IP 地址。

下面通过一个网络结构图举例说明NA T 技术工作流程。网络结构图,如图1所示。

由图1可见,NA T A 后的主机A (内网地址为192.168.2.50)需要向公网中的Proxy 通信,主机从5000端口发送消息至NA T A 。NA T A 发现此IP

地址,从空闲的端口中分配一个给这个连接(比如

8000),并在申报中建立了192.168.2.50:5000和202.100.0.1:8000之间的映射。当Proxy 回消息

到NA T A 的8000端口时,NA T A 就将此包的地址

改为192.168.2.50:5000。这样就可以实现私网和公网的通信了

图1 网络结构图

当若在主机A 向Proxy 发起消息前Proxy 向地址202.168.2.50:8000发送消息,NA T 不知道将这个地址和端口映射到哪个内网地址上。这时NA T 会将此消息丢弃。因为NA T 映射的地址可能

是动态的,所以此时Proxy 无法知道确切的端口号。1.2 NA T 技术的类型

NA T 有三种类:静态NA T (static NA T )、NA T

池(pooled NA T )和端口NA T (PA T )。其中,静态NA T 设置起来最为简单,内部网络中的每个主机都

被永久映射成外部网络中的某个合法的地址。而NA T 池则是在外部网络中定义了一系列的合法地

址,采用动态分配的方法映射到内部网络。PA T 则是将多个内网地址映射到同一个外网地址的不同端口上。根据不同的需要,各种NA T 方案都是有利有弊。1.2.1 NA T 池

使用NA T 池,可以从未注册的地址空间中提供被外部访问的服务,也可以从内部网络访问外部网络,而不需要重新配置内部网络中的每台机器的IP 地址。

采用NA T 池意味着可以在内部网络中定义很多的内部用户,通过动态分配的办法,共享很少的几个外部IP 地址。而静态NA T 则只能形成一一对应的固定映射方式。应引起注意的是,NA T 池中动态分配的外部IP 地址全部占用后,后续的NA T 翻译

请求将会失败。庆幸的是,许多有NA T 功能的路由器有超时配置功能。如Cisco4700中配置成开始15分钟后自动删除当前的NA T 进程,为后续的NA T 申请预留出外部IP 地址。通过实验表明,一

般的外部链接不会很长,所有短的时间阀值也是可以接受的。当然用户可以自行调节时间阀值,以满足各自的需求。

NA T 池提供很大灵活性的同时,也影响到网络

原有的一些管理功能。例如,一些管理系统要利用IP 地址来跟踪设备的运行情况。但使用NA T 之

后,意味着那些被翻译的地址对应的内部地址是变化的,今天可能对应一台工作站,明天可能对应一台服务器。这给网络管理带来了麻烦。一个可行的解决方案就是把划分给NA T 池的那部分地址在网络管理平台上标记出来,对于这些不影响管理信号的地址不予处理,就如同他们被关掉了一样。1.2.2 PA T

PA T 在远程访问产品中得到了大量的应用,特

别是在远程拨号用户使用的设备中。PA T 可把内部的TCP/IP 映射到外部一个注册IP 地址的多个端口上,还可支持同时连接64500个TCP/IP 、UDP/IP ,但实际可支持的工作站个数会少一些。

因为许多Internet 的应用,如HTTP ,实际上是有许多小的连接所组成的。

在Internet 中使用PA T 时,所有不同的TCP

?29?西 安 邮 电 学 院 学 报 2009年1月

和UDP信息流看起来仿佛都来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,通过PA T将多个连接接入Internet。实际上,许多远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持PA T,就完全可以做到多个内部IP地址公用一个外部IP地址上Internet。虽然会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用PA T还是很值得的。

2 STUN穿越技术在P2P中的应用

在P2P穿越NA T设备的研究中,很多学者提出了解决方案,也产生了一些通信协议。应用最为广泛的是STUN(Simple Traversal of User Datagram Protocol),下面以STUN协议为例详细说明NA T 穿越的过程。

(1)STUN,简单UDP包穿越协议,它使用一种简单的客户/服务器模型,确定NA T类型以及发现NA T上映射的IP地址和端口号。根据该协议的描

述,STUN Client使用UDP数据报与STUN Server 通信。在多次通信中,STUN Client根据需要变化目的地址,STUN Server变化源地址,最终确定STUN Client是否处在NA T设备之后,并确定该NA T设备的类型,同时得到STUN Client在NA T 上映射的IP地址和端口。它通过这种机制得到NA T设备给UDP通信分配的IP地址和端口号。

STUN协议中有两个重要的字段需要介绍: MAPPED-ADDRESS和CHAN GE

-REQU EST。MAPPED-ADDRESS总是出现在STUN Server对STUN Client的绑定响应中,表示STUN Server在绑定请求中看到的IP地址和端口,即STUN Client 经过NA T映射后的IP地址和端口号。CHAN GE -REQU EST只能在STUN Client发给STUN Server的绑定请求中出现,它包含两个标志来控制STUN Server从不同的IP地址和端口发送绑定响应。

STUN协议最大的优点是无需现有NA T设备做任何改动,并且STUN方式可在多个NA T串联的网络环境中使用。

STUN的局限性在于需要客户端支持STUN Client的功能,同时不支持对称NA T的穿越。

(2)P2P利用STUN穿越NA T:

位于NA T后面终端A与B要穿越NA T直接通讯,可以借助在公网上的第三者Server来帮助。

穿越NA T的情况分为为两种方式:

(1)一方在NA T之后,一方在公网上。这种情况相对简单,只要让NA T之后的终端先发起通讯, NA T就没有作用了,它可以从Server上取得另一个Peer的地址,主动连接,回来的数据包就可以方便地穿越NA T。

(2)双方都在NA T之后,连接的成功与否与两个NA T的类型有关。主要的思路的先通过终端与Server的连接,获得两个终端在NA T外部的地址(IP与端口号),再由终端向对方的外部地址发邀请包,获取自己与对方通讯的外部地址,俗称为“打洞”。关键是获取了NA T外部映射的地址,就可以发包直接沟通,建立连接。但当一方是对称型,另一方是Port Restricted或对称型时,无法有效获取外部地址,邀请包无法到达对方,也就无法穿越NA T。具体的分析可以根据两个NA T的类型分成若干情况分析,这里给一般的穿越例子。

图2 P2P穿越NA T(两个主机都在NA T内)

(3)实例:UDP穿越NA T:

A登录Server,NA T A分配端口11000,Server 得到A的地址为100.10.10.10:11000

B登录Server,NA T B分配端口22000,Server 得到B的地址为200.20.20.20:22000

此时B会把直接来自A的包丢弃,所以要在NA T B上打一个方向为A的洞,那么A就可以向200.20.20.20:22000发送数据了。

打洞的指令来自Server。B向A的地址100.

10.10.10:11000发一个UDP报文,被NA T A丢弃,但在NA T B上建立映射记录,NA T B不再丢弃来自A的报文。

Server通知A可以通讯,A发起数据UDP包给

?

3

9

?

 第1期李广华等:NA T技术基本原理及其在实际中的应用

B,NA T B放行,B收到A的包,双方开始通讯。

(4)实例:TCP穿越NA T:

A登录Server,NA T A分配端口11000,Server 得到A的地址为100.10.10.10:11000

B登录Server,NA T B分配端口22000,Server 得到B的地址为200.20.20.20:22000

A向B发送TCP数据包SYN:192.168.10. 11:1234=>200.20.20.20:22000,在NA T A上打洞。

B向A发送TCP数据包SYN:192.168.20. 22:1234=>100.10.10.10:11000,在NA T B上打洞。

通道建立,A与B三次握手建立TCP连接。

3 安全问题

当NA T改变包的IP地址后,需要认真考虑这样做对网络安全设施带来的影响。对于防火墙,它利用IP地址、TCP端口、目标地址以及其它在IP 包内的信息来决定是否干预网络的连接。当使用了NA T之后,可能就不得不改变防火墙规则,因为NA T改变了源地址和目的地址。

接下来的本节描述应用程序穿越中间设备建立P2P通讯时可能不经意的产生的安全问题?

3.1 IP地址别名

P2P应用程序必须采用适当的授权机制来保护他们的P2P连接不受其他P2P连接的意外骚扰,也为了防止恶意的拦截连接或者DOS(denial-of-service)攻击。有效的NA T友好的P2P应用程序必须和多个不同IP地址域进行交互,但是一般不会注意到他们的确切拓扑或者这些地址域的管理策略。而通过UDP穿孔技术建立P2P通讯时,应用程序发出的包可能会经常到达整个网络而不只是想要的那个主机。

例如,多层NA T设备提供DHCP服务,默认配置为分发给本地IP一个特定的地址范围。比如,一个特定的NA T设备,默认情况,把192.168.1.100起始的地址分发。许多家庭私有使用NA T的网络会有一个在那个地址上的主机,而这个地址也可能是192.168.1.101,如果一个主机A用UDP穿孔技术在一个私有网络192.168.1.101中试图和另一个私有网络中的主机B192.168.1.100建立P2P连接,那么,作为建立连接的过程的一部分,A会发送给192.168.1.100本地网络一个寻找包,B也会给本地网络发送一个到192.168.1.101的寻找包。显然,这些寻找包不能到达想要的目的主机,因为两个主机在两个不同的私网中,但是他们很可能到达各自网络中使用这个标准UDP端口的应用程序中,造成潜在的混乱。

3.2 DOS攻击

P2P应用程序和支持该应用程序的公共servers 必须保护自己不受DOS攻击,并且确保他们不能被攻击者用来安装DOS攻击其他目标。要保护他们自身,P2P应用程序和服务器必须在合法的双向连接建立以前避免需要大量的本地处理或存储资源。要避免被作为一个DOS攻击的工具,P2P应用程序和服务器在他们和预想的目标建立合法的P2P连接之前,必须最小化发送给新发现的目的IP的通信量的数量和速率。

例如,注册到公共server上的P2P应用程序可以告知自己的私有IP,或者多个IP地址。一个连接好的主机或者能够吸引大量P2P连接的(例如,通过提供流行的内容服务)主机群可安装一个对目标主机C的DOS攻击,仅仅通过在向服务器注册时,把C的IP地址包含到自己的IP地址列表中就行了。服务器没有办法确认这些IP地址,因为他们也可能是合法的用来建立本地网络通讯的私有IP 地址。

P2P应用程序协议必须设计成对这些未经校验的IP地址大小和速率受限的通讯,以避免导致这种集中效用带来的潜在伤害。

4 结束语

综上所述,由于Internet的膨胀式发展已大大超乎当年制度IPv4标准时的预料,致使当前可用的IP地址越来越少,要想在ISP处申请一个新的IP 地址已经不是很容易的事了。这不仅仅是费用的问题,而是IP地址的现行标准IPv4决定的。NA T技术能够在IPv6正式推出前暂时解决一些令人头疼的问题,例如无需为网络重分IP地址、减少ISP帐号花费以及提供更完善的负载平衡功能等,但是NA T技术也同时对一些管理和安全机制的潜在威胁仍在。因此,需要谨慎使用,正确应用好网络地址

?

4

9

?西 安 邮 电 学 院 学 报 2009年1月

转换NA T 技术。

参 考 文 献

[1] Peer -to -Peer Working Group ,NA T/Firewall Work 2

ing Committee.Bidirectional Peer -to -Peer Communi 2cation with Interposing Firewalls and NA Ts[J/OL ].Au 2gust 2001.http ://www.peer -to https://www.sodocs.net/doc/5d218275.html,/tech/nat/

[2] J.Rosenberg ,J.Weinberger , C.Huitema ,and R.

Mahy.STUN -Simple Traversal of User Datagram Pro 2tocol (UDP )

Through Network Address Translators

(NA Ts )[J ].RFC 3489,March 2003.

[3] G.Tsirtsis and https://www.sodocs.net/doc/5d218275.html,work Address Transla 2

tion -Protocol Translation (NA T -PT )[J ].RFC

2766,February 2000.

[4] Internet Control Message Protocol (ICMPv6)for the In 2

ternet Protocol Version 6(IPv6)Specification [J ].RFC2463.

[5] Srisuresh P ,Holdrege M.IP Network Address Transla 2

tor (NA T )Terminology and [J ].RFC 2663,IETF ,1999-08.

[6] Deshpande H ,Bawa M ,G arcia -Molina H.Streaming

Live Media over Peers [R ].Stanford Database Group Technical Report ,2003.

B asic principle and application of NAT

L I Guang -hua ,ZHU Zhi -xiang ,L I Zhen -xing

(Telecommunication Technology Institute ,Xi ’an University of Post and Telecommunications ,Xi ’an 710061,China )

Abstract :NA T is the most important and common technology in the Internet.Detection of the correct identifi 2cation of specific forms of NA T ,is very necessary both to network security and network applications.The paper presented the basic principles and type of NA T technology ,deeply analysed the NA T traversal technology in the application of P2P ,and described possible security problems when the application comes through the mesial e 2quipment to establish P2P communications.

K ey w ords :Network Address Translation ;public address ;private address ;address mapping ;address translation (上接第60页)

[3] 何荣希,李乐民.WDM 光传送网中支持优先级的波长

分配算法[J ].通信学报,2001,22(3):27-32.

[4] K arasan E ,Ayanoglu E.Performance of WDM transport

networks with blocking[J ].IEEE J Selected areas Com 2mun ,1998,16(7):1081-1096.

[5] 龚倩,徐荣,张民等.光网络的组网与优化设计[M ].

北京:北京邮电大学出版社,2002.

[6] 杨淑雯.全光光纤通信网[M ].北京:科学出版社,

2004.

A ne w w avelength assignment algorithm in WDM net works

YAN G Li -chun ,GON G Jia -min ,J IAN G Jie -wei ,L I Kai

(Department of Electronic and Information Engineering ,Xi ’an University of Post and Telecommunications ,Xi ’an 710061,China )

Abstract :In this paper ,wavelength assignment in WDM optical networks with dynamic traffic is studied ,and a new dynamic wavelength is proposed without wavelength conversion proposed.By using dynamic threshold method ,the proposed algorithm reduces the blocking probability through putting off the use of the scarce re 2source.The simulation results show that the proposed algorithm is effective.K ey w ords :WDM ;wavelength assignment ;blocking probability

?

59? 第1期李广华等:NA T 技术基本原理及其在实际中的应用

相关主题