4.1实验目的(1)理解端口静态映射的作用;(2)理解负载均衡的用途;(3)掌握NAT端口映射的配置;(4)掌握基于TCP的NAT负载均衡的配置;(5)掌握NAT均衡负载的测试;4
4.1 实验目的
(1)理解端口静态映射的作用;
(2)理解负载均衡的用途;
(3)掌握NAT端口映射的配置;
(4)掌握基于TCP的NAT负载均衡的配置;
(5)掌握NAT均衡负载的测试;
4.2 实验原理
1.NAT负载均衡的工作原理
利用NAT可以将多台相同的服务器映射为单个外网地址,对每次连接请求动态转换为一个内部服务器的地址,可以将外网的访问流量分发到每台服务器,实现负载均衡。工作原理图11所示:
图11 NAT均衡负载
当外网主机访问服务器的内部全局地址202.68.10.10时,路由器会采用轮询(Round Robin)方式在4台服务器之间分发会话,即1-4个报文的目的地址会被替换为服务器1-4的内网地址。地址替换对于外网主机是透明,外网主机只知道与202.68.10.10在通信,无法知道内网的网络拓扑结构。基于NAT的负载均衡可以减轻单台服务器提供服务器的压力,但是由于NAT路由器无法感知服务器的故障,如果其中某一台服务器出现故障,路由器仍然会将数据转发到该服务器,会造成去往服务器集群的流量出现路由黑洞。
2.NAT负载均衡的配置步骤
① 配置路由的接口IP,并定义内部接口和外部接口。
② 定义访问控制列表,匹配进行转换的外网合法IP地址。
R1(config)#access-list 1 permit host 210.38.220.10
如果外网访问210.38.220.10地址,则进行转换,否则不进行。
③ 定义NAT地址池来表示内部服务器群的地址,使用关键词rotary,表示使用轮询
式从地址池中取出相应的服务器IP来进行转换。
例如:
R1(config)#ip nat pool WEB_SERVER 192.168.1.2 192.168.1.4 prefix-length 24 type rotary
定义地址池名称为WEB_SERVER,地址池的IP地址范围为192.168.1.2~192.168.1.4,地址网络前缀为24,转换的方法文轮询。
④ 把目标地址为访问控制列表中IP的报文转换成地址中定义的服务器IP地址。
R1(config)#ip nat inside destination list 1 pool WEB_SERVER
将目标地址符合list 1中的报文转换为WEB_SERVER地址池中的地址。
3.负载均衡配置实例
实验网络拓扑图如图9-12所示:
图12 NAT负载均衡网络拓扑图
地址表如表6所示:
表6 PAT网络IP地址表
设备 |
接口 |
IP地址 |
子网掩码 |
R1 |
S2/0 |
210.38.220.1 |
/24 |
Fa0/1 |
192.168.1.1 |
/24 |
R2 |
S2/0(DCE) |
210.38.220.2 |
/30 |
F0/0 |
202.20.20.1 |
/24 |
PC0 |
NIC |
202.20.20.10 |
/24 |
Server1 |
Fa0/0 |
192.168.1.10 |
/24 |
Server2 |
Fa0/0 |
192.168.1.11 |
/24 |
背景说明:内网有2台对外提供Web服务的服务器,配置较低,为了处理来自Internet的大量Web请求,需要将来自外网的Web访问流量通过轮询的方式分别发送到每台服务器,因此,可以再路由器R1上做NAT负载均衡的配置。
配置要求:使路由器Serv1、Serv2来模拟两台Web服务器,它们对外映射相同的公有地址为:210.38.220.10。
实验步骤:
步骤1:Server1、Server2的配置。
//路由器充当Web服务器配置
Server1(config)#interface FastEthernet0/0
Server1(config-if)# ip address 192.168.1.10 255.255.255.0
Server1(config-if)# no shutdown
Server1(config)#ip default-gateway 192.168.1.1 //配置默认网关
Server1(config)#ip http server //启动Web服务
Server2(config)#interface FastEthernet0/0
Server2(config-if)# ip address 192.168.1.11 255.255.255.0
Server2(config-if)# no shutdown
Server2(config)#ip default-gateway 192.168.1.1 //配置默认网关
Server2(config)#ip http server //启动Web服务
步骤2:R1配置
R1(config)#interface f0/1
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config)# ip nat inside // 内部接口
R1(config-if)#no shutdown
R1(config)#interface s2/0
R1(config-if)#ip address 210.38.220.1 255.255.255.0
R1(config)# ip nat outside // 外部接口
R1(config-if)#no shutdown
R1(config)#ip route 0.0.0.0 0.0.0.0 s0/0 //配置默认路由
R1(config)#access-list 1 permit 210.38.220.10 //ACL匹配需要进行流量分发的外部地址
//配置Web服务器的地址池
R1(config)#ip nat pool WEB_SERVERS 192.168.1.10 192.168.1.11 prefix-length 24 type rotary
// 将目标地址为210.38.220.10的报文的分发为WEB_SERVERS地址池中的各个服务器
R1(config)#ip nat inside destination list 1 pool WEB_SERVERS
步骤3:R2配置
R2(config)#interface f0/0
R2(config-if)#ip address 202.20.20.1 255.255.255.0
R2(config-if)#no shutdown
R2(config)#interface s2/0
R2(config)#clock rate 64000
R2(config-if)#ip address 210.38.220.2 255.255.255.0
R2(config-if)#no shutdown
步骤4:结果测试
(1)外网访问内网服务器。
图13 第1次访问的结果
图14 第2次访问的结果
从上图可以看出,两次访问相同的IP地址,得到的页面时不同的,说明NAT的确将请求分发给了不同的路由器。
(2)查看NAT转换表。
R1#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 210.38.220.10:80 192.168.1.10:80 202.20.20.10:1733 202.20.20.10:1733
tcp 210.38.220.10:80 192.168.1.11:80 202.20.20.10:1734 202.20.20.10:1734
从转换表也可以看到,同一个内部全局地址,映射了不同的内部本地地址。
(3)查看NAT转换统计数据。
R1#show ip nat statistics
Total active translations: 2 (0 static, 2 dynamic; 2 extended)
Outside interfaces:
Serial0/0
Inside interfaces:
FastEthernet0/0
Hits: 109 Misses: 11
CEF Translated packets: 120, CEF Punted packets: 0
Expired translations: 8
Dynamic mappings:
-- Inside Destination
[Id: 1] access-list 1 pool WEB_SERVERS refcount 2
pool WEB_SERVERS: netmask 255.255.255.0
start 192.168.1.10 end 192.168.1.11
type rotary, total addresses 2, allocated 2 (100%), misses 0
Queued Packets: 0