nat映射表,nat反向映射
端口映射与NAT的区别是什么?
一、性质不同
1、NAT:网络地址转换方法。
2、端口映射:NAT的一种,外网主机的IP地址的端口映射到内部网络中的机器上,以提供相应的服务。
二、功能不同
1、NAT功能:
(1)宽带分享:这是 NAT 主机的最大功能。
(2)安全防护:NAT之内的PC联机到 Internet上面时,显示的IP是NAT主机的公共ip,所以客户端的pc当然具有一定的安全性。当外界进行端口扫描时,就侦测不到源Client 端的PC 。
2、端口映射功能:把在公网的地址转翻译成私有地址,采用路由方式的adsl宽带路由器具有动态或固定的公网ip。ADSL直接连接到集线器或交换机,所有计算机共享互联网。
扩展资料:
借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的ip地址。局域网只需要少量的ip地址(甚至一个)就可以满足专用地址网中所有计算机与internet的通信需求。
NAT将自动修改IP报文的源IP地址和目的IP地址,NAT处理时会自动完成IP地址验证。有些应用程序将源IP地址嵌入到IP消息的数据部分,因此有必要同时修改消息的数据部分,以匹配IP头中已修改的源IP地址。否则,在报文数据中嵌入IP地址的应用程序将无法正常工作。
参考资料来源:百度百科-nat
参考资料来源:百度百科-端口映射
NAT和端口映射是什么?
内网有需要让外网访问的共享资源或者设备,就需要端口映射来实现。
比如家用路由器,内网都是c类地址,但是全世界有n个。这时候想要在外面访问家里的路由器,就需要把内网的地址端口映射到外网。也就是公网,因为公网地址是唯一的。
映射的前提是有公网地址,或者花生壳第三方之类的。
NAT端口映射: napt,upnp以及nat-pmp
我喜欢用很简单的话来概括:
natp是内部机器通过路由器也就是网关向外部发送网络请求时,路由器记住内部机器的ip和端口,同时跟真正发送数据的外网端口绑定,产生一个临时映射表,当收到外网数据以后通过这个映射表将数据转发给内部机器。nat的多种映射类型以后再说。
upnp和nat-pmp差不多,就是在路由器和内部机器提供一个中间服务,内部机器请求upnp将其使用到的端口跟某个外网端口绑定,这样当路由器收到外网请求时先去upnp里查找是否此外网端口已经被upnp映射,如果被映射则将数据转发到内部机器对应的端口。
napt是路由器肯定带的功能 ,其产生的nat映射表有多种类型,但都 有时效 ,也就是超过一段时间原来的nat映射就无效,然后新建新的nat映射。 nat映射必须先由内部机器向外部网络发起请求才会产生。
upnp是把映射关系长期保存下来, 外部机器可以主动向内部机器请求网络连接。 所以首先要路由器开启upnp功能(一般由用户去路由器设置里手动开启upnp) ,然后内部机器的程序要自己实现upnp客户端功能:主动查找upnp服务,主动增加映射、删除映射等。
客户端无法控制natp的映射,可以主动控制upnp映射。
从我目前对go-ethereum源码中p2p的研究来看,以太坊只做了upnpt和nat-pmp的端口映射,而且实现是调用了第三方开源库,但是没有做NATP udp打洞。
比特币源码还没看,不过应该也没有做udp打洞穿越NAT.
如何设置nat?
假设某公司申请DDN专线时,电信提供的合法地址为61.138.0.93/30,61.128.0.94/30,公司内部网络地址为192.168.0.0/24,路由器局域口地址192.168.0.254/24,广域口地址61.138.0.93/30,
当192.168.0.1/24这台计算机向INTERNET上的服务器202.98.0.66发出请求,则相应的操作过程如下:
⑴内部主机192.168.0.1/24的用户发出到INTERNET上主机202.98.0.66的连接请求;
⑵边界路由器从内部主机接到第一个数据包时会检查其NAT映射表,如果还没有为该地址建立地址转换映射,路由器便决定为该地址进行地址转换,路由器为该内部地址192.168.0.1到合法IP地址61.138.0.93的映射,同时附加端口信息,以区别与内部其他主机的映射。
⑶边界路由器用合法IP地址61.138.0.93及某端口号来替换内部IP地址192.168.0.1和对应的端口号,并转发该数据包。
⑷INTERNET服务器202.98.0.66接到该数据包,并以该包的地址(61.138.0.93)来对内部主机192.168.0.1作出应答。
⑸当边界路由器接受到目的地址为61.138.0.93的数据包时路由器将使用该IP地址、端口号从NAT的映射表中查找出对应的内部地址和端口号,然后将数据包的目的地址转化为内部地址192.168.0.1,并将数据包发送到该主机。对于每一个请求路由器都重复2-5的步骤。
NAT的功能就是指将使用私有地址的网络与公用网络INTERNET相连,使用私有地址的内部网络通过NAT路由器发送数据时,私有地址将被转化为合法注册的IP地址从而可以与INTERNET上的其他主机进行通讯。
NAT路由器被置于内部网和INTERNET的边界上并且在把数据包发送到外部网络前将数据包的源地址转换为合法的IP地址。当多个内部主机共享一个合法IP地址时,地址转换是通过端口多路复用即改变外出数据包的源端口并进行端口映射完成。