เก็บไว้สำหรับที่อยู่เสมือนมากกว่า 20 ที่


12

ฉันได้ตั้งค่าไว้บนเครื่อง Debian สองเครื่องเพื่อให้มีความพร้อมใช้งานสูง แต่ฉันพบจำนวน IP เสมือนสูงสุดที่ฉันสามารถมอบหมายให้ฉันvrrp_instanceได้ ฉันจะกำหนดค่าและล้มเหลวของ IP เสมือนมากกว่า 20+ อย่างไร

นี่คือการตั้งค่าที่ง่ายมาก:

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

แต่ละเครื่องกำลังเรียกใช้ Apache (Nginx ในภายหลัง) รวมกับ IP เสมือนสำหรับการยกเลิกใบรับรองไคลเอ็นต์ SSL และการพร็อกซีไปที่เว็บเซิร์ฟเวอร์แบ็กเอนด์ เหตุผลที่ฉันต้องการวีไอพีจำนวนมากนั้นไม่สามารถใช้ 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
}

การกำหนดค่าที่เหมือนกันอยู่ในเครื่องแบ็คอัพและมันทำงานได้ดี แต่ IP ที่ 20 ขึ้นไปเท่านั้น

ฉันพบHOWTO ที่พูดถึงปัญหานี้แล้ว โดยพื้นฐานแล้วพวกเขาแนะนำให้มีวีไอพีเพียงคนเดียวและกำหนดเส้นทางการรับส่งข้อมูลทั้งหมด "ผ่าน" 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

ฉันทำสิ่งนี้ผิดหรือเปล่า? ฉันยังลบวีไอพีทั้งหมดออกจาก keepalived.conf ดังนั้นมันจึงล้มเหลวมากกว่า 10.200.85.100 เท่านั้น


ฉันคิดว่าวิธีการนี้เหมาะสมดี
David Schwartz

... หรือฉันจะสร้าง vrrp_instances เพิ่มเติมแต่ละรายการด้วยบล็อก 20 IP หรือไม่ ฉันอาจจัดกลุ่มไซต์ HTTPS ที่โฮสต์ด้วยวิธีการให้ความหมายเพิ่มเติมบางอย่าง
cvaldemar

เครือข่ายปลายทางควรเป็นชุดของ 20+ IP ไม่ใช่ 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มีรายการที่อยู่ IP ที่ keepalived จะแสดงขึ้นและลงบนเซิร์ฟเวอร์อย่างไรก็ตามจะไม่รวมอยู่ในแพ็คเก็ต VRRP เองดังนั้นพวกเขาจึงไม่นับรวมถึงขีด จำกัด ที่อยู่ IP 20 ตัว

ในการกำหนดค่าของฉันฉันชอบที่จะจัดสรร IP เฉพาะสำหรับvirtual_ipaddress คือหนึ่งที่รวมอยู่ในแพ็กเก็ต VRRP และวางทุกสิ่งทุกอย่างในvirtual_ipaddress_excluded นี่เป็นความคิดที่ดีเพราะคุณไม่ต้องการเปลี่ยน IP หลักเพียงเพราะลูกค้าออกไป


ยอดเยี่ยม ฉันทำสิ่งนี้แทนอินสแตนซ์ vrrp หลายอินสแตนซ์ คุณยังทำให้ฉันอ่านเอกสารที่เก็บไว้ ขอบคุณ!
cvaldemar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.