NAT
技术二
一、
端口地址重定向:
如图所示,该企业申请
ADSL
上网,只获得了一个公有合法
IP
地址。为了企业的应用,可以使用端口地址重定向功能来完成。
Router(config)#int e0 (1)
Router(config-if)#ip add 10.1.1 .254 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip add 202.1.1.1 255.255.255.252
Router(config-if)#ip nat outside
Router(config)#ip nat inside source static tc p 10.1.1 .1 80 202.1.1.1 80 (2)
Router(config)#ip nat inside source static tc p 10.1.1 .2 21 202.1.1.1 21 (3)
Router(config)#ip nat inside source static tc p 10.1.1 .2 20 202.1.1.1 20
Router(config)#access-list 1 permit 10.1.1 .0 0.0.0.255 (4)
Router(config)#ip nat inside source list 1 interface e1 overload (5)
Router(config)#ip route 0.0.0 .0 0.0.0.0 202.1.1.2 (6)
命令解释:
(
1
):配置路由器接口
IP
地址及标记
NAT
的内部端口和外部端口
(
2
):当外部用户访问服务器
202.1.1.1:80
,路由器使用静态
NAT
的方式转到
10.1.1
.1:80
(
3
):当外部用户访问服务器
202.1.1.1:21
,路由器使用静态
NAT
的方式转到
10.1.1
.1:21
(由于
FTP
问题较复杂,这儿仅以一种
FTP
的应用为例)
(
4
):配置标准访问控制列表,匹配内部
10.1.1
.0/24
网络的主机
(
5
):配置
PAT
,允许内部
10.1.1
.0/24
用户能够进行
NAT
转换
(
6
):配置静态路由,使经过
NAT
转换后的数据包能够发送至
ISP
二、
地址交叉(地址重叠):
如果两个网络当前的网络地址出现相同的情况,且目前又需要两个网络之间相互直接通讯。这种情况被称之为地址重叠。如下图所示:
这时候可能出现多种情况:两个网络中都有双方需要访问的服务器
只有一方网络中有双方需要访问的服务器(如上图)
不同的网络情况,配置时略有不同。概括起来讲,解决这个问题有两种方案:
1、
静态转换
Router(config)#ip nat inside source static network 10.1.1 .0 192.168.1.0 /24 (1)
Router(config)#ip nat outside source static network 10.1.1 .0 192.168.2.0 /24 (2)
Router(config)#ip route 0.0.0 .0 0.0.0.0 e1
Router(config)#int e0
Router(config-if)#ip add 10.1.1 .254 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip nat outside
注解:
(1):
把内部网络
10.1.1
.0
转换成
192.168.1.0
,也就是说,对于外部网络而言,内部网络的地址是
192.168.1.0/24
(2):
把外部网络
10.1.1
.0
传输来的数据全部修改成
192.168.2.0
网段,也就是说,对于内部网络而言,外部真实
10.1.1.0
网络被认为是
192.168.2.0
网络。
2、
动态转换
Router(config)#access-list 1 permit 10.1.1 .0 0.0.0.255
Router(config)#ip nat pool in-pool 192.168.1.1 192.168.1.254 netmask 255.255.255.0
Router(config)#ip nat pool out-pool 192.168.2.1 192.168.2.254 netmask 255.255.255.0
Router(config)#ip nat inside list 1 pool in-pool
Router(config)#ip nat outside list 1 pool out-pool
Router(config)#ip route 0.0.0 .0 0.0.0.0 e1
Router(config)#int e0
Router(config-if)#ip add 10.1.1 .254 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip nat outside
该配置所得到的效果静态转换一样。在此不再多说。
三、
负载分担(流量分配):
随着企业的发展,企业的
WWW
服务器访问的用户越来越多,一台服务器已经不能满足当前的需要,更换一台高端服务器价格不菲,这时候可以使用
NAT
的流量分担功能。来解决企业当前的问题。如图所示:两台
Web
服务器承担着相当的
WWW
服务功能。对于外部用户而言,他们只知道该企业的
WWW
地址是
200.1.1.1
基本配置如下:
Router(config)#ip nat pool wwwserver 10.1.1 .1 10.1.1.2 prefix-length 24 type rotary
Router(config)#access-list 1 permit 200.1.1.1 0.0.0 .0
Router(config)#ip nat inside destination list 1 pool wwwserver
Router(config)#int e0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip nat outside
第一条命令是用来建立一个内部服务器的地址池,一定要注意后面的
type rotary
,该参数用来分配流量。
Access-list
用来指定虚拟服务器地址。第三条命用来定义转换关系。最后在两个接口上调用
NAT
转换表。
注意,使用这种方法时,并不是最好的解决方案,相同的场景,以后会介绍更好的解决方案。
四、
控制
NAT
转换表大小:
1、
设置连接最大数量:该命令用来限制动态产生的转换表的条目
Router(config)#ip nat translation max-entries
最大数目
2、
设置超时值:动态产生的
NAT
转换条目,根据不同的服务有不同的超时值。
Router(config)#ip nat translation
协议时间
超时值