NAT技术
NAT,即Network Address Translation,网络地址转换,是将内部IP地址转换为公网IP地址访问公网资源的技术。通常一个私有地址想要访问公共网络就需要经过NAT来转换地址。NAT技术分为静态NAT、动态NAT、和NAT过载(或者称为PAT,Port Address Translation)。
静态NAT,是把一个私有地址固定转换为一个公网IP地址,进行公网访问,转换是一对一的;动态NAT是把私有IP地址转换为公网IP地址池内的一个地址,进行公网访问,这种地址转换是动态的,但依旧是一对一的;在IPV4地址日益紧张的环境下,公网地址的分配并不能一对一的满足每个私有IP用户,所以NAT过载技术支持将多个私网IP地址转换为一个或多个公网IP地址,“过载”就是形容一个公网IP地址可以承载多于公网IP地址数的私有IP地址,使用的方法是在这个公网IP地址上开放不同的端口,每个私有IP地址都对应一个端口号,以此实现多个私有IP转换为一个公网IP地址,实现对公网资源的访问,所以NAT过载也称为PAT,即Port Address Translation,端口地址转换。
当在配置了NAT技术的设备上使用NAT过载时,首先NAT设备先把要访问公网的私有IP地址转换为一个公网IP地址,把私有IP地址使用的端口号转换为一个公网IP地址的端口号,接着更新记录NAT表,NAT表中存储着私有IP地址及端口号对应的公网IP地址及端口号的相关信息。于是这个私有IP地址就可以以转换后的公网IP地址身份访问互联网信息,当互联网上的受访目标IP地址收到访问请求时,会发送数据响应包到NAT设备,NAT设备根据数据响应包中的目标IP地址及端口号,查询NAT表,将数据响应包中的目标IP及端口号端口重定向为源私有地址和源端口号,从而保证数据的正确送达。
VPN技术
VPN,即Virtual Private Network的缩写,虚拟专用网络。它可以为一个在公网环境中的IP地址搭建隧道让其访问局域网。建立VPN连接,然后公网中的主机可以获得一个局域网中的IP地址,以这个地址的身份与局域网中的IP主机进行通讯,所以对局域网中的IP地址来说,这个访问局域网的IP地址就跟局域网内的其他地址没有什么不同。GRE隧道技术,即Generic Routing Encapsulation,通用路由封装,它可以封装源和目的地址之间交互的网络层数据包,使得一种协议中的数据包可以在另一种协议中传输。通常它与IPSec联合使用,因为GRE只负责封装数据包和解封装,而不负责数据包在传输过程中的安全问题,所以通过Internet Protocol Security,互联网协议安全,加上加密和认证算法,使数据包在隧道里安全传输。
公网用户和局域网中的私有IP地址之间的交互如下:首先,公网用户会建立与局域网中VPN服务器的连接,这个服务器通常处在局域网范围之内,或者与局域网有直接连接的位置,连接基于某种VPN协议,如PPTP、OpenVPN、IPSec、IKEv2、SSTP等。一旦建立连接,公网用户会被分配一个局域网内部的私有IP地址,这个IP地址使公网用户可以像局域网内的其他私有IP用户一样在局域网内部通信,这个地址可以通过DHCP服务器动态下发,也可以是事先预设的静态地址。隧道处于VPN服务器和公网用户之间,从公网用户发送到局域网内部IP地址的数据包,以及局域网用户通过发送给公网用户的数据包分别在隧道两头封装,在到达隧道的尽头时解封装。通常在使用VPN技术传输时,涉及GRE隧道技术和IPSec加密认证。
这样,私网用户的私有数据就可以在不受信任的公网上传输了。
关于NAT技术和VPN技术有一些异同点,相异点在于,NAT技术经过网络地址转换,使局域网用户访问公网资源,并使得公网响应数据包经重定向交付给局域网用户,侧重于地址转换与网络访问控制。而VPN是通过在公网上打通一条通往局域网的隧道,使公网用户访问局域网内部,直接获得一个局域网内部IP地址不涉及地址转换,侧重于数据安全加密传输和远程网络访问。相同点在于,都可以连接不同的网络。