一台LVS(两张网卡一个仅主机,一个NAT)
一台测试机(可以用自己电脑的cmd)
webserver1(仅主机网卡)
webserver2(仅主机网卡)
虚拟机关闭防火墙和selinux
每台主机必须有可用ip
查看命令
route -n
如果没有 router 命令 用下面的命令下载
yum install -y net-tools-2.0-0.62.20160912git.el9.x86_64
在 /etc/sysctl.conf 中写入 net.ipv4.ip_forward = 1
yum install ipvsadm -y
[root@LVS ~]# ipvsadm -A -t 172.25.119.100:80 -s rr
[root@LVS ~]# ipvsadm -a -t 172.25.119.100:80 -r 169.254.199.10:80 -m
[root@LVS ~]# ipvsadm -a -t 172.25.119.100:80 -r 169.254.199.20:80 -m
查看策略
ipvsadm -Ln
仅主机网卡 169.254.199.10/24
yum install httpd -y
systemctl enable --now httpd
echo webserver1 169.254.199.10 > /var/www/html/index.html
仅主机网卡 169.254.1199.20
yum install httpd -y
systemctl enable --now httpd
echo webserver2 169.254.199.20 > /var/www/html/index.html
我直接用的本地主机的cmd进行的测试
虚拟机关闭防火墙和selinux
五台主机:
client(一张NAT网卡 ip 172.25.119.200/24)
router(一张NAT网卡ip172.15.119.100/24 一张仅主机网卡ip 169.254.199.100)
LVS (仅主机网卡 169.154.199.50/24 环回地址169.254.199.200/24)
webserver1 (仅主机网卡 169.154.199.10/24 环回地址169.254.199.200/24)
webserver2 (仅主机网卡 169.154.199.20/24 环回地址169.254.199.200/24)
创建环回(临时,重启后失效)
ip a a 169.254.199.200/32 dev lo
创建环回(临时,重启后失效)
ip a a 169.254.199.200/32 dev lo
yum install httpd -y
systemctl enable --now httpd
echo webserver1 169.254.199.10 > /var/www/html/index.html
创建环回(临时,重启后失效)
ip a a 169.254.199.200/32 dev lo
yum install httpd -y
systemctl enable --now httpd
echo webserver1 169.254.199.10 > /var/www/html/index.html
以http和https为例,当我们在RS中同时开放80和443端口,那么默认控制是分开轮询的,这样我们就出现了一个轮询错乱的问题
当我第一次访问80被轮询到webserver1后下次访问443仍然可能会被轮询到webserver1上
在上面DR实验的基础上,我们做一下更改操作
DR实验的策略
ipvsadm -A -t 169.254.199.200:80 -s rr
ipvsadm -a -t 169.254.199.200:80 -r 169.254.199.10:80 -g
ipvsadm -a -t 169.254.199.200:80 -r 169.254.199.20:80 -g
我们再添加一个策略
ipvsadm -A -t 169.254.199.200:443 -s rr
ipvsadm -a -t 169.254.199.200:443 -r 169.254.199.10:443 -g
ipvsadm -a -t 169.254.199.200:443 -r 169.254.199.20:443 -g
如图
curl 169.254.199.200;curl -k https://169.254.199.200
返回的结果将会是:
webserver1 169.254.199.10
webserver1 169.254.199.10
或者
webserver2 169.254.199.20
webserver2 169.254.199.20
我们可以使用防火墙来解决轮询调度算法中的这一问题
首先我们先清除之前的策略
ipvsadm -C
然后我们给80,443端口打上标签,将他们作为一个整体
被打上标记的会视为同一个 标签名字66
写上策略
ipvsadm -A -t 169.254.199.200:80 -s rr
ipvsadm -A -t 169.254.199.200:80 -s wrr
ipvsadm -A -t 169.254.199.200:80 -s sh
ipvsadm -A -t 169.254.199.200:80 s dh