假设现在企业内部有文件服务器、OA服务器、邮件服务器等等。而企业还希望这些服务器能够被外部网络的用户访问。如企业可能在异地有一个销售办事处,或者有些员工经常需要出差。为了方便他们的工作,就需要允许这些员工来访问企业内部的这些应用服务器。但是现实情况是,大部分企业可能仅仅拥有一个到连个合法的IP地址。而需要让外部用户能够访问企业内部的应用服务器,首要的一个条件就是企业有足够多数量的合法IP地址。笔者这里要给大家介绍的是,如何通过路由器自带NAT功能,来实现一个合法IP地址同时绑定多台应用服务器。一、选择合适的NAT类型NAT,又叫做网络地址类型转换,其主要有三种类型,分别为静态NAT、动态NAT与端口地址映射。这里需要注意,这三种类型之间有很大的差异。网络管理员在使用这个技术的时候,必须要了解它们之间的差异,然后结合企业的实际情况,选择合适的实现手段。第一种类型是静态网络地址转换。其主要的特点是一对一。也就是说,这种类型的网络地址转换是为了在本地和全球地址之间进行一对一的映射而设计的。这就要求网络中的每一台主机都有用一个真实的合法的IP地址。结合上面这个案例,如果企业内部三台服务器都需要被外部用户访问的话,那么就需要至少三个IP地址。显然这种方式并不能够达到节省IP地址的目的。一般来说,静态NAT主要的目的是为了隐藏企业内部服务器的IP地址,以达到保护服务器的目的。第二种类型是动态NAT。这种类型的网络地址转换是将一个企业内部的IP地址与一个合法的IP地址进行映射。虽然这也是一对一的关系,但是与静态NAT有很大的差别。前者要求企业内部服务器也必须有一个公网IP地址。而动态NAT则没有这个要求,即企业内部的服务器可以采用内部地址。不过此时一个公网IP地址也只能够解决一台内部服务器的访问问题。这与我们上面提到的需求还是有一定的差异。第三种类型是端口地址映射。端口地址映射在动态NAT上又进了一步。简单的说,其工作模式就是多对对一。可以将多个内部IP地址(内网地址)对应到一个公网IP地址。具体的说,就是内网地址+端口号与公网地址进行对应。采用这个端口地址映射,那么企业网络管理员就可以将企业内部的应用服务器(即使其不具有合法的公网地址)放置到外网上,供外网用户访问。可见在实现NAT网络地址转换的过程中,了解这三种不同的工作模式,然后结合企业的实际情况,来选择合适的实现方式,这是最关键的内容。一般来说,如果企业有足够多的公网地址,而只是出于安全考虑,要隐藏内部服务其,则采用静态的NAT为好。相反,如果企业有多台服务器,而合法的IP地址又不够用。在这种情况下,就需要采用端口地址映射,将多个内部IP地址通过端口这个参数对应到公网IP地址。二、端口NAT的配置对于NAT技术来说,其实配置是其中最简单的一个环节。笔者一般将NAT分为四个部分,分别是设计、配置、验证和排错。其中设计的关键就是上面提到的“选择合适的NAT类型”。而配置就是具体实现的配置。这里主要用的命令是IPNAT相关的命令。其主要的工作就是将内部服务器所采用的地址与端口号与公网地址进行映射。由于配置相对来说比较简单,为此笔者不做过多说明。笔者要将重点放在后续的验证和排错环节上。三、NAT配置的验证NAT网络地址转换配置好之后,需要对相关的配置进行验证。而不是等到用户来反映问题,无法正常访问时,你再去验证。在思科网络环境中,要验证NAT配置的有效性,主要用到了两个命令。一是查看相关的配置信息。在查看消息的时候,重要是弄清楚方向。即哪些是内部主机,哪些是外部主机。有时候可能一组内部IP地址会对应一个公网IP地址,此时网络管理员就会看到许多转换是从不同的主机到相同目的主机之间的转换。在端口地址转换的模式下,可以根据IP地址的类型来判断。一般情况下,企业内部服务器采用的IP地址都是私网IP地址,如192开头的。如果要查看具体的配置信息,可以使用下面这个命令。Showipnattranslation二是判断其连通性。也就是说,这个配置是否真的有效。此时网络管理员可以采用debugipnat命令来验证NAT的配置。使用这个命令后,在输出结果中会显示发送端的IP地址、转换目的地址、端口信息等内容。通过这两个命令,可以基本判断NAT的配置是否有问题。不过需要注意的是,这只能够判断出其配置是否有问题。而对于这个配置是否合理、在性能上是否需要优化等等不能够提供有效的信息。四、NAT故障的分析与排除在这一块内容中笔者又将其分为两部分。一部份是NAT本身的配置问题,另外一部分是NAT技术以外的问题导致的NAT应用故障。在实际工作中,我们可能更加的关注与后者。因为只要一开始NAT设计与配置合适,那么NAT本身不会出现多大的问题。对于NAT本身的配置问题,笔者认为网络管理员只要注意以下五个规则。只要这个五个规则没有问题,那么NAT本身的配置就是OK的。这个五个规则如下:一是访问列表相关。在配置时需要确保访问列表指定了正确的转换地址。注意这个非常的重要。因为这个错误在后续排查中比较难发现。所以在设置时就需要采取相关的控制措施,来确保其能够被合理的配置。二是检查内部和外部的接口是否被正确的定义。其实NAT技术说到底,就是接口与接口之间的对接。如果接口对接时出现错误,那么信息流就无法正常流程。此时用户就会无法正常访问。这个接口定义中,关键的是端口参数是否有问题。如内部服务器使用的端口是5150端口,而配置时不小心输入了515端口。此时就会有问题。另外一个需要注意的是,一般某个协议都会有默认端口,如FTP协议采用的是20与21端口。但是有时候出于安全考虑,网络管理员往往会更改这个默认端口。此时就需要额外的检查这个端口信息是否设置正确。三是地址池。在检查这个地址池的时候,网络管理员主要要关注两方面的内容。一是动态地址池采用的IP第四行是否是由正确的地址范围所构成的。二是需要检查动态地址池中的地址是否有重复。只要以上两条规则中一条规则出现问题,那么就有可能出现访问故障。四是需要注意不同类型之间是否有冲突。如企业可能出于某种考虑,要同时启用动态端口地址映射和静态映射。此时就需要特别注意,被用来静态映射的地址与动态地址池中的地址不能够有重复。否则的话,就会导致比较严重的冲突。五是需要注意确认列表中该出现的地址没有遗漏,不该出现大地址没有被加入。这个原则可以说是对以上四个原则的一个总结。简单的说,就是要保证相关IP地址的完整性与准确性。少一个不行,多一个更不行。通常情况下,在NAT配置中只要不违背以上任何一个规则,那么NAT本身的配置就没有问题。此时如果用户还无法正常访问企业内部的应用服务器,那么就需要考虑其他的原因。如路由问题等等。