一、ipvsadm的用法
集群原理:https://blog.csdn.net/ck784101777/article/details/99753041
要使用LVS我们需要使用Ipvsadm工具去操作它,因为LVS是基于内核的,我们只能在用户层去操作
基本命令
常见用法
二、部署LVS-NAT集群
NAT技术https://blog.csdn.net/ck784101777/article/details/97931779
1.案例
使用LVS实现NAT模式的集群调度服务器,为用户提供Web服务:
- 集群对外公网IP地址为192.168.4.5
- 调度器内网IP地址为192.168.2.5
- 真实Web服务器地址分别为192.168.2.100、192.168.2.200
- 使用加权轮询调度算法,真实服务器权重分别为1和2
2.拓扑图
实验机IP参考图
使用4台虚拟机,1台作为Director调度器、2台作为Real Server、1台客户端,拓扑结构如图-1所示,注意:web1和web2必须配置网关地址。
3.Web服务器配置
Web服务器做两件事,搭建Web服务,配置网关,Web2采用相同配置
- [root@web1 ~]# yum -y install httpd //搭建Web页面
- [root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html
- [root@web1 ~]#systemctl restart httpd //重启服务
- [root@web1 ~]# systmctl stop firewalld //关防火墙
- [root@web1 ~]# setenforce 0 //关Selinux
- [root@web1 ~]#nmcli connection modify eth0 ipv4.gateway x.x.x.x //把网关修改成调度器的连接接口,这里是2.5
- [root@web1 ~]#nmcli connection up eht0 //重启网卡
4.LVS调度器配置
转发规则:
大部分路由器上都有这样一个功能:端口映射或端口转发。在TP-LINK的家用路由器上,这个功能叫"转发规则",这个功能就是为了完成internet上的其他主机访问路由器后的LAN里的PC用的。Linux系统可以模仿路由转发功能.
要在路由器上完成端口映射或"转发规则",该怎么做呢?
1)首先,需要知道要完成什么服务,完成这个服务需要的TCP或UDP端口,如:WEB服务默认需要80端口,FTP服务默认需要20和21端口。
2)其次,需要知道LAN里的PC的私网IP地址,假如LAN里有两台PC,A和B,A的IP地址是192.168.0.2,B的IP地址是192.168.0.3,A机想提供WEB服务并已安装相应的WEB服务程序如IIS,APACHE,B机想提供FTP服务并已安装相应的服务程序如IIS、Serv-u、G6FTP等。如果不在路由器上做相应的设置的话,这些服务只能向LAN里的其他机器提供,internet上的其他主机是无法访问的。
3)在路由器上设置端口映射(TP-LINK路由器上是"转发规则"),添加一个80服务端口,将IP地址选择192.168.0.2(就是上例的A机),因WEB服务用的是TCP协议,在协议那部分选择"TCP",再将"启用"勾上;再添加一个20端口和21端口,IP地址则为192.168.0.3(上例中的B机),协议也都选TCP,也要注意将"启用"勾上,注意,这样设置的FTP服务只能用PORT模式连接,要用PASV模式还需要做其他设置。
4)客户端通过192.168.0.2:20访问A机的TCP服务,通过192.168.0.3:80访问B机的WEB服务.
我们使用Linux系统模仿路由转发功能
1)确认调度器的路由转发功能(如果已经开启,可以忽略)
- [root@proxy ~]# echo 1 > /proc/sys/net/ipv4/ip_forward //Linux系统要开启路由转发功能必须在这个配置文件里写1
- [root@proxy ~]# cat /proc/sys/net/ipv4/ip_forward
- 1
- [root@proxy ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf #修改配置文件,设置永久规则
- [root@proxy ~]# yum -y install ipvsadm //安装ipvsadm,一个用户层的用于操作LVS的工具
- [root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr //创建集群服务器池
- [root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m //添加真实服务器
- [root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
- [root@proxy ~]# ipvsadm -Ln
- IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.5:80 wrr
-> 192.168.2.100:80 Masq 1 0 0
-> 192.168.2.200:80 Masq 1 0 0 - //远程地址:端口 调度算法 权重值 活跃连接数 正在连接数
- [root@proxy ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm //保存修改
- //客户端使用curl命令反复连接http://192.168.4.5,查看访问的页面是否会轮询到不同的后端真实服务器。
- [root@client]# curl 192.168.4.5:80
- 192.168.2.100
- 192.168.2.200
- 192.168.2.100
- 192.168.2.200