Дотримувався більше ніж 20 віртуальних адрес


12

Я встановив збереження на двох машинах Debian для високої доступності, але я наткнувся на максимальну кількість віртуальних 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

Кожна машина також працює з прив'язкою Apache (пізніше Nginx) до віртуальних IP-адрес для завершення дії сертифікату клієнта SSL та наближення до сервера-сервера. Причиною, що мені потрібно стільки VIP, є неможливість використання VirtualHost на HTTPS.

Це мій 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

Я роблю це неправильно? Я також видалив усіх VIP-персон із сайту keepalived.conf, тому він не працює лише понад 10.200.85.100.


Я думаю, що такий підхід має сенс.
Девід Шварц

... чи я б просто створив додаткові vrrp_in вещества з блоком 20 IP-адрес? Можливо, я міг би якимось чином згрупувати розміщені HTTPS-сайти, надавши йому додаткового значення.
cvaldemar

Цільова мережа повинна бути набором 20+ IP, а не єдиним 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 містить перелік IP-адрес, які збережене збереження на сервері, але вони не включені до самого пакету VRRP, щоб вони не зараховувались до межі 20 IP-адрес.

У своїх конфігураціях я люблю виділяти IP спеціально для virtual_ipaddress . тобто той, який включений у пакети VRRP, а все інше ставиться у virtual_ipaddress_excluded . Це гарна ідея, оскільки вам не хочеться змінювати основний IP лише тому, що клієнт пішов.


Відмінно. Я роблю це замість декількох екземплярів vrrp. Ви також змусили мене прочитати документально збережену документацію. Дякую!
cvaldemar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.