20を超える仮想アドレスのKeepalived


12

高可用性のために2台の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

各マシンは、SSLクライアント証明書の終了とバックエンドWebサーバーへのプロキシのために、仮想IPでApache(後のNginx)バインディングも実行しています。私が非常に多くの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を1つだけ持ち、この1つの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

宛先ネットワークは、単一のIPではなく、20以上のIPのセットである必要があります。
デビッドシュワルツ

回答:


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.