lvs-DR模式
DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。DR模式是互联网使用比较多的一种模式。
服务器IP示例
本人的本地虚拟机节点约定
本地节点 | 虚拟节点 | |
---|---|---|
lvs虚拟机 | 192.168.182.10:80 | 192.168.182.150:80 |
nginx-1 | 192.168.182.8:80 | 192.168.182.150:80 |
nginx-2 | 192.168.182.9:80 | 192.168.182.150:80 |
- 首先安装ipvsadm
yum install -ipvsadm
- 创建lvs虚拟机上创建虚拟ip,在虚拟机上备份一份网卡修改IPADDR为192.168.182.150
- 创建两台搭载了nginx服务的虚拟机上做同样操作,首先备份ifcfg-lo,修改文件名为ifcfg-lo:1,配置IPADDR为192.168.182.150,即lvs虚拟机的虚拟IP
- 在两台nignx虚拟机,/etc/sysctl.conf添加以下代码,然后执行sysctl -p命令
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
- 同样的在两台搭载了nginx服务的虚拟机上执行以下命令
route add -host 192.168.182.150 dev lo:1
开机执行命令
echo "route add -host 192.168.182.150 dev lo:1" >> /etc/rc.local
- 在lvs虚拟机上执行以下命令
#创建一个集群,使用轮询算法
ipvsadm -A -t 192.168.150:80 -s rr
#在192.168.150:80添加两个本地节点,即两台nginx虚拟机的节点
ipvsadm -a -t 192.168.182.150:80 -r 192.168.182.8:80 -g
ipvsadm -a -t 192.168.182.150:80 -r 192.168.182.9:80 -g
- 集群,虚拟IP和服务主机
访问lvs创建的虚拟ip,至此lvs的DR模式搭建成功