VPN
看以下场景,一个公司在北京和上海各有一个部门,他们各自组成局域网,那如何让这两个局域网相互通信呢?
- 虚拟专用网VPN(Virtual Private Network)
利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称虚拟专用网。由于IPv4地址的紧缺一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的共有地址。
- 私有地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信,私有地址只能用作本地地址而不能用做全球地址。
- 在因特网中的所有路由器,对目的地址是私有地址的IP数据报一律不进行转发。
- 因此A和B各自至少需要一个路由器具有合法的全球IP地址。这样他们各自的专用网才能利用公网的因特网进行通信。
- 通信过程举例:A中一台主机给B中一台主机发送数据:
- 讲待发送数据封装成内部IP数据报发送给路由器R1,源地址为部门A中改主机的IP地址,目的地址为部门B中另一台主机的IP地址
- R1收到该数据报后,发现目的网络必须通过因特网才能到达,就将该内部IP数据报进行加密 ,这样就确保了内部IP数据报的安全。然后重新添加数据报首部,这样就封装成了能在因特网上发送的外部IP数据报。
- 源地址为路由器R1的全球地址,目的地址为路由器R2的全球地址
- 路由器R2收到该IP数据报后,去掉首部,讲数据部分进行解密,恢复出原来的内部IP数据报,再从其首部提取源地址和目的地址,根据目的地址,将该内部IP数据报发送给相应的主机。
- 网络地址转换NAT(Network Address Translation)
虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
1994年提出了一种网络地址转换NAT的方法再次缓解了IPv4地址空间即将耗尽的问题。
NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
- 举例:专用网络中的主机要与使用全球IP地址的主机通信
- 在专用网络连接的路由器上安装NAT软件,该路由器至少有一个全球IP地址。所有使用私有地址的主机和外部通信时,都要在NAT路由器上将其转换为全球IP地址。
- 专用网络主机发的IP数据报的首部中,源地址是私有地址,目的地址是目的主机的全球IP地址
- 数据报交给NAT路由器后,NAT路由器从自己的全球IP地址池中为该主机分配一个临时的全球IP地址,并将源地址改为该地址
- 将私有地址和临时全球地址的对应关系记录在NAT转换表中。再转发该IP数据报。
- 目的主机收到IP数据报后,发回数据报,数据报的源地址和目的地址都是全球IP地址。
- NAT路由器收到数据报后,在NAT转换表中查找,发现目的地址对应自己网络中的私有地址,就修改目的地址,发送给响应主机。
- 问题:该转换方法的一个问题:如果NAT路由器具有N个全球IP地址,那么至多只能有N个内网主机能够同时和因特网上的主机通信。
- 由于绝大多数网路应用都是使用运输层TCP或UDP来传送数据,因此可以利用运输层的端口号和IP地址一起进行转换。
这样,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。这种将端口号和IP地址一起进行转换的技术叫做网络地址与端口转换NAPT(Network Address and Port Translation)。