Giữ lại cho hơn 20 địa chỉ ảo


12

Tôi đã thiết lập lưu giữ trên hai máy Debian để có tính sẵn sàng cao, nhưng tôi đã chạy vào số lượng IP ảo tối đa tôi có thể gán cho mình vrrp_instance. Làm cách nào để tôi định cấu hình và không thành công trên 20 IP ảo?

Đây là, rất đơn giản, thiết lập:

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

Mỗi máy cũng đang chạy liên kết Apache (sau này là Nginx) trên các IP ảo để chấm dứt chứng chỉ ứng dụng khách SSL và ủy quyền cho máy chủ web phụ trợ. Lý do tôi cần rất nhiều VIP là không thể sử dụng Virtualhost trên HTTPS.

Đây là keepaliving.conf của tôi:

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
}

Một cấu hình giống hệt nhau trên máy BACKUP và nó hoạt động tốt, nhưng chỉ lên đến IP thứ 20.

Tôi đã tìm thấy một HOWTO thảo luận về vấn đề này. Về cơ bản, họ đề nghị chỉ có một VIP và định tuyến tất cả lưu lượng truy cập "thông qua" một IP này và "tất cả sẽ ổn". Đây có phải là một cách tiếp cận tốt? Tôi đang chạy tường lửa pfSense trước các máy.

Trích dẫn từ liên kết trên:

ip route add $VNET/N via $VIP

or

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

Cảm ơn trước.

BIÊN TẬP:

@David Schwartz cho biết sẽ rất hợp lý khi thêm một tuyến đường, vì vậy tôi đã thử thêm một tuyến tĩnh vào tường lửa pfSense, nhưng nó không hoạt động như tôi mong đợi.

tuyến đường 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

Tôi cũng đảm bảo rằng tôi đã bật chuyển tiếp gói trên máy chủ của mình:

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

Tôi đang làm điều này sai? Tôi cũng đã xóa tất cả các VIP khỏi keepaliving.conf để nó chỉ thất bại hơn 10.200,85.100.


Tôi nghĩ rằng cách tiếp cận đó có ý nghĩa tốt.
David Schwartz

... Hoặc tôi sẽ chỉ tạo thêm vrrp_instances với mỗi khối 20 IP? Tôi có thể có thể nhóm các trang web HTTPS được lưu trữ theo cách nào đó mang lại cho nó một số ý nghĩa bổ sung.
cvaldemar

Mạng đích phải là tập hợp của hơn 20 IP, không phải là một IP duy nhất.
David Schwartz

Câu trả lời:


14

Giải pháp đơn giản nhất trong khi không thay đổi kiến ​​trúc hiện tại của bạn là sử dụng virtual_ipaddress_excluded . Ví dụ

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 chứa danh sách các địa chỉ IP được giữ lại sẽ hiển thị trên máy chủ, tuy nhiên chúng không được bao gồm trong gói VRRP nên chúng không được tính vào giới hạn địa chỉ IP 20.

Trong cấu hình của mình, tôi muốn phân bổ một IP cụ thể cho virtual_ipaddress . tức là gói được bao gồm trong các gói VRRP và đặt mọi thứ khác vào virtual_ipaddress_excluded . Đây là một ý tưởng hay vì bạn không muốn phải thay đổi IP chính chỉ vì một khách hàng rời đi.


Thông minh. Tôi đang làm điều này thay vì nhiều trường hợp vrrp. Bạn cũng làm cho tôi đọc lên tài liệu lưu giữ. Cảm ơn!
cvaldemar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.