가상 주소 20 개 이상 유지


12

고 가용성을 위해 데비안 머신 두 대에 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 클라이언트 인증서 종료 및 백엔드 웹 서버 프록시를 위해 가상 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까지만 작동합니다.

이 문제를 논의 하는 하우투를 발견했습니다 . 기본적으로 그들은 단 하나의 VIP를 보유하고이 하나의 IP를 통해 모든 트래픽을 라우팅하고 "모두 잘 될 것"을 제안합니다. 이것이 좋은 접근입니까? 머신 앞에서 pfSense 방화벽을 실행하고 있습니다.

위 링크에서 인용하십시오.

ip route add $VNET/N via $VIP

or

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

미리 감사드립니다.

편집하다:

@David Schwartz는 경로를 추가하는 것이 합리적이라고 말하면서 pfSense 방화벽에 고정 경로를 추가하려고 시도했지만 예상대로 작동하지 않았습니다.

pf 센스 경로 :

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 이상에서만 실패합니다.


나는 그 접근 방식이 합리적이라고 생각합니다.
David Schwartz

... 또는 20 개의 IP 블록으로 각각 추가 vrrp_instances를 만들 것입니까? 호스팅 된 HTTPS 사이트를 그룹화하여 추가 의미를 부여 할 수 있습니다.
cvaldemar

대상 네트워크는 단일 IP가 아닌 20 개 이상의 IP 세트 여야합니다.
David Schwartz

답변:


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.