由于NAT实现是私有IP和NAT的公共IP之间的转换,但并不将TCP/UDP端口信息进行转换,那么,私有网中同时与公共网进行通信的主机数量就受到NAT的公共IP地址数量的限制。为了克服 这种限制,NAT被进一步扩展到在进行IP地址转换的同时进行Port的转换,这就是网络地址端口转换NAPT(Network Address Port Translation)技术。
NAPT与NAT的区别在于,NAPT不仅转换IP包中的IP地址,还对IP包中TCP/UDP的Port进行转换。这使得多台私有网主机利用1个NAT公共IP就可以同时和公共网进行通信。(NAPT多了对TCP和UDP的端口号的转换)
NAT实现方式
(1)静态转换(Static NAT):一对一的NAT
将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。
借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。如内部网络中存在WEB、FTP、E-mail等服务器为外部网络用户提供服务的情况
(2)动态转换(Dynamic NAT):一个或多个 对 一组NAT
将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,而是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。
也就是说,只要指定了哪些地址作为内部地址可以进行NAT转换、哪些合法IP可以作为公网地址,就可以进行动态转换。动态转换可以使用多个合法外部地址集。
当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
(3)端口多路复用(Port Address Translation,PAT):端口转换映射法式 多对一
改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。
同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
PAT技术非常适用于只申请到非常少的公网IP,但内部却有非常多用户同时访问外部网络的情况。
NAT处理报文的几个关键特点:
- 网络被分为私网和公网两个部分,NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关;
- 网络访问只能先由私网侧发起,公网无法主动访问私网主机;
- NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换;
- NAT网关的存在对通信双方是保持透明的;
- NAT网关为了实现双向翻译的功能,需要维护一张关联表,把会话的信息保存下来。