



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NAT原理与NAT穿越最近在看东西的时候发现很多网络程序中都需要NAT穿越,特意在此总结一下。先做一个约定:内网A中有:A1(192.168.0.8)、A2(192.168.0.9)两用户网关X1(一个NAT设备)有公网IP 1.2.3.4内网B中有:B1(192.168.1.8)、B2(192.168.1.9)两用户,网关Y1(一个NAT设备)有公网IP 1.2.3.5公网服务器:C (6.7.8.9) D (6.7.8.10) NAT原理网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。下面介绍两类不同方式实现的NAT:1. NAT(Network Address Translators):称为基本的NAT在客户机时 192.168.0.8:40006.7.8.9:8000在网关时 1.2.3.4:40006.7.8.9:8000服务器C 6.7.8.9:8000其核心是替换IP地址而不是端口,这会导致192.168.0.8使用4000端口后,192.168.0.9如何处理?具体参考RFC 1631基本上这种类型的NAT设备已经很少了。或许根本我们就没机会见到。2. NAPT(Network Address/Port Translators):其实这种才是我们常说的 NATNAPT的特点是在网关时,会使用网关的 IP,但端口会选择一个和临时会话对应的临时端口。如下图:在客户机时 192.168.0.8:40006.7.8.9:8000在网关时 1.2.3.4:620006.7.8.9:8000服务器C 6.7.8.9:8000网关上建立保持了一个1.2.3.4:62000的会话,用于192.168.0.8:4000与6.7.8.9:8000之间的通讯。对于NAPT,又分了两个大的类型,差别在于,当两个内网用户同时与8000端口通信的处理方式不同:2.1、Symmetric NAT型 (对称型)在客户机时 192.168.0.8:40006.7.8.9:8000 192.168.0.8:40006.7.8.10:8000在网关时,两个不同session但端口号不同 1.2.3.4:620006.7.8.9:8000 1.2.3.4:620016.7.8.10:8000服务器C 6.7.8.9:8000服务器 D 6.7.8.10:8000这种形式会让很多p2p软件失灵。2.2、Cone NAT型(圆锥型)在客户机时 192.168.0.8:40006.7.8.9:8000 192.168.0.8:40006.7.8.10:8000在网关时,两个不同session但端口号相同 1.2.3.4:620006.7.8.9:8000 1.2.3.4:620006.7.8.10:8000服务器C 6.7.8.9:8000服务器D 6.7.8.10:8000目前绝大多数属于这种。Cone NAT又分了3种类型: a)Full Cone NAT(完全圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000 ,192.168.0.8可以收到任意外部主机发到1.2.3.4:62000的数据报。 b)Address Restricted Cone NAT (地址限制圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8先给服务器C 6.7.8.9发送一个数据报后,192.168.0.8才能收到6.7.8.9发送到1.2.3.4:62000的数据报。 c)Port Restricted Cone NAT(端口限制圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8先向外部主机地址端口6.7.8.9:8000发送一个数据报后,192.168.0.8才能收到6.7.8.9:8000发送到1.2.3.4:62000的数据报。 穿越NAT的实现A1在客户机时 192.168.0.8:40006.7.8.9:8000X1在网关时 1.2.3.4:620006.7.8.9:8000服务器C 6.7.8.9:8000B1在客户机时 192.168.1.8:40006.7.8.9:8000Y1在网关时 1.2.3.5:310006.7.8.9:8000两内网用户要实现通过各自网关的直接呼叫,需要以下过程:1、 客户机A1、B1顺利通过格子网关访问服务器C ,均没有问题(类似于登录)2、 服务器C保存了 A1、B1各自在其网关的信息(1.2.3.4:62000、1.2.3.5:31000)没有问题。并可将该信息告知A1、B2。3、 此时A1发送给B1网关的1.2.3.5:31000是否会被B1收到?答案是基本上不行(除非Y1设置为完全圆锥型,但这种设置非常少),因为Y1上检测到其存活的会话中没有一个的目的IP或端口于1.2.3.4:62000有关而将数据包全部丢弃!4、 此时要实现A1、B1通过X1、Y1来互访,需要服务器C告诉它们各自在自己的网关上建立“UDP隧道”,即命令A1发送一个 192.168.0.8:40001.2.3.5:31000的数据报,B1发送一个192.168.1.8:40001.2.3.4:62000的数据报,UDP形式,这样X1、Y1上均存在了IP端口相同的两个不同会话(很显然,这要求网关为Cone NAT型,否则,对称型Symmetric NAT设置网关将导致对不同会话开启了不同端口,而该端口无法为服务器和对方所知,也就没有意义)。5、 此时A1发给Y1,或者B1发给X1的数据报将不会被丢弃且正确的被对方收到.综合P2P可实现的条件需要:1、 中间服务器保存信息、并能发出建立UDP隧道的命令2、 网关均要求为Cone NAT类型。Symmetric NAT不适合。3、 完全圆锥型网关可以无需建立udp隧道,但这种情况非常少,要求双方均为这种类型网关的更少。4、 假如X1网关为Symmetric NAT, Y1为Address Restricted Cone NAT 或Full Cone NAT型网关,各自建立隧道后,A1可通过X1发送数据报给Y1到B1(因为Y1最多只进行IP级别的甄别),但B2发送给X1的将会被丢弃(因为发送来的数据报中端口与X1上存在会话的端口不一致,虽然IP地址一致),所以同样没有什么意义。5、 假如双方均为Symmetric NAT的情形,新开了端口,对方可以在不知道的情况下尝试猜解,也可以达到目的,但这种情形成功率很低,且带来额外的系统开支,不是个好的解决办法。6、 不同网关型设置的差异在于,对内会采用替换IP的方式、使用不同端口不同会话的方式,使用相同端口不同会话的方式;对外会采用什么都不限制、限制IP地址、限制IP地址及端口。7、 这里还没有考虑同一内网不同用户同时访问同一服务器的情形,如果此时网关采用AddressRestricted Cone NAT 或Full Cone NAT型,有可能导致不同用户客户端可收到别人的数据包,这显然是不合适的。一些现在常用的技术:ALG(应用层网关):它可以是一个设备或插件,用于支持SIP协议,主要类似与在网关上专门开辟一个通道,用于建立内网与外网的连接,也就是说,这是一种定制的网关。更多只适用于使用他们的应用群体内部之间。UpnP:它是让网关设备在进行工作时寻找一个全球共享的可路由IP来作为通道,这样避免端口造成的影响。要求设备支持且开启upnp功能,但大部分时候,这些功能处于安全考虑,是被关闭的。即时开启,实际应用效果还没经过测试。STUN(Simple Traversalof UDP Through Network):这种方式即是类似于我们上面举例中服务器C的处理方式。也是目前普遍采用的方式。但具体实现要比我们描述的复杂许多,光是做网关Nat类型判断就由许多工作,RFC3489中详细描述了。TU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钣金安全考试题及答案
- 安全技术试题及答案
- 安全管护培训试题及答案
- 不良资产处置行业创新模式与市场拓展路径研究报告
- 便利店智能支付与无感购物体验研究报告(2025年)
- 门店运营课程培训课件
- 中国南方地区课件
- 中国单一制课件
- 护理文书书写规范
- 原发性肝癌护理课件
- 2024年输配电及用电工程职称评审题库-单选
- 三年级(下册)西师版数学全册重点知识点
- 第五章 消费金融资产证券化
- 云南省红河市2025届数学高一上期末统考试题含解析
- 奥沙利铂超敏反应全程管理中国专家共识(2024年版)解读
- 国家开放大学《管理信息系统》大作业参考答案
- 2024年河北理科高考成绩排名一分一档表
- 智联eas测评题库
- 浙江省杭州市余杭区2024年小升初语文试题及答案
- 实验训练2数据查询操作
- 2024年吉林省中考道德与法治试卷真题(含答案)
评论
0/150
提交评论