网络地址转换

网络地址转换( N AT)。从最简单的方式来看, N AT就是要通过某些设备来转换网络层(第三层)地址,这些设备包括路由器、防火墙等。理论上讲,其他的第三层协议,如A p p l e Ta l k或I P X协议,或其他层协议(如第二层协议)都能被转换。实际上,目前一般仅用于第三层的I P地址转换。由于这是一本有关 T C P / I P的书籍,所以本章仅讨论 I P问题。我们将通过示例来说明仅转换第三层的地址是不够的,运输层(第四层)及更高层上的信息也可能被影响。所以我们这里的讨论也包括 T C P、U D P以及应用层(第七层)协议。我们不仅要讨论什么是 N AT、N AT是如何工作的,还要讨论它的问题和缺陷。尽管这一章不是讲述网络安全的,然而 N AT的问题时常与一些安全应用有很密切的关系。在某些情况下, N AT的一些特殊类型对安全应用的非常有用,许多安全包中都包含有商业 N AT的实现。这也就是说,本章我们将讲述一些与 N AT相关的安全问题,尽管 N AT本身并不需要安全技术。在早期的防火墙解决方案中,经常会使用到 N AT。这些早期的防火墙几乎都是基于代理的。一个很好的示例是 F i r e Wa l l To o l K i t ( F W T K )软件。代理存在于防火墙内部,它负责为客户提供一些信息,例如, We b页面。客户计算机向代理请求一个特定的 We b页面(要给出U R L),并等待应答。此时,代理将会找到 We b页,并将它返回给客户。这个代理具体是什么?首先,代理的管理员经常要编制一些内容列表,这些内容是不允许客户访问的。例如,如果在一个公司中有一个 We b代理,那么代理管理员也许会禁止公司内部计算机对w w w. p l a y b o y. c o m的访问。其次,代理还能够完成一些高速缓存和其他优化工作。如果每天有5 0个人访问w w w. s y n g r e s s . c o m,代理就能够将这个 We b页的拷贝下来。当一个客户请求这个We b页面时,代理所做的所有工作就是检查这个页面是否发生了一些变化。如果没有发生变化,则代理只传送它已存储的拷贝,这样客户就能够更快地看到这些页面。一般来说,对于这种类型的代理配置,主要是阻止客户直接从 I n t e r n e t上查看某些We b页面。如果它们想要查看某些页面的话,则必须使用这个代理。这个工作通常是通过路由器上的包过滤功能来实现的。简单的来说,路由器被配置成仅允许代理访问在 I n t e r n e t上的We b页面,而不允许其他机器访问 I n t e r n e t上的We b页面。

这种设计的结果就是内部的客户只能与代理进行通信,而不能同在 I n t e r n e t上的其他主机进行通信。代理需要接收内部客户的请求,然后完成这个请求。这也就意味着在 I n t e r n e t上的其他主机也不能直接同内部主机进行通信,甚至不能直接应答。所以,防火墙管理员通过配置路由器或防火墙能够隔断内部和外部机器间的通信。这种方法将强制所有的通信都通过代理来完成。现在,如果配置正确的话,能够与外部通信的唯一机器是代理,这会大大减少受到外部直接攻击的机器数量。代理的管理员应尽可能谨慎,以保证代理机器尽可能安全。下图是有关这方面的逻辑示意图。

为了达到我们讨论的目的,这个过程已经被大大地简化。但要注意下面的原则:内部和外部的清楚划分以及它们之间的交接点。它们之间的交接点有时也被叫做阻塞点。在我们的图中,阻塞点就是代理和过滤路由器的组合。

这是一种最简单的防火墙结构。当你要设计一个真正的防火墙时,还需要了解许多本章以外问题,例如:

• 代理软件是否支持所有所需的协议。

• 如何在路由器上配置分组过滤。

• 在客户端的We b浏览器软件如何与代理进行通信。

• 代理如何知道哪个机器在内部,哪个机器在外部。

讨论的重点不是代理防火墙的结构,而是讨论它的影响。我们已经知道,从这个网络到I n t e r n e t上的所有流量实际上都来自于代理。这也就是说, I n t e r n e t仅能看到代理服务器的 I P地址。我们已经知道, I n t e r n e t不能到达内部的客户机器上。

就I n t e r n e t而言,这个位置仅需要一个 I P地址,它就是代理的 I P地址。

N AT的工作就是修改独立的分组。它至少要修改第三层的头,以便使源地址、目的地址或

两者有一个新地址。我们也将会看到一个修改第四层头结构以及修改第七层的数据口的例子。

我们不仅将会看到,在地址转换过程中一些小的变化将会产生一系列行为和特征上的变化,而且也能看到,对于某些协议在实现 N AT时,要比简单的在第三层做地址转换做更多的工作,甚至有些协议不能够实现 N AT。

N AT的功能通常是由路由器或防火墙来完成的。从原理上来说,一个第 2层网桥设备也能

实现第三层转换,至少市场上的防火墙新产品能够做到这一点。然而,大多数 N AT设备和包含

N AT功能的软件都是根据一般 I P的路由来传递分组。大部分 N AT设备都支持I P路由功能。

静态网络地址转换

我们从最简单的静态或叫 1对1转换开始。这是一种最直接的方式:简单地说,在静态 N AT中,一个特定的 I P地址在某一方向上被转换成其他地址。同样,反方向也要转换。对于向外的分组,通常要对源地址进行转换,图 4 - 2将有助于清楚地了解这个过程。在下图 中,箭头描述了分组流动的方向(被路由的地方),S表示源地址,D表示目的地址。