当前位置:文档之家› 四种不同的NAT类型及检测方法

四种不同的NAT类型及检测方法

四种不同的NAT类型及检测方法
四种不同的NAT类型及检测方法

四种不同的NAT类型及检测方法

考虑到UDP的无状态特性,目前针对其的NA T实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NA T中针对TCP的实现基本上是一致的,其间并不存在太大差异,这是因为TCP协议本身便是面向连接的,因此无需考虑网络连接无状态所带来复杂性。

用语定义

1.内部Tuple:指内部主机的私有地址和端口号所构成的二元组,即内部主机所发送报文的源地址、端口所构成的二元组

2.外部Tuple:指内部Tuple经过NAT的源地址/端口转换之后,所获得的外部地址、端口所构成的二元组,即外部主机收到经NA T转换之后的报文时,它所看到的该报文的源地址(通常是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 NA T中,目标Tuple则成为了NAT设备建立转换关系的一个重要考量:只有来自于同一个内部Tuple 、且针对同一目标Tuple的请求才被NA T转换至同一个外部Tuple,否则的话,NAT将为之分配一个新

的外部Tuple;打个比方,当内部主机以相同的内部Tuple对2个不同的目标Tuple发送UDP 报文时,此时NA T将会为内部主机分配两个不同的外部Tuple,并且建立起两个不同的内、外部Tuple转换关系。与此同时,只有接收到了内部主机所发送的数据包的外部主机才能向内部主机返回UDP报文,这里对外部返回报文来源的限制是与Port Restricted Cone一致的。不难看出,如果说Full Cone是要求最宽松NAT UDP转换方式,那么,Symmetric NAT则是要求最严格的NA T方式,其不仅体现在转换关系的建立上,而且还体现在对外部报文来源的限制方面。

第二部:NAT类型检测

前提条件:有一个公网的Server并且绑定了两个公网IP(IP-1,IP-2)。这个Server做UDP监听(IP-1,Port-1),(IP-2,Port-2)并根据客户端的要求进行应答。

第一步:检测客户端是否有能力进行UDP通信以及客户端是否位于NA T后?

客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器返回客户端的IP和Port, 客户端发送请求后立即开始接受数据包,要设定socket Timeout (300ms),防止无限堵塞. 重复这个过程若干次。如果每次都超时,无法接受到服务器的回应,则说明客户端无法进行UDP通信,可能是防火墙或NAT阻止UDP通信,这样的客户端也就不能P2P了(检测停止)。

当客户端能够接收到服务器的回应时,需要把服务器返回的客户端(IP,Port)和这个客户端socket的(LocalIP,LocalPort)比较。如果完全相同则客户端不在NA T后,这样的客户端具有公网IP可以直接监听UDP端口接收数据进行通信(检测停止)。否则客户端在NA T 后要做进一步的NAT类型检测(继续)。

第二步:检测客户端NA T是否是Full Cone NA T?

客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器用另一对(IP-2,Port-2)响应客户端的请求往回发一个数据包,客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程若干次。如果每次都超时,无法接受到服务器的回应,则说明客户端的NAT不是一个Full Cone NA T,具体类型有待下一步检测(继续)。如果能够接受到服务器从(IP-2,Port-2)返回的应答UDP包,则说明客户端是一个Full Cone NA T,这样的客户端能够进行UDP-P2P通信(检测停止)。

第三步:检测客户端NA T是否是Symmetric NA T?

客户端建立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 NA T,这样的客户端无法进行UDP-P2P通信(检测停止)。否则是Restricted Cone NAT,是否为Port Restricted Cone NA T有待检测(继续)。

第四步:检测客户端NA T是否是Restricted Cone NA T还是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达洞通信,可以进行端口预测打洞,不过不能保证成功。

cisco-asa-8.2与8.4的nat区别

1.NAT(nat-control,8.2有这条命令,开了的话没有nat是不通的) 1.8.2(PAT转换) global (outside) 10 201.100.1.100 nat (inside) 10 10.1.1.0 255.255.255.0 ASA/pri/act(config)# show xlate 1 in use, 1 most used PAT Global 201.100.1.100(1024) Local 10.1.1.1(11298) 8.4 object network nat subnet 10.1.1.0 255.255.255.0 object network nat nat (inside,outside) dynamic 201.100.1.100 ASA8-4# show xlate 1 in use, 2 most used Flags: D - DNS, i - dynamic, r - portmap, s - static, I - identity, T - twice TCP PAT from inside:10.1.1.1/53851 to outside:201.100.1.100/5810 flags ri idle 0:00:04 timeout 0:00:30 2.8.2(动态的一对一转换) nat (inside) 10 10.1.1.0 255.255.255.0 global (outside) 10 201.100.1.110-201.100.1.120 netmask 255.255.255.0 ASA/pri/act# show xlate detail 2 in use, 2 most used Flags: D - DNS, d - dump, I - identity, i - dynamic, n - no random, r - portmap, s - static NAT from inside:10.1.1.1 to outside:201.100.1.110 flags i NAT from inside:10.1.1.2 to outside:201.100.1.111 flags i 8.4 object network nat subnet 10.1.1.0 255.255.255.0 object network outside-nat range 201.100.1.110 201.100.1.120 object network nat nat (inside,outside) dynamic outside-nat ASA8-4# show xlate 1 in use, 2 most used Flags: D - DNS, i - dynamic, r - portmap, s - static, I - identity, T - twice NAT from inside:10.1.1.1 to outside:201.100.1.115 flags i idle 0:01:13 timeout 3:00:00 3.8.2(转换成接口地址) nat (inside) 10 10.1.1.0 255.255.255.0 global (outside) 10 interface ASA/pri/act# show xlate detail 1 in use, 2 most used Flags: D - DNS, d - dump, I - identity, i - dynamic, n - no random, r - portmap, s - static

IP Nat enable和 ip nat inside outside 区别

彻底理解Cisco NAT内部的一些事 一.Inside和Outside 很多在Cisco配置过NAT的人都有过一个疑问,那就是inside和outside的区别!以下是Cisco官方文档上关于NAT执行顺序的说明: 注意红色和蓝色圈住的部分,对于inside-outside而言,NAT发生在路由之后,而对于outside-inside而言,NAT发生在路由之前。这是目前为止,我们唯一需要记住的。 1.问题 迷惑的原因不在别的,就在inside,outside这个名字不好,实际上如果将inside-outside换成POST-ROUTING,将 outside-inside换成PRE-ROUTING的话,就非常好理解了,最重要的是,换了名字之后,NAT看起来不再和设备的inside/outside网口域相关,而和“路由”发生了关系,虽然本质上没有任何变化。 后面会介绍,实际上,在理解Cisco的NAT的时候,根本不能将inside 和outside单独拿出来理解,inside和outside仅仅是一个位置限定词,代表

“某地”,而具体的是“到某地去”还是“从某地来”,还需要一个副词,这就是source和destination。在详述这个之前,姑且先将inside和outside单 独拿出来使用。 接下来我来说明一下NAT和路由的关系是多么重要!考虑以下的数据流,我以“路由”这个动作为中心: 正向包:-->NAT point1-->路由-->NAT point2--> 返回包:<--NAT point1<--路由<--NAT point2<-- 我们看一下在NAT point1和NAT point2上要做些什么动作才合理。首先我们先考虑转换正向包的源IP地址发生在NAT point2,那么对于返回包,目标地址转换就发生在NAT point2,返回包转换完目标地址后,发生路由查询,数据包 正常返回,没有任何问题。现在考虑正向包的源IP地址转换发生在NAT point1,那么按照将NAT钩子操作安装在数据流同一位置的原则,返回包的目标地址转换只能发生在NAT point1,此时已经经过了路由查询,路由查询是基于目标地址 转换前的目标地址来的,也就是说这个路由结果并非真正的路由结果,真正要想将返回数据包送到目的地,必须基于转换后目标地址来查询路由表才可以,然而即便这个针对转换前目标的路由查询结果实际上是个假的结果,你也要必须把它映射成一个真的结果 (这就是ip nat outside source中add-route参数要做的事情,下面的例子详述)。以下给出一个实例:

vmware关于桥接和NAT的区别

vmware关于桥接和NAT的区别 (1)Bridged Networking(即网桥):网桥允许用户将虚拟机连接到主机所在的局域网(LAN)。此方式连接虚拟机中的虚拟以太网交换机到主机中的物理以太网适配器。 (2)NAT:网络地址翻译(NAT)设备允许用户将虚拟机连接到一个外部网络,在该网络中只有一个IP网络地址并且该地址已经被主机使用。 VMware的几个虚拟设备: VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机; VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机; VMnet8:这是VMware用于虚拟NAT网络下的虚拟交换机; VMware Network Adapter VMnet1:这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡;VMware Network Adapter VMnet8:这是Host用于与NAT虚拟网络进行通信的虚拟网卡; 一、桥接网络: 可将虚拟机模拟接入主机所在的局域网。 二、nat网络: 在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMware Network Adapter VMnet8虚拟网卡被连接到VMnet8交换机上,来与Guest进行通信,但是VMware Network Adapter VMnet8虚拟网卡仅仅是用于和VMnet8网段通信用的,它并不为VMnet8网段提供路由功能,处于虚拟NAT网络下的Guest是使用虚拟的NAT服务器连接的Internet的。 这时候,你的Guest和Host就可以实现互访了,并且如果你的Host此时已经连接到了Internet,那么你的Guest也就可以连上Internet了。那么VMware Network Adapter VMnet8虚拟网卡在这里扮演了一个什么角色呢?它仅仅是为Host和NAT虚拟网络下的Guest通信提供一个接口,所以,即便Disable

虚拟机bridged、host-only和NAT网络模式的区别和用法

VMWare提供了三种工作模式,它们是bridged(bridged模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。 1.bridged(桥接模式) 在bridged模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在bridged模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。 使用bridged模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩码,否则就无法通信。 如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择bridged模式。 这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。 在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。 使用这种方式很简单,前提是你可以得到1个以上的地址。对于想进行种种网络实验的朋友不太适合,因为你无法对虚拟机的网络进行控制,它直接出去了。 2.NAT(网络地址转换模式) 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。 这种方式也可以实现Host OS与Guest OS的双向访问。但网络内其他机器不能访问Guest OS,Guest OS可通过Host OS用NAT协议访问网络内其他机器。NAT方式的IP地址配置方法是由VMware的虚拟DHCP服务器中分配一个IP ,在这个IP地址中已经设置好路由,就是指向 如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。 这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下),如果你有过做nat服务器的经验,这里的vmnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运行在内网上的机器,虚拟机内的网卡(eth0)则独立于vmnet8。 你会发现在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上,这样虚拟机就可以使用dhcp服务。更为重要的是,vmware自带了nat服务,提供了从vmnet8到外网的地址转换,所以这种情况是一个实实在在的nat服务器在运行,只不过是供虚拟机用的。很显然,如果你只有一个外网地址,此种方式很合适。 host-only(主机模式) 在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。 提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器

Nat穿透方法分析

Nat穿透方法分析 一、nat分类 静态NAT (Static NAT) 内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。 动态地址NAT (Pooled NAT) 在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。 网络地址端口转换NAPT(Port-Level NAT) 把内部地址映射到外部网络的一个IP地址的不同端口上。 二、基本nat分类 (1)Full Cone NAT(完全圆锥型) NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定任何包都可以通过地址{A:b}送到客户主机的{X:y}地址上 (2)Address Restricted Cone NAT(地址限制圆锥型 ) NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定只有来自主机{P}的包才能和主机{X:y}通信 (3)Port Restricted Cone NAT(端口限制圆锥型) NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定只有来自主机{P,q}的包才能和主机{X:y}通信 (4)Symmetric NAT(对称型) NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定为{X:y}|{A:b}<->{P:q} NAT只接受来自{P:q}的incoming packet,将它转给{X:y} 每次客户机请求一个不同的公网地址和端口,NAT会新分配一个端口号{C,d} 三、Nat穿透方法分析 A机器在私网(192.168.0.4) A侧NAT服务器(210.21.12.140) B机器在另一个私网(192.168.0.5) B侧NAT服务器(210.15.27.140) C机器在公网(210.15.27.166)作为A和B之间的中介 A机器连接过C机器,假使是 A(192.168.0.4:5000)-> A侧NAT(转换后210.21.12.140:8000)-> C(210.15.27.166:2000) B机器也连接过C机器,假使是 B(192.168.0.5:5000)-> B侧NAT(转换后210.15.27.140:8000)-> C(210.15.27.166:2000) A机器连接过C机器后,A向C报告了自己的内部地址(192.168.0.4:5000),此时C不仅知道了A的外部地址 (C通过自己看到的210.21.12.140:8000)、也知道了A的内部地址。同理C也知道了B的外部地址(210.15.27.140:8000)和 内部地址(192.168.0.5:5000)。之后,C作为中介,把A的两个地址告诉了B,

NAT设置之端口转发和端口映射和DMZ的区别

无线路由器——NAT设置 NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。 简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet 连接,这一功能很好地解决了公共IP地址紧缺的问题。通过这种方法,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。 无线路由器的NAT设置,一般用于处于内网的主机需要打开某些端口供外网电脑访问从而提供服务,比如说网站服务器。 我以JCG JHR-N926R这款无线路由器为例跟大家分享分享NAT设置。通常情况下,路由器都有防火墙功能,互联网用户只能访问到你的路由器WAN口(接ADSL线口),而访问不到内部服务器。要想让外面用户访问到局域网内的服务器,那么你就要在路由器上做一个转发设置,也就是端口映射设置,让用户的请求到了路由器后,并能够到达游戏服务器或WEB服务器。这就是端口映射/端口转发。有时也称

为虚拟服务。 下面有三种NAT的设置方案。 第一步:设置服务器端口首先把服务器要开放的端口设置好,并把服务器的防火墙关闭,否则外网不能通过服务器。下面可以选择三种方案中的一种进行设置使用。 第二步:路由器的设置 第一方案:端口转发连接好路由器,进入路由器的设置界面——点击“高级设置”——点击“NAT”,出现如下界面 : “IP地址”这里填入您给服务器指定的IP地址(这个IP必须的固定的,否则IP地址改变的话,您的端口转发就不能成功)。 “内部端口”这里填入服务器设置好的端口号,也就是局域网访问服务器时要使用的端口号。这里的端口号必须和服务器要开放的端口号一致。 “外部端口”这里填入外网访问服务器时使用的端口号,这里的端口号可以自己设定。“服务备注”这里主要是为了方便您知道这个开放端口的意思,随便自己填写,只要自己明白就好。 这些都填写完成之后,在后面的“启用”那里打上钩,最后点击“应用”按钮,那么整个端口转发就设置完成了。 第二方案:端口映射连接好路由器,进入路由器的设置界面——点

ICS与NAT区别

提到共享上网,我们很容易想到使用代理服务器或者是带路由功能的ADSL Modem,其实我们还有更廉价的选择——用Windows系统提供的共享上网的功能。这并没有什么新鲜的,但很多人并没有注意到:在Windows中提供的共享上网方式有两种——ICS和NAT。这两种方式各是一个什么概念,各自依据的是什么原理,它们各有什么优缺点,这是我们下面要探讨的内容。 什么是ICS ICS即Internet连接共享(Internet Connection Sharing)的英文简称,是Windows 系统针对家庭网络或小型的Intranet网络提供的一种Internet连接共享服务。它实际上相当于一种网络地址转换器,所谓网络地址转换器就是当数据包向前传递的过程中,可以转换数据包中的IP地址和TCP/UCP端口等地址信息。有了网络地址转换器,家庭网络或小型的办公网络中的电脑就可以使用私有地址,并且通过网络地址转换器将私有地址转换成ISP分配的单一的公用IP地址从而实现对Internet的连接。ICS方式也称之为Internet转换连接。 什么是NAT NAT即网络地址转换(Network Address Translator),从广义上讲,ICS也是使用了一种NAT技术,不过我们这里讨论的NAT是指将运行Windows 2000 Server的计算机作为IP路由器,通过它在局域网和Internet主机间转发数据包从而实现Internet的共享。NAT方式也称之为Internet NAT 通过将专用内部地址转换为公共外部地址,对外隐藏了内部管理的IP地址。这样,通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP地址,从而减少了IP地址注册的费用。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。 其工作过程我们通过图1来了解,对于由NAT传出数据包,源IP地址(专用地址)被映射到ISP分配的公用地址,并且TCP/UDP端口号也会被映射到不同的TCP/UDP端口号。对于到NAT协议的传入数据包,目标公用IP地址被映射到源内部专用地址,并且TCP/UDP端口号被重新映射回源TCP/UDP端口号。可以简单地概括为,对于向外发出的数据包,NAT将源IP地址和源TCP/UDP端口号转换成一个公共的IP地址和端口号;对

NAT的原理及其注意事项

发信人: achilles IPv6技术详解 当前,基于Internet的各种应用正在如火如荼发展着,而与此热闹场面截然 不同的是,Internet当前使用的IP协议版本IPv4正因为各种自身的缺陷而举步维艰。 在IPv4面临的一系列问题中,IP地址即将耗尽无疑是最为严重的,有预测表明,以目前Internet发展速度计算,所有IPv4地址将在2005~2010年间分配完毕。为了彻底解决 IPv4存在的问题,IETF从1995年开始,着手研究开发下一代IP协议,即IPv6。IPv6具有长达128位的地址空间,可以彻底解决IPv4地址不足的问题,除此之外,IPv6还采用分级 地址模式、高效IP包头、服务质量、主机地址自动配置、认证和加密等许多技术。 Ipv4尴尬的现状 Internet起源于1968年开始研究的ARPANET,当时的研究者们为了给ARPANET建立一 个标准的网络通信协议而开发了IP协议。IP协议开发者当时认为ARPANET的网络个数不会超 过数十个,因此他们将IP协议的地址长度设定为32个二进制数位,其中前8位标识网络, 其余24位标识主机。然而随着ARPANET日膨胀,IP 协议开发者认识到原先设想的网络 个数已经无法满足实际需求,于是他们将32位IP地址分成了三类:A类,用于大型企业; B类,用于中型企业;C类,用于小型企业。A类、B类、C类地址可以标识的网络个数分别 是128、16384、2097152,每个网络可容纳的主机个数分别是16777216、65536、256。虽 然对IP地址进行分类大大增加了网络个数,但新的问题又出现了。由于一个C类网络仅能 容纳256个主机,而个人计算机的普及使得许多企业网络中的主机个数都超出了2 56,因此, 尽管这些企业的上网主机可能远远没有达到B类地址的最大主机容量65536,但InterNIC 不得不为它们分配B类地址。这种情况的大量存在,一方面造成了IP地址资源的极大浪费 ,另一方面导致B类地址面临着即将被分配殆尽的危险。 非传统网络区域路由(Classless InterDomain Routing, CIDR),是节省B类地址 的一个紧急措施。CIDR的原理是为那些拥有数千个网络主机的企业分配一个由一系列连续 的C类地址组成的地址块,而非一个B类地址。例如,假设某个企业网络有15 00个主机,那么可能为该企业分配8个连续的C类地址,如:192. 56.0.0至192.56.7.0,并将子网掩码定为255.255.248.0,即地址的前21位标识网络,剩余的11位标识主机。尽管通过采用CIDR 可以保护B类地址免遭无谓的消耗,但是依然无法从根本上解决IPv4面临的地址耗尽问题。 另一个延缓IPv4地址耗尽的方法是网络地址翻译(Network AddressTranslation, NAT),它是一种将无法在Internet上使用的保留IP地址翻译成可以在Internet上使用的 合法IP地址的机制。NAT使企业不必再为无法得到足够的合法IP地址而发愁了,它们只要 为内部网络主机分配保留IP地址,然后在内部网络与I nternet交接点设置NAT和一个由 少量合法IP地址组成的IP地址池,就可以解决大量内部主机访问Internet的需求了。由于目前要想得到一个A类或B类地址十分困难,因此许多企业纷纷采用了NAT 。然而,NAT也有其无法克服的弊端。首先,NAT会使网络吞吐量降低,由此影响网络的性能。其次,NAT 必须对所有去往和来自Internet的IP数据报进行地址转换,但是大多数NAT无法将转换后 的地址信息传递给IP数据报负载,这个缺陷将导致某些必须将地址信息嵌在IP数据报负载 中的高层应用如FTP和WINS注册等的失败。 IPv6的对策

三种NAT实现方式配置实例

NAT有3种实现方式,包括有静态NAT、动态地址NAT和端口多路复用地址转换三种技术类型。静态NAT是把内部网络中的每个主机地址永久映射成外部网络中的某个合法地址;动态地址NAT是采用把外部网络中的一系列合法地址使用动态分配的方法映射到内部网络;端口多路复用地址转换是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,选择相应的NAT技术类型。 一般我们实际工作中都使用复用NAT,即复用断口NAT,也叫PNAT. 所以掌握最后配置就可以了。 静态NAT配置步骤: 首先,配置各接口的IP地址。内网使用私有IP.外网使用公网IP.并指定其属于内外接口。 其次,定义静态建立IP地址之间的静态映射。 最后,指定其默认路由。 Router>en(进入特权模式) Router#config (进入全局配置模式) Configuring From terminal, memory, or network [terminal]? Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ho R3(命名为R3) R3(config)#no ip domain-lo(关闭域名查询,在实验环境中,敲入错误的命令,它将进行域名查询,故关闭他) R3(config)#line c 0(进入线路CONSOLE接口0下) R3(config-line)#logg syn(启用光标跟随,防止日志信息冲断命令显示的位置)R3(config-line)#exec-t 0 0(防止超时,0 0为永不超时) R3(config-line)#exit R3(config)#int e0(进入以太网接口下) R3(config-if)#ip add 192.168.1.1 255.255.255.0(设置IP地址) R3(config-if)#ip nat inside(设置为内部接口) R3(config-if)#no shut R3(config-if)#exit R3(config)#int ser1 (进入串口下) R3(config-if)#ip add 100.0.0.1 255.255.255.0 R3(config-if)#no shut R3(config-if)#ip nat outside(设置为外部接口) R3(config-if)#exit R3(config)#ip nat inside source static 191.168.1.1 100.0.0.1(设置静态转换,其中ip nat inside source为NAT转换关键字,这里是静态,故为STATIC)R3(config)#ip classless R3(config)#ip route 0.0.0.0 0.0.0.0 s0(这里是出口或者下一跳地址) R3(config)#exit

NAT和路由有什么不同

我是个小白,先说一下我自己这几天的理解。 书上说,NAT是将局域网内每台计算机的私网地址转换成为公网合法的IP,使得局域网的计算机能访问Internet资源。 我对路由的理解,几乎和上面的差不多。路由通过modem获得一个公网的合法IP地址,然后局域网内的PC拥有局域网的IP,比如192.168.0.2。但是通过路由却可以访问Internet的资源。我可不可以理解路由已经把私网的IP转换成为了一个公网的IP的去访问Internet的资源?我们可以看到在访问很多网站的时候,它都显示说你使用得是10.10.10.10(公网IP)进行访问。 都是将私网的IP转换成为公网的IP去访问公网的资源,那么到底有什么不同? 如果不一样,什么时候应该使用NA T呢? nat:最本质的目的,是为了解决ip地址稀少的问题而诞生的。 路由:它是一种构架的逻辑,让信息知道路径如何走。 上面说过,路由不需要nat,nat也不需要路由 nat:内网---外网,为了实现访问internet,必须nat 路由,内网,外网,网络之间。。。。。。只要同是公网或者同是内网,便可以路由。 1路由是路由,NAT是NA T,两种根本就不是一样的概念。路由是位于网络层,为数据包提供一个寻径的算法。就是数据包在网络中的传输路线。而数据包每转发一个节点就是一个网络。传输到下一个网络都是根据路由指定的协议来计算的,如rip,ospf, 等。而NA T只是为私有地址能访问互联网提供的一种解决方案。因为私有地址在互联网中是不被识别的。所以,一个私有地址的计算机想与外界进行通信,就需要通过NA T,随机分配一个未使用的端口号。在路由器的路由表中形成一一对应关系。即内网IP+端口号转换为公网IP+端口号。公网收到IP数据包后,根据端口号,进行比对路由表,看是哪个内网主机发送的数据包。将数据包回发给相应的内网IP. 2 路由和nat本是相生的,不矛盾的,不用非要割裂得来看。 先说说两个东西产生的背景。两个东西都是技术手段, nat:最本质的目的,是为了解决ip地址稀少的问题而诞生的。它使得若干个私有地址能够共用一个合法internet地址成为可能。并且,他把内部地址隐藏起来,具有安全性。 路由:它是一种构架的逻辑,使得不分私有公有的地址能够知道信息的路径如何走。以及通过协议,使得较大的网络能够自动学习网络,特别是网络节点,路经的变化,从而减少管理成本,提高效率。它只是一种信息传输路径走向的算法。

虚拟机里面桥接和NAT连接的区别

简单的说法 桥接通过使用物理机网卡具有单独ip NAT 把物理机为路由器进行上网 host-only 只能与物理机相连 下面是详细的解说 VMWare提供了三种工作模式,它们是bridged(bridged模式)、NAT(网络地址转换模式)和host-only(主机模式)。要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式。 1.bridged(桥接模 式) 在bridged模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在bridged模式下,你需要 手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个 独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。 使用bridged模式的虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。想让它们相互通讯,你就需要为虚拟系统配置IP地址和子网掩 码,否则就无法通信。 如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择bridged模式。 这种方式最简单,直接将虚拟网卡桥接到 一个物理网卡上面,和linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。 在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关 系上是平等的,没有谁在谁后面的问题。 使用这种方式很简单,前提是你可以得到1个以上的地址。对于想进行种种网络实验的朋友不太适合,因为你无法对虚拟机的网络进行控制,它直接出去了。 2.NAT(网络地址转换模式) 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问 互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就 无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互 联网即可。 这种方式也可以实现Host OS与Guest OS的双向访问。但网络内其他机器不能访问Guest OS,Guest OS可通过Host OS用NAT协议访问网络内其他机器。NAT方式的IP地址配置方法是由VMware的虚拟DHCP 服务器中分配一个IP ,在这个IP地址中已经设置好路由,就是指向192.168.138.1的。 如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。

路由、NAT与代理的区别

常用的局域网接入Internet的技术有三种: 1.直接路由; 2.网络地址转换(NAT); 3.代理服务器(proxy)。 第一种方法比较简单直接,不过要求客户机都有真实IP,仅这一点,大多数的环境就无法满足--IP地址可是紧缺资源哦。而且一台硬件路由器的价格不斐,真实IP挂在网上安全上也让人不放心。所以这种方案应用得不多,我就不多讲了。 再来看第二种方法--NAT。上文提到,ip地址常常是不够用的,那么NAT技术的出现就可以解决这一问题。其原理就是在局域网使用保留的私有地址,在ip数据包离开局域网网关(即NAT网关)发往Internet时改变其源地址为一个Internet可路由地址(通常就是网关的外部网卡地址),当回应的数据包返回网关时再将回应包的目的地址改为原先发出请求的客户机的IP地址,这通常是一个保留的私有地址。NAT网关自动跟踪客户机和外网的连线,保证数据包转发给正确的客户机。这样许许多多的局域网都可以使用保留地址而不用担心会相互冲突,就可以节约大量的IP地址资源。linux下的iptables,ipchains, FreeBSD下的ipfw都可以实现某种形式的NAT,从而充当局域网的Internet网关。还有M$的ICS(Internet Connection Sharing,大致如此吧:-) )也是使用NAT技术。至于sygate,据我所知也是采用NAT技术,所以它并不是真正意义上的代理服务器。 再有就是第三种方法--Proxy,也就是代理服务器。顾名思义它是一种客户机和服务器之间的代理人,它接受客户机的连接请求,然后自己“代替”客户机向服务器发起连接,接收

NAT原理类型与差别

网络地址转换(NAT): 当有数据包通过时,网络地址转换器不仅检查包的信息,还要将包头中的IP地址和端口信息进行修改。以使得处于NAT之后的机器共享几个仅有的公网IP地址(通常是一个)。 P2P-NAT: P2P-NAT 是一个P2P代理,提供了NAT的功能,也提供了防火墙的功能,一个最简的P2P 代理必须具有锥形NAT对UDP通信支持的功能,并允许应用程序利用UDP打洞技术建立强健的P2P连接。 回环转换: 当NAT的私网内部机器想通过公共地址来访问同一台局域网内的机器的时,NAT设备等价于做了两次NAT的事情,在包到达目标机器之前,先将私有地址转换为公网地址,然后再将公网地址转换回私有地址。我们把具有上叙转换功能的NAT设备叫做“回环转换”设备。 NAT分类: 可以分为基础NAT与网络地址和端口转换(NAPT)两大类: (一)基础NAT: 基础NAT 将私网主机的私有IP地址转换成公网IP地址,但并不将TCP/UDP端口信息进行转换。基础NAT一般用在当NA T拥有很多公网IP地址的时候,它将公网IP地址与内部主机进行绑定,使得外部可以用公网IP地址访问内部主机。(实际上是只将IP转换,192.168.0.23 <-> 210.42.106.35,这与直接设置IP地址为公网IP还是有一定区别的,特别是对于企业来说,外部的信息都要经过统一防火墙才能到达内部,但是内部主机又可以使用公网IP)。 (二)网络地址和端口转换(NAPT): 这是最普遍的情况,网络地址/端口转换器检查、修改包的IP地址和TCP/UDP端口信息,这样,更多的内部主机就可以同时使用一个公网IP地址。另外,当一个内部网主机通过NAT 打开一个“外出”的TCP或UDP会话时,NAPT分配给这个会话一个公网IP和端口,用来接收外网的响应的数据包,并经过转换通知内部网的主机。这样做的效果是,NAPT在[私有IP:私有端口] 和[公网IP:公网端口]之间建立了一个端口绑定。 端口绑定指定了NAPT将在这个会话的生存期内进行地址转换任务。这中间存在一个这样的问题,如果P2P应用程序从内部网络的一个[私有IP地址:端口]对同时发出多条会话给不同的外网主机,那么NAT会怎样处理呢? 这又可以分为锥形NAT (CONE NAT)与对称NAT (SYMMTRIC NAT)两大类来考虑:: A.锥形NAT: (为什么叫做锥形呢?请看以下图形,终端和外部服务器,都通过NAT分派的这个绑定地址对来传送信息,就象一个漏斗一样,筛选并传递信息。) 当建立了一个[私有IP:端口]-[公网IP:端口] 端口绑定之后,对于来自同一个[私有IP:端口]会话,锥形NAT服务器允许发起会话的应用程序重复使用这个端口绑定,一直到这个会话结束才解除(端口绑定)。 例如,假设Client A(IP地址信息如上图所示)通过一个锥形NAT 同时发起两个外出的连接,它使用同一个内部端口(10.0.0.1:1234)给公网的两台不同的服务器,S1和S2。锥形NAT 只分配一个公网IP和端口(155.99.25.11:62000)给这个两个会话,通过地址转换可以确保Client使用端口的“同一性”(即这个Client只使用这个端口)。而基础NATs和防火墙却不能修改经过的数据包端口号,它们可以看作是锥形NAT的精简版本。

NAT和端口映射的区别

对于nat,每一个访问的建立,都会在防火墙上留下记录,比如192.168.1.50的12345端口复用了200.201.30.41的54321端口进行对新浪的访问,则防火墙会有一个对应的表200.201.30.41:54321<——>192.168.1.50:123 45,当数据返回时,仍然会按照这个连接,将数据返回给内网主机192.168.1.50;当连接结束时,会释放200.201.30.41:54321的端口,这时,54321号端口又可以给其他的连接请求使用。这是对于nat的情况。 而对于端口映射的情况则不同,例如内网的web服务器的ip地址为172.168.1.10,web 服务需要向外网发布,这时,就需要进行端口映射,在防火墙上建立固定的端口映射表172.168.1.10:80<——>200.201.70.71:80,这个映射是固定的。这样,在外网的用户访问该web服务器的时候,访问的就是外网200.201.70.71这ip地址。访问时使用http://200.201.70.71即可访问到172.168.1.10:80的web服务器(实际上是http://200.201.70.71:80,由于http协议默认

使用80端口,所以可以省略)。这时,200.201.70.71的80端口就被占用了,也就是不能再被其他的内部地址使用,虽然这里的80端口是保留端口,但是原理是一样的。 在做端口映射的时候,可以将内部地址端口映射为外部地址相同的端口,也可以映射为不同的端口,如内网有另外一台web服务器172.168.1.20需要向外网发布,但是200.201.70.71的80端口已经被172.168.1.10的80端口占用了,这时,可以使用其他的任何未被占用的端口(非保留端口),如建立以下的映射:172.168.1.20:80<——>200.201.70.71:8080,这时,访问http://200.201.70.71:8080即可访问到172.168.1.20发布的web服务,只是这个时候必须指定访问8080端口,否则会访问到172.168.1.10发布的web服务。而由于8080端口已经被端口映射的服务占用了,所以nat时,是不会使用该端口了(端口映射的优先级较高)。

VMware中Bridged、NAT、host-only三种网络连接模式的原理及其区别

VMware中Bridged、NAT、host-only三种网络连接模式的原理及其区别: 首先,我们先从VMware的安装过程及安装结果来了解一下什么是虚拟网卡,什么是虚拟交换机。 虚拟交换机:VMware提供了10个虚拟的交换机VMnet0~VMnet9(交换机本身没有虚拟网卡或者物理网卡),这10个虚拟交换机在安装完VMware后可在菜单栏Edit->Virtual Network Setting中查看到,如图: 不同虚拟交换机应用在不同的联网模式Bridged、NAT、host-only、custom四种模式,下面分别介绍其具体分配: VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机; VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机; VMnet8:这是VMware用于虚拟NA T网络下的虚拟交换机; VMnet2~VMnet7及VMnet9:是VMware用于虚拟自定义custom网络下的虚拟交换机; 虚拟网卡:虚拟机虚拟出来的网卡,这些虚拟出来的网卡和真实的物理网卡的功能上是完全一样的,只不过在性能上不如物理网卡优良。完全可以把虚拟网卡看作是一个真实的网卡一样来看待,实际中就认为虚拟网卡就是一个能工作的计算机的物理网卡。 虚拟网卡分为两种: 第一种虚拟网卡是给VMware上安装的虚拟机(如VMware上安装的WinXP、Linux 等)使用的,就是给虚拟机使用的。这种虚拟网卡在我们的主机的“网络连接->本地连接”位置一栏中是看不到的,因为这些虚拟网卡是给虚拟机使用的,而不是给我们主机使用的。既然这种虚拟网卡是给虚拟机使用的,那么当然在虚拟机中“网络连接->本地连接”位置一栏会看到这种虚拟网卡。注意:VMware为安装在其上的每一个操作系统都分配虚拟网卡,可以是一个虚拟机一个虚拟网卡,可以是一个虚拟机两块虚拟网卡,甚至一个虚拟机多个虚拟网卡。例如,如果在VMware上安装的系统是WinXP系统,那么安装完操作系统后,在

ip_nat_inside_和_ip_nat_outside_的区别

1、静态地址转换适用的环境 静态地址转换将内部本地地址与内部合法地址进行一对一的转换,且需要指定和哪个合法地址进行转换。如果内部网络有E-mail服务器或FTP服务器等可以为外部用户提供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。 静态地址转换基本配置步骤: (1)、在内部本地地址与内部合法地址之间建立静态地址转换。在全局设置状态下输入: Ip nat inside source static 内部本地地址内部合法地址 (2)、指定连接网络的内部端口在端口设置状态下输入: ip nat inside (3)、指定连接外部网络的外部端口在端口设置状态下输入: ip nat outside 注:可以根据实际需要定义多个内部端口及多个外部端口。 实例1: 本实例实现静态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。其中10.1.1.2,10.1.1.3,10.1.1.4的内部本地地址采用静态地址转换。其内部合法地址分别对应为192.1.1.2,192.1.1.3,192.1.1.4。 路由器2501的配置: Current configuration: version 11.3 no service password-encryption hostname 2501 ip nat inside source static 10.1.1.2 192.1.1.2 ip nat inside source static 10.1.1.3 192.1.1.3 ip nat inside source static 10.1.1.4 192.1.1.4 interface Ethernet0

相关主题
文本预览
相关文档 最新文档