基于P2P与NAT两大技术结合中TCP穿透问题的研究

基于P2P与NAT两大技术结合中TCP穿透问题的研究
基于P2P与NAT两大技术结合中TCP穿透问题的研究

收稿日期:2010-05-06;修订日期:2010-06-30

作者简介:孙卫喜(1965-),男,陕西澄城人,研究方向:实验教学、实验室建设与管理。

第28卷第4期2010年8月

江西

JIANGXI

SCIENCE

Vol.28No.4Aug.2010

文章编号:1001-3679(2010)04-0524-04

基于P2P 与NAT 两大技术结合中

TCP 穿透问题的研究

孙卫喜1,苟红玲

2

(1.渭南师范学院计算机科学系,陕西渭南714000;2.渭南师范学院数学与信息科学系,陕西渭南714000)

摘要:穿透是P2P 与NAT 两大技术结合中的关键问题,提出采用应用程序协助完成TCP 的穿透方案,使连接中3次握手由应用程序控制完成,服务器只协助传递2个特定参数,减少了对第3方服务器的依赖,提高连接效率和安全性。

关键词:P2P ;NAT ;TCP ;穿透中图分类号:TP393.2

文献标识码:A

The Study of TCP Penetration Question Based on the

Combination of Two Technologies of P 2P and NAT

SUN Wei-xi 1,GOU Hong-ling 2

(1.Department of Computer Science ,Weinan Teachers University ,Shanxi Weinan 714000PRC ;

2.Department of Mathematic and Information Science ,Weinan Teachers University ,Shanxi Weinan 714000PRC )

Abstract :TCP penetration is a key question of combining the 2technologies ,the paper puts forward adoption application program helps fulfill TCP penetration plan.And makes 3handshakes finish via application program control.Servers only helps to deliver 2special parameters ,reduces dependence to the third server and advances connection efficiency and security.Key words :P2P ,NAT ,TCP ,Penetration

0引言

P2P (peer-to-peer )即对等互联(点对点技

术),它被认为是一种通信模式、一种逻辑网络模

型、

一种技术甚至是一种理念。P2P 网络不同于传统的客户机/服务器(Client /Server )模式,它允许Internet 用户直接与其他用户的计算机建立连接并使用对方的资源。即就是消除中间环节使P2P 网络中每个结点既充当服务器,又为其它结点提供服务,同时也享用其它结点提供的服务。P2P 技术的应用使得网络上的沟通变得更容易、

更直接,它改变了现今Internet 以服务器为中心

的集中式互联网结构、重返“非中心化”,并把权力交还给用户。从某种意义上讲,

P2P 体现了In-ternet 的本质[1 5]。自1999年第一个P2P 应用出现以来在学术界获得了广泛的重视,

在应用领域获得了较大的成功,

P2P 网络应用非常广泛,P2P 已成为互联网内容发展的重点方向。P2P 网络占

据了当前Internet 超过一半的带宽资源,被称为“改变Internet 的新一代网络技术”。

NAT (Network Address Translator )是一个IETF (internet engineering task force )标准。它通

DOI:10.13990/j.issn1001-3679.2010.04.034

过将只能作为局域网内部地址而在因特网上不能被识别或直接使用的私有IP地址映射为Internet 上合法的IP地址,实现私有网络中节点对Inter-net的成功访问,有效的缓解了Internet用户对非常稀缺的公网IP地址的需求。网络地址转换(NAT)设备位于互联网与局域网之间,起到翻译网络地址和保护网络安全的作用。但由于NAT 之后主机的IP地址在Internet上是不可见的,In-ternet上的主机是不能主动访问这些内网主机的,NAT之后的主机可以作为客户机访问外部网络,但却不能作为服务器向外部网络提供服务,而位于不同NAT之后的主机间更是无法相互识别而不能直接交换信息。这种对外不可见、不透明的内部网络有背于互联网的公平、相互共享等思想,特别是与目前广泛应用于Internet的P2P网络技术所不容,因而内网用户欲实现P2P“用户之间直接共享资源”的思想必须解决好NAT的穿透问题[6]。

1NAT穿透技术的研究开发现状及发展趋势

因特网传输层有2种主要协议:一种是无连接的UDP(User Datagram Protocol)协议,一种是面向连接的TCP(Transmission Control protocol)协议。现阶段UDP穿透NAT的方法已经比较成熟,大多采取UDP打洞的方式。UDP Hole Punc-hing技术有效地保持了NAT网络环境的透明性,它不需要了解网络的拓扑信息以及其他特别的软件环境的支持,可以被普通的应用程序实现。目前比较典型的NAT穿透方法有STUN(Simple Traversal of UDP Through Network Address transla-tors)方法、TURN(Traversal Using Relay NAT)方法和Mid Com(Middle box Communications)方法等[7]。STUN是一种基于UDP协议的NAT穿透方法,其局限性在于不支持基于TCP连接的穿透和对称NAT的穿透。TURN通过Relay方法穿透NAT,所有报文不是直接发送给对方通信端而是必须经过第3方服务器转发,增大了包的延迟和丢包的可能性。Mid Com方法通过中间盒(Mid-dle box)在第3方实体(Mid Com Agent)和NAT 之间建立连接通信,Agent通过协议通知建立相映的映射表。Mid Com Middle box NAT不足之处在于Mid Com要求对现有的设备进行升级以支持Mid Com协议。

目前大多数NAT的穿透方法是基于UDP 的,而UDP穿透技术存在会话时间不确定性问题会导致在第3方服务器上注册的地址信息失效。此外考虑到很多P2P软件是基于TCP协议的,UDP穿透技术也无法应用。另外在现实的网络环境中,存在很多网络是不允许使用UDP协议的。基于UDP穿透NAT建立连接的局限性及TCP连接优势,人们开始尝试TCP穿透NAT。但由于TCP连接建立的不对称性致使TCP穿透NAT较难实现,TCP是面向连接的,其连接过程需要实现3次握手,故无法直接套用UDP穿透NAT的方法。目前TCP穿越NAT的方法主要有2种:(1)不同NAT内的2个主机同时建立TCP 连接,该方法需要某个TCP端口既作为监听端口又作为主动连接端口,微软的操作系统并不支持这一特性,因此该方案在Windows操作系统下很难实现;(2)允许NAT设备内的主机在NAT设备上建立明确的地址映射,如采用UPnP(Universal Plug and Play)协议。但这种方法的缺点是NAT 设备必须支持UPnP等协议。有学者提出利用第3方服务器伪造TCP连接报文,实现NAT穿透的方案。在这种方案中,服务器S在建立前起协助作用,在TCP连接后则不再起作用,实现了真正意义上的NAT后2台主机的TCP直连。但由于3次握手过程都需要在位于公网的第3方服务器中转3次握手的详细信息,连接容易受到网络状况的干扰,降低了连接效率。同时位于NAT后的主机与第3方服务器之间的认证也变得极为重要,如果第3方服务器不能对位于NAT后的主机进行有效的认证,则黑客可以很轻易地对第3方服务器进行攻击[8]。

本文提出采用应用程序协助完成TCP穿透的方案不但克服了目前多种基于UDP协议NAT 穿透方法所面临的问题,同时由于TCP协议本身的特点,还保证了数据传输过程中的可靠性。这对P2P网络来说是很关键的性能参数。

2NAT的分类及测试方法

NAT设备的类型对于TCP穿透NAT有着十分重要的影响,根据映射方式不同,NAT可以分成两大类:第1类是克隆式NAT(ConeNAT)。NAT把来自相同内部私有地址的所有连接请求都映射到相同的外部公网地址。第2类是对称式NAT(SymmetricNAT)。NAT为每一个新的连接

·

525

·

第4期孙卫喜等:基于P2P与NAT两大技术结合中TCP穿透问题的研究

请求都映射一个不同的外部公网地址,而不管这些连接是否来自相同的内部私有地址[9]。对称式NAT又可细分为两类,若NAT对公网地址的分配具有规律性(通常情况下为连续分配),则称为地址映射可预测;若NAT对公网地址的分配是随机而无规律的,则称为地址映射不可预测。

针对不同类型的NAT,TCP穿透的方法有所不同[10]。因此需要在TCP穿透实现之前确定NAT的类型。本文采用NAT类型的判定方法是:(1)客户端A利用端口Port与服务器S建立TCP 连接,S记录下A经过NAT映射后的地址信息

AddressA;(2)客户端A利用端口Port+1与服务器S建立TCP连接,S记录下A经过NAT映射后的地址信息AddressA';(3)如果AddressA和Ad-dressA'相同,则可判定该NAT是克隆式NAT;如果AddressA和AddressA'不相同,则可判定该NAT是对称式NAT;(4)多次执行步骤1 2,若每次得到的地址信息AddressA和AddressA'连续或者有规律变化,则可判断此NAT的地址映射是可预测的,否则该NAT地址映射不可预测。

目前,市面上大多数NAT设备为克隆式NAT,对称式NAT应用很少且大都为地址映射可预测的,因此本文不考虑NAT地址映射不可预测的情况。

3应用程序协助完成TCP穿透

由应用程序协助完成TCP穿透方案是在连接开始以前由第3方服务器记录下双方的地址信息并将其传送到对方机器,之后的连接中3次握手由应用程序控制完成,服务器只协助传递2个特定参数,减少了对第3方服务器的依赖,提高了连接效率和安全性[11]。如图1所示。

(1)客户端A与公网上的Server S建立TCP 连接,并将特殊识别信息K发送到服务器端。S 判断客户端A所连接NAT A的类型,记录下A的私有网地址(10.0.0.3:2001)经过NAT A映射后的公网地址信息(200.0.0.3:5001)、A的特殊识别信息K以及NAT A的映射方法。同样客户端B也与服务器S建立TCP连接,并记录下B的私有网地址(172.16.0.3:3001)经过NAT B转换后的公网地址信息(210.0.0.3:6001)、B的特殊识别信息K'以及NAT B的映射法。

图1TCP连接流程

(2)S通过已经建立的TCP连接把A的相关信息(200.0.0.3:5001,K)传送给B,把B的相关信息(210.0.0.3:6001,K')传送给A。

(3)客户端A和B记录下相关的信息,然后开始向对方映射的公网地址发送SYN消息,并在该消息中加入自己的特殊识别信息:

A:172.16.0.3:3001/210.0.0.3:6001,K,SYN:X;B:10.0.0.3:2001/200.0.0.3:5001,K',SYN:Y;

其中X和Y为标志符,与每一个SYN包相对应。这样A和B就在各自的NAT设备上建立了到对方公网地址的映射记录,对方以后发送来的数据就能够穿过该NAT,而不是被丢弃。

(4)如果A发出的第一个SYN包在B往A 的第一个SYN包发送出来以前就到达了NATB,NAT B会把A发出的SYN包当成不请求的不安全包而丢弃。因此需要在SYN包发出以后,将A 和B的应用程序设为监听状态,若在一定时延T 内没有收到回复信息,则向对方发送新的SYN 包。

(5)若收到对方的SYN包,A或B将SYN包中的K或K'值与之前由服务器S传送过来的K 或K值相比较。如果相等说明该SYN可信任,则在内存中开辟一堆栈,将公网地址、SYN信息及对应的标志符保存到该堆栈中,并立即向服务器S发送一个特殊字符P,由服务器将该字符转发到对方机器,对方机器接收到该字符后则终止SYN包的发送尝试,然后向对方映射的公网地址发送SYN+ACK数据包,该数据包含有SYN包的标识符以及各自的特殊识别信息:

A:172.16.0.3:3001/210.0.0.3:6001,K,SYN+ ACK:X,Y+1;

B:10.0.0.3:2001/200.0.0.3:5001,K',SYN+

·

625

·江西科学2010年第28卷

ACK,Y,X+1;

同时利用应用程序将该SYN+ACK数据包复制,从堆栈顶取出最新的公网地址,不断向其送。由于新的公网地址在对方NAT上留下了痕迹,所以至少有一条SYN+ACK数据包信息将通过对方的NAT,此时A和B都认为对方已经接收了自己之前发送的SYN包信息。

(6)A或B收到SYN+ACK数据包信息后向服务器发送一个特殊字符P',由服务器将该字符转发到对方机器,对方机器接收到该字符则终止SYN+ACK数据包的发送。应用程序在自动产生的ACK信息中加入对应标识符及特殊识别信息,并同样复制该信息,反复向对方最新的公网地址发送,直到连接成功

A:172.16.0.3:3001/210.0.0.3:6001,K,ACK:Y +1;

B:10.0.0.3:2001/200.0.0.3:5001,K',ACK:X +1;

至此,TCP连接的3次握手在应用程序的协助下已经完成。同时一直保存在数据包中的特殊识别信息保证了整个传输过程中信息的可信任度。在上述连接过程中前2个步骤由第3方服务器支持完成,之后服务器仅协助传递2个参数以作为停止发包的指令。后续所有连接步骤由各自的应用程序完成,减少了对服务器的依赖提高了连接的效率。

4结束语

提出采用应用程序协助完成TCP穿透的方案不但克服了目前多种基于UDP协议NAT穿透方法所面临的问题,也为P2P应用程序开发人员提供一个穿透NAT的良好平台,给P2P技术的发展提供有力的技术支持。但本方案在实施中也发现一些问题如T值的选取等还需进一步探索。

参考文献:

[1]杨天路,刘宇宏,张文,等.P2P网络技术原理与系统开发案例[M].北京:人民邮电出版社,2007.[2]陈贵海,李振华,对等网络:结构、应用与设计[M].北京:清华大学出版社,2007.

[3]Srisure2s P,2Ford B2,Kegel D.State ofpeer to peer(p2p)communication across network address tra2nsl2ators

(nats).Internet2draft,IETF,February2007[EB/OL].http:

//www.ietf.org/internetdrafts/draft-ietf-behave-p2p-state-

02.txt.2007-12-02.

[4]ZHANG Jian-feng,nWANG Ru-chuan.An agent-based incentive mechanism for P2P systems[J].中国邮电高

校学报(英文版),2006,13(4):81-85.

[5]Flenner Robert,Abbott Michael.JAVA P2P技术内幕[M].北京:人民邮电出版社,2003.

[6]徐向阳,韦昌法.基于NAT穿越技术的P2P通信方案的研究与实现[J].计算机工程与设计,2007,28

(7):1559-1561.

[7]耿福泉,陈洁,方忠民,等.DHT网络中一种TCP 穿越NAT机制[J].东北大学学报,2007,(1):49-

52.

[8]李河,王树.P2P网络中使用UDP穿越NAT的方法研究[J].吉林大学学报(信息科学版),2003,

21(3):275-279.

[9]黄道颖,李祖鹏,庄雷,等.分布式Peer to Peer网络Gnutella模型研究[J].计算机工程与应用,

2003,39(5):60-63.

[10]Guha S.Stunt-Simple Traversal of UDP ThroughNATs and TCP too.Work in progress[EB/OL].http://nutss.

gforge.cis.cornell.edu/pub/dr2aft2guha STUNT-00.

txt.2007-12-02.

[11]Rosenberg J.STUN-Simple Traversal of User Datagram Protocol through Network Address Translators[C].

IETF RFC,3489.

·

725

·

第4期孙卫喜等:基于P2P与NAT两大技术结合中TCP穿透问题的研究

NAT网络地址转换技术的应用与实现

编号:_______________ 商丘科技职业学院 毕业论文 题目: NAT技术在网络中的应用与实现 系别计算机科学系 专业 学生姓名 成绩 指导教师 2011年 4月

商丘科技职业学院毕业论文 摘要 随着互联网的普及,IP地址缺乏问题日益恶化,为了缓解问题,在IP地址分配和保留IP地址方面提出了许多办法,甚至提出新一代的IPv6技术从根本上解决地址空间问题。但由于多方面的原因,NA T成为了事实上广泛使用的解决方法,是我们至今在互联网上没有使用完合法IPv4地址的真实原因。它主要思想是把本地的私有IP地址映射到公网的合法IP地址,以缓解可用IP地址空间的消耗。本课程设计主要对NAT技术进行系统分析,并举出一个应用实例,在网络模拟器中将其具体实现,深入了解其工作原理与数据包每次被修改的情况,了解技术存在的缺点。 关键词:IP地址分配保留IP地址 NAT

NAT技术在网络中的应用与实现 目录 绪论 (1) 第1章背景简述 (2) 1.1IP地址现状 (2) 1.2现存解决方案 (2) 第二章NAT技术分析 (3) 2.1NAT类型 (3) 2.2NAT术语 (4) 2.3NAT工作原理 (4) 第三章NAT的应用实例 (6) 3.1实例描述 (6) 3.2实例的设计方案 (7) 3.3实例的配置重点 (8) 3.4实例的分析 (10) 结束语 (12) 参考文献 (13)

商丘科技职业学院毕业论文 绪论 随着互联网的普及,接入网络的计算机数量增长非常迅速,目前使用的IPv4地址空间有限,可用的公网合法IP非常短缺。人们为了缓解日益恶化的地址缺乏问题,在IP地址的分配和保留IP地址方面采取了许多办法。现存的解决办法包括ISP方面对公网地址的动态分配与回收、使用DHCP动态分配与回收、可变长子网掩码(VLSM)[1]技术、无类域间路由(CIDR)技术,甚至提出新一代的IPv6[3]技术从根本上解决地址空间问题,但由于多方面的原因,IPv6到目前还没有得到普及,而网络地址转换(NA T)[2]技术的使用,是我们至今在互联网上没有使用完合法IPv4地址的真实原因。它主要思想是把本地的私有IP地址映射到公网的合法IP 地址,以缓解可用IP地址空间的消耗。虽然,它没有像IPv6那种从根本上解决问题,但在IPv6没有得到普及的今天,成为了事实上广泛使用的解决方法。

NAT技术

NAT技术

目录 第1章NAT协议及其应用 (3) 1.1 NA T技术相关术语介绍 (3) 1.2 NA T技术介绍 (4) 1.3 典型应用 (6)

第1章NAT协议及其应用 本节主要介绍NA T(network address translate 网络地址转换)的原理及实现。 本节主要内容: ●NA T技术相关术语介绍 ●NA T技术介绍 ●典型应用 1.1NAT技术相关术语介绍 内部本地地址(IL,Inside local)——分配给内部设备的地址。这些地址不会对外公布。 内部全局地址(IG,Inside global)——一通过这个地址,外部可以知道内部设备。 外部全局地址(OG,Outside global)——分配给外部设备的地址。这些地址不会向内部公布。 外部本地地址(OL,Outside local)——通过这个地址,内部设备可以知道外部设备。 地址池——可用地址的地址范围定义。在定义一个地址池以后,当内部网络与外部通信时,系统将从地址池中选择一个可用地址进行地址的转换;地址池的定义包括地址范围、掩码等定义。 静态转换——在内部本地地址与内部全局地址之间建立起一个一一对应的关系,比如,当需要给一台内部主机设定一个唯一的全局地址时,可使用静态转换。 动态转换——动态转换一般在内部本地地址与全局地址之间建立一个映射,地址的映射关系并非事先就确定好的,在需要建立一个转换时在地址池中选择一个可用地址建立转换关系。 重载——对于地址池中的地址,又分为可重载与不可重载两种情形。重载允许同时将多个本地地址映射到同一个全局地址,而通过所使用的端口来区分。 负载均衡——当存在多台主机同时承担同一件工作时,(如对于许多大的站点,可能存在多台Web Server或者FTP服务器、邮件服务器等),存在一个任务的均衡协调问题,以求各主机上分担的负载尽量平衡。NA T可以从某种程度上达到这一目的。

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 地址,从空闲的端口中分配一个给这个连接(比如

NAT技术的原理与实现

NAT技术的原理与实现 NAT, 原理, 技术 一.NAT技术简介 随着网络的发展,网络地址转换(NAT,Network Address Translation)在网络建设中正发挥着不可替代的作用。从本质上来说,NAT的出现是为了缓解lP地址不足的问题;而在实际应用中,NAT还具备一些衍生功能,诸如隐藏并保护网络内部的计算机,以避免来自网络外部的攻击、方便内部网络地址规划,等等。 二.NAT技术的基本原理。 随着接入Internet的计算机数量的不断猛增,IP地址资源也就显得愈加紧张。在实际应用中,一般用户几乎申请不到整段的C类和B类IP地址。当我们的企业向ISP申请IP 地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求。为了缓解供给和需求不可调和的矛盾,使用NAT技术便成为了企 业和ISP的必然选择。 企业使用NAT时,一般认为应当使用RFC1918规定的三段私有地址部署企业内部网络。当企业内部设备试图以私有地址为源,向外部网络(Internet)发送数据包的时候,NAT可以对IP包头进行修改,先前的源IP地址-私有地址被转换成合法的公有IP地址(前提是,该共有IP地址应当是企业已经从ISP申请到的合法公网IP),这样,对于一个局域网来说,无需对内部网络的私有地址分配做大的修改,就可以满足内网设备和外网通信的需求。由于设备的源IP地址被NAT替换成了公网IP地址,设备对于外网用户来说就显得“不透明”,达到了保证设备安全性的目的。在这种情况下,内部私有地址和外部公有地址是一一对应的。甚至,我们只需使用少量公网IP地址(甚至是1个)即可实现私有地址网 络内所有计算机与Internet的通信需求。 三.企业实现NAT的常用方式 在企业网络中,NAT的实现方式有三种,即静态转换NAT、动态转换NAT 以及端口 多路复用(PAT)。下面的章节里将一一介绍。 1.静态转换 静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。私有地址和公有地址的对应

NAT及NAT打洞技术

NAT及NAT打洞技术 一、什么是NAT?为什么要使用NAT? NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与内网通信时怎么将内网私有IP地址转换为可在网络中传播的合法IP地址。NAT的出现完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。 二、NAT的分类 STUN标准中,根据内部终端的地址(LocalIP:LocalPort)到NAT出口的公网地址(PublicIP:PublicPort)的影射方式,把NAT分为四种类型: 1、Full Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,任何外部主机只要知道这个(PublicIP:PublicPort)就可以发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。 2、Restricted Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机IP发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。 3、Port Restricted Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机(IP,Port)发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,Port)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。 4、Symmetric NAT: 内网主机建立一个socket(LocalIP,LocalPort),当用这个socket第一次发数据给外部主机1时,NAT为其映射一个(PublicIP-1,Port-1),以后内网主机发送给外部主机1的所有数据都是用这个(PublicIP-1,Port-1),如果内网主机同时用这个socket给外部主机2发送数据,NAT会为其分配一个(PublicIP-2,Port-2), 以后内网主机发送给外部主机2的所有数据都是用这个(PublicIP-2,Port-2).如果NAT有多于一个公网IP,则PublicIP-1和PublicIP-2可能不同,如果NAT只有一个公网IP,则Port-1和Port-2肯定

NAT技术的实现与应用

一。NAT技术简介 随着网络的发展,网络地址转换(NAT,Network Address Translation)在网络建设中正发挥着不可替代的作用。从本质上来说,NAT的出现是为了缓解lP 地址不足的问题;而在实际应用中,NAT还具备一些衍生功能,诸如隐藏并保护网络内部的计算机,以避免来自网络外部的攻击、方便内部网络地址规划,等等。 二。NAT技术的基本原理。 随着接入Internet的计算机数量的不断猛增,IP地址资源也就显得愈加紧张。在实际应用中,一般用户几乎申请不到整段的C类和B类IP地址。当我们的企业向ISP申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求。为了缓解供给和需求不可调和的矛盾,使用NAT技术便成为了企业和ISP的必然选择。 企业使用NAT时,一般认为应当使用RFC1918规定的三段私有地址部署企业内部网络。当企业内部设备试图以私有地址为源,向外部网络(Internet)发送数据包的时候,NAT可以对IP包头进行修改,先前的源IP地址-私有地址被转换成合法的公有IP地址(前提是,该共有IP地址应当是企业已经从ISP申请到的合法公网IP),这样,对于一个局域网来说,无需对内部网络的私有地址分配做大的修改,就可以满足内网设备和外网通信的需求。由于设备的源IP地址被NAT替换成了公网IP地址,设备对于外网用户来说就显得“不透明”,达到了保证设备安全性的目的。在这种情况下,内部私有地址和外部公有地址是一一对应的。甚至,我们只需使用少量公网IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。 三。企业实现NAT的常用方式 在企业网络中,NAT的实现方式有三种,即静态转换NAT、动态转换NAT 以及端口多路复用(PAT)。下面的章节里将一一介绍。 1.静态转换 静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。私有地址和公有地址的对应关系由管理员手工指定。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问,并使该设备在外部用户看来变得“不透明”。 2.动态转换 动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对并不是一一对应的,而是随机的。所有被管理员授权访问外网的私有IP地址可随机转换为任何指定的公有IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。每个地址的租用时间都有限制。这样,当ISP提供的合法IP地址略少于网络内部的计算机数量时,可以采用动态转换的方式。 3.端口多路复用(Port address Translation,PAT) 通过使用端口多路复用,可以达到一个公网地址对应多个私有地址的一对多转换。在这种工作方式下,内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,来自不同内部主机的流量用不同的随机端口进行标示,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用

浅谈对NAT技术的理解

浅谈对NAT技术的理解 NAT的原理 NAT技术能够让由私有IP构成的局域网内所有的计算机通过一台具有公网IP和NAT功能的网络设备联入公网(Internet),也就是说一个局域网就只需要一个或很少几个公网IP就行了,从而达到了节约公网IP地址的目的。 内网IP的数据包是根本不可能在公网上传播的,因为公网上的路由器都是屏蔽掉了这些私网IP的,私有IP本来就是人为保留出来专供私有网络通信用的。从另一个角度说,即使私有数据包能够到达公网目标地址,目标地址的响应包也不可能返回真正的源地址,因为源地址是私有IP,目标发送的响应包一种可能是被目标地址所在的拥有相同网络号的内网接收,一种可能就是这种子网不存在,数据包被抛弃。所以内网数据包在进入公网之前,必须被转换成公网IP,这就是NAT的功能,而且NAT技术发展到现在,已不仅局限于翻译IP地址,现在实际转换时,它不仅转换IP地址,还会对TCP/UDP端口进行转换。由于这个功能,NAT 通常都位于网关计算机上,起着一种路由器的作用。 下面是NAT转换机制的基本过程(假如局域网192.168.0.0的NAT设备公网IP是218.70.201.185,私有IP是192.168.0.1,现在客户机192.168.0.88要通过NAT设备访问https://www.360docs.net/doc/7d18606660.html,的网页,https://www.360docs.net/doc/7d18606660.html,的IP是202.43.216.55)。 当客户机192.168.0.88通过IE向https://www.360docs.net/doc/7d18606660.html,发出请求时,它发出的数据包含有下面的信息: 源地址和源端口:192.168.0.88:1234 目标地址和目标端口:202.43.216.55:80 当这个数据包到达NAT设备时,它会检测到这个数据包是要发向公网的,所以它会对源IP地址和端口进行修改(转换),并在映射表中新建IP和端口的映射条目,然后再把修改的数据包转发出去,下面就是修改后数据包的相关信息: 源:218.70.201.185:8999 目标:202.43.216.55:80 (无需变) 当https://www.360docs.net/doc/7d18606660.html,响应时,它会把数据包发给NAT设备,它的数据包含有下面的信息:源:202.43.216.55:80 目:218.70.201.185:8999 当NAT设备收到响应时,它会检查它的IP地址/端口映射表,并且会找到218.70.201.185:8999与192.168.0.88:1234的映射条目,于是它又修改数据包,然后把数据包转发给192.168.0.88。相关数据包信息如下: 源:202.43.216.55:80 目:192.168.0.88:1234 从上面可以看出,最开始发起连接的内网计算机(这里是192.168.0.88)对网关进行NAT的转换工作是一无所知的,它根本就不知道网关对它的数据包“做了手脚”,上面所讲的可以说是最理想的转换,这种转换对IP地址和端口信息只存在于IP首部和TCP/UDP首部的数据包是非常适合的,但恰恰这个世界是复杂的,网络世界也不例外,每种技术都会有它的缺陷,下面就来看看NAT所面临的网络连接问题。

NAT技术实现原理和应用

科 技 天 地 48 INTELLIGENCE ························NAT 技术实现原理和应用 天津工业大学计算机与软件学院网络工程 06级 李亚珩 摘 要:为解决IPV4地址空间不足的问题,出现了网络地址转换(NAT)标准, 就是将某些IP 地址留出来供专用网络重复使用。它在方便网络代理者进行客户端配置的同时,也为用户私自共享上网提供了方便。本文将全面介绍NAT 技术实验原理和应用。 关键词:NAT 技术 IPV4地址 公用地址 专用地址 一、NAT 的定义和产生的背景 NAT(Network Address Translation)网络地址转换是一个IETF 标准,用于专用地址的内部网和使用公用地址的Internet 之间。内部网的传出数据包通过NAT 将其专用地址转换为公用地址。而来自Internet 的传入数据包则由NAT 将其公用地址转换为专用地址。使用NAT 不仅能节约公用IP 地址,并用大大降低了组织的Internet 接入成本。NAT 技术是近年来随着网络及网络共享的发展而发展起来的一门新技术,由于IPV4 地址空间不足,无网络访问权限,因此采用NAT 技术解决了地址不足问题,参见下图: 1、专用地址:专用地址是保留给组织内部私有网络使用的IP 地址,不用用于Internet 通信,可以被不同组织重复使用。 2、公用地址: 公用地址用于Internet,可以在Internet 中随意访问。因此,要在Internet 上通信,必须使用由LANA(Internet Assigned Numbers, Internet 号码分配机构)分配的公用地址。 二、NAT 技术的分类 静态NAT,动态NAT,端口NAT(PAT)1、静态NAT 内部网络中的每个主机都被永久的映射成外部网络中的某个合法地址[1]。 2、动态NAT 在外部网络中定义了合法地址后,采用动态分配的方法映射到内部网络。动态地址NAT 仅是转换IP 地址,它为内部网络IP 地址分配一个临时外部IP 地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。 3、端口NAT(PAT) PAT 普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP 地址后面。 上述三种NAT 技术的类型都有各自的独特之处,在实际就用中也有不同的用处,三种类型NAT 技术的实现原理以及其不同点参照以下表1: 静态NAT 动态NAT 网络地址端口转换NAPT 实现原理 将内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址转换IP 地址,为每一个内部的IP 地址分配一个子临时的外部IP 地址 将中小型的网络隐藏在一个合法的IP 地址后面 优点设置简单且容易实现可用于拨号和远程联接可将内部连接映射到外部网络中的一个单独的IP 地址上适用范围 内部网 远程联接 小型办公室 表1 三种NAT 技术的比较三、NAT 的工作过程 1、NAT 的客户端需要与Internet 通信,于是将数据包发给NAT 服务器; 2、NAT 服务器将数据包中的源端口号和专用IP 地址转换为其自己的端口号和公用IP 地址,然后将数据包发给Internet 上的主机,同时将源端口号和专用IP 地址与其自己的端口号和公用IP 地址的映射关系记录下来,以便后续过程使用; 3、Internet 上的主机将因应发送给NAT 服务器的公用IP 地址; 4、NAT 服务器将所收到的数据包的目的端口号和公用IP 地址根据映射关系转换为客户机的端口号和专用IP 地址并转发给客户机。 四、结束语 NAT 技术一开始是作为解决Internet 地址空间不足而提出的一种短期暂时的解决方案, NAT 技术可以给我们带来各种好处。随着NAT 技术的深入研究,它的应用领域也在逐步扩展,但NAT 技术对一些管理和安全机制的潜在威胁仍在。或许随着IPV6技术发展的相当成熟时,以致于将把现有的IPV4网络代替时,NAT 技术也可能就会消失,也有可能会继续延续下去。 参考文献: [1] 刘丽波:《浅析网络地址转换技术》,《长沙通信职业技术学院学报》,2007年第2期。 [2] 黄明泰:《用sFlow 技术管好网络》,《中国计算机用户》,2004年第46期。 [3] 傅坚、胡正名、杨义先:《IPSec 协议与网络地址转换的融合》,《计算机应用研究》,2003年第2期。

NAT与PAT技术解析

NAT与PAT技术解析 IP地址IP地址耗尽促成了CIDR的开发,但是CIDR开发的主要目的是为了有效的使用现有的INTERNET地址,而同时根据RFC1631(IP NETWORK ADDRESS TRANSLATOR)开发的NATNAT却可以在多重的INTERNET子网中使用相同的IP地址,用来减少注册IP地址的使用。NAT的分为:静态NAT、动态NAT、端口NAT(PAT)。静态NAT:内部网络中的每个主机都被永久的映射成外部网络中的某个合法地址;动态NAT:在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络;PAT:是人们比较熟悉的一种转换方式。PAT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。PATT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT 设备选定的TCP端口号。也就是采用port multIPlexing 技术,或改变外出数据的源port 的技术将多个内部IP地址映射到同一个外部地址。网络地址转换 (NAT) 是一个 Internet 工程任务组 (Internet Engineering Task Force,IETF) 标准,用于允许专用网络上的多台PC (使用专用地址段,例如 10.0.x.x、192.168.x.x、172.x.x.x) 共享单个、全局路由的 IPv4 地址。IPv4 地址日益不足是经常部署 NAT 的一个主要原因。Windows XP 和 Windows Me 中的“Internet 连接共享”及许多 Internet 网关设备都使用 NAT,尤其是在通过DSL 或电缆调制解调器连接宽带网的情况下。NAT 对于解决 IPv4 地址耗费问题 (在 IPv6 部署中却没必要) 尽管很有效,但毕竟属于临时性的解决方案。这种 IPv4 地址占用问题在亚洲及世界其他一些地方已比较严重,且日渐成为北美地区需要关注的问题。这就是人们为什么长久以来一直关注使用 IPv6 来克服这个问题的原因所在。除了减少所需的 IPv4 地址外,由于专用网络之外的所有主机都通过一个共享的 IP 地址来监控通信,因此 NAT 还为专用网络提供了一个隐匿层。NAT 与防火墙或代理服务器不同,但它确实有利于安全。NAT使用的几种情况:1.连接到INTERNE,但却没有足够的合法地址分配给内部主机;2.更改到一个需要重新分配地址的ISP;3.有相同的IP地址的两个INTRANET合并;4。想支持负载均衡(主机);NAT有4种用法:1.TRANSLATION INSIDE LOCAL ADDRESS ----------- 将内部地址一对一的翻译成外部地址;2.OVERLOADING INSIDE GLOBAL ADDRESS --------- 将内部地址多对一的翻译成外部地址,通过地址加端口号的方式区别不同的本地地址。这种方式就是所谓的PAT[/color:43aa144927];3.TCP LOAD DISTRIBUTING ---- 提供在多个、利用率高的主机之间进行负载分担的方法;4.HANDLING OVERLAPPING NETWORK ---- 这种方法主要用于两个INTRANET的互联.NAT的地址转换是指每个内网地址都被转换成IP地址+源端口的方式,这需要公网IP地址为多个。而PAT由于IP地址不足够,就会出现内网地址被转换成IP地址+端口段的形式,这样的公网IP地址通常只是一个。举个例子:NAT192.168.0.2:4444 ----〉202.116.100.5:4444192.168.0.3:5555 ----〉202.116.100.6:5555192.168.0.10:1233 ---〉202.116.100.5:1233PAT192.168.0.2:4444 ----〉202.116.100.5:50003192.168.0.3:5555 ----〉202.116.100.5:50004192.168.0.10:1233 ---〉202.116.100.5:50005简单来说,PAT―多对1,NAT―多对多.

NAT技术超详细

NAT 技术(一) 一、概述 NAT 技术,中文翻译为网络地址转换。该技术产生的原因:IPv4地址危机,在Internet 上应用广泛的IPv4技术,由于其先天性不足,在九十年代初期时,已经预计到了IPv4地址不足,从而开始开发IPv6技术。但开发IPv6需要足够的时间,为了延长IPv4技术的使用时间,产生了NAT 技术。 二、工作原理 修改IP 数据包中的源IP 地址,或目的IP 地址。主要目的是把RFC1918所提议的私有地址转变成在Internet 上可路由的公有合法地址。对于某些有限的应用(如DNS 、FTP 等),它也可以修改IP 数据包有效载荷中的地址。由于应用的复杂性,NAT 目前支持的应用有限,当然,如果需要,完全可以针对新的应用做相应的开发工作。 从配置了NAT 技术的一台路由器上,把整个网络分成两部分:内部网络和外部网络。 NAT 技术中有四个术语: 内部本地地址----局域网内部主机的拥有的一个真实地址,一般来说是一个私有地址 内部全局地址----对于外部网络来说,局域网内部主机所表现的IP 地址。 外部本地地址----外部网络主机的真实地址。 外部全局地址----对于内部网络来说,外部网络主机所表现的IP 地址。 对于网络地址转换技术来讲,最重要的一点是,在配置NAT 的路由器上形成了NAT 转换表,这个转换表的形成是非常关键的。配置NAT 后,能形成正确的转换表,那么我们的工作就算成功了。 三、基本配置 1、 静态转换: Router(config)#ip nat inside source static 内部本地地址 内部全局地址 2、 动态转换: Router(config)#ip nat pool 地址池 起始地址 最后地址 netmask 子网掩码 Router(config)#access-list 表号 permit 网络号 反掩码 Router(config)#ip nat inside source list 表号 pool 地址池 3、 PAT : Router(config)#access-list 表号 permit 网络号 反掩码 Router(config)#ip nat inside source list 表号 interface 外部接口 四、简单案例 如下图所示,一个中小型企业网络,使用一台路由器和外部相连接,企业有W WW 服务器和FTP 服务器,用来提供给外部用户访问。企业内部员工也需要和Internet 连接。如果企业能够申请到多个公网地址(六个公网地址:202.1.1.1-202.1.1.6)。 h t t p ://h i .b a i d u .c o m /r u i j i e v i d e o 本人整理并非原创!!!

NAT技术及其应用

NAT技术及其应用 电子科技大学通信学院李帆 01-8-3 上午 10:16:11 1.背景: 随着Internet的飞速发展,越来越多的用户加入到互联网的使用中。目前全球上网人数已经超过 4亿,到2005年将达到10亿,2010年达到30亿。而目前的4.8亿移动电话用户到2003年也会猛增 到10亿。 如此惊人的增长速度,使得网络本身的发展遇到了障碍,最主要的两个问题是: 一:路由表的快速增长。有数据表明,1990年,只有大约5000条路由被存放在路由表中,到1995 年,这个数字达到了35,000,而2000年则达到了120,000条,而且这个数值会保持60%~100%的增长 率。这使得大量的网络设备由于处理速度跟不上而很快被淘汰。 二: IP地址即将耗尽。现在广泛采用的IPv4设计于1981年,使用32位二进制数。从95年开 始全球的IP地址以平均每年6000万~8000万的速度被消耗。直到目前,IPv4所提供的40亿个地址 以被用去了一半。有专家预测,2005年,全球地址将全部用完。 面对这些问题,业界提供了大量的解决方案。对于路由表膨胀的问题,可以使用VLSM,CIDR等技 术以及各种路由协议的特性来缓解。 而对于IP地址的耗尽问题,IPv6应该是最终的解决手段。但是,由于现有网络都是使用IPv4, 几乎所有的现有设备都不支持IPv6,要升级设备需要大量的资金,而且改造整个网络也是一项浩大而 且复杂的工程。同时,虽然亚太和欧洲地区的地址资源稀缺,但是美国拥有充沛的地址资源,所以很 多大型美国厂商如cisco等并不急于推行IPv6。各种因素的作用,延缓了IPv6的实施。所以IPv6 的全面实现还需要一段很长的时间。 这样,就需要一种过渡的解决手段,来暂时的解决IP地址耗尽的问题。 2.NAT技术的出现及简介 NAT(Network address translation)(RFC 1631中作出规定)作为这样一种过渡解决手段,可 以用来减少对全球合法注册地址的需求。简单的说,NAT就是在内部专用网络中使用内部地址(不可 路由),而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址替换成 全局地址——合法地址(可路由),从而在外部公共网上正常使用。 这里需要解释一下,内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内 部网络中使用,不能被路由。虽然内部地址可以随机挑选,但是通常使用的是RFC 1918中定义的专 用地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255,192.168.0.0~192.168.255.255。 全局地址,是指合法的IP地址,它是由NIC或者网络服务提供商分配的地址,对外代表一个或多个 内部局部地址,是全球统一的可寻址的地址(可路由)。 NAT的主要作用是节约地址空间。在任一时刻,如果内部网络中只有少数节点与外界建立连接, 那么就只有少数的内部地址需要被转化成全局地址,可以减少对合法地址的需求。同时,还可以使多 个内部节点共享一个外部地址,使用端口进行区分(NAPT),这样就能更有效的节约合法地址。 除了节约地址,NAT还能简化配置,增加网络规划的灵活性。使用NAT,可以在规划地址时有更大

华为NAT技术

知识储备 公有地址和私有地址 访问控制列表 NAT的概念 动态(basic NAT、NAPT、Easy IP) 静态(一一对应) NAT Server(也叫端口映射) 华为NAT的分类 NAT的分类只区别于获得的IP地址来自于哪里,哪些设备获得IP;basic NAT //配置ACL规则,允许校园网中192.168.1.0/24网段的主机访问外网。 acl number 2000 rule 5 permit source 192.168.1.0 0.0.0.255 //配置地址池 nat address-group 1 202.1.1.50 202.1.1.100 //在外网接口上绑定 nat outbound 2000 address-group 1 NAPT //配置ACL规则,允许校园网中192.168.1.0/24网段的主机访问外网。 acl number 2000 rule 5 permit source 192.168.1.0 0.0.0.255

//配置地址池 nat address-group 1 202.1.1.50 202.1.1.50 //在外网接口上绑定 nat outbound 2000 address-group 1 Easy IP 不需要地址池,直接在外网接口上指定; nat outbound 2000 //在出接口上做Easy IP 方式的NAT 静态NAT 直接在出接口上配置 nat static global 211.1.1.6 inside 192.168.1.2 NAT Server(端口映射) nat server protocol tcp global 202.10.1.3 www inside 192.168.0.100 8080

相关主题
相关文档
最新文档