NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等
其次,NAT在实现大将多个内部主机发出的毗连复用到一个IP上,这就使依靠IP举办主机跟踪的机制都失效了。如收集打点中必要的基于收集流量说明的应用无法跟踪到终端用户与流量的详细举动的相关。基于用户举动的日记说明也变得坚苦,由于一个IP被许多用户共享,假如存在恶意的用户举动,很难定位到提倡毗连的谁人主机。即便有一些机制提供了在NAT网关长举办毗连跟踪的要领,可是把这种调动相关接续起来也坚苦重重。基于IP的用户授权不再靠得住,由于拥有一个IP的不便是一个用户或主机。一个处事器也不能简朴把统一IP的会见视作统一主机提倡的,不能举办关联。有些处事器配置有毗连限定,统一时候只采取来自一个IP的有限会见(偶然是仅一个会见),这会造成差异用户之间的处事抢占和列队。偶然处事器端这样做是出于DOS进攻防护的思量,由于一个用户正常环境下不该该成立大量的毗连哀求,,太过行使处事资源被领略为进攻举动。可是这在NAT存在时不能简朴凭证毗连数判定。总之,由于NAT潜伏了通讯的一端,把简朴的工作伟大化了。 我们来深入领略NAT一下对IP端到端模子的粉碎力。NAT通过修改IP首部的信息调动通讯的地点。可是在这个转换进程中只能基于一个会话单元。当一个应用必要保持多个双向毗连时,贫困就很大。NAT不能领略多个会话之间的关联性,无法担保转换切合应用必要的法则。当NAT网关拥有多个公有IP地点时,一组关联会话也许被分派到差异的公网地点,这凡是是处事器端无法接管的。更为严峻的是,当公网侧的主神秘主动向私网侧发送数据时,NAT网关没有转换这个毗连必要的关联表,这个数据包无法达到私网侧的主机。这些反偏向发送数据的毗连总有应用协议的约定或在初始成立的会话中举办过协商。可是由于NAT事变在收集层和传输层,无法领略应用层协议的举动,对这些信息是蒙昧的。NAT但愿本身对通讯两边是透明的,可是在这些环境下这是一种奢望。 图4 NAT对端到端通讯模子的粉碎 另外,NAT事变机制依靠于修改IP包头的信息,这会故障一些安详协议的事变。由于NAT改动了IP地点、传输层端标语和校验和,这会导致认证协议彻底不能事变,由于认证目标就是要担保这些信息在传输进程中没有变革。对付一些地道协议,NAT的存在也导致了特另外题目,由于地道协议凡是用外层地点标识地道实体,穿过NAT的地道会有IP复用相关,在另一端必要警惕处理赏罚。ICMP是一种收集节制协议,它的事变道理也是在两个主机之间转达过错和节制动静,由于IP的对应副黄?从头映射,ICMP也要举办复用息争复用处理赏罚,许多环境下由于ICMP报文载荷无法提供足够的信息,解复用会失败。IP分片机制是在信息源端或收集路径上,必要发送的IP报文尺寸大于路径现实能承载最大尺寸时,IP协议层会将一个报文分成多个片段发送,然后在吸取端重组这些片段恢复兴始报文。IP这样的分片机制会导致传输层的信息只包罗在第一个分片中,NAT难以辨认后续分片与关联表的对应相关,因此必要非凡处理赏罚。 3.3 NAT穿越技能 前面表明白NAT的破绽,为了办理IP端到端应用在NAT情形下碰着的题目,收集协议的计划者们缔造了各类兵器来举办应对。但遗憾的是,这里每一种要领都不美满,还必要在内部主机、应用措施可能NAT网关上增进特另外处理赏罚。 应用层网关 应用层网关(ALG)是办理NAT对应用层协议无感知的一个最常用要领,已经被NAT装备厂商普及回收,成为NAT装备的一个必须成果。由于NAT不感知应用协议,以是有须要特殊为每个应用协议定制协议说明成果,这样NAT网关就能领略并支持特定的协议。ALG与NAT形成互动相关,在一个NAT网关检测到新的毗连哀求时,必要判定是否为已知的应用范例,这凡是是基于毗连的传输层端口信息来识此外。在辨认为已知应用时,再挪用响应成果对报文的深层内容举办搜查,当发明任何情势表达的IP地点和端口时,将会把这些信息同步转换,而且为这个新毗连建设一个附加的转换表项。这样,当报文达到公网侧的目标主机时,应用层协议中携带的信息就是NAT网关提供的地点和端口。一旦公网侧主机开始发送数据或成立毗连到此端口,NAT网关就可以按照关联表信息举办转换,再把数据转发到私网侧的主机。许多应用层协议实现不限于一个初始毗连(凡是为信令或节制通道)加一个数据毗连,也许是一个初始毗连对应许多后续的新毗连。较量出格的协议,在一次协商中会发生一组相干系接,好比RTP/RTCP协议划定,一个RTP通道成立后占用持续的两个端口,一个处事于数据,另一个处事于节制动静。此时,就必要ALG分派持续的端口为应用处事。ALG能乐成办理大部门协议的NAT穿越需求,可是这个要领也有很大的限定。由于应用协议的数目很是多并且在不绝成长变革之中,添加到装备中的ALG成果都是为特定协议的特定类型版本而开拓的,协议的创新和演进要求NAT装备制造商必需跟踪这些协议的最近尺度,同时兼容旧尺度。尽量有如Linux这种开放平台应承动态加载新的ALG特征,可是打点本钱如故很高,收集维护职员也不能随时相识用户都必要什么应用。因此为每个应用协议开拓ALG代码并跟踪最新尺度是不行行的,ALG只能办理用户最常用的需求。另外,出于安详性必要,有些应用范例报文从源端发出就已经加密,这种报文在收集中间无法举办说明,以是ALG无能为力。 探针技能STUN和TURN (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |