检测到严格网络地址转换原理

NAT的四种类型及类型检测
考虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NAT中针对TCP的实现基本上是一致的,其间并不存在太大差异,这是因为TCP协议本身 便是面向连接的,因此无需考虑网络连接无状态所带来复杂性。 NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。 这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。 另外,这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 1632中有对NAT的说明。
用语定义1.内部Tuple:指内部主机的私有地址和端口号所构成的二元组,即内部主机所发送报文的源地址、端口所构成的二元组2.外部Tuple:指内部Tuple经过NAT的源地址/端口转换之后,所获得的外部地址、端口所构成的二元组,即外部主机收到经NAT转换之后的报文时,它所看到的该报文的源地址(通常是NAT设备的地址)和源端口3.目标Tuple:指外部主机的地址、端口所构成的二元组,即内部主机所发送报文的目标地址、端口所构成的二元组
详细释义1. Full Cone NAT:所有来自同一 个内部Tuple X的请求均被NAT转换至同一个外部Tuple Y,而不管这些请求是不是属于同一个应用或者是多个应用的。除此之外,当X-Y的转换关系建立之后,任意外部主机均可随时将Y中的地址和端口作为目标地址 和目标端口,向内部主机发送UDP报文,由于对外部请求的来源无任何限制,因此这种方式虽然足够简单,但却不那么安全2. Restricted Cone NAT: 它是Full Cone的受限版本:所有来自同一个内部Tuple X的请求均被NAT转换至同一个外部Tuple Y,这与Full Cone相同,但不同的是,只有当内部主机曾经发送过报文给外部主机(假设其IP地址为Z)后,外部主机才能以Y中的信息作为目标地址和目标端口,向内部 主机发送UDP请求报文,这意味着,NAT设备只向内转发(目标地址/端口转换)那些来自于当前已知的外部主机的UDP报文,从而保障了外部请求来源的安 全性3. Port Restricted Cone NAT:它是Restricted Cone NAT的进一步受限版。只有当内部主机曾经发送过报文给外部主机(假设其IP地址为Z且端口为P)之后,外部主机才能以Y中的信息作为目标地址和目标端 口,向内部主机发送UDP报文,同时,其请求报文的源端口必须为P,这一要求进一步强化了对外部报文请求来源的限制,从而较Restrictd Cone更具安全性4. Symmetric NAT:这是一种比所有Cone NAT都要更为灵活的转换方式:在Cone NAT中,内部主机的内部Tuple与外部Tuple的转换映射关系是独立于内部主机所发出的UDP报文中的目标地址及端口的,即与目标Tuple无关; 在Symmetric NAT中,目标Tuple则成为了NAT设备建立转换关系的一个重要考量:只有来自于同一个内部Tuple 、且针对同一目标Tuple的请求才被NAT转换至同一个外部Tuple,否则的话,NAT将为之分配一个新的外部Tuple;打个比方,当内部主机以相 同的内部Tuple对2个不同的目标Tuple发送UDP报文时,此时NAT将会为内部主机分配两个不同的外部Tuple,并且建立起两个不同的内、外部 Tuple转换关系。与此同时,只有接收到了内部主机所发送的数据包的外部主机才能向内部主机返回UDP报文,这里对外部返回报文来源的限制是与Port Restricted Cone一致的。不难看出,如果说Full Cone是要求最宽松NAT UDP转换方式,那么,Symmetric NAT则是要求最严格的NAT方式,其不仅体现在转换关系的建立上,而且还体现在对外部报文来源的限制方面。
P2P的NAT研究 第一部分:NAT介绍 第二部分:NAT类型检测
第一部分: NAT介绍 各种不同类型的NAT(according to RFC) Full Cone NAT: && 内网主机建立一个UDP socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,任何外部主机只要知道这个(PublicIP:PublicPort)就可以发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包 Restricted Cone NAT: && 内网主机建立一个UDP socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机IP发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包 Port Restricted Cone NAT: &&& 内网主机建立一个UDP socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机(IP,Port)发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,Port)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包 Symmetric NAT: &&& 内网主机建立一个UDP 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肯定不同,也就是说一定不能是PublicIP-1等于 PublicIP-2且Port-1等于Port-2。此外,如果任何外部主机想要发送数据给这个内网主机,那么它首先应该收到内网主机发给他的数据,然后才能往回发送,否则即使他知道内网主机的一个(PublicIP,Port)也不能发送数据给内网主机,这种NAT无法实现UDP-P2P通信。
第二部:NAT类型检测
前提条件:有一个公网的Server并且绑定了两个公网IP(IP-1,IP-2)。这个Server做UDP监听(IP-1,Port-1),(IP-2,Port-2)并根据客户端的要求进行应答。
第一步:检测客户端是否有能力进行UDP通信以及客户端是否位于NAT后?
客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器返回客户端的IP和Port, 客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程若干次。如果每次都超时,无法接受到服务器的回应,则说明客户端无法进行UDP通信,可能是防火墙或NAT阻止UDP通信,这样的客户端也就 不能P2P了(检测停止)。 当客户端能够接收到服务器的回应时,需要把服务器返回的客户端(IP,Port)和这个客户端socket的 (LocalIP,LocalPort)比较。如果完全相同则客户端不在NAT后,这样的客户端具有公网IP可以直接监听UDP端口接收数据进行通信(检 测停止)。否则客户端在NAT后要做进一步的NAT类型检测(继续)。
第二步:检测客户端NAT是否是Full Cone NAT?
客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器用另一对(IP-2,Port-2)响应客户端的请求往回 发一个数据包,客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程若干次。如果每次都超时,无法接受到服务器的回应,则说明客户端的NAT不是一个Full Cone NAT,具体类型有待下一步检测(继续)。如果能够接受到服务器从(IP-2,Port-2)返回的应答UDP包,则说明客户端是一个Full Cone NAT,这样的客户端能够进行UDP-P2P通信(检测停止)。
第三步:检测客户端NAT是否是Symmetric NAT?
客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器返回客户端的IP和Port, 客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程直到收到回应(一定能够收到,因为第一步保证了这个客户端可以进行UDP通信)。 用同样的方法用一个socket向服务器的(IP-2,Port-2)发送数据包要求服务器返回客户端的IP和Port。 比 较上面两个过程从服务器返回的客户端(IP,Port),如果两个过程返回的(IP,Port)有一对不同则说明客户端为Symmetric NAT,这样的客户端无法进行UDP-P2P通信(检测停止)。否则是Restricted Cone NAT,是否为Port Restricted Cone NAT有待检测(继续)。
第四步:检测客户端NAT是否是Restricted Cone NAT还是Port Restricted Cone NAT?
客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器用IP-1和一个不同于Port-1的端口发送一个UDP 数据包响应客户端, 客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程若干次。如果每次都超时,无法接受到服务器的回应,则说明客户端是一个Port Restricted Cone NAT,如果能够收到服务器的响应则说明客户端是一个Restricted Cone NAT。以上两种NAT都可以进行UDP-P2P通信。
注:以上检测过程中只说明了可否进行UDP-P2P的打洞通信,具体怎么通信一般要借助于Rendezvous Server。另外对于Symmetric NAT不是说完全不能进行UDP-P2P达洞通信,可以进行端口预测打洞,不过不能保证成功。
顶一下(0) 踩一下(0)
热门标签:13-05-20正版火炬之光2 检测到严格网络地址转换/检测到防火墙问…_火炬之光2吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:53,033贴子:
13-05-20正版火炬之光2 检测到严格网络地址转换/检测到防火墙问…
求大神指教啊!!!为什么联机进入大厅一个房间都看不到啊.那么多正版的用户都用了的汉化MOD,不可能没有一个房间的啊!求指教!!!万分感谢!!!
相关的贴子5497351430相关的图贴
MOD得一样,而且MOD排序也得一样,才能正常的联机
内&&容:使用签名档&&
保存至快速回贴
为兴趣而生,贴吧更懂你。&或您当前位置:&&&&&&&&&
售前咨询热线
NAT(网络地址转换)是如何工作的?(1)
大势至公司网络管理软件、公司网管必备软件列表
如果你正在阅读本文,那你很有可能已经连上了因特网,这就是你用网络地址转换 (Network Address Translation, NAT) 的一个很好的机会!因特网已经发展到比人们当初设想时还庞大得多了。尽管其具体规模无法知晓,但现在估计有1亿台主机和超过3.5亿的用户活跃在因特网上。这比美国所有人口总数还多!(这篇文章发布较早,如今实际数量已经远远超过这个了,译者) 事实上,因特网每年都以两倍的速率不断扩大。那么面对日益庞大的因特网,NAT该做什么呢?所有的事情!对于一台计算机要想和其他计算机进行通信或应用因特网上的Web服务 (电子邮件等各种网络服务,译者) ,那么它必须要有一个 IP 地址。一个 IP 地址是一串唯一的32位数字,它标识你的计算机在网络中的位置。它基本上就像你的邮箱地址一样:一种能够正确找到你并把网络信息送给你的地址。当初IP地址问世时,所有人都认为其拥有的地址能够覆盖到每一个人。理论上,互不相同的IP 地址有4,294,967,296 (232) 个。但实际上真正可用的地址数比这要少 (在32亿到33亿之间) ,因为IP地址按类别划分的方法和需要留出一些地址来进行广播,伴随着因特网的膨胀和家庭网络与公司网络的不断增加,可用的 IP 地址显然已经不够了。最容易想到的解决方案是重新设计地址格式让它拥有更多的地址。这种方案正在开发,但是将花费数年才会实现,因为它需要跟换全球整个因特网的基础设备。NAT路由器传送进出私有网络的示意图:498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="447" height="176" src="/uploads/images//1141570.jpg" />这就是 NAT (RFC 1631) 需要拯救的地方。总的来说,网络地址转换 (NAT) 允许一个单独的设备,比如像路由器,作为因特网 (公共网络) 和局域网 (私有网络) 之间的代理。这就意味着对外部网络来说仅仅只需要一个单独的 IP 地址就可以代表一组 (内部网络的) 计算机。IP 地址的短缺仅仅是使用NAT的一个原因。另外两个原因是:安全管理你将知道跟多关于你如何收益于NAT的东西,但是首先,让我们再靠近点看看 NAT 还能做什么 ...读者所应具备的知识:本篇文档的读者应具备以下知识:IP 地址和路由的概念所用到的工具&& 这篇文档的描述并不受限于任何特定的软件和硬件。面具之后&&& NAT 就像一个大办公室里的传达员。我们假设你让传达员拒绝将任何电话接进来给你,除非你要求将其接进来。然后,你给潜在客户打了一个电话,(因为不在) 告诉他们回话给你。你告诉传达员你正在等待一个来自这个客户的电话,并允许将他们接进来。这个客户拨打了主号码 (办公室对外的电话号码,译者) 到你的办公室,这是客户唯一能查到的号码。当客户告诉传达员他们想找谁的时候,传达员就会查看一张匹配有公司人名和其电话分机的查看表。这个传达员知道你在等待这个电话,因此传达员将这个电话转到了你的分机。&&& 思科开发的网络地址转换 (NAT) 设备是工作在内部网络和外部网络之间的。NAT 的实现有许多种方式,并有许多种工作方法:498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="449" height="167" src="/uploads/images//1141571.jpg" />静态NAT & 用一个一对一设备将一个未注册的 IP 地址映射到一个已注册的 IP 地址。当一台设备需要被外界网络可达时尤其有用。在静态 NAT 中,IP 地址是192.168.32.10 的计算机总是被转换成213.18.123.110:498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="491" height="225" src="/uploads/images//1141572.jpg" />&&动态 NAT & 映射一个未注册的 IP 地址到一组已注册 IP 地址里的一个。动态 NAT 也是在未注册和已注册 IP 地址之间建立映射关系,但是映射地址的来源是取决于通信时地址池中的可用注册 IP 地址数。在动态 NAT 中,IP 地址是192.168.32.10的计算机总是转换成范围在213.18.123.100 - 213.18.123.150中第一个可用 IP 地址:过载 & 映射多个未注册 IP 地址到一个已注册 IP 地址时,动态 NAT 采用不同的端口。也就是所谓的 PAT (Port Address Translation, 端口地址转换),单地址 NAT 或端口级 NAT 复用。在过载中,私有网络中的每一台计算机都转换到同一个 IP 地址 (213.18.123.100) 但是被分配不同的端口号:498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="482" height="171" src="/uploads/images//1141573.jpg" />重叠 &当你在内网使用的 IP 地址已经在另一个网络中被注册并使用了,路由器就会维护一个有这些地址的检查表,这样路由器就可以截断 (内网) 这些地址并将它们替换到唯一已注册 IP 地址。特别注意, NAT 路由器必须将 &内部& 已注册地址转换到另一个已注册唯一地址,还必须将 &外部& 已注册地址转换到私有网络的唯一地址。这将通过静态 NAT 或是你能用 DNS 并实现动态 NAT 来实现。内部 IP 地址的范围 (237.16.32.XX) 已被另一个网络注册并使用。因此,路由器将进行地址转换来避免和另一个网络的潜在冲突。当信息被送往内部网络时,它还将外部已注册的 IP 地址转换回本地原来的 IP 地址:498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="488" height="182" src="/uploads/images//1141574.jpg" />内部网络通常是一个局域网 (LAN, Local Area Nerwork),通常也被称为存根域。存根域只在内部使用 IP 地址的局域网。存根域中的大多数流量都只在内部传送,不会离开这个内部网络。一个存根域包括注册和未注册的 IP 地址。当然,任何使用未注册 IP 地址的计算机都必须用网络地址转换来和外部网络通信 (任何时候存根域内只有一部份主机要与外界通信,甚至还有许多主机可能从不与外界通信,所有整个存根域只需要共享少量的全局IP地址, 译者注)。有多种方法能配置 NAT。在下面的例子中,NAT 路由器被配置来将处于私有 (内部) 网络中的未注册 IP 地址 (内部地址) 转换成注册 IP 地址。当一台拥有未注册地址的内部设备需要和公共 (外部) 网络通信时,NAT将会起作用。ISP (Internet Server Provider, 网络服务提供商)给你的公司分发一定范围的 IP 地址段。分配的这一堆地址是注册唯一的 IP 地址,即所谓的内部全局地址[1]。未被注册的私有 IP 地址被分成两组,数量少的一组 (外部本地地址[2]) 将被 NAT 使用,而大多数将用于存根域[5]所谓的内部本地地址[3]。外部本地地址用于转换处于公共网络中设备的唯一 IP 地址,即外部全局地址[4]。更多关于本地和全局地址的定义参见 NAT: Local and Global Definitions。NAT 仅仅只是转换在内部和外部网络之间被指定需要被转换的流量。任何不符合流量转换规则或那些仅仅在其他接口 (即路由器上的LAN口,译者) 之间转发的流量并不会被转换,它们只会被转发。根据 IP 地址是私有网络 (存根域) 还是共有网络 (因特网) 和流量是输入还是输出,而被分为许多种。498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="467" height="195" src="/uploads/images//1141575.jpg" />大多数在存根域 (网络) 中的计算机都用内部本地地址相互通信。在存根域 (网络) 中的一些计算机需要经常和外部网络通信。这些计算机就会被分配内部全局地址,这就意味着他们不再需要地址转换。当一台在存根域 (网络) 中被分配了内部本地地址的计算机想要和外部网络通信时,数据包就会像通常一样被路由到其默认网关,此时网管充当 NAT 路由器功能。这个 NAT 路由器检查它的路由表,查看有没有包含这个数据包目的地址的条目。如果其目的地址不在这个路由表里,路由器就将数据包丢弃。如果这条目存在,路由器就验证这个数据包是否是从内部网络到外部网络,并检查其是否满足转换规则。路由器然后查看地址转换表,看有没有一个条目是这个内部本地地址对应的内部全局地址。如果有,路由器就用这个内部全局地址来替代数据包的内部本地地址。如果仅仅是配置了静态 NAT 且没有这样的条目存在,路由器就会不转换地址而直接转发数据包。通过内部全局地址,路由器将数据包转发至它的目的地址。共有网络中的一台计算机要发送一个数据包到私有网络。数据包中的源地址是一个外部全局地址。目的地址是一个内部全局地址。当数据包从外部网络到达路由器时,NAT 路由器查看地址转换表发现其器目的地址有对应的内部本地地址,NAT 路由器就将其映射到这个存根域 (网络) 的那台计算机上。NAT路由器将这个数据包中的内部全局地址 (即其目的地址,译者) 转换成内部本地地址后再查看路由表。只要在地址转换表中没有发现相应条目,路由器就不会转换,更不会去查看路由表来验证目的地址,它仅仅是将其丢弃而已。关于用路由器命令执行 NAT 转换的详细信息参见NAT Order of OperationNAT 过载运用了 TCP/IP 协议栈的一个功能,多路复用技术,它允许一台计算机用不同的 TCP 或 UDP 端口维持许多当前来自远程计算机的连接。一个 IP 数据包的头部包含以下信息:源地址&&发出数据包的计算机的 IP 地址,例如,201.3.83.132源端口号&&源计算机为 TCP 或 UDP 分配的端口号,例如,1080.目的地址&&接收数据包的计算机的 IP 地址。例如,145.51.18.223.目的端口号&&源计算机请求接收计算机开放的 TCP 或 UDP 端口号,例如,3021.地址用来标识一个连接两端的两台计算机,而端口号则确保两台计算机之间的连接都有一个唯一的标识符。这四个数字一起确定了一个唯一的 TCP/IP 连接。每一个端口号都是16位,这就是说一共有65536个 (2^16) 个端口可供选择。事实上,不同的厂商映射端口的方式略有不同,所以你可能只有大约4000个端口是可用的。动态 NAT 和过载举例Flash 动画:动态 NAT这就是动态 NAT 是如何工作的:点击链接& Dynamic NAT Flash animation ,点击任何一个绿色的按钮是成功发送一个出去或进入存根域 (网络)。点击任何一个红色按钮是发送一个带有非法地址而被路由器丢弃的数据包。左边是一个公司的内部网络 (存根域) ,其中的 IP 地址并不是由 IANA (Internet Assigned Numbers Authority, 互联网编号分配机构,一个掌握所有 IP 地址的全球权威机构 ) 分配的。这些地址并不会被路由器转发,因为它们并不是唯一的 (其他内部网络也可能有相同的地址,译者)。这些就是所谓的内部本地地址。这家公司将其路由器配置了 NAT。这个路由器有一段由 IANA 分配给这家公司的唯一 IP 地址。这些地址就是内部全局地址。然后在这个存根域中的一台计算机试图连接一台处于外部网络的计算机,比如一台网络服务器。这台路由器收到了来自存根域的这台计算机的数据包。路由器在检查了路由表之后,转换规则的验证程序就会开始执行,若通过,则路由器会将这台计算机的不可路由的 IP 地址保存到一张地址转换表中。路由器用内部全局地址中第一个可用 IP 地址替换发送计算机的不可路由的 IP 地址。现在,地址转换表就拥有了这台计算的不可路由 IP 地址到一个唯一 IP 地址的匹配映射。当一个数据包从目的计算机 (如网络服务器) 发送回来时,路由器检查数据包的目的地址。然后它查看地址转换表确定数据包是属于哪一台存根域中的计算机。路由器将其目的地址换成它保存在地址转换表中的那个,然后将数据包发送到那台计算机。如果它没有在表中找到一条匹配,它就会丢弃这个数据包。这台计算机收到来自路由器的数据包。只要有计算机想要和外部网络通信,它们将重复这个过程。这是 NAT 过载如何工作的:假设一个公司的内部网络 (存根域) 已经被设置了未被 IANA 专门分配的不可路由的 IP 地址。这家公司将路由器设置为 NAT 可用的。路由器拥有一个唯一由 IANA 分给这家公司的的 IP 地址。在存根域中的一台计算机试图连接外部网络中的一台计算机,例如一台网络服务器。路由器收到来自存根域的这台计算机发送的数据包。在进行转换之前,路由器查找路由并验证数据包是否合乎规则,然后路由器保存这台计算机的不可路由的 IP 地址和其端口号到一张地址转换表中。路由器将发送计算机的不可路由的 IP 地址替换路由器的 IP 地址,将发送计算机源端口号替换成能够匹配地址转换表中所存的发送计算机地址信息位置的端口号。现在这张转换表就将这台计算机的不可路由的 IP 地址及其端口号与路由器的 IP 地址绑定起来了。当一个数据包从目的计算机发送回来时,路由器检查其目的端口号 (不用检查其 IP 地址,因为全部内部网络都只用路由器的 IP 地址,路由器用端口号映射不同的计算机,译者)。然后路由器查看地址转换表,找到这个数据包所对应的存根域中的计算机。如果有,则路由器替换其目的地址和目的端口号,然后发送到那台计算机。这台计算机接收来自路由器的数据包, 并且只要这台计算和外部网络通信,此过程就会重复执行。由于 NAT 路由器现在已经拥有了这台计算机保存在地址转换表中的的源地址和源端口号,它将会在有效期内继续使用同一个端口号进行转换。每当一个新的条目加入到路由器的转换表中时,计数器就会重置。如果在计数器到期之前连接就不可用了,其对应条目就会从表中删除。下面这张表显示了一台处于存根域的计算机对外部网络将会如何表现:
源计算机&&&
源计算机 IP 地址&&
源计算机& 端口号&&
NAT路由器 IP 地址
NAT路由器分配的端口号
192.168.32.10
215.37.32.203
192.168.32.13
215.37.32.203
192.168.32.15
215.37.32.203
192.168.32.18
215.37.32.203
就如你说见, NAT 路由器将每一台计算机的 IP 地址和端口号都保存在地址转换表中。然后它用它自己注册的 IP 地址替换发送来的数据包的 IP 地址,并将端口号替换为该数据包的源计算机信息条目在表中的相应位置号。这样任何一台处于外部网络的计算机都会在发送给它的数据包里找到 NAT 的 IP 地址和由路由器分配的端口号。你也可以给存根域中的一些计算机指定 IP 地址。你可以创建一个 IP 地址列表来告诉路由器网路中的哪些计算机需要 NAT 服务。这样,所有其他 IP 地址的计算机都不会执行转换了。一台路由器能同时执行地址转换的个数主要取决对于它拥有的DRAM (动态随机存储器, Dynamic Random Access Memory) 。但是由于通常的地址转换条目是160字节,而一台有4MB 大小 DRAM 的路由器理论上可以同时执行 26214 个地址转换!这对大多数应用都已经足已。IANA 事实上专门给不可路由的网络指定了一段 IP 地址。这些地址是未注册的 (关于这些地址的范围定义请参见 RFC 1918: Address Allocation for Private Internets) ,也就是说没有任何一家公司或机构有权利声称他们拥有这些地址并在公共网络上使用。路由器并不会直接转发数据包到未注册地址,因为它们使用未注册地址就意味着这些网络是私有的,并不想被外界所知道。这就是说一个数据包从一个未注册地址能够达到一台有注册地址的计算机,但是其响应数据包将会在它到达的第一个路由器就被丢弃 (这里说的是不是用 NAT 的情况,译者) 。这是在三类 IP 地址中用于私有网络的地址段:地址段1用于 A 类地址:10.0.0.0 到 10.255.255.255地址段2用于 B 类地址: 172.16.0.0 到 172.31.255.255地址段3用于 C 类地址: 192.168.0 到 192.168.255.255虽然每一段都位于不同类地址中,但是在你的内部网络中你用那一段并没有限制。但它是一个很好的减少 IP 地址冲突的方式。安全和管理在你的内部网络和外部网络 (或者说因特网) 之间使用动态 NAT 相当于自动建立了一个防火墙。动态 NAT 仅仅允许来自内部存根域发起的连接。本质上就是说,一台处于外部网络的计算机将不能连接到你的计算机,除非你的计算机已经建立了连接。所以你可以浏览因特网,连上一个站点,甚至可以下载文件。但是其他人却不能像这样简单的获取到你的 IP 地址并用它连接上你的计算机上的端口。静态 NAT ,也就是所谓的入站映射,允许在特殊情况下来自外部设备发起的连接到处于存根域中的计算机。例如,你或许希望映射一个内部全局地址到一个指定的内部本地地址,它指向你的网络服务器。静态 NAT (入站映射) 允许当一台在存根域中的计算机与外部网络中的设备通信时维持一个指定的地址:498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="480" height="153" src="/uploads/images//1141576.jpg" />&一些 NAT 路由器还提供额外的过滤和流量记录功能。过滤功能让你的公司能控制公司雇员能够访问哪些网站,阻止他们查看可疑的资源。你可以运用流量记录来创建一个记录文件,记录哪些网站被访问了,并根据它生成报告。网络地址转换常常和代理服务搞混,但是它们之间有明确的不同。NAT 对源和目的计算机都是透明的。没有任何一方会意识到它正在和第三方设备打交道。但是代理服务却不是透明的。源计算机知道它正向代理服务器发起一个请求,而且你还必须进行配置才能这样做。目的计算机会认为代理服务器就是与它直接通信的源计算机。还有,代理服务通常工作在 OSI 参考模型的第 4 层 (传输层) 或更高,而 NAT 工作在第 3 层 (网络层)。由于代理服务工作在更高层,所以通常它将比 NAT 要慢。NAT 工作在 OSI 参考模型的网络层 (第3层) 是有道理的,因为路由器就工作在这一层:498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="" width="472" height="491" src="/uploads/images//1141577.jpg" />NAT 真正的好处是它在网络中是透明的。例如,你可以将你的 Web 服务器或 FTP 服务器移到另一台主机上而不用担心会破坏连接。只需简单地修改入站映射,将路由器映射到你的新内部本地地址就行了。你也可以很容易地改变你的内部网络,因为唯一的外部 IP 地址不是属于路由器就是来自一段分配的全局地址。NAT 和 DHCP 简直就是天作之合,你可以为你的存根域选择一段未注册 IP 地址然后用 DHCP 服务将它们分发出去。这也使你想扩大网络规模时变得更加容易。你不再需要向 IANA 请求更多的 IP 地址,你只需增加配置在 DHCP 中的可用 IP 地址段,这样你网络中的新增计算机立即就有了地址空间了。多宿主由于商业现在正越来越依赖于因特网,拥有多个连接点到因特网正快速成为他们的网络策略中的一部分。多链路,就是所谓的多宿主,当其中一条链路崩溃时,它减少了潜在的灾难性崩溃的可能。为了维持一条可靠的连接,多宿主允许一家公司通过减少在单条链路上连接到因特网的计算机数量,以此来达到负载平衡。通过多链路而达到分布式负载将会提高性能,并且能够显著地减少等待时间。&&& 多宿主网络通常是连接到不同的 ISP (Internet Service Providers,网络服务供应商)。每一个 ISP 都分配一个 (或一段) IP 地址给这家公司。路由器用 BGP (Border Gateway Protocol,边界网关协议),TCP/IP 协议栈的一部分,在运行不同网络协议的网络之间进行路由。在一个多宿主网络中,路由器在存根域中利用 IBGP (Internal Border Gateway Protocol,内部边界网关协议) ,在与其他路由器之间通信时利用 EBGP (External Border Gateway Protocol,外部边界网关协议)。当多宿主网络用到 NAT 时,NAT 路由器会被配置来自不同 ISP 分配的多个内部全局地址段。同样的内部本地地址将会被映射到多个不同的来自 NAT 的内部全局地址,这取决于流量将被路由到哪一个目的地址。这就是所谓的目的地的 NAT,查看 NAT - Ability to Use Route Maps with Static Translations 获得跟多信息。多宿主对于连接到一个 ISP 的链接崩溃时很有效。一旦路由器连接到的那个 ISP 的链接崩溃了,它将马上将所有经过它的流量重定向到其他路由器。NAT 可用于缓解对于多宿主多用户延伸的可预测路由。[1]&& inside global(内部全局地址):私有主机在非自有网络中使用的地址,通常情况下inside global地址是从合法的全球统一可寻址空间中分配的地址,也就是通常所说的共有IP。inside global地址的特点是只会出现在非自有网络中并且一定是给私有主机使用的。[2]&& outside local(外部本地地址):非私有主机在自有网络内表现出来的IP地址。该地址是自有网络的管理员为本网络以外的设备所准备的用于在自有网络内使用的 IP地址。outside local地址的特点是只会出现在自有网络内但是是供给非私有主机使用的。[3]&& inside local(内部本地地址):在自有网络中分配给私有主机的地址,一般情况下该地址是RFC1918中定义的私有地址。inside local地址的特点是只会出现在自有网络中并且一定是给私有主机使用的。[4]&& outside global(外部全局地址):非私有主机在自有网络以外的区域使用的IP地址,是非私有主机所在网络的管理员负责管理个分配的。outside global地址的特点是不会出现在自有网络中而且不是给私有主机使用,不归自有网络的管理员负责。[5]&& 存根网络(stub network):只有一条连接到其邻居网络的网络。【责任编辑:佟媛微 TEL:(010)】
聚生网管官网,禁止QQ农场,P2P网络终结者,控制局域网电脑,禁止电脑玩游戏,网络安全管理制度
大势至公司网络管理产品:
1、,是国内最早、最专业的局域网监控软件、上网行为控制系统,可以有效管理公司局域网电脑上网行为,有效屏蔽迅雷下载、禁止迅雷上传,禁止pps上传、禁止看qq直播、禁止局域网玩游戏、禁止登录QQ游戏大厅、禁止员工炒股、限制上班看电影、进行局域网带宽限制、控制打开网页、禁止局域网网购、监控邮件内容、监控邮件附件、记录论坛发帖留言、防ARP攻击、查找局域网手机、禁止手机接入公司局域网、禁止私自安装无线路由器上网、防止无线局域网蹭网等;
2、,专业的上网行为管理服务器、比上网行为管理路由器、上网管理路由器更强大,可以有效禁止电脑游戏、屏蔽网页游戏、限制局域网看视频、禁止别人看视频、限制P2P软件使用、禁止快车下载、局域网控制迅雷下载、限制股票软件、禁止上班炒股行为、进行局域网流量监控、限制带宽软件,禁止员工网络购物、屏蔽购物网站、屏蔽网页视频网站,并且独创了&创新直连&监控模式,国内最快捷、最简单、最安全控制多网段电脑上网行为,监控效率和综合性能最强的硬件网络管理系统、上网行为管理系统。
3、,一款强大的USB端口控制系统,有效禁用USB端口使用、屏蔽U口、禁止电脑使用U盘、屏蔽优盘使用、禁用优盘,禁止移动硬盘使用、禁止手机存储卡使用,可以有效地屏蔽USB存储设备而不影响USB鼠标键盘和非USB设备的使用;同时,还可以禁止修改注册表、禁止修改组策略、禁止修改msconfig启动项、禁止修改计算机管理、禁止F8键进入安全模式、禁止U盘启动电脑、禁止光驱启动电脑;此外,还可以只允许电脑访问特定网站,只让打开特定程序、只让运行特定软件或者禁止运行某些程序、禁止访问某些网站等;
4、,是一款强大的共享文件服务器监控软件、服务器文件管理系统、服务器文件访问控制软件,最有效监控服务器共享文件的访问,详细记录修改服务器共享文件、删除服务器共享文件、复制服务器共享文件、剪切服务器共享文件或者打印服务器共享文件的行为,以及重命名共享文件等;同时,记录访问共享文件者的IP地址、MAC地址、主机名和域账号等信息,从而可以为网管员提供详细的服务器文件访问日志,便于加强服务器共享文件管理,保护单位无形资产和商业机密等;
5、,是一款专业的公司局域网接入管理软件、内网接入控制系统,可以有效防止非公司电脑访问公司局域网、禁止外部电脑访问公司局域网、限制外来电脑接入公司局域网、禁止手机接入公司局域网、禁止手机无线上网、限制平板电脑无线上网,检测局域网处于混杂模式的网卡,防止局域网抓包、防止局域网嗅探;同时,还可以查找局域网无线路由器,禁止无线路由器接入公司局域网,禁止无线路由器上网,禁止局域网启用代理,限制员工代理上网,禁止电脑安装代理软件为其他电脑提供代理上网服务等;
6、,是一款专门由于管理共享文件访问、进行共享文件访问权限设置的软件,通过在开启共享文件的电脑或服务器安装以后就可以为本地账号分配共享文件的不同访问权限,这样局域网用户访问共享文件的时候就只能&读取&共享文件而禁止拷贝共享文件的内容、禁止将共享文件另存为本地磁盘、禁止打印共享文件;同时,对共享文件加密后用户访问共享文件的时候将被限定在一个特定的共享文件列表框内访问操作,可以禁止拖拽共享文件、禁止拷贝共享文件、禁止剪切共享文件到访问者自己的电脑,从而也可以防止U盘复制共享文件、防止通过网盘上传共享文件、防止通过FTP上传共享文件以及防止通过QQ将共享文件发送到外面去,从而全面保护了共享文件的安全。
7、&,是一款专门监控FTP服务器文件访问操作日志的软件,可以详细记录局域网用户对FTP服务器文件的上传、下载、修改、删除、重命名等操作日志,可以记录访问者的FTP账户、IP地址、MAC地址和主机名等信息,并可以将FTP服务器文件操作日志导出为Excel格式,从而便于网管员实时审计局域网用户对FTP服务器文件上传和FTP服务器下载文件的情况,便于更好地保护FTP服务器的文件安全,保护单位无形资产和商业机密。
国内领先企业网络管理方案提供商——大势至(北京)软件工程有限公司简介:大势至公司是国内专业的企业上网管理软件、局域网网络管理软件提供商,公司核心产品:聚生网管监控软件(有效禁止局域网下载、禁止局域网玩游戏、禁止在线看视频、禁止上网软件、禁止局域网下载、局域网网速控制软件、局域网禁用随身wifi、禁止上网购物、限制局域网网购、局域网限速管理软件、局域网控制上网软件、局域网流量监控软件、局域网带宽分配软件、上网行为管理系统、计算机网络管理软件、最好用的网管软件、免费网管软件下载、计算机网络管理软件排行榜第一名……);大势至服务器共享文件管理软件(是一款专门监控服务器共享文件访问日志的软件,详细记录服务器共享文件的打开、读取、复制、修改、删除、剪切和重命名等操作,防止删除服务器共享文件、禁止复制服务器共享文件,分配共享文件访问权限,是一款专门的服务器文件管理软件、文件共享服务器监控软件、局域网共享文件设置软件、局域网共享文件管理软件……);大势至网络准入控制系统(一款专门的局域网接入管理软件,禁止外来电脑接入局域网、隔离局域网电脑、禁止电脑相互通讯、检测局域网无线路由器、检测局域网手机、防止蹭网、禁止局域网代理上网、防止网络嗅探、禁止修改MAC地址、禁止修改IP地址、绑定IP和MAC地址、禁止外来电脑上网、禁止外来电脑访问公司文件服务器、禁止访问共享文件、禁止非公司电脑接入公司局域网,实现全面的局域网网络接入控制和安全防范……);大势至电脑USB禁用软件(一款禁用U盘软件、电脑USB接口禁用软件、计算机USB端口禁用软件、微机USB屏蔽软件、禁用USB存储设备、禁用手机存储卡、禁止复制电脑文件到U盘、禁用360随身wifi、屏蔽随身wifi、禁止wifi共享、禁止修改注册表、禁止打开组策略、禁止U盘启动电脑、禁止光驱启动电脑、WIN7禁止安装软件、禁止电脑运行软件、禁止发邮件、禁止网盘上传文件、禁止QQ发文件、禁用光驱、只让电脑运行某个软件、禁止电脑上网、只让电脑打开某个网站、只让电脑运行某些程序等)。大势至四款核心局域网电脑管理软件可以协调配合,为企业提供全面的员工上网行为管理、电脑文件安全管理软件和商业机密保护,保障企业高效率、稳健运转!
京ICP备号 京公网安备}

我要回帖

更多关于 网络地址转换nat 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信