【计算机网络系列】网络层⑫:虚拟专用网和网络地址转换NAT

虚拟专用网和网络地址转换NAT

虚拟专用网

由于IP地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。实际上,在许多情况下,很多主机主要还是和本机构内的其他主机进行通信。假定在一个机构内部的计算机通信也是采用TCP/IP协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其IP地址。

这就是说,让这些计算机使用仅在本机构有效的IP地址(这种地址称为本地地址),而不需要向互联网的管理机构申请全球唯一的IP地址(这种地址称为全球地址)。这样就可以大大节约宝贵的全球IP地址资源。

但是,如果任意选择一些IP地址作为本机构内部使用的本地地址,那么在某种情况下可能会引起一些麻烦。例如地址的二义性问题。

为了解决这一问题,RFC1918指明了一些专用地址。这些地址只能用于一个机构的内部通信,而不能用于和互联网上的主机通信。换言之,专用地址只能用作本地地址而不能用作全球地址。

在互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。2013年4月,RFC 6890全面地给出了所有特殊用途的IPv4和IPv6地址,但三个IPv4专用地址块的指派并无变化,即

  • 10.0.0.0/8,即从10.0.0.010.255.255.255
  • 172.16.0.0/12,即从172.16.0.0172.31.255.255
  • 192.168.0.0/16,即从192.168.0.0192.168.255.255

采用这样的专用IP地址的互连网络称为专用互联网本地互联网。显然,全世界可能有很多的专用互连网络具有相同的IP地址,但这并不会引起麻烦,因为这些专用地址仅在本机构内部使用。专用IP地址也叫作可重用地址

思考一个问题:有时一个很大的机构的许多部门分布的范围很厂,那么如何让这些部门进行通信呢?

  • 第一种方式就是采用电信公司的通信线路,这种方法简单方便,但是租金太贵

image.png

  • 第二种方式就是将两个网络通过英特网进行通信。值得这注意的是,利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网称为虚拟专用网(V.P.N) 再思考,这之间的IP地址该如何分配?

image.png
由于IPv4地址的紧缺,一个机构在因特网上能够申请到的IPv4的地址数量往往是小于本机构所拥有得到主机数量。因此,虚拟专用网中各个主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址

这里之所以称为“专用网”,是因为这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密

“虚拟”表示“好像是”,但实际上并不是,因为现在并没有真正使用通信专线,而V.P.N只是在效果上和真正的专用网一样。一个机构要构建自己的V.P.N就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的V.P.N系统都知道其他场所的地址。

下图以两个场所为例说明如何使用IP隧道技术实现虚拟专用网。假定某个机构在两个相隔较远的场所建立了专用网A和B,其网络地址分别为专用地址10.1.0.010.2.0.0。现在这两个场所需要通过公用的互联网构成一个V.P.N。
image.png
显然,每一个场所至少要有一个路由器具有合法的全球IP地址,如图(a)中的路由器R1和R2。这两个路由器和互联网的接口地址必须是合法的全球IP地址。路由器R1和R2在专用网内部网络的接口地址则是专用网的本地地址。

两个场所通信的过程如上图(a)所示。简单来说,就是先对本地数据报进行加密,加密后发送到因特网,经过因特网传输到目的专用网,解密数据后发送到目的主机

由于两个专用网内的主机间发送的数据报实际上是通过了公用的因特网,但在逻辑上就好像是在本机构的专用网上传送一样。此外,数据报在因特网中可能要经过多个网络和路由器,但从逻辑上看,R1和R2之间好像是一条直通的点对点链路,因此这种通信方式又称为IP隧道技术

虚拟专用网的分类:

  • 同一机构内不同部门的内部网络所构成的虚拟专用网V.P.N又称为内联网V.P.N
  • 有时一个机构的V.P.N需要有某些外部机构(通常就是合作伙伴)参加进来。这样的V.P.N就称为外联网V.P.N
  • 在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接到因特网,运行驻留在员工PC中的V.P.N软件,在员工的PC和公司的主机之间建立V.P.N隧道,即可访问专用网络中的资源。这种V.P.N称为远程接入V.P.N

image.png

在家访问校园内网,实际上就是远程V.P.N技术。

网络地址转换

虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。

1994年提出了一种网络地址转换NAT(Network Address Translation)的方法再次缓解了IPv4地址空间即将耗尽的问题,NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。

在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和互联网上的主机通信,那么应当采取什么措施呢?事实上,网络地址转换NAT方法给出了答案。所有使用本地地址的主机在和外界通信时,在NAT路由器上都将其本地地址转换成全球IP地址,就能和互联网连接

如下图,使用私有地址的主机给因特网上使用全球IP地址的另一台主机发送IP数据报,通过NAT机制,将本地地址转换成NAT路由器的全球地址,并且将数据报首部的目的地址也改成NAT路由器的全球地址,进行发送,并且该次转换存在NAT转换表中。
image.png
此时若因特网上的这台主机给源主机发回数据报,NAT路由器接收到数据报告,根据首部的目的地址,查找NAT转换表后进行转换,转换成目的主机本地地址后进行传输。
image.png
此时会出现一个问题,当专用网中的这两台使用私有地址的主机都要给因特网使用全球地址的另一台主机发送数据报时,在NAT路由器的NAT转换表中就会产生两条记录,分别记录两个私有地址与全球地址的对应关系。
image.png
如果NAT路由器具有N个全球IP地址,那么至多就只能有N个内网主机能够同时和因特网上的主机通信。

由于绝大多数的网络应用都是使用运输层协议TCP或UDP来传送数据,因此可以利用运输层的端口号和IP地址一起进行转换。这样,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。这种将端口号和IP地址一起进行转换的技术叫作网络地址与端口号转换NAPT(Network Address and Port Translation)。
image.png
此时就有了一个问题:内网主机与外网主机的通信,是否能由外网主机首先发起?很明显,不能!看下图:
image.png
对于一些P2P网络应用,需要外网主机主动与内网主机进行通信,在通过NAT时会遇到问题,需要网络应用自己使用一些特殊的NAT穿越技术来解决问题。另外,由于NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全保护。

猜你喜欢

转载自blog.csdn.net/qq_37085158/article/details/128524610