Keepalived für mehr als 20 virtuelle Adressen

Keepalived für mehr als 20 virtuelle Adressen

Ich habe Keepalived auf zwei Debian-Rechnern für hohe Verfügbarkeit eingerichtet, aber ich habe die maximale Anzahl virtueller IPs erreicht, die ich meinem zuweisen kann vrrp_instance. Wie gehe ich vor, um mehr als 20 virtuelle IPs zu konfigurieren und ausfallen zu lassen?

Dies ist das sehr einfache Setup:

LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 -  10.200.85.200

Auf jeder Maschine läuft außerdem Apache (später Nginx) mit Bindung an die virtuellen IPs für SSL-Client-Zertifikatsbeendigung und Proxying zu Backend-Webservern. Der Grund, warum ich so viele VIPs brauche, ist die Unfähigkeit, VirtualHost auf HTTPS zu verwenden.

Dies ist meine 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
}

Auf der BACKUP-Maschine befindet sich eine identische Konfiguration und funktioniert einwandfrei, aber nur bis zur 20. IP.

Ich habe eineWIE MANDiskussion dieses Problems. Im Grunde schlagen sie vor, nur eine VIP zu haben und den gesamten Verkehr „über“ diese eine IP zu leiten, und „alles wird gut“. Ist das ein guter Ansatz? Ich verwende pfSense-Firewalls vor den Maschinen.

Zitat aus obigem Link:

ip route add $VNET/N via $VIP

or

route add $VNET netmask w.x.y.z gw $VIP

Dank im Voraus.

BEARBEITEN:

@David Schwartz sagte, es wäre sinnvoll, eine Route hinzuzufügen, also habe ich versucht, der pfSense-Firewall eine statische Route hinzuzufügen, aber das hat nicht wie erwartet funktioniert.

pfSense-Route:

Interface:            LAN
Destination network:  10.200.85.200/32 (virtual IP)
Gateway:              10.200.85.100    (floating virtual IP)
Description:          Route to VIP .100

Ich habe außerdem sichergestellt, dass auf meinen Hosts die Paketweiterleitung aktiviert ist:

$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1

Mache ich das falsch? Ich habe auch alle VIPs aus der keepalived.conf entfernt, sodass es nur über 10.200.85.100 fehlschlägt.

Antwort1

Die einfachste Lösung, ohne Ihre aktuelle Architektur zu ändern, ist die Verwendung vonvirtuelle_IP-Adresse_ausgeschlossen. Zum Beispiel

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
    }
}

virtuelle_IP-Adresse_ausgeschlossenenthält eine Liste von IP-Adressen, die Keepalived auf dem Server hoch- und herunterfährt. Sie sind jedoch nicht im VRRP-Paket selbst enthalten und werden daher nicht auf das Limit von 20 IP-Adressen angerechnet.

In meinen Konfigurationen vergebe ich gerne eine IP speziell fürvirtuelle_IP-Adresse. also das, was in den VRRP-Paketen enthalten ist und alles andere invirtuelle_IP-Adresse_ausgeschlossenDas ist eine gute Idee, denn Sie möchten die Haupt-IP nicht ändern müssen, nur weil ein Kunde gegangen ist.

Antwort2

Entschuldigen Sie, dass ich auf eine so alte Frage antworte, aber ich glaube, diese Grenze existiert nicht mehr - ich finde nichts in derDokumentation bezüglich einer maximalen Anzahl virtueller IPs. Kann mir jemand dabei helfen? Danke!

verwandte Informationen