实训十七、路由器网络地址转换的配置
重点内容:
NAT的概念及作用;
Cisco路由器NAT的配置方法。
一、NAT的基本概念
NAT(Network Address Translation)全称网络地址转换,简单的说就是指将网络地址从一个地址空间转换为另一个地址空间的方法。
NAT将网络划分为内部网络(inside)和外部网络(outside)两部分。通常在一个内部网络中,计算机之间可以通过内部的私有IP地址通信,而当内部的计算机要与外部internet网络进行通信时,具有NAT功能的设备(如路由器、防火墙)就可以负责将其内部的IP地址转换为合法的公网IP地址,然后进行通信。当然这个合法的公网IP地址必须要向互联网服务提供商(ISP)申请后才能得到。
NAT的作用主要有两方面:一方面从安全角度考虑,可以不让外部网络用户了解自已的网络结构和内部网络地址;另一方面从IP地址资源角度考虑,当内部用户很多时,就可以通过NAT实现多台计算机共用一个合法IP地址访问Internet,以实现节省合法IP地址使用量。
NAT的配置可以分为静态地址转换、动态地址转换、复用动态地址转换(端口复用技术)三种。
静态地址转换是指将内部私有IP地址(或称本地IP地址)与外部公网IP地址(合法IP地址)进行一对一的转换,且需要指定和具体的某一个合法地址进行转换。当内部网络中有使用内网私有IP地址搭建的Web服务器、E-mail服务器、FTP服务器,如果这些服务器需要为外部用户提供服务时,则这些服务器的IP地址必须通过静态地址转换成公网IP地址,以使外部用户可以访问这些内网服务器。
动态地址转换也是将内网私有IP地址与合法IP地址进行一对一的转换,但是动态地址转换是从合法地址池中动态地选择一个未使用的地址对内网私有IP地址进行转换。该方法也可以节省一定的合法IP地址,所以该方法经常被使用。
复用动态地址转换是一种特殊的动态地址转换,因为它可以允许多个内网私有IP地址共用一个合法地址,这样只要申请少量的合法IP地址却可以同时让多于合法IP地址数的用户上网,这种动态地址转换也称作端口复用技术。由于现在可分配的互联网IP地址(合法地址)越来越少,所以目前该方法被广泛的采用。
二、NAT的配置
1、静态NAT的配置
静态NAT可将内部地址和外部地址进行一对一的转换。这种方法要求申请到的合法(公网)IP地址要足够多,才可以与内部IP地址一一对应,该方法不能节省合法IP地址的使用量。如果内网有FTP服务器或WEB服务器等可以为外部用户提供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。其配置命令介绍如下:
1)、在内部地址和合法地址之间建立静态转换
Router(config)#ip nat inside source static 内部地址 合法地址
2)、指定连接内部网络的内部端口
Router(config-if)#ip nat inside
3)、指定连接外部网络的外部端口
Router(config-if)#Ip nat outside
图17-2
根据图17-2网络拓扑图,要求在R1路由器中通过配置静态NAT把内网中的私有IP地址翻译成合法IP地址去访问外网。其配置方法如下:
R1(config)#interface e0 //进入路由器以太网e0接口
R1(config-if)#ip nat inside //将该接口指定为内部端口
R1(config-if)#exit
R1(config)#interface s0 //进入路由器s0串口
R1(config-if)#ip nat outside //将该接口指定为外部端口
R1(config-if)#exit
R1(config)#ip nat inside source static
2、动态NAT的配置
动态NAT是将合法IP地址统一的组织起来,当有内部主机需要访问外网时,就分配一个合法IP地址与内部IP地址进行转换,当内部主机访问完成后就归还该合法IP地址。这种方法允许合法IP地址数少于主机数。其配置命令介绍如下:
1)、定义合法地址池
Router(config)#Ip nat pool 地址池名称 起始IP地址 终止IP地址 netmask 子网掩码
2)、定义一个标准的访问列表规则,指出允许哪些内部地址可以进行动态地址转换
Router(config)#Access-list 访问列表号 permit 源地址 通配符掩码
提示:访问列表号取值范围为1-99;通配符掩码又称反掩码,作用是与源或目标地址一起来分辨匹配的地址范围,使用减去子网掩码可得到其值。
3)、将由访问列表指定的内部地址和指定的合法地址池进行动态地址转换
Router(config)#Ip nat inside source list 访问列表号 pool 地址池名称
4)、指定连接内部网络的内部端口
Router(config-if)#Ip nat inside
5)、指定连接外部网络的外部端口
Router(config-if)#Ip nat outside
根据图17-3网络拓扑图所示,要求在R1路由器中通过配置NAT地址池,使它可以将内网网络地址为中任意一个私有IP地址转换成NAT地址池中的合法IP地址,其配置命令如下所示:
图17-3
R1(config)#interface e0
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#interface s0
R1(config-if)#ip nat outside
R1(config)#access-list 10 permit
//本条命令为定义一个访问列表,列表号取10,permit表示允许、为通配符掩码;列表规则是指允许网络号为、主机号可以为任意值的数据包通过。这个列表规则用于匹配内网的IP地址。
R1(config)#ip nat pool poola netmask
//本条命令为定义一个NAT地址池,地址池命名为poola,地址范围为至,子网掩码为。
R1(config)#ip nat inside source list 10 pool poola
//本条命令为启用NAT转换,作用是对访问列表10中所设置的本地IP地址通过应用名称为poola的地址池进行动态地址转换。
3、复用动态NAT或端口地址转换(PAT)
复用动态地址转换又称端口复用技术,它可将多个内部地址映射为一个合法地址,用不同的端口号区分各个内部地址。这种方法只需要一个合法IP地址就可以让多个内部网用户同时上网,但该方法可能会导致信道的一定拥塞。其配置命令与动态地址转换配置命令基本相同,现介绍如下:
1)、定义合法地址池
Router(config)#Ip nat pool 地址池名称 起始IP地址 终止IP地址 netmask 子网掩码
2)、定义一个标准的访问列表规则,指出允许哪些内部地址可以进行动态地址转换
Router(config)#Access-list 访问列表号 permit 源地址 通配符掩码
提示:访问列表号可以随意取,取值范围从1-99;通配符掩码或称反掩码,作用是与源或目标地址一起来分辨匹配的地址范围,用减去子网掩码可得到其值。
3)、将由访问列表指定的内部地址和指定的合法地址池建立复用动态地址转换
Router(config)#Ip nat inside source list 访问列表标号 pool 地址池名称 overload
提示:与动态地址转换相比,只是在命令后多加一个overload参数
4)、指定连接内部网络的内部端口
Router(config-if)#Ip nat inside
5)、指定连接外部网络的外部端口
Router(config-if)#Ip nat outside
图17-4
外网
内网
R1
S0
E0
NAPT
S0端口IP地址:
根据图17-4网络拓扑图所示,要求在R1路由器中通过配置端口地址转换,使它可以将内网网络地址为中任意一个私有IP地址转换成路由器S0端口上的合法IP地址,其配置方法介绍如下:
R1(config)#interface e0
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#interface s0
R1(config-if)#ip nat outside
R1(config)#access-list 20 permit
R1(config)#ip nat pool poolb netmask
R1(config)#ip nat inside source list 20 pool poolb overload //加一个overload参数
提示:以上最后三条命令还可以使用以下二条命令来简化实现。
R1(config)#access-list 20 permit
R1(config)#ip nat inside source list 20 interface s0 overload