我已经在两台Debian机器上设置了keepalived来实现高可用性,但是我遇到了可以分配给我的虚拟IP的最大数量vrrp_instance
。我该如何配置和故障转移20多个虚拟IP?
这是非常简单的设置:
LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 - 10.200.85.200
每台机器还在虚拟IP上运行Apache(后来的Nginx)绑定,以用于SSL客户端证书终止和代理到后端Web服务器。我需要这么多VIP的原因是无法在HTTPS上使用VirtualHost。
这是我的keepalived.conf:
vrrp_script chk_apache2 {
script "killall -0 apache2"
interval 2
weight 2
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101
virtual_ipaddress {
10.200.85.100
.
. all the way to
.
10.200.85.200
}
BACKUP计算机上具有相同的配置,并且可以正常工作,但只能使用第20个IP。
我已经找到了HOWTO讨论这个问题。基本上,他们建议只有一个VIP并“通过”该IP路由所有流量,“一切都会好起来”。这是一个好方法吗?我在机器前运行pfSense防火墙。
从以上链接引用:
ip route add $VNET/N via $VIP
or
route add $VNET netmask w.x.y.z gw $VIP
提前致谢。
编辑:
@David Schwartz表示添加路由是合理的,因此我尝试将静态路由添加到pfSense防火墙,但这并没有达到我的预期。
pfSense路线:
Interface: LAN
Destination network: 10.200.85.200/32 (virtual IP)
Gateway: 10.200.85.100 (floating virtual IP)
Description: Route to VIP .100
我还确保在主机上启用了数据包转发:
$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
我做错了吗?我还从keepalived.conf中删除了所有VIP,因此它仅在10.200.85.100以上失败。