Ich habe Keepalive auf zwei Debian-Rechnern für hohe Verfügbarkeit eingerichtet, aber ich habe die maximale Anzahl von virtuellen IPs erreicht, die ich meinen zuweisen kann vrrp_instance
. Wie gehe ich vor, um mehr als 20 virtuelle IPs zu konfigurieren und auszufallen?
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 jedem Computer wird auch eine Apache-Bindung (später Nginx) für die virtuellen IP-Adressen ausgeführt, um die Beendigung des SSL-Client-Zertifikats zu ermöglichen und Proxys an Back-End-Webserver zu senden. Der Grund, warum ich so viele VIPs brauche, ist die Unfähigkeit, VirtualHost auf HTTPS zu verwenden.
Das 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
}
Eine identische Konfiguration befindet sich auf dem BACKUP-Computer und funktioniert einwandfrei, jedoch nur bis zur 20. IP.
Ich habe ein HOWTO gefunden , das dieses Problem bespricht . Grundsätzlich empfehlen sie, nur einen VIP zu haben und den gesamten Datenverkehr "über" diese eine IP weiterzuleiten, und "alles wird gut". Ist das ein guter Ansatz? Ich starte pfSense-Firewalls vor den Rechnern.
Zitat aus dem obigen Link:
ip route add $VNET/N via $VIP
or
route add $VNET netmask w.x.y.z gw $VIP
Danke im Voraus.
BEARBEITEN:
@David Schwartz sagte, dass es sinnvoll wäre, eine Route hinzuzufügen. Deshalb habe ich versucht, der pfSense-Firewall eine statische Route hinzuzufügen, aber das hat nicht so funktioniert, wie ich es erwartet hatte.
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 auch sichergestellt, dass die Paketweiterleitung auf meinen Hosts 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, so dass es nur über 10.200.85.100 fehlschlägt.
quelle
Antworten:
Die einfachste Lösung, ohne Ihre aktuelle Architektur zu ändern, ist die Verwendung von virtual_ipaddress_excluded . Beispielsweise
virtual_ipaddress_excluded enthält eine Liste von IP-Adressen, die durch keepalived auf dem Server hoch- und heruntergefahren werden. Sie sind jedoch nicht im VRRP-Paket selbst enthalten, sodass sie nicht zur Begrenzung auf 20 IP-Adressen zählen.
In meinen Konfigurationen möchte ich eine IP speziell für virtual_ipaddress zuweisen . dh diejenige, die in den VRRP-Paketen enthalten ist und alles andere in virtual_ipaddress_excluded setzt . Dies ist eine gute Idee, da Sie die Haupt-IP nicht ändern müssen möchten, nur weil ein Kunde abgereist ist.
quelle