欢迎来到天天文库
浏览记录
ID:39339568
大小:2.02 MB
页数:31页
时间:2019-07-01
《NAT穿透技术-1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1NAT工作原理2NAT分类3NAT类型探测4NAT穿越方法5Q&A 1.1NAT基本概念NAT:NetworkAddressTranslation网络地址转换,即改变IP报文中的源或目的地址的一种处理方式;使一个局域网中的多台主机使用少数的合法地址访问外部资源;有效的隐藏了内部局域网的主机IP地址,起到了安全保护的作用。 公有地址和私有地址;私有地址是指内部网络(局域网内部)的主机地址,而公有地址是局域网的外部地址,在因特网上的全球唯一的IP地址;地址池地址池是由一些外部地址(全球唯一的IP地址)组合而成的,我们称这样的一个地址集合为地址池。在内部网络的数据包通过地址转换达到外部网络时,将会选择地址池中的某个地址作为转换后的源地址,这样可以有效利用用户的外部地址,提高内部网络访问外部网络的能力。 1.2NAT工作原理拓扑图InternetInside10.1.1.1InsideLocalIPAddress10.1.1.1NATtableInsideGlobalIPAddress166.1.1.110.1.1.2HostB172.20.7.3ACBABDSA10.1.1.1DA10.1.1.1SA166.1.1.1DA166.1.1.1DC内部本地地址:私有IP,不能直接用于互连网。内部全局地址:用来代替内部本地IP地址的,对外或在互联网上是合法的IP地址。 1.3NAT优点和缺点优点解决了lP地址不足的问题,节省公有合法IP地址为私网提供了安全保障,提高内部网络的安全性缺点网络的延迟增大配置和维护的复杂性增大 1NAT工作原理2NAT分类3NAT类型探测4NAT穿越方法5Q&A 2.1NAT分类NAT主要分两类:基本NAT和NAPT(NetworkAddress/PortTranslation)。基本NAT:拥有多个公网IP的情形下,将公网IP地址与内网主机进行静态绑定将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的端口号NAPT:NAPT可分两种类型:圆锥型NAT(ConeNAT)和对称型NAT(SymmetricNAT)圆锥型NAT又分:完全圆锥型NAT(FullConeNAT)、受限圆锥型NAT(RestrictedConeNAT)和端口受限圆锥型NAT(PortRestrictedConeNAT)。 2.1NAT分类NATBasicNAT 2.2完全圆锥型NAT私网公网X,yA,bMFullConeNATPSNAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定任何外部包都可以通过地址{A:b}送到客户主机的{X:y}地址上 2.3受限圆锥型NATNAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定只有来自主机{P}的包才能和主机{X:y}通信私网公网X,yA,bMRestrictedConeNATSP,qP,rXX 2.4端口受限圆锥型NAT私网公网X,yA,bM,nPortRestrictedConeNATSP,qP,rXXNAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定只有来自主机{P,q}和{M,n}的包才能和主机{X:y}通信 2.5对称型NATNAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定为{X:y}|{A:b}<->{P:q}NAT只接受来自{P:q}的incomingpacket,将它转给{X:y}每次客户机请求一个不同的公网地址和端口,NAT会新分配一个端口号{C,d}私网公网X,yA,bM,nPortRestrictedConeNATSP,qP,rXXC,d 1NAT工作原理2NAT分类3NAT类型探测4NAT穿越方法5Q&A 3.1前提条件有一个公网的Server并且绑定了两个公网IP(IP-1,IP-2)Server做UDP监听S1(IP-1,Port-1),S2(IP-2,Port-2),并根据客户端的要求进行应答待检测的用户可以正常进行UDP通信 3.2NAT检测流程图 3.3NAT检测步骤第一步:检测客户端是否有能力进行UDP通信以及客户端是否位于NAT后?客户端建立UDPsocket然后向服务器S1发送数据包,要求服务器返回客户端的IP和Port;客户端发送请求后立即开始接受数据包,要设定socketTimeout300ms,防止无限堵塞,重复这个过程若干次;如果每次都超时,无法接受到服务器的回应,则说明客户端无法进行UDP通信(检测停止);当接收到服务器的回应时,需要把服务器返回的客户端(IP,Port)和客户端socket的(LocalIP,LocalPort)比较。如果完全相同则客户端不在NAT后,且具有公网IP,可以直接监听UDP端口接收数据进行通信(检测停止);否则客户端在NAT后要做进一步的NAT类型检测 第二步:检测客户端NAT是否是FullConeNAT?客户端建立UDPsocket然后用向服务器S1的(IP-1,Port-1)发送数据包,要求服务器用另一对(IP-2,Port-2)响应客户端的请求;客户端发送请求后立即开始接受数据包,要设定socketTimeout300ms,防止无限堵塞,重复这个过程若干次。如果每次都超时,无法接受到服务器的回应,则说明客户端的NAT不是一个FullConeNAT,具体类型有待下一步检测(继续)。如果能够接受到服务器S2(IP-2,Port-2)返回的应答包,则说明客户端是一个FullConeNAT,这样的客户端能够进行UDP-P2P通信(检测停止)。 第三步:检测客户端NAT是否是SymmetricNAT?客户端记下在第一步时服务器S1返回客户端的IP和Port。用同样的方法用一个socket向服务器S2的(IP-2,Port-2)发送数据包要求服务器返回客户端的IP和Port。比较上面两个过程从服务器返回的客户端(IP,Port),如果两个过程返回的(IP,Port)有一对不同,则说明客户端为SymmetricNAT,这样的客户端无法进行UDP-P2P通信(检测停止)。否则是RestrictedConeNAT,是否为PortRestrictedConeNAT有待检测(继续)。 第四步:检测客户端NAT是RestrictedConeNAT还是PortRestrictedConeNAT?客户端建立UDPsocket然后向服务器S1的(IP-1,Port-1)发送数据包,要求服务器用IP-1和一个不同于Port-1的端口应答客户端;客户端发送请求后立即开始接受数据包,要设定socketTimeout300ms,防止无限堵塞.重复这个过程若干次如果每次都超时,无法接受到服务器的回应,则说明客户端是一个PortRestrictedConeNAT如果能够收到服务器的响应则说明客户端是一个RestrictedConeNAT。 1NAT工作原理2NAT分类3NAT类型探测4NAT穿越方法5Q&A 4.1NAT常见穿越方案应用层网关(ALG)方式。MIDCOM(Middle-BoxCommunications)代理方式。STUN(SimpleTraversalofUDPThroughNAT),即UDP对NAT的简单穿越TRUN(TraversalUsingRelayNAT),即采用中继的NAT穿越ICE(InteractiveConnectivityEstablishment),互动式连接 4.2常见NAT设备DeviceModalTypeNETGEARRP614v4FullConeD-LinkNI604+C…A1SYMETRICH3CBR204+PortRestrictedConeLinksysBEFSR41-CNSYMETRICTP-LinkTL-R860+FullCone 4.3UDP穿越NAT一个客户端位于NAT设备之后,另一个有公网地址反向连接(ConnectionReversal)10.0.0.118.181.0.31155.99.25.11218.77.2.8118.181.0.31:123410.0.0.1:432118.181.0.31:1234155.99.25.11:520018.181.0.31:1234218.77.2.81:5205 UDP打洞(UDPHolePunching)分为3种具体情景来讨论:第一种:两个客户端都位于同一个NAT设备后面,即位于同一个内网中。第二种:两个客户端分别位于不同的NAT设备后面,分属不同的内网。第三种:客户端位于两层NAT设备之后,通常最上层的NAT是由ISP网络提供商提供的,第二层的NAT是家用的NAT路由器之类的设备。 两个客户端都位于同一个NAT设备后面,位于同一个内网中18.181.0.3110.0.0.110.0.0.3155.99.25.1118.181.0.31:1234155.99.25.11:520018.181.0.31:123410.0.0.1:432118.181.0.31:1234155.99.25.11:520518.181.0.31:123410.0.0.3:4321 两个客户端分别位于不同的NAT设备后面,分属不同的内网10.0.0.1192.168.0.318.181.0.3118.181.0.31:123410.0.0.1:432118.181.0.31:1234192.168.0.3:4321155.99.25.11138.76.29.718.181.0.31:1234155.99.25.11:520018.181.0.31:1234138.76.29.7:3100 客户端位于两层NAT设备之后,通常最上层的NAT是由ISP网络提供商提供,第二层NAT是家用的路由器之类的设备 NATRelaying中继方式1.用户与中继服务器建立联系2.中继服务器转发消息问题:1.服务器耗费的时间、计算量大2.通信时延大3.网络带宽资源的耗费 4.4TCP穿越NATTCP打洞(TCPHolePunching) 1NAT工作原理2NAT分类3NAT类型探测4NAT穿越方法5Q&A Q&A
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处