阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

部署LVS NAT集群

174次阅读
没有评论

共计 2616 个字符,预计需要花费 7 分钟才能阅读完成。

一、NAT 模式集群

NAT 也就是网络地址转换,其作用是通过数据报头的修改,使位于企业内部的私有 IP 可以访问外网,以及外部用户可以访问位于公司内部的私有 IP 主机,在 nat 模式中 LVS 负载均衡器需要使用两块网卡配置不同的 IP 地址, 第一块网卡与内部的 web 服务器连接,第二块网卡与公网用户连接

部署 LVS NAT 集群

工作原理

基于 NAT 机制实现。当用户请求到达 director 之后,director 将请求报文的目标地址(即 VIP)改成选定的 realserver 地址,同时将报文的目标端口也改成选定的 realserver 的相应端口,最后将报文请求发送到指定的 realserver。在服务器端得到数据后,realserver 将数据返给 director,而 director 将报文的源地址和源端口改成 VIP 和相应端口,然后把数据发送给用户,完成整个负载调度过程。

特点

1,所有的 realserver 和 director 要在同一个网段内
2,RIP 是私有地址,仅用于集群节点之间进行通信
3,director 同时处理请求和应答数据包
4,realserver 的网关要指向 DIP
5,可以实现端口映射
6,readlserver 可以是任意操作系统
7,director 很可能成为系统性能瓶颈

优点: 集群中的物理服务器可以使用任何支持 TCP/IP 操作系统它只需要一个公网 IP 地址配置在调度器上,服务器组可以用私有的 IP 地址。

缺点: 扩展性有限。当服务器节点(普通 PC 服务器)增长过多时, 负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢。

二、实战案例

案例需求

配置一个基于 LVS NAT 的 web 集群

实验环境

四台安装 CentOS8 的虚拟机一台测试机,一台 LVS 分发器,两台 web 服务器

注意事项

  • 在做实验的时候在 CLIENT 上抓包的时候会发现 LVS 给 CLIENT 回复了请求页面,也看到了 RS 给了 CLIENT 页面,但是现实环境中是不会让 RS 给 CLIENT 页面的,因为 RS 在私网,他的数据包不会出现在公网,所以 CLIENT 自然就收不到 RS 给的包了,实验中能收到是因为没有公私网的概念,自然就没有合法不合法数据包,当然就能收到。

  • 在做这个实验的时候,LVS 要用两个独立网卡,不要将 VIP 当成逻辑网卡绑定到一块物理网卡,TCP 半链接太多了。无法测试

  • 关闭 selinux 关闭防火墙,停止 libvirtd.service 服务

实验架构

部署 LVS NAT 集群

角色名称 接口和 IP
client ens33=192.168.1.200
LVS ens33=192.168.1.100;ens37=192.168.2.200
RS1 ens33=192.168.2.210
RS2 ens33=192.168.2.220

实验步骤

a、设置 LVS 主机

LVS 配置 IP 地址 ens33=192.168.2.200 ens37=192.168.1.100 安装 ipvsadm 软件包 [root@lvs ~]# dnf install ipvsadm -y 开启转发 [root@lvs ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

b、真实服务器设置

配置 IP 地址 ens33=192.168.2.210&192.168.2.220 添加网关 网关指向 LVS 主机 [root@rs1 ~]# route add default gw 192.168.2.200 [root@rs2 ~]# route add default gw 192.168.2.200 安装 web 服务,生成测试页面 RS1 [root@rs1 ~]# dnf install httpd -y [root@rs1 ~]# echo "rs1" > /var/www/html/index.html [root@rs1 ~]# systemctl start httpd.service RS2 [root@rs2 ~]# dnf install httpd -y [root@rs2 ~]# echo "rs2" > /var/www/html/index.html [root@rs2 ~]# systemctl start httpd.service

c、客户端设置

ens33=192.168.1.200 设置网关 [root@client ~]# route add default gw 192.168.1.100 安装 elinks 软件包(这里面选择使用没有缓存的 elinks 浏览器进行测试)[root@client ~]# wget http://www.elinks.or.cz/download/elinks-current-unstable.tar.gz [root@client ~]# tar fx elinks-current-unstable.tar.gz [root@client elinks-0.12-20200204]# ./configure [root@client elinks-0.12-20200204]# make && make install 访问 web 服务器测试 [root@client ~]# elinks http://192.168.2.210 --dump rs2 [root@client ~]# elinks http://192.168.2.220 --dump rs1 注意:也可以使用 curl 进行访问测试

d、lvs 服务器上添加分发规则

[root@lvs ~]# ipvsadm -A -t 192.168.1.100:80 -s rr [root@lvs ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.210:80 -m [root@lvs ~]# ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.220:80 -m

e、测试结果

[root@client elinks-0.12-20200204]# elinks http://192.168.1.100 --dump rs1 [root@client elinks-0.12-20200204]# elinks http://192.168.1.100 --dump rs2 [root@client elinks-0.12-20200204]# elinks http://192.168.1.100 --dump rs1 [root@client elinks-0.12-20200204]# elinks http://192.168.1.100 --dump rs2

完成!!!

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-09发表,共计2616字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中