博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NAT方式下的TCP负载均衡
阅读量:6881 次
发布时间:2019-06-27

本文共 2185 字,大约阅读时间需要 7 分钟。

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

为了简化实验步骤,重在说明问题。模拟试验中使用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,显示结果为:

如果是在 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将不进行转换

本文转自 linuxtro 51CTO博客,原文链接:http://blog.51cto.com/linuxtro/498274,如需转载请自行联系原作者
你可能感兴趣的文章
CI框架篇之基础篇(2)
查看>>
C#调用C/C++动态库 封送结构体,结构体数组
查看>>
DateTime获取一个月的第一天和最后一天
查看>>
Oracle中的Temporary tablespace的作用
查看>>
Solr使用入门指南
查看>>
程序员必须知道的10大基础实用算法及其讲解
查看>>
jquery事件重复绑定解决办法
查看>>
【WP8】图片压缩处理
查看>>
开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
查看>>
根据一列数据 抽取另一个文件的行数据
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
PowerDesigner使用教程
查看>>
Socket代码
查看>>
CPU虚拟化技术(留坑)
查看>>
工厂方法模式
查看>>
hdu 刷题记录
查看>>
php模拟post提交请求,调用接口
查看>>
accept函数
查看>>
网站可用性测试及优化指南-随笔2
查看>>
Hammer.js
查看>>