4.8 VPN和NAT

专用地址

  • RFC 1918指明了一些专用地址(private address)。这些地址只能用于一个机构的内部通信,而不能用于和互联网上的主机通信。换言之,专用地址只能用做本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。2013年4月,RFC 6890全面地给出了所有特殊用途的IPv4地址,但三个专用地址块的指派并无变化,即
    • 10.0.0.0到10.255.255.255 (或记为10.0.0.0/8,它又称为24位块)
    • 172.16.0.0到172.31.255.255 (或记为172.16.0.0/12,它又称为20位块)
    • 192.168.0.0到192.168.255.255 (或记为192.168.0.0/16,它又称为16位块)
  • 上面的三个地址块分别相当于一个A类网络、16个连续的B类网络和256个连续的C类网络
  • 采用这样的专用IP地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。显然,全世界可能有很多的专用互连网络具有相同的专用IP地址,但这并不会引起麻烦,因为这些专用地址仅在本机构内部使用。专用IP地址也叫做可重用地址(reusable address)
  • 虚拟专用网,“虚拟”表示“好像是”,但实际上并不是,因为现在并没有真正使用通信专线,而VPN只是在效果上和真正的专用网一样

VPN的分类

  • 由场所A和B的内部网络所构成的 虚拟专用网VPN又称为内联网(intranet或intranet VPN,即内联网VPN),表示场所A和B都属于同一个机构
  • 有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网(extranet或extranet VPN,即外联网VPN)。
  • 请注意,内联网和外联网都采用了互联网技术,即都是基于TCP/IP协议的。
  • 还有一种类型的VPN,就是远程接入VPN(remote access VPN)

网络地址转换NAT

  • 讨论另一种情况,就是在专用网内部的一些主机本来已经分配到了本地IP地址,但现在又想和互联网上的主机通信(并不需要加密),那么应当采取什么措施呢?
  • 网络地址转换NAT(Network Address Translation)方法是在1994年提出的。这种方法需要在专用网连接到互联网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和互联网连接。

NAT原理示例

在这里插入图片描述

  • NAT路由器收到从专用网内部的主机A发往互联网上主机B的IP数据报:源IP地址是192.168.0.3,而目的IP地址是213.18.2.4。NAT路由器把IP数据报的源IP地址192.168.0.3,转换为新的源IP地址(即NAT路由器的全球IP地址)172.38.1.5,然后转发出去。因此,主机B收到这个IP数据报时,以为A的IP地址是172.38.1.5。当B给A发送应答时,IP数据报的目的IP地址是NAT路由器的IP地址172.38.1.5。B并不知道A的专用地址192.168.0.3
  • 当NAT路由器收到互联网上的主机B发来的IP数据报时,还要进行一次IP地址的转换。通过NAT地址转换表,就可把IP数据报上的旧的目的IP地址172.38.1.5,转换为新的目的IP地址192.168.0.3
  • 当NAT路由器具有n个全球IP地址时,专用网内最多可以同时有n台主机接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用NAT路由器有限数量的全球IP地址
  • 显然,通过NAT路由器的通信必须由专用网内的主机发起。设想互联网上的主机要发起通信,当IP数据报到达NAT路由器时,NAT路由器就不知道应当把目的IP地址转换成专用网内的哪一个本地IP地址。这就表明,这种专用网内部的主机不能充当服务器用,因为互联网上的客户无法请求专用网内的服务器提供服务。

NAPT

  • 为了更加有效地利用NAT路由器上的全球IP地址,现在常用的NAT转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个NAT路由器上的全球IP地址,因而可以同时和互联网上的不同主机进行通信[COME06]
  • 使用端口号的NAT也叫做网络地址与端口号转换NAPT(Network Address and Port Translation)
  • NAPT把专用网内不同的源IP地址都转换为同样的全球IP地址。但对源主机所采用的TCP端口号(不管相同或不同),则转换为不同的新的端口号。因此,当NAPT路由器收到从互联网发来的应答时,就可以从IP数据报的数据部分找出运输层的端口号,然后根据不同的目的端口号,从NAPT转换表中找到正确的目的主机

NAPT地址转换表举例

方向 字段 旧的IP地址和端口号 新的IP地址和端口号
源IP地址:TCP源端口 192.168.0.3:30000 172.38.1.5:40001
源IP地址:TCP源端口 192.168.0.4:30000 172.38.1.5:40002
目的IP地址:TCP目的端口 172.38.1.5:40001 192.168.0.3:30000
目的IP地址:TCP目的端口 172.38.1.5:40002 192.168.0.4:30000
  • 从层次的角度看,NAPT的机制有些特殊。普通路由器在转发IP数据报时,对于源IP地址或目的IP地址都是不改变的。但NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址或目的IP地址)。其次,普通路由器在转发分组时,是工作在网络层。但NAPT路由器还要查看和转换运输层的端口号,而这本来应当属于运输层的范畴。也正因为这样,NAPT曾遭受了一些人的批评,认为NAPT的操作没有严格按照层次的关系。但不管怎样,NAT(包括NAPT)已成为互联网的一个重要构件

猜你喜欢

转载自blog.csdn.net/rakish_wind/article/details/120231109
4.8