NAT

参考书籍:《TCP/IP协议族》Behrouz A.Forouzan著

NAT(Network Address Translation) 网络地址转换,可用于提供在专用地址和全球地址之间的互相映射,同时也支持虚拟网络。

这个技术允许一个站点的内部通信使用一组专用地址,而与世界其他地方进行通信时又使用另一组(至少一个)全球因特网地址。这个站点必须仅有一条到全球因特网的连接,而且这条连接通过了一个运行NAT软件的具有NAT功能的路由器。

笔记:这个路由器可以理解为是这个站点对外的接口,外界只能看到这个路由器和它的全球地址。这个路由器内部的NAT软件负责站点内部的专用地址和全球地址之间的映射。

所有外出的分组都要通过这台NAT路由器,它将分组中的源地址替换为全球NAT地址。所有进入的分组也要通过这台NAT路由器,它又将这些分组中的目的地址(NAT路由器的全球地址)替换为相应的内部地址。
NAT地址转换

转换表

上面提到的地址转换中,将外出分组中源地址换为全球地址很容易实现,但是将来自因特网的分组的目的地址换为专用网络中某个特定主机对应的专用地址不是很容易实现(因为不能确定它究竟想要发给专用网络中的哪一台主机)。转换表(Transation Table)可以用来解决这一问题。

转换表的结构:共有两列,一列是专用地址,一列是全球地址。

在路由器为外出分组转换源地址时,同时在转换表中增加一项:
< 该外出分组的源地址(专用地址), 该外出分组的目的地址(全球地址) >

当终点返回的响应到达时,路由器就根据返回分组的源地址查找全球地址一列,找到相应的专用地址,用这个专用地址来替换返回分组的目的地址。
图片说明

在这个策略中,通信必须总是由专用网络发起的。

NAT的意义

NAT的提出对于以下几种问题提供了解决方法:

  1. 原本向某个组织分配了一小段地址空间的使用权,随着该组织的发展这个地址空间中的地址已经被用完了,需要一个更大的地址段。但是因为该地址段的前后地址都已经分配给其他网络了,所以无法满足它新增地址段的需求。
  2. 某一个小企业中的大多数计算机或者在做一些不需要接入因特网的工作,或者正在互相通信。对于这样的小企业来说,分配的地址数不一定要完全匹配网络中的计算机数目。
    总的来说,NAT首先能够区分内部网和外部网,其次是可以用少量的全球地址实现大量内部主机与外界的通信。