部署LVS-NAT集群
使用LVS实现NAT模式的集群调度服务器,为用户提供Web服务:
集群对外公网IP地址为192.168.4.5
调度器内网IP地址为192.168.2.5
真实Web服务器地址分别为192.168.2.100、192.168.2.200
使用加权轮询调度算法,真实服务器权重任意
方案
实验拓扑结构主机配置细节如表所示,注意下面的网卡名称仅为参考,不能照抄。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB1EMVRkT1sGVPBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1UTM1UTO0ATMwMTMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
使用4台虚拟机,1台作为Director调度器、2台作为Real Server、1台客户端,拓扑结构如图所示,注意:web1和web2必须配置网关地址。
步骤
实现此案例需要按照如下步骤进行。
步骤一:配置基础环境
1)设置Web服务器
[[email protected] ~]# yum -y install httpd #安装软件
[[email protected] ~]# echo "192.168.2.100" > /var/www/html/index.html #创建网页文件
[[email protected] ~]# firewall-cmd --set-default-zone=trusted #设置防火墙
[[email protected] ~]# setenforce 0
[[email protected] ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
[[email protected] ~]# yum -y install httpd #安装软件
[[email protected] ~]# echo "192.168.2.200" > /var/www/html/index.html #创建网页文件
[[email protected] ~]# firewall-cmd --set-default-zone=trusted #设置防火墙
[[email protected] ~]# setenforce 0
[[email protected] ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
2)启动Web服务器软件
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# systemctl restart httpd
如何验证?
完成后可以使用proxy主机测试下是否可以访问web1和web2
[[email protected] ~]# curl http://192.168.2.100
[[email protected] ~]# curl http://192.168.2.200
3)配置网关,将web1和web2的网关设置为192.168.2.5(不能照抄网卡名称)
如果有4网段的IP,则临时将该网卡关闭nmcli con down 网卡名称
[[email protected] ~]# nmcli connection modify ens33 \
ipv4.method manual ipv4.gateway 192.168.2.5
#备注:网卡名称不能照抄,需要自己查看下2.100的网卡名称
[[email protected] ~]# nmcli connection up ens33
[[email protected] ~]# ip route show #查看默认网关
default via 192.168.2.5 dev ens33 #提示:这里default后面的IP就是默认网关
#英语词汇:default(默认,预设值)
… …
[[email protected] ~]# nmcli connection modify ens33 \
ipv4.method manual ipv4.gateway 192.168.2.5
#备注:网卡名称不能照抄,需要自己查看下2.200的网卡名称
[[email protected] ~]# nmcli connection up ens33
[[email protected] ~]# ip route show #查看默认网关,default后面的IP就是默认网关
步骤二:部署LVS-NAT模式调度器
1)确认调度器的路由转发功能(如果已经开启,可以忽略)
[[email protected] ~]# echo 1 > /proc/sys/net/ipv4/ip_forward #开启路由转发,临时有效
[[email protected] ~]# cat /proc/sys/net/ipv4/ip_forward #查看效果
1
[[email protected] ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
#修改配置文件,设置永久规则,英语词汇:forward(转寄,转发,发送,向前)
2)创建集群服务器
[[email protected] ~]# yum -y install ipvsadm
[[email protected] ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr
# -A(add)是创建添加虚拟服务器集群
# -t(tcp)后面指定集群VIP的地址和端口,协议是tcp协议
# -s后面指定调度算法,如rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等等
3)添加真实服务器
[[email protected] ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m
[[email protected] ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
#-a(add)往虚拟服务器集群中添加后端真实服务器IP,指定往-t 192.168.4.5:80这个集群中添加
#-r(real)后面跟后端真实服务器的IP和端口,这里不写端口默认是80端口
#-w(weight)指定服务器的权重,权重越大被访问的次数越多,英语词汇:weight(重量,分量)
#-m指定集群工作模式为NAT模式,如果是-g则代表使用DR模式,-i代表TUN模式
4)查看规则列表(L是list查看,n是number数字格式显示)
[[email protected] ~]# ipvsadm -Ln
5)设置防火墙,SELinux
[[email protected] ~]# firewall-cmd --set-default-zone=trusted
[[email protected] ~]# setenforce 0
[[email protected] ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
步骤三:客户端测试
客户端client主机使用curl命令反复连接http://192.168.4.5,查看访问的页面是否会轮询到不同的后端真实服务器。