Saya telah menyiapkan keepalived pada dua mesin Debian untuk ketersediaan tinggi, tetapi saya telah mengalami jumlah IP virtual maksimum yang dapat saya tetapkan untuk komputer saya vrrp_instance
. Bagaimana cara saya mengkonfigurasi dan gagal lebih dari 20+ IP virtual?
Ini adalah, sangat sederhana, pengaturan:
LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 - 10.200.85.200
Setiap mesin juga menjalankan Apache (nantinya Nginx) yang mengikat pada IP virtual untuk pemutusan sertifikat klien SSL dan proksi ke webserver backend. Alasan saya membutuhkan begitu banyak VIP adalah ketidakmampuan untuk menggunakan VirtualHost di HTTPS.
Ini adalah keepalived.conf saya:
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
}
Konfigurasi yang identik ada di mesin CADANGAN, dan berfungsi dengan baik, tetapi hanya sampai IP ke-20.
Saya telah menemukan HOWTO yang membahas masalah ini. Pada dasarnya, mereka menyarankan hanya memiliki satu VIP dan merutekan semua lalu lintas "melalui" IP yang satu ini, dan "semua akan baik-baik saja". Apakah ini pendekatan yang baik? Saya menjalankan firewall pfSense di depan mesin.
Kutipan dari tautan di atas:
ip route add $VNET/N via $VIP
or
route add $VNET netmask w.x.y.z gw $VIP
Terima kasih sebelumnya.
EDIT:
@ David Schwartz mengatakan masuk akal untuk menambahkan rute, jadi saya mencoba menambahkan rute statis ke firewall pfSense, tapi itu tidak berhasil seperti yang saya harapkan.
Rute 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
Saya juga memastikan saya telah mengaktifkan penerusan paket pada host saya:
$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
Apakah saya melakukan ini salah? Saya juga menghapus semua VIP dari keepalived.conf sehingga hanya gagal lebih dari 10.200.85.100.
sumber
Jawaban:
Solusi paling sederhana tanpa mengubah arsitektur Anda saat ini adalah dengan menggunakan virtual_ipaddress_excluded . Sebagai contoh
virtual_ipaddress_excluded berisi daftar alamat IP yang disimpan akan muncul naik turun di server, namun mereka tidak termasuk dalam paket VRRP itu sendiri sehingga mereka tidak masuk dalam batas 20 alamat IP.
Dalam konfigurasi saya, saya ingin mengalokasikan IP khusus untuk virtual_ipaddress . yaitu salah satu yang disertakan dalam paket VRRP dan meletakkan semua yang lain di virtual_ipaddress_excluded . Ini adalah ide yang bagus karena Anda tidak ingin harus mengubah IP utama hanya karena seorang pelanggan pergi.
sumber