什么是LVS-dr模式
图解
在LVS-DR模式下,负载均衡器(也称为调度器)接收来自客户端的请求,并根据预设的调度算法将请求转发给后端的真实服务器(也称为RS)。真实服务器处理完请求后,直接将响应返回给客户端,而不需要经过负载均衡器。这种模式下,真实服务器和负载均衡器共享同一个虚拟IP地址(VIP),但它们各自拥有自己的物理IP地址。
实验环境
主机名 | IP | vip | 角色 |
client | 172.25.254.200 NAT | null | 测试机 |
router | c-r:172.25.254.100NAT,r-l:192.168.0.100仅主机 | null | 路由器 |
lvs | 192.168.0.50仅主机,网关:192.168.0.100 | lo:192.168.0.200 | 调度器 |
web1 | 192.168.0.10仅主机,网关:192.168.0.100 | lo:192.168.0.200 | web服务1 |
web2 | 192.168.0.20仅主机,网关:192.168.0.100 | lo:192.168.0.200 | web服务2 |
环境配置好后记得要在router上开启内核路由功能
vim /etc/sysctl.conf
添加一条
net.ipv4.ip_forward=1
配置详情
在LVS和web中设定vip
[root@lvs ~]# ip a a dev lo 192.168.0.200/32
[root@webserver1 ~]# ip a a dev lo 192.168.0.200/32
[root@webserver2 ~]# ip addr add dev lo 192.168.0.200/32
在web1和web2中解决响应问题
[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
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
在lvs中配置策略
[root@lvs ~]# ipvsadm -A -t 192.168.0.200:80 -s wrr
[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g
[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.0.200:80 wrr
-> 192.168.0.10:80 Route 1 0 0
-> 192.168.0.20:80 Route 1 0 0
测试
在web1和web2的/var/www/html编写网页文件