
实验环境
| 主机名 | ip | vip | 角色 |
| client | 172.25.250.10 vmware NAT | null | 测试主机 |
| router | NAT-eth0:172.25.254.100,仅主机eth1:192.168.0.10 | null | 路由器 |
| lvs | 192.168.0.50,GW 192.168.0.100 仅主机 | lo:192.168.0.200 | 调度器 |
| RS1 | 192.168.0.10,GW 192.168.0.100 仅主机 | lo:192.168.0.200 | web服务 器1 |
| RS2 | 92.168.0.20, GW 192.168.0.100 仅主机 | lo:192.168.0.200 | web服务 器2 |
1.router网络配置
1.1打开内核路由功能,
为了跨网段通信所以要打开内核路由功能
编辑vim /etc/sysctl.conf
末尾写入net.ipv4.ip_forward = 1
然后使用sysctl -p让配置生效

1.2网卡配置

注意,在进行网卡修改的时候,修改完配置文件要将进行重载再重启网卡才能让配置文件生效
重载
![]()
重启
2.lvs网络配置

添加环回ip作为vip

3.客户端配置

4.webserver1配置

4.1禁用realserver的arp响应
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
限制响应级别:arp_ignore
0:默认值,表示可使用本地任意接口上配置的任意地址进行响应
1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应
限制通告级别:arp_announce
0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告
1:尽量避免将接口信息向非直接连接网络进行通告 2:必须避免将接口信息向非本网络进行通告

4.2添加环回ip作为vip

5.webserver2配置

5.1禁用realserver的arp响应

5.2添加环回ip作为vip

实验步骤
配置策略
1.下载软件
dnf install ipvsadm -y![]()
2.写入策略

3.客户端测试策略

权重对上,策略配置成功
防火墙标签解决轮询错误
以http和https为例,当我们在RS中同时开放80和443端口,那么默认控制是分开轮询的,这样我们就出 现了一个轮询错乱的问题 当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上
问题呈现
在RS1和RS2中安装mod_ssl并重启apache
]# yum install mod_ssl -y
]# systemctl restart httpd
在lvs中设置调度,因为我们要调度80和443两个端口所以我们需要设定两组策略
]# ipvsadm -C

添加策略

测试问题

当访问vip时两次调度都到了同一个webserver
解决方法
FWM:FireWall Mark
MARK target 可用于给特定的报文打标记,
--set-mark value
其中:value 可为0xffff格式,表示十六进制数字借助于防火墙标记来分类报文,而后基于标记定义集群服
务:可将多个不同的应用使用同一个集群服务进行调度
在lvs上设置iptables规则

iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 66
查看

设置调度策略

测试结果

如图已经可以正常轮询了
305

被折叠的 条评论
为什么被折叠?



