实验介绍:LVS负载均衡DR工作模式
工作原理:
DR和REAL SERVER都是用同一个IP对外服务。但只有DR对ARP请求进行响应,所有REAL SERVER对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的REAL SERVER,把目的MAC地址改为REAL SERVER的MAC并发给这台REAL SERVER。这时REAL SERVER收到这个数据包,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于DR要对二层包头进行改换,所以DR和REAL SERVER之间必须在一个广播域,也可以理解为在同一台交换机上。
实验开始
实验工具:三台虚拟主机( vs172.17.250.156 rs1 172.17.250.207 rs2 172.17.250.107)
实验步骤
注意防火墙和selinux的关闭
一、 配置VIP到本地网卡别名
[root@lkbq ~]# yum install ipvsadm -y 安装LVS管理软件
[root@lkbq ~]# ifconfig eth0:0 172.17.250.165 broadcast 172.17.250.165 netmask 255.255.255.255 up 配置VIP到本地网卡eth0:0,并只广播自己 [root@lkbq ~]# route add -host 172.17.250.165 dev eth0:0 配置VIP路由 [root@lkbq ~]# ipvsadm -A -t 172.17.250.165:80 -s wrr [root@lkbq ~]# ipvsadm -a -t 172.17.250.165:80 -r 172.17.250.107 -g -w 1 [root@lkbq ~]# ipvsadm -a -t 172.17.250.165:80 -r 172.17.250.207 -g -w 1
[root@lkbq ~]#vim /etc/sysctl.conf
net.ipv4.ip_forward=1 开启路由转发
-A在服务器列表中新添加一条新的虚拟服务器记录
-t表示为tcp服务
-s使用的调度算法
-a在服务器表中添加一条新的真实主机记录
-r真实服务器地址
-m指定LVS工作模式为NAT模式
-g指定LVS工作模式为直接路由模式(LVS默认的模式)
-w真实服务器的权值
二、RS操作
[root@kbq1 ~]# ifconfig lo:0 172.17.250.165 broadcast 172.17.250.165 netmask 255.255.255.255 up 配置VIP到本地回环网卡lo上,并只广播自己
[root@kbq1 ~]# route add -host 172.17.250.165 lo:0 配置本地回环网卡路由
[root@kbq1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore 1只回答目标IP地址是来访网络接口本地地址的ARP查询请求
[root@kbq1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce 2对查询目标使用最适当的本地地址,在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址
[root@kbq1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore 1仅在请求的目标IP配置在本地主机的接收到请求报文的接口上,才给予回应
[root@kbq1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce 2必须避免将接口信息向非本网络进行通告
[root@kbql ~]# systemctl start nginx php-fpm mariadb 开启服务
三、测试效果如下
实验完成,有什么问题多多提问哦~~