LINUX.ORG.RU
ФорумAdmin

Настройка ipvs (keepalived)

 , ,


0

2

Задача - сделать балансирование нагрузки и отказоустойчивость между двумя прокси. (192.168.2.2 и 192.168.2.3)

Поставил keepalived, настроил.

global_defs {
      notification_email {
        root@gateway
      }
      notification_email_from keepalived@yourhost.domain
      smtp_server 127.0.0.1
      smtp_connect_timeout 30
   }
   vrrp_instance VI_1 {
       state MASTER
       interface eth0
       virtual_router_id 51
       priority 100
       advert_int 1
       authentication {
           auth_type PASS
           auth_pass 1111
       }
       virtual_ipaddress {
           192.168.2.250
       }
   }
  virtual_server 192.168.2.250 8080 {
       delay_loop 6
       lb_algo rr
       lb_kind NAT
       nat_mask 255.255.0.0
       persistence_timeout 600
       protocol TCP

       real_server 192.168.2.3 8080 {
           weight 1
           HTTP_GET {
               url {
                 path http://yandex.ru/white.html
                 status_code 200
               }
               connect_timeout 10
               nb_get_retry 3
               delay_before_retry 8
           }
       }

#       real_server 192.168.2.2 8080 {
#           weight 5
#           HTTP_GET {
#               url {
#                 path http://yandex.ru/white.html
#                 status_code 200
#               }
#               connect_timeout 10
#               nb_get_retry 3
#               delay_before_retry 8
#           }
#       }
#   }
(для тестирования не использовал второй сервер)

Всё вроди как правильно, интерфейсы настроены нормально, iptables, SELinux - выключены, на всякий случай ip_forward=1. НО, с машины клиента не телнетится на 192.168.2.250 8080, хотя с самого сервера (где стоит балансировщик) заходит. Смотрел tcpdump'ом, с клиента пакеты приходят на балансировщик, но дальше на сервер с прокси не доходят.

ps. пробовал менять параметр lb_kind на DR - клиент так же не может подключиться, и сервер тоже не подключается (смотрел tcpdump'ом - пакеты доходят к прокси но не возвращаются).

Собственно вопрос, что я делаю не так ?

Ответ на: комментарий от kdask

Да, надо раскомментировать последнюю закрывающую скобку. Но, не помогло ;)

menlfik ()
Ответ на: комментарий от apmucm

[root@gateway ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.250:8080 rr persistent 600
  -> 192.168.2.3:8080             Masq    1      0          0

При подключении с клиента появляется InActConn.

menlfik ()
Ответ на: комментарий от menlfik

Собственно вопрос, что я делаю не так ?

Не прочитал внимательно документацию по работе ipvsadm (LVS).

Выдержка из доков: «In normal NAT, masquerading is the rewriting of packets originating behind the NAT box. With LVS-NAT, the incoming packet (src=CIP,dst=VIP, abbreviated to CIP->VIP) is rewritten by the director (becoming CIP->RIP). The action of the LVS director is called demasquerading. The demasqueraded packet is forwarded to the realserver. The reply packet (RIP->CIP) is generated by the realserver»

Я так понял, что клиенты находятся в тойже сети 192.168.2.0/24. Верно? Тогда реализация LVS-NAT работать не будет. Имхо, в таком случае использовать DR (direct routing).

apmucm ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.