【赛迪网讯】NAT(网络地址转换)技术是现在应用比较广泛的网络技术,推出的目的用于缓解目前IP地址即将耗尽的矛盾。它是通过改变IP包头使目的地址、源地址或两个地址在包头中被不同的地址替换,从而达到多个局域网主机能够共用一个IP地址来访问外部网络的目的。目前主要应用于让企业内部多台主机共享一个IP地址访问互联网。
在企业网中,我们可以灵活采用NAT技术来简化公司内部的网络配置。下面两种情况可以在企业内部应用NAT技术:
1)当两个具有一定网络规模的公司合并时,如果不想改变两个公司的网络设置,就可以应用网络地址转换,使两个公司的网络能够互相访问。
2)远程子公司访问总公司时,子公司也已经具有了一定的网络规模,如果按照总公司分配的地址范围来更改子公司的每一台主机的IP地址,将是一个很麻烦的事情,而且可能还会导致子公司的正常的业务中断。这时也可以应用网络地址转换技术使子公司的主机不需要更改IP地址就能够正常访问总公司的网络。
NAT配置实例
下面结合笔者所在单位的实际情况来举例说明NAT的配置。笔者所在单位为一大型国企,已经构建了一个有几百个节点的局域网络,并且划分了虚网,使用的是RFC 1918 中定义的C类私有地址,一直运行情况良好。但去年位于北京的集团公司总部给所有下属企业统一配备了防火墙,并在防火墙上配置了VPN,给各个子公司重新分配了IP地址段,各子公司根据分配的IP地址通过VPN通道与集团公司总部通信,访问集团公司的OA网站。如果要让所有主机都能够访问集团公司的网站,就必须按照集团公司分配的地址范围来更改所有机器的IP地址,才能通过防火墙。而我单位局域网络目前运行稳定,笔者不愿意更改整个网络的设置,以免造成不必要的麻烦,所以决定利用现有设备并采用NAT技术,使所有的机器都能够访问集团公司的网站。
笔者现有设备为两台Cisco 2509路由器,其中一台(RouteA)只有4MB的NVRAM,并且IOS也不支持NAT,另一台(RouteB)IOS为12.0,可以支持NAT技术,于是决定采用RouteB作为NAT路由器。首先买来两根V.35电缆,将两台路由器的串口连接起来,分别给串口配置IP地址。集团公司给我们分配的IP地址段为172.20.120.0~172.20.127.0,掩码为255.255.248.0。
IP地址规划如表1所示。
图1 网络拓朴图
集团公司总部使用的IP地址为172.17.100.0/24。我们使用的IP地址为192.168.24.0/24、192.168.200.0/24等,网络拓扑图如图1所示。
根据以上规划,我们首先来配置NAT路由器。在本例中我们采用动态NAT,设置一个具有150个地址的地址池。将E0口作为NAT路由器的外部接口,在接口配置模式下输入下列命令:
RouteB(config)#int e0
RouteB(config-if)#ip address 172.20.121.3 255.255.248.0
RouteB(config-if)#ip nat outside
S0口作为内部接口,配置如下:
RouteB(config)#int s0
RouteB(config-if)#ip address 192.168.10.250 255.255.255.252
RouteB(config-if)#ip nat inside
在全局配置模式下定义动态NAT的地址池:
RouteB(config)#ip nat pool jaclc 172.20.121.50 172.20.121.200 netmask 255.255.248.0
再定义转换内部源地址以及要使用的访问列表:
RouteB(config)# ip nat inside source list 10 pool jaclc
List 10表示转换符合访问列表号10定义的流量,根据我单位的实际情况定义访问列表如下:
RouteB(config)#access-list 10 permit 192.168.24.0 0.0.0.255
RouteB(config)#access-list 10 permit 192.168.200.0 0.0.0.255
RouteB(config)#access-list 10 permit 192.168.201.0 0.0.0.255
RouteB(config)#access-list 10 permit 192.168.30.0 0.0.0.255
RouteB(config)#access-list 10 permit 192.168.8.0 0.0.0.255
以上所有这些配置表示,凡是从S0口进入的数据包先与访问列表10进行比较,如果源地址是符合访问列表示定义的流量,那么就从地址池jaclc中寻找一个未使用的地址,替换掉原数据包中的源地址,并将这一转换记录放入NAT表中。源地址替换完成后,寻找路由表,根据路由表中的定义,将数据包路由到防火墙,通过VPN通道,访问集团公司的网站。在全局配置模式下定义一条静态路由:
RouteB(config)#ip route 172.17.100.0 255.255.255.0 172.20.121.2
将所有访问集团公司的流量都路由到防火墙,这样我们就完成了NAT路由器上的配置。接下来再配置RouteA,RouteA上的配置比较简单,按上表配置好S0口和E0口的IP地址后,只需要加一条静态路由就行了:
RouteA(config)#ip route 172.17.100.0 255.255.255.0 192.168.10.250
将所有需要访问集团公司的数据包都路由到RouteB的S0口,从而完成NAT的地址转换。局域网中各个VLAN也只需要加一条静态路由,将到172.17.100.0的数据包路由到RouteA的E0口(192.168.24.1)就行了。这个过程笔者是在三层交换机上做的,这里就不再赘述了。
在RouteB上,我们可以使用show ip nat translations命令来查看NAT表,下面是我的NAT路由器上的输出结果:
RouteB#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
—172.20.121.50 192.168.24.42—
—172.20.121.51 192.168.24.241—
—172.20.121.52 192.168.24.108—
—172.20.121.53 192.168.24.203—
—172.20.121.54 192.168.8.51—
—172.20.121.55 192.168.24.130—
从输出结果,我们可以很清楚的看到,192.168.24.X是内部局部地址,172.20.121.X是内部全局地址,也就是转换后的地址。即192.168.24.42数据包中的源地址被替换为172.20.121.50,目的地址不变,其余以此类推。这样我们就可以以集团公司分配的地址范围来访问集团公司的网站,而不需要更改我们内部局域网的IP地址了。
通过以上这个例子,我们简单了解了NAT技术及配置,其实NAT技术还可以有很多其它的应用,如前面提到过的端口地址转换(PAT)、TCP负载均衡等。其中PAT可能是应用最多的,许多单位、网吧在共享上网时可能都使用了这项技术。但NAT技术并不是万能的,也有它的局限性,如路由表更新、DNS区域转换、简单网络管理等数据流类型就不被支持,但对我们大多数的网络应用都已经足够了。
大家在学习网络的配置的时候,可能会发现,很多技术的配置并不复杂,如路由、虚网、NAT、生成树等,有的甚至根本不需要你去配置什么,但关键要了解原理,知道为什么,只有这样,这样我们才能更好的运用这些网络技术,解决应用中碰到的问题,否则,一旦网络出现故障,可能就束手无策了。
表1 IP地址规划
串口(S0) 以太网口(E0)
IP地址 掩码 IP地址 掩码
RouteA 192.168.10.249 255.255.255.252 192.168.24.1 255.255.255.0
RouteB 192.168.10.250 255.255.255.252 172.20.121.3 255.255.248.0
防火墙 172.20.121.2 255.255.248.0(n102)