NAT方式下的TCP负载均衡

TCP负载均衡说简单点就是反用NAT地址转换,网络解释为:NAT负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部服务器的地址,将外部连接请求引到转换得到地址的那个服务器上,从而达到负载均衡的目的。

clip_p_w_picpath001

为了简化实验步骤,重在说明问题。模拟试验中使用4个路由器分别代替RouterA、RouterB、Web1和Web2,还有一个交换机,PC1和PC2省略。

实验步骤:

1、 搭建实验环境

如图配置各个IP地址

RouterA(s0/0):192.168.1.2 255.255.255.0

RouterA(fa1/0):10.1.1.10 255.255.255.0

RouterB(s0/0):192.168.1.1 255.255.255.0

Web1(fa0/0): 10.1.1.1 255.255.255.0

Web2(fa0/0): 10.1.1.2 255.255.255.0

在该实验环境下,由于Web1和Web2是路由器充当的,因此要启用远程登陆的虚拟端口,并设置密码。具体命令为:

Web1(config)#line vty 0 4

Web1(config-line)#password 123456

Web1(config-line)#login

Web1(config-line)#exit

2、 在RouterB上添加一条默认路由指向10.1.1.0/24网段,

在Web1和Web2上各添加一条默认路由指向192.168.1.0/24网段。

配置好之后,可以在RouterB上验证一下10.1.1.1或者10.1.1.2,是可以ping通的。

3、 这一步是重点(在RouterA上配置TCP负载均衡):

(1) 定义一个地址池

RouterA(config)#ip nat pool CISCO 10.1.1.1 10.1.1.2 netmask 255.255.255.0 ?

accounting Specify the accounting

add-route Add special route to Virtual Interface

type Specify the pool type

<cr>

RouterA(config)#$ CISCO 10.1.1.1 10.1.1.2 netmask 255.255.255.0 type ?

match-host Keep host numbers the same after translation

rotary Rotary address pool

RouterA(config)#$ CISCO 10.1.1.1 10.1.1.2 netmask 255.255.255.0 type rotary ?

<cr>

参数“type rotary”使该地址池成为一个循环型的,否则,将不能进行负载均衡。

(2) 创建一个允许虚拟IP地址进行的ACL,该IP是服务器集群的IP

RouterA(config)#access-list 1 permit 10.1.1.4 0.0.0.0

(3)指定哪个地址池用于NAT

RouterA(config)#ip nat inside destination list 1 pool CISCO

(4)定义内外接口

RouterA(config)#interface fastEthernet 1/0

RouterA(config-if)#ip nat inside

RouterA(config)#interface serial 0/0

RouterA(config-if)#ip nat outside

4、验证TCP负载均衡

实验环境及实验配置已经完成,接下来就要测试一下,由于路由器无法实验网页显示,可以用telnet的方式来测试配置。在RouterB上通过命令telnet来登录Web1和Web2,显示结果为:

clip_p_w_picpath003

如果是在 10.1.1.1和 10.1.1.2 两台真实服务器上发布不同的网页, 在外部网络的一台主机(192.168.2.2)上访问它们共有的虚拟地址 http://10.1.1.4,NAT 路由器将会把数据包负载均衡到每一台服务器,我们可以看到,主机将轮流访问两台服务器上的主页。

RouterA#show ip nat tra

Pro Inside global Inside local Outside local Outside global

tcp 10.1.1.4:80 10.1.1.1:80 192.168.2.2:1038 192.168.2.2:1038

tcp 10.1.1.4:80 10.1.1.2:80 192.168.2.2:1039 192.168.2.2:1039

值得一提的是:

1、测试的时候不要ping 10.1.1.4,因为这个NAT的负载均衡只对TCP协议,所以要用telnet 10.1.1.4来测试.
2、NAT仅仅基于流量的TCP负载均衡,对于其他流量NAT将不进行转换

本文出自 “linux on the way” 博客,请务必保留此出处http://linuxtro.blog.51cto.com/1239505/498274

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章