NAT(PAT)与端口映射的区别,(转贴,收藏)

[ 2012-06-22 11:43:38 | 作者: Admin ]
: | |
从原理上面来说,我们通常所说的nat实际上已经不是传统的1对1(1个外网地址对应1个内网地址)及多对多(多个外网地址动态对应多个内网地址)的模式了,通常来说是1对多(1个外网地址的多个端口对应多个内网地址),例如外网地址200.201.30.41这个外网地址的1025~65535的端口对应192.168.0.0/16的地址块,即多个内网ip服用一个ip地址进行internet的连接,也就是pat技术。
通常所说的nat是对网络层的ip地址进行的操作,也就是三层的技术。
而端口映射与pat有一定类似的地方,他是将内网ip的固定的端口映射到防火墙的外网ip地址的固定端口上,并由防火墙代理发布出去。这是四层的技术。
端口映射与pat的相似的地方在于,它们都是基于传输层的端口进行的转换,而不同的地方在于,pat对于端口的使用是空闲随机的,而端口映射的端口映射则是固定的。
从配置的角度来看,对于nat,只需要定义一个公网ip地址,再定义一个内部的地址池,则转换的过程是自动进行了(当然也可以根据需求定义更多的细节,如源地址、目的地址、双向地址转换等等)。对于端口映射,则要制定内部的ip地址,端口号,映射的外网的ip地址,端口号。
举例来说,在某个网络的防火墙上有两个公网地址,200.201.30.41,200.201.70.71(举例),定义了两个nat,分别是
200.201.30.41——>192.168.0.0/16
200.201.70.71——>172.168.0.0/16
则内网中,所有192.168.0.0网段的用户上网时显示的公网ip都是200.201.30.41,同理,172.168.0.0/16的公网ip是200.201.70.71,因为内网用户复用了外网ip的随机端口来进行internet的访问,这个端口的使用是随机的。
对于nat,每一个访问的建立,都会在防火墙上留下记录,比如192.168.1.50的12345端口复用了200.201.30.41的54321端口进行对新浪的访问,则防火墙会有一个对应的表:200.201.30.41:54321<——>192.168.1.50:12345,当数据返回时,仍然会按照这个连接,将数据返回给内网主机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时,是不会使用该端口了(端口映射的优先级较高)。
注意,映射的外网ip地址的端口可以随意指定,但是内部的要使用的服务端口必须固定,如要发布web服务的172.168.1.10服务器必须使用80地址,如果使用3389端口,就变成了远程连接。
评论Feed 评论Feed: http://www.vTalkback.com/blog/feed.asp?q=comment&id=215

这篇日志没有评论.

发表
表情图标
[smile] [confused] [cool] [cry]
[eek] [angry] [wink] [sweat]
[lol] [stun] [razz] [redface]
[rolleyes] [sad] [yes] [no]
[heart] [star] [music] [idea]
UBB代码
转换链接
表情图标
悄悄话
用户名:   密码:  
验证码 * 请输入验证码