目录
1.LVS简介
2.LVS体系结构
3.LVS相关术语
4. LVS工作模式
5. LVS调度算法
6.LVS集群介绍
6.1 LVS-DR模式
6.2 LVS – NAT 模式
6.3 LVS – TUN 模式
7.LVS 集群构建
7.1 LVS/NAT 模式配置
实验操作步骤
步骤 1 Nginx1 和 Nginx2 配置
步骤 2 安装和配置 LVS
步骤 3 检查验证 LVS 配置
附加任务:尝试将 LVS 的算法修改加权轮询。
步骤 1 修改 LVS 配置
步骤 2 修改两台 RS 的权重
7.2LVS/DR 模式配置
步骤 1 Nginx1 和 Nginx2 配置
步骤 2 LVS 预配置
步骤 3 LVS 配置
步骤 4 检查验证 LVS 配置
1.LVS简介
2.LVS体系结构
3.LVS相关术语
4. LVS工作模式
5. LVS调度算法
6.LVS集群介绍
6.1 LVS-DR模式
LVS-DR模式工作原理
6.2 LVS – NAT 模式
6.3 LVS – TUN 模式
7.LVS 集群构建
7.1 LVS/NAT 模式配置
本实验由四台 Linux构成,分别是 Client、LVS、Ngxin1 和 Nginx2,其中 LVS 的 VIP 为192.168.186.50/24、DIP 为 192.168.186.100/24,Nginx1 的 RIP 为 192.168.186.101/24,Nginx2 的 RIP 为192.168.186.102/24
实验操作步骤
步骤 1 Nginx1 和 Nginx2 配置
[root@Nginx2 ~]# yum install nginx -y
[root@Nginx2 ~]# systemctl start nginx
[root@Nginx2 ~]# mkdir -p /data/nginx
[root@Nginx2 ~]# touch /data/nginx/index.html
[root@Nginx1 ~]# cat /etc/nginx/conf.d/vhost.conf
server{
listen 80;
server_name www.test.com;
root /data/nginx;
index index.html;
}
[root@Nginx1 ~]# curl 192.168.186.102
hello,nginx2
[root@Nginx2 ~]# curl 192.168.186.101
hello,nginx1
在 LVS 虚拟机上开启路由转发功能,具体参考命令如下:
sed -i "s/ip_forward=0/ip_forward=1/g" /etc/sysctl.conf
sysctl -p | grep net.ipv4.ip_forward
sysctl -a | grep net.ipv4.ip_forward
配置完成后,测试是否能够正常访问 Nginx1 和 Nginx2,具体如下:
[root@LVS ~]# curl 192.168.186.101
hello,nginx1
[root@LVS ~]# curl 192.168.186.102
hello,nginx2
步骤 2 安装和配置 LVS
yum install -y ipvsadm
等待安装完成后,创建 ipvsadm 启动时所需的配置文件:
touch /etc/sysconfig/ipvsadm
然后使用启动该服务,并查看该服务是否启动正常,具体如下:
[root@LVS ~]# systemctl enable ipvsadm --now
[root@LVS ~]# systemctl status ipvsadm
如果服务启动正常,使用以下命令创建算法为轮询的集群:
ipvsadm -A -t 192.168.186.50:80 -s rr
再将 Nginx1 和 Nginx2 添加为后端 RS,具体命令如下:
ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.101 -m
ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.102 -m
配置完成后,检查和核实配置是否生效:
[root@LVS ~]# 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.186.50:80 rr
-> 192.168.186.101:80 Masq 1 0 0
-> 192.168.186.102:80 Masq 1 0 0
步骤 3 检查验证 LVS 配置
在 LVS 所在的 ECS 上,多次通过 LVS VIP 访问 web 服务,可以查看到以下现象
附加任务:尝试将 LVS 的算法修改加权轮询。
步骤 1 修改 LVS 配置
使用以下命令将当前 LVS 的算法修改为加权轮询:
ipvsadm -E -t 192.168.186.50:80 -s wrr
修改完成后,查看是否生效,具体如下:
步骤 2 修改两台 RS 的权重
使用以下命令,将 Nginx1 的权重修改为 2:
[root@LVS ~]# ipvsadm -e -t 192.168.186.50:80 -r 192.168.186.101 -m -w 2
[root@LVS ~]# 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.186.50:80 wrr
-> 192.168.186.101:80 Masq 2 0 0
-> 192.168.186.102:80 Masq 1 0 0
7.2LVS/DR 模式配置
步骤 1 Nginx1 和 Nginx2 配置
[root@Nginx1 ~]# nmcli connection add type dummy ifname dummy2 ipv4.method manual
ipv4.addresses 192.168.186.50/32
[root@Nginx2 ~]# nmcli connection add type dummy ifname dummy2 ipv4.method manual
ipv4.addresses 192.168.186.50/32
将 RIP 的网关地址修改为路由器接口地址,参考命令如下:
[root@Nginx1 ~]# nmcli connection modify ens33 ipv4.gateway 192.168.186.1
[root@Nginx1 ~]# nmcli connection down ens33
[root@Nginx1 ~]# nmcli connection up ens33
[root@Nginx2 ~]# nmcli connection modify ens33 ipv4.gateway 192.168.186.1
[root@Nginx2 ~]# nmcli connection down ens33
[root@Nginx2 ~]# nmcli connection up ens33
完成网络配置后,修改相应的 arp 内核配置,具体命令如下:
[root@Nginx1 ~]# cat >> /etc/sysctl.conf << EOF
> net.ipv4.conf.all.arp_ignore = 1
> net.ipv4.conf.all.arp_announce = 2
> net.ipv4.conf.dummy2.arp_ignore = 1
> net.ipv4.conf.dummy2.arp_announce = 2
> EOF
[root@Nginx2 ~]# cat >> /etc/sysctl.conf << EOF
> net.ipv4.conf.all.arp_ignore = 1
> net.ipv4.conf.all.arp_announce = 2
> net.ipv4.conf.dummy2.arp_ignore = 1
> net.ipv4.conf.dummy2.arp_announce = 2
> EOF
步骤 2 LVS 预配置
如果本实验中的 LVS 服务器和上实验复用,则需删除残留配置。
删除上实验中增加的 LVS 相关配置,具体命令为:
[root@LVS ~]# ipvsadm -D -t 192.168.186.50:80
清理完成后,新增 VIP 相关配置,具体命令如下:
[root@LVS ~]# nmcli connection add type dummy ifname dummy2 ipv4.method manual
ipv4.addresses 192.168.186.50/32
如果需要,请将 DIP 网关配置为路由器接口地址,参考命令如下:
[root@LVS ~]# nmcli connection modify ens33 ipv4.gateway 192.168.186.1
[root@LVS ~]# nmcli connection down ens33
[root@LVS ~]# nmcli connection up ens33
如果是新创建的 LVS 服务器,则仅需要添加 VIP 和修改网关地址即可
步骤 3 LVS 配置
然后使用以下命令,添加相关配置:
[root@LVS ~]# ipvsadm -A -t 192.168.186.50:80 -s rr
[root@LVS ~]# ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.101
[root@LVS ~]# ipvsadm -a -t 192.168.186.50:80 -r 192.168.186.102
添加完成后,查看具体配置,具体如下:
[root@LVS ~]# 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.186.50:80 rr
-> 192.168.186.101:80 Route 1 0 0
-> 192.168.186.102:80 Route 1 0 0