ฉันได้ตั้งค่าไว้บนเครื่อง 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 เท่านั้น