配置LVS NAT模式
环境准备
- client1:eth0->192.168.88.10,网关192.168.88.5
- lvs1: eth0 -> 192.168.88.5;eth1->192.168.99.5
- web1:eth1->192.168.99.100;网关192.168.99.5
- web2:eth1->192.168.99.200;网关192.168.99.5
# 登陆之后,将以下内容粘贴到终端
hostnamectl set-hostname client1
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.88.10/24 autoconnect yes
nmcli connection down eth0
nmcli connection up eth0
echo a | passwd --stdin root
nmcli connection modify eth0 ipv4.gateway 192.168.88.5
nmcli connection down eth0
nmcli connection up eth0
# 登陆之后,将以下内容复制到命令行
hostnamectl set-hostname lvs1
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.88.5/24 autoconnect yes
nmcli connection down eth0
nmcli connection up eth0
nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.99.5/24 autoconnect yes
nmcli connection down eth1
nmcli connection up eth1
echo a | passwd --stdin root
# 登陆之后,将以下内容复制到命令行
hostnamectl set-hostname web1
nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.99.100/24 autoconnect yes
nmcli connection down eth1
nmcli connection up eth1
nmcli connection modify eth1 ipv4.gateway 192.168.99.5
nmcli connection down eth1
nmcli connection up eth1
echo a | passwd --stdin root
# 登陆之后,将以下内容复制到命令行
hostnamectl set-hostname web2
nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.99.200/24 autoconnect yes
nmcli connection down eth1
nmcli connection up eth1
nmcli connection modify eth1 ipv4.gateway 192.168.99.5
nmcli connection down eth1
nmcli connection up eth1
echo a | passwd --stdin root
配置LVS NAT模式步骤
配置2台web服务器
[root@web1 ~]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl=ftp://192.168.99.240/dvd
enabled=1
gpgcheck=0
[root@web2 ~]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl=ftp://192.168.99.240/dvd
enabled=1
gpgcheck=0
[root@web1 ~]# yum install -y httpd
[root@web2 ~]# yum install -y httpd
# 创建测试页面
[root@web1 ~]# echo "192.168.99.100" > /var/www/html/index.html
[root@web2 ~]# echo "apache web server2" > /var/www/html/index.html
[root@web1 ~]# systemctl enable httpd --now
[root@web2 ~]# systemctl enable httpd --now
# 在lvs1上测试到web服务器的访问
[root@lvs1 ~]# curl http://192.168.99.100/
192.168.99.100
[root@lvs1 ~]# ^100^200 # 将上一条命令中的100换成200,执行
curl http://192.168.99.200/
apache web server2
确保lvs1的ip转发功能已经打开。该功能需要改变内核参数
# 查看ip转发功能的内核参数
[root@lvs1 ~]# sysctl -a # 查看所有的内核参数
[root@lvs1 ~]# sysctl -a | grep ip_forward # 查看ip_foward参数
net.ipv4.ip_forward = 1 # 1表示打开转发,0表示关闭转发
# 永久设置打开ip_forward功能
[root@lvs1 ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
[root@lvs1 ~]# sysctl -p
# 测试从客户端到服务器的访问
[root@client1 ~]# curl http://192.168.99.100/
192.168.99.100
[root@client1 ~]# curl http://192.168.99.200/
apache web server2
安装LVS
[root@lvs1 ~]# yum install -y ipvsadm
ipvsadm使用说明
[root@lvs1 ~]# ipvsadm
-A: 添加虚拟服务器
-E: 编辑虚拟服务器
-D: 删除虚拟服务器
-t: 添加tcp服务器
-u: 添加udp服务器
-s: 指定调度算法。如轮询rr/加权轮询wrr/最少连接lc/加权最少连接wlc
-a: 添加虚拟服务器后,向虚拟服务器中加入真实服务器
-r: 指定真实服务器
-w: 设置权重
-m: 指定工作模式为NAT
-g: 指定工作模式为DR
配置LVS
# 为web服务器创建虚拟服务器,使用rr调度算法
[root@lvs1 ~]# ipvsadm -A -t 192.168.88.5:80 -s rr
# 查看配置
[root@lvs1 ~]# ipvsadm -Ln # L是列出,n是使用数字,而不是名字
# 向虚拟服务器中添加RIP
[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.100 -w 1 -m
[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.200 -w 2 -m
# 查看配置
[root@lvs1 ~]# ipvsadm -Ln
# 验证
[root@client1 ~]# for i in {1..4}
> do
> curl http://192.168.88.5/
> done
apache web server2
192.168.99.100
apache web server2
192.168.99.100
# 删除配置。(如果配置有错,用以下命令删除重配置)
[root@lvs1 ~]# ipvsadm -D -t 192.168.88.5:80
# 修改调度模式为加权轮询
[root@lvs1 ~]# ipvsadm -E -t 192.168.88.5:80 -s wrr
# 验证配置
[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.5/; done
apache web server2
apache web server2
192.168.99.100
apache web server2
apache web server2
192.168.99.100
i in {1…6}; do curl http://192.168.88.5/; done
apache web server2
apache web server2
192.168.99.100
apache web server2
apache web server2
192.168.99.100