Всем привет,
похоже, есть проблемы с обработкой сессий фермы NAT. После того, как один или несколько бэкендов выходят из строя, все или некоторые клиенты больше не могут подключиться, даже после того, как бэкенды снова запускаются. Помогает только перезапуск фермы.
Моя конфигурация:
– RELIANOID Версия CE 7.6.1
– ферма l4xnat, TCP, NAT, сохранение исходного IP-адреса, farmguardian check_tcp (разрыв соединений), несколько бэкэндов
Вот что я узнал:
а) /usr/share/perl5/Relianoid/Farm/L4xNAT/Backend.pm в setL4FarmBackendsSessionsRemove:
строка 307: 'if ($value eq $value_check)' никогда не работает, например, «80000201» eq «201»
б) Удаление сеансов работает ненадежно, когда несколько бэкэндов выходят из строя одновременно (после быстрого исправления приведенной выше строки путем удаления 80000 из $value)
Пример вывода «nft list map ip nftlb persist-myfarm»:
Все три бэкэнда запущены:
таблица ip nftlb {
карта сохраняющаяся-myfarm {
тип ipv4_addr : отметка
размер 65535
тайм-аут 12ч
элементы = { 192.168.1.11 тайм-аут 12h истекает 11h59m56s208ms : 0x80000200, 192.168.1.12 тайм-аут 12h истекает 11h59m51s32ms : 0x80000201,
192.168.1.10 тайм-аут 12ч истекает 11ч59м54с508мс : 0x80000202 }
}
}
Одновременное отключение бэкэндов 201 и 202, сеанс исходного IP 192.168.1.12 не был удален:
таблица ip nftlb {
карта сохраняющаяся-myfarm {
тип ipv4_addr : отметка
размер 65535
тайм-аут 12ч
элементы = { 192.168.1.11 тайм-аут 12h истекает 11h59m59s412ms : 0x80000200, 192.168.1.12 тайм-аут 12h истекает 11h59m47s92ms : 0x80000201 }
}
}
С наилучшими пожеланиями,
Стефан
Привет, Стефан!
Спасибо за ваш отчет, мы смогли воспроизвести проблему. Мы тщательно проанализируем ее и вскоре вернемся к вам с правильным решением.
Cheers.
Привет, Невола,
отлично, спасибо, что обратили на это внимание!
С наилучшими пожеланиями,
Стефан
Привет, Стефан, у нас есть патч, который исправляет эту проблему.
Не могли бы вы написать нам? support@relianoid.com чтобы мы могли облегчить исправление.
Cheers.