admin管理员组文章数量:1642338
上一篇博客《Keepalived实现NAT+LVS+后端健康检测》简单介绍了NAT模式的LVS搭建步骤,下面介绍一下使用更普遍、网络结构更简单的DR模式搭建方法。
不同与NAT模式,DR模式不需要跨两个网段,负载均衡服务器和真实Web服务器还有客户端都可以放在同一个网段里,对网络的复杂性要求降低,而且有一个好处是负载量会提高,因为数据流量不需要通过负载均衡器进行路由,使负载均衡器不会产生瓶颈。但是也有缺点,一是真实Web服务器需要修改自己的lo网卡,这样需要对真实web服务器进行一些网络配置,另一个是无法实现NAT中的端口映射功能,比如负载均衡器开放的是80端口,那么后端的真实Web服务器也必须开放80端口,而在NAT模式下,对后端服务器的端口没有限制。
首先介绍一下网络分配
服务器 | 真实地址 | 虚拟地址 | 网关地址 |
Keepalived主服务器 | 10.100.100.89 | 10.100.100.200 | 10.100.100.1 |
Keepalived备服务器 | 10.100.100.88 | 10.100.100.200 | 10.100.100.1 |
真实HTTP服务1 | 10.100.100.101 | 10.100.100.200 | 10.100.100.1 |
真实HTTP服务2 | 10.100.100.102 | 10.100.100.200 | 10.100.100.1 |
在这个网络中,所有网络流量都通过网关10.100.100.1进行进出,客户端访问地址为虚拟地址10.100.100.200,客户端的请求到达keepalived后,会修改数据包的MAC地址然后发送给两台真实HTTP服务器,真实HTTP由于也配有虚拟地址,所以会正常接收这个数据包,然后返回流量通过网关直接返回给用户而非流经负载均衡器再走网关,所以负载均衡器的压力相对NAT模式大大减小。负载均衡器和HTTP服务器均只开放8080端口。因为DR模式下开放的端口必须一致。
在真实Web服务器上因为要设置lo网卡上的虚拟ip,并关闭arp响应(如果不关闭,那么所有使用vip的服务器就会造成IP冲突或者说是ARP欺骗),方法很简单,直接写一个脚本即可,并且还可以开机自启
vi /etc/init.d/realserver
SNS_VIP=10.100.100.200
#/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:0
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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
增加可执行权限
chmod 755 /etc/init.d/realserver
然后启动很方便,因为已经注册为了linux服务
service realserver start
或者
/etc/init.d/realserver start
下面是keepalived主机的配置文件
! Configuration File for keepalived
global_defs {
router_id LVS_MASTER
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 91
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.100.100.200
}
}
virtual_server 10.100.100.200 8080 {
delay_loop 15
lb_algo rr
lb_kind DR
persistence_timeout 50
nat_mask 255.255.255.0
protocol TCP
real_server 10.100.100.101 8080 {
weight 1
HTTP_GET {
url {
path /hello
d
本文标签: 后端模式健康KeepalivedLVS
版权声明:本文标题:Keepalived实现LVS(DR模式)+自动后端健康检测 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729328074a1196020.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论