Keepalived+LVS/DR部署
环境配置
一、真实服务器配置DR模式
Real Server A & Real Server B:
[root@Real-Server1 ~]# yum install httpd
[root@Real-Server1 ~]# ifconfig lo:1 192.168.126.100 netmask 255.255.255.255
[root@Real-Server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@Real-Server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@Real-Server1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
说明:
要解决的问题:
1 .两个http服务器除了有自己的rip以外还要拥有vip
因为:数据包需从realServer返回 ,realServer返回的数据需要源IP为VIP
解决:添加 lo接口(本地环路接口) ,lo:1 vip/32.
2 .当GW向下广播vip的时候 要分发器的vip响应 而两个http的vip不要响应
因为:realServer的vip有了,接着就是同一个网段中拥有两个vip, 客户端在网关发送arp广播需找vip时需要让realServer不接受响应.
解决:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
arp_ignore 设置为1,意味着当别人的arp请求过来的时候,如果接收的设备没有这个ip,就不做出响应(这个ip在lo上,lo接收设备)
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
使用最好的ip来回应,什么是最好的ip?同一个网段内子网掩码最长的
二、路由器配置
Director A & Director B:
配置规则实现真实服务器的负载均衡
[root@Director1 ~]# yum install ipvsadm
[root@Director1 ~]# ipvsadm -A -t 192.168.126.100:80 -s rr
[root@Director1 ~]# ipvsadm -a -t 192.168.126.100:80 -r 192.168.126.11:80 -g
[root@Director1 ~]# ipvsadm -a -t 192.168.126.100:80 -r 192.168.126.12:80 -g
三、Keepalived配置
- 在Director A & Director B: 配置
[root@Director1 ~]# yum install keepalived -y
[root@Director1 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id dr1
#vrrp_strict #注释掉,否则vip漂移后自动生成一条drop规则
}
vrrp_instance VI_1 {
state BACKUP
interface eth0 //内网网卡,用于发送或接收vrrp信息的网卡
virtual_router_id 51 //两边必须一样
priority 100 //优先级
advert_int 1 //检查间隔,单位秒
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.126.100 //VIP,默认掩码32位。 完整格式: IP/MASK dev INTERFACE
}
}
virtual_server 192.168.126.100 80 { // LVS 配置
delay_loop 3 // 服务论询的时间间隔
lb_algo rr // LVS 调度算法
lb_kind DR // LVS 集群模式
protocol TCP
real_server 192.168.126.13 80 {
weight 1
TCP_CHECK { // RS健康检查
connect_timeout 3
}
}
real_server 192.168.126.14 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}
- 将这份配置文件拷贝到Real-Server2
[root@Director1 ~]# scp keepalived.conf 192.168.10.12:/etc/keepalived/
拷贝后,修改配置文件,将优先级改为90
priority 90
3.在两个Director上启动服务:
[root@Director1 ~]# service keepalived start
4.客户端访问VIP测试
5.关闭Master上的keepalived, 客户端访问VIP测试,看VIP是否自动漂移