保留超过20个虚拟地址


12

我已经在两台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以上失败。


我认为这种方法很有意义。
大卫·史瓦兹

...还是只用一个20个IP的块来制作其他vrrp_instances?我可能可以通过某种方式对托管HTTPS网站进行分组,使其具有更多含义。
cvaldemar

目标网络应该是20多个IP的集合,而不是单个IP​​。
大卫·史瓦兹

Answers:


14

在不更改当前体系结构的情况下,最简单的解决方案是利用virtual_ipaddress_excluded。例如

vrrp_instance VI_1 {
    interface eth0
    state MASTER
    virtual_router_id 51
    priority 101

    virtual_ipaddress {
        10.200.85.100
    }

    virtual_ipaddress_excluded {
        10.200.85.101
        . all the way to
        10.200.85.200
    }
}

virtual_ipaddress_excluded包含keepalived将在服务器上上下移动的IP地址列表,但是它们不包含在VRRP数据包本身中,因此不计入20个IP地址限制。

在我的配置中,我想专门为virtual_ipaddress分配IP 。即VRRP数据包中包含的内容,并将其他所有内容放入virtual_ipaddress_excluded中。这是一个好主意,因为您不想仅仅因为客户离开而更改主IP。


优秀。我正在这样做,而不是多个vrrp实例。您还使我阅读了keepalived文档。谢谢!
cvaldemar 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.