本文主要是介绍lvs的NAT模式实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、环境规划
二、集群结构图
三、实验过程
1、网络环境搭建
2、lvs配置
3、验证
一、环境规划
打算配置四台虚拟机,其中一台作为客户端,一台作为lvs服务器,两台作为RS。
网络环境规划如下:
客户端:IP:192.168.44.6 GW:无 模式:仅主机
lvs:IP:192.168.44.44 模式:仅主机IP:10.10.0.2 模式:NAT
RS1:IP:10.10.0.3 GW:10.10.0.2 模式:NAT
RS2:IP:10.10.0.13 GW:10.10.0.2 模式:NAT
NAT模式配置要点:1.lvs需要配置两个网络,一个负责与客户端通信,一个负责与RS通信。2.RS网关需要指向DIP,才能保证RS与lvs通信。
二、集群结构图
集群结构图如下,为了方便理解,加上了防火墙和交换机。本次配置是在虚拟机上进行,用不到。
三、实验过程
1、网络环境搭建
下面按照规划和架构图进行配置。
由于我使用的无线网,默认的网络设置在ens33里。
(1)客户端网络设置
设置客户端的网络为仅主机模式。
需要设置主机模式的子网IP:
开启虚拟机,并编辑客户端网络配置:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络服务,使之生效。
service network restart
或者使用如下命令使配置生效:
nmcli connection reload
nmcli connection up ens33
(2)lvs网络设置
lvs虚拟机上需要先下载好ipvsadm,用于配置和管理lvs。
为lvs设置两个网络适配器,一个为NAT负责与RS通信,一个为仅主机,负责与客户端通信。
设置NAT模式的子网IP和网关IP
无线网连接时,第二个网络适配器对应ens37。分别编辑ens33和ens37(如果没有该配置,需要创建一个配置文件)。
vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置DIP:
vim /etc/sysconfig/network-scripts/ifcfg-ens37
配置VIP:
编辑完成后,需要重启网络服务,同上。
另外,lvs上需要配置ip_forward参数开启路由转发。出于安全考虑,linux中该参数默认禁用,也就是不能进行路由转发,即默认情况下无法将本机一块网卡的数据发往另一块网卡。通过编辑/etc/sysctl.conf可以开启。
vim /etc/sysctl.conf
使之生效:
sysctl -p
(3)RS配置
RS需要提供http服务,先在两个RS上下载好http支持服务。分别安装好,并在各自首页写入不同内容,用以区分调用的那台服务器。
yum -y install httpd;echo `hostname -I` RS1 >/var/www/html/index.html
yum -y install httpd;echo `hostname -I` RS2 >/var/www/html/index.html
开启http服务:
systemctl enable --now httpd
或者
systemctl restart httpd
RS都是使用NAT模式,配置其IP并将网关指向DIP10.10.0.2,然后重启网络服务,使之生效。相关命令同上。
RS的网络配置如下:
RS2的网络配置如下:
2、lvs配置
使用ipvsadm工具配置服务器负载均衡:
#lvs的VIP为192.168.44.44,使用wrr负载均衡算法
ipvsadm -A -t 192.168.44.44:80 -s wrr
#添加RS1到lvs管理列表中,-m表示nat模式
ipvsadm -a -t 192.168.44.44:80 -r 10.10.0.3:80 -m
#添加RS2到lvs管理列表中
ipvsadm -a -t 192.168.44.44:80 -r 10.10.0.13:80 -m
在这里有几点需要注意:(1).lvs和各RS上seLinux和防火墙都要关闭。否则有可能访问不到。(2).-t参数后跟的是VIP,不要配成DIP了。
3、验证
在客户端访问VIP,发现可以正确地负载到不同的RS上。
当然,在网页上输入VIP进行访问也是可以的。
NAT模式支持端口映射,这里将10.10.0.3的端口改为8088进行验证。
(1)修改ipvs调用RS1的端口,此处不能用-e参数直接修改。需要先删除再重新加进来。
#先删除
ipvsadm -d -t 192.168.44.44:80 -r 10.10.0.3:80
#之后重新添加
ipvsadm -a -t 192.168.44.44:80 -r 10.10.0.3:8088
此时,由于RS1上还没有换成8088的端口,客户端调用到RS1时会失败。
(2)编辑RS1上的httpd配置文件/etc/httpd/conf/httpd.conf,将监听端口换成8088。
(3)重启RS1上的http服务
使用systemctl restart httpd或者service httpd restart都可以。
重启后,客户端可以正常访问RS1,端口映射正常。
这篇关于lvs的NAT模式实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!