Правильно настроить iptables для использования keepalived - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь настроить keepalived для балансировки 2 серверов https. Keepalived устанавливается на двух других машинах (MASTER и BACKUP), все серверы имеют 2 интерфейса enp0s3 и enp0s8. Мой keepalived.conf

global_defs {
  notification_email {
    igorc@encompasscorporation.com
  }
  notification_email_from loadbalancer1
  #smtp_server mail.bigpond.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 5
  router_id lb1
}
vrrp_instance VI_1 {
    interface enp0s3
    state BACKUP
    lvs_sync_daemon_interface enp0s3
    virtual_router_id 50
    priority 150
    advert_int 3
    track_interface {
        enp0s3
    }
    authentication {
      auth_type PASS
      auth_pass password
    }
    virtual_ipaddress {
      192.168.178.10/24
    }
}
vrrp_instance VI_2 {
    interface enp0s8
    state BACKUP
    lvs_sync_daemon_interface enp0s8
    virtual_router_id 51
    priority 150
    advert_int 3
    track_interface {
        enp0s8
    }
    authentication {
      auth_type PASS
      auth_pass password1
    }
    virtual_ipaddress {
      192.168.0.10/24
    }

notify_master "/etc/keepalived/iptables.sh 192.168.0.10 master"
    notify_backup "/etc/keepalived/iptables.sh 192.168.0.10 backup"
    notify_fault "/etc/keepalived/iptables.sh 192.168.0.10 backup"
}
virtual_server 192.168.178.10 443 {
  delay_loop 6
  lb_algo rr
  lb_kind NAT
  protocol TCP
  real_server 192.168.0.104 443 {
    weight 10
    MISC_CHECK {
            misc_path "/etc/keepalived/check_http_server.sh 192.168.0.104 443"
            misc_timeout 2
            user root
        }
    }
        real_server 192.168.0.103 443 {
    weight 10
    MISC_CHECK {
            misc_path "/etc/keepalived/check_http_server.sh 192.168.0.103 443"
            misc_timeout 2
            user root
        }
    }
}

, где уведомить. sh:

#!/bin/bash
VIP=$2
case "$1" in
add)
/sbin/iptables -A PREROUTING -t nat -d $VIP -p tcp -j REDIRECT
;;
del)
/sbin/iptables -D PREROUTING -t nat -d $VIP -p tcp -j REDIRECT
;;
*)
echo "Usage: $0 {add|del} ipaddress"
exit 1
esac
exit 0

Только с этой конфигурацией скручивание на vip 192.168.178.10 не удается. Я попытался добавить этот рул на master / backup:

iptables -A INPUT -i enp0s3 -p vrrp -j ACCEPT
iptables -A OUTPUT -o enp0s3 -p vrrp -j ACCEPT
iptables -A INPUT -d 224.0.0.0/8 -i enp0s3 -j ACCEPT
iptables -I INPUT -p 112 -d 224.0.0.18 -j ACCEPT
iptables -I INPUT -p 51  -d 224.0.0.18 -j ACCEPT

iptables -A FORWARD -i enp0s3 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.178.0/24  -j MASQUERADE

, но не работает.

На реальном сервере я изменил маршрут gw с 192.168.178.1 на 192.168. 0.10 является правильным?

Какой руль мне нужно использовать или изменить?

Завиток не работает внутренний для keepalived сервера и внешний

Большое спасибо

...