在FreeBSD下用vrrp实现基于DNS轮询的冗余服务

本文介绍了如何在FreeBSD系统中利用vrrp协议实现基于DNS轮询的冗余服务,确保在服务器故障时,通过虚拟IP无缝接管,避免服务中断。详细讲述了配置步骤和FreeVRRPd软件的使用,包括配置文件示例和故障切换机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在FreeBSD下用vrrp实现基于DNS轮询的冗余服务


在FreeBSD下实现基于DNS Robin Round的冗余服务
在传统的基于DNS Robin Round的web load balance解决方案下,有一个明显的缺点,
那就是万一其中一个服务器死了(服务宕了,或者断电、硬盘坏之类的硬故障),那轮转到该服务器上的web服务将是一个死点,
所有定向到该服务器上的web request都将返回服务不可得到的结果。

利用vrrp(Virtual Router Redundancy Protocol,虚拟路由冗余协议),可以避免这个毛病。

假设你有3台双网卡的webserver,其内/外网的ip分别是:
1) 192.168.0.1/202.1.1.1
2) 192.168.0.2/202.1.1.2
3) 192.168.0.3/202.1.1.3

在dns上做了robin round,即www.company.com指向202.1.1.1,202.1.1.2,202.1.1.3
即用域名查询工具得到如下的结果:
# host www.company.com
www.company.com has address 202.1.1.1
www.company.com has address 202.1.1.2
www.company.com has address 202.1.1.3

这时,加上vrrp功能就不会有死点存在了。
比如第二台server down了,第一台server或第三台server(具体哪台server接管服务,可由配置文件定义)
会在自己的外网卡绑一个202.1.1.2的ip别名,接管第二台机的服务,使web server不出现访问死点。


FreeVRRPd的特点:
* 守护进程兼容RFC 2338
* 实现虚拟地址
* 支持多 VRID
* 用BPF包把主服务器的健康状态告诉从服务器
* 能够主服务器down后3秒钟内改变从服务器的ip和路由。
* 能清除所有主机里的arp cache(这一点很重要,原因自己体会)。
* 可以在不同的从服务器间选择一台来接管服务。
* 主机能同时被设置为主(master)或从(slave)方式。
* 如果主服务器up,恢复正常运行后,从服务器会自动降级
* 能防止地址冲突
* 多线程的vrrp守护进程
* 支持明文密码
* 支持虚拟地址的掩码

 

在三台机分别安装freevrrpd(FreeBSD 4.6下freevrrpd的版本是0.8.4,home:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值