1.DR模式搭建
这里需要使用三台虚拟主机进行搭建,所以先准备好三台虚拟机,由于之前做实验我们需要先把两台机器上的网关给先改回来,这样三台机器都可以上网。这里还是和前面搭建有些区别的。前面搭建适用于小公司可以节约开销。
1).先把两台机器上的网关改回来,之后还要重启一下网络服务才会生效,在这里我只演示一台机器,另一台机器就按照这种方法操作就好了
2).在dir上面进行编辑配置文件/usr/local/sbin/lvs_dr.sh ,编辑好配置内容之后就可以重启脚本了,编辑内容如下:
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.126.200
rs1=192.168.126.129
rs2=192.168.126.126
ifdown ens33
ifup ens33
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
3).在两台rs机器上进行编辑文件文件内容如下,编辑好配置文件并执行脚本查看网关有没有变化
#/bin/bash
vip=192.168.126.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
4).测试
由于在电脑上的浏览器进行测试和在虚拟机上进行测试都比较麻烦而且验证我们的结果也很差,但是在浏览器上进行稍微等待一下按住F5先把浏览器上的缓存给清空掉在访问200ip发现能够访问到另一台机器上面去了。如下图所示。通过ipvsadm -ln查看 规则,可以看出其信息
2. keepalived+LVS
1).先编辑配置文件/etc/keepalived/keepalived.conf 先把之前的配置文件给清空掉,之后再增加新的内容
vrrp_instance VI_1 {
#备用服务器上为 BACKUP
state MASTER
#绑定vip的网卡为ens33
interface ens33
virtual_router_id 51
#备用服务器上为90
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass aminglinux
}
virtual_ipaddress {
192.168.126.200
}
}
virtual_server 192.168.126.200 80 {
#(每隔10秒查询realserver状态)
delay_loop 10
#(lvs 算法)
lb_algo wlc
#(DR模式)
lb_kind DR
#(同一IP的连接60秒内被分配到同一台realserver)
persistence_timeout 60
#(用TCP协议检查realserver状态)
protocol TCP
real_server 192.168.126.129 80 {
#(权重)
weight 100
TCP_CHECK {
#(10秒无响应超时)
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.126.126 80 {
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
做完上面配置之后还要进行启动一下脚本之后再浏览器上进行测试