NAT方式下的TCP负载均衡

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

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

clip_image001

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

如果是在 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,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
基于阿里云,构建一个企业web应用上云经典架构,让IT从业者体验企业级架构的实战训练。
目录
相关文章
|
7月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
|
11月前
|
网络协议 Docker 容器
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
295 0
|
1月前
|
网络协议 开发工具 Docker
iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9999 -j DNAT --to-destination 172.17.0.2:80 !
iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9999 -j DNAT --to-destination 172.17.0.2:80 !
17 1
|
2月前
|
负载均衡 网络协议 安全
slb监听协议tcp
SLB的TCP监听协议适用于WebSocket支持和通用TCP服务,如FTP、SMTP。配置时设定监听端口,健康检查通过TCP握手检测服务器可用性。会话保持基于源IP,可配置SSL/TLS卸载或端到端加密。注意特定HTTP头传递和平台限制。适用于需要传输层流量管理和不依赖HTTP的应用。
28 3
|
8月前
|
存储 负载均衡 应用服务中间件
LVS负载均衡群集——NAT模式实操
LVS负载均衡群集——NAT模式实操
229 0
|
4月前
|
负载均衡 网络协议 小程序
Nginx配置Tcp负载均衡
Nginx配置Tcp负载均衡
|
9月前
|
负载均衡 调度
NAT负载均衡
NAT负载均衡
|
12月前
|
运维 数据中心 网络虚拟化
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——云上网络VPC&EIP&NAT&共享带宽&SLB(上)(1)
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——云上网络VPC&EIP&NAT&共享带宽&SLB(上)(1)
308 0
|
12月前
|
弹性计算 运维 安全
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——云上网络VPC&EIP&NAT&共享带宽&SLB(上)(2)
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——云上网络VPC&EIP&NAT&共享带宽&SLB(上)(2)
270 0
|
12月前
|
存储 弹性计算 运维
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——云上网络VPC&EIP&NAT&共享带宽&SLB(下)(1)
《企业运维之云上网络原理与实践》——第三章 云上网络VPC&EIP&NAT&共享宽带&SLB——云上网络VPC&EIP&NAT&共享带宽&SLB(下)(1)
185 0