Проблема с CARP



  • Уважаемые коллеги.

    Нужна помощь в ликвидации непонятной коллизии. Создан кластер из двух pfSense. Но происходит следующее: любой доступный адрес из WAN, перестает передавать пакеты даже на DG, как только назначается CARP адресом. На остальных интерфейсах CARP адреса работают штатно. В логах пусто.
    Может кто сталкивался или понимает, в какую сторону искать.

    Version: 2.4.2-RELEASE-p1 (amd64)



  • Возможно, в outbound NAT указано использовать WAN, а не CARP адрес…

    Или у Вас проблемы не с WAN-ом pfSense, а с множеством внешних адресов, которые Вы используете для NAT? Кстати, а MASTER/BACKUP определяются правильно? Хотелось бы побольше информации...

    P.S. В ряде случаев проблемы после изменения конфигурации могут лечиться перезагрузкой pfSense.



  • Имеется внешняя сеть \24, я имею под управлением 4 адреса из нее .31, .142, .145, и .173. Адреса .142 и .145 назначены WAN-адресами для двух pfSense, .31 был назначен на WAN CARP, .173 был в резерве. Синхронизация кластера прошла успешно, все данные передались, MASTER/BACKUP определяются правильно. Но оказалось, что OpenVPN сервера перестали подключать клиентов. Дальнейшее исследование и показало, что любой адрес, который назначают на WAN CARP блокируется полностью.
    Сейчас, для обеспечения работы, адрес .31 объявлен виртуальным IP и все OpenVPN сервера работают через него. Backup файервол пришлось отключить, так как он не останавливает сервера на интерфейсах, отличных от WAN CARP. Адрес .173 сейчас назначен WAN CARP.
    C проблемами, лечащимися перезагрузкой, я уже столкнулся и теперь любое действие по изменению конфигурации внешних адресов проверяю перезагрузкой.





  • @werter:

    Добрый.

    https://vorkbaard.nl/openvpn-in-a-pfsense-carp-cluster/

    Взаимно.

    Ссылка ценная, информацию сохранил. Но проблемы начинаются ДО OpenVPN. C адреса WAN CARP не проходят ping/pong до шлюза WAN! Равно при включении на него NAT полностью прекращается выход в интернет.
    К слову, неделю назад ставился кластер на идентичном оборудовании в другом офисе. Там все работает идеально, без дополнительных настроек в OpenVPN. Возможно разработчики уже учли данную проблему и за 4 месяца информация могла устареть.



  • Может здесь что-то найдется https://doc.pfsense.org/index.php/CARP_Configuration_Troubleshooting



  • Такая ситуация ещё может возникать, если указанный IP-адрес уже используется…
    Иногда шлюз или внешний switch может неоперативно обновлять кэш, поэтому, когда всё совсем плохо и неочевидно, я перегружаю и его тоже.



  • @werter:

    Может здесь что-то найдется https://doc.pfsense.org/index.php/CARP_Configuration_Troubleshooting

    Увы, все общедоступные материалы уже проработаны.

    Похоже, надо анализировать конфигурацию на более низком уровне нежели UI. Можете ли вы подсказать, как искать причину блокирования пакета на передаче или приеме для адреса на WAN интерфейсе, если уже известно, что причина в CARP?



  • Смотреть логи и попробовать надампить пакетов для анализа.



  • @yarick123:

    Такая ситуация ещё может возникать, если указанный IP-адрес уже используется…
    Иногда шлюз или внешний switch может неоперативно обновлять кэш, поэтому, когда всё совс Сеем плохо и неочевидно, я перегружаю и его тоже.

    Имеющийся в доступе оптический  модем я тоже перезапускаю.
    Сейчас после последнего перезапуска прошло 18 Hours 40 Minutes 27 Seconds. А пинги так и не ходят.
    И все же мне кажется причина в pfSense, так как пинг сразу восстанавливается стоит лишь убрать адрес из CARP.



  • К слову, неделю назад ставился кластер на идентичном оборудовании в другом офисе.

    У них др. версия пф ? Используйте ее.



  • @werter:

    У них др. версия пф ? Используйте ее.

    Все версии ПО и модели оборудования идентичны.



  • Смотреть логи и попробовать надампить пакетов для анализа.



  • @yarick123:

    Иногда шлюз или внешний switch может неоперативно обновлять кэш, поэтому, когда всё совсем плохо и неочевидно, я перегружаю и его тоже.

    И вы таки были правы, какой-то затык на оборудовании провайдера. С WAN CARP нормально пингуются все адреса кроме провайдерского шлюза! Осталось два критичных вопроса:

    1. чем отличаются пакеты, посланные с адреса, объявленного как WAN CARP, и того же адреса, объявленного как Viptual IP?
    2. как в понедельник объяснить техподдержке, что проверять и куда смотреть, если простой перезагрузки их шлюза будет не достаточно?

    Подключены два файла с содержимым пакетов ICMP request для разного состояния адреса отправителя. Может кто-нибудь сказать, в чем их разница?

    [ICMP VirtIP.txt](/public/imported_attachments/1/ICMP VirtIP.txt)
    [ICMP WAN CARP.txt](/public/imported_attachments/1/ICMP WAN CARP.txt)



  • @MStar:

    1. чем отличаются пакеты, посланные с адреса, объявленного как WAN CARP, и того же адреса, объявленного как Viptual IP?
    2. как в понедельник объяснить техподдержке, что проверять и куда смотреть, если простой перезагрузки их шлюза будет не достаточно?
    1. Насколько я знаю, ничем. CARP Master интерфейс должен передавать ответ, CARP Backup интерфейс должен молчать. Используется один и тот же новый виртуальный MAC адрес. Другие virtual IPs используют MAC адрес физического интерфейса.

    Тут https://doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses описано подробнее. Обратите внимание на

    The MAC address of a VIP will change if the VIP entry is changed between a type that has a unique MAC address, such as CARP, to one that shares a MAC address with a parent interface, such as IP alias or Proxy ARP. Due to the MAC address change, other equipment on the segment may need to have its ARP cache cleared, it may need to be rebooted (cable modems especially), or there may be some other time period that must expire for the ARP cache to update. This may be as few as a couple minutes or up to four hours.

    If a particular configuration does not work with IP alias or Proxy ARP type VIPs, try with a CARP VIP instead, or vice versa. Address or wait out the potential ARP concerns before declaring one particular type a failure, and always be on the lookout for IP conflicts.

    А что происходит, если один pfSense просто выключен?

    1. Пока вообще не понятно, что именно происходит. В принципе, службе техподдержки можно объяснить ситуацию, возможно они что-нибудь скажут.

    @MStar:

    Подключены два файла с содержимым пакетов ICMP request для разного состояния адреса отправителя. Может кто-нибудь сказать, в чем их разница?

    Отличий я не нашёл, за исключением того, что на запрос с WAN CARP не пришло ответа.

    А что из себя представляет рутер? Какие ещё устройства находятся во внешней подсети?



  • @yarick123:

    Тут https://doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses описано подробнее.
    ….
    Отличий я не нашёл, за исключением того, что на запрос с WAN CARP не пришло ответа.

    Собственно, над этим я и сломался. Из файлов видно, что при изменении  типа виртуального IP на CARP и обратно MAC не меняется!!! Что еще может помешать возвращению ICMP на тот же самый IP на том же самом MAC-e? И до сих пор я был бы уверен, что допустил какую-то ошибку в настройке, если бы не сбросил второй pfSense до заводского состояния и не подключил его WAN в локальную сеть. И тут же получил нормально работающий WAN CARP!

    @yarick123:

    А что из себя представляет рутер? Какие ещё устройства находятся во внешней подсети?

    Без понятия, это сторона провайдера. Похоже, что эта /24 сеть распределена на несколько ближайших зданий.



  • Как и предполагалось, техподдержка провайдера на уровне домашних пользователей. "Мы может приехать, установить на своем компьютере ваш IP-адрес и показать, что связь есть". Матка Боска Честерховска! Связь у меня есть, но не во всех вариантах. Что такое "очистить ARP кэш" они не знают, утверждают, что такого у них вообще нет. Даже где взять логи роутера они не знают. И как с ними работать?!

    Еще один тест. Подключил к оптическому модему pfSense, после сброса на заводские установки, напрямую. Назначил только адреса WAN и WAN CARP. Последний доступа к шлюзу не имеет. Меняю тип с CARP на Virtual IP и сразу доступ к шлюзу с этого адреса восстанавливается.



  • Добрый.

    Что такое "очистить ARP кэш" они не знают, утверждают, что такого у них вообще нет. Даже где взять логи роутера они не знают. И как с ними работать?!

    Просите соединить со 2-й или 3-й линией ТП. Меня (иногда) соединяли.



  • Получил исчерпывающийц ответ на общем форуме. Полагаю, многим будет интересно.

    @Derelict:

    To start, your provider is probably not CARP compatible, or it would likely be working.

    When it comes to CARP VIPs and ISPs there are two general principles that they must support.

    CARP advertisements egress sourced from the CARP MAC address. This performs two tasks:

    • The switch sees the CARP MAC address and adds it to its MAC address table

    • The BACKUP CARP node sees the advertisement and does not switch to MASTER

    The ISP, having traffic for the CARP VIP address does an ARP request.

    The pfSense WAN responds to the ARP "WHO HAS" from the interface MAC address but says the address IS AT the CARP MAC. This directs traffic from upstream to the CARP VIP to the CARP MAC address which has previously been installed in the switches MAC address table by virtue of the CARP advertisements.

    Upstream has to support multiple MAC addresses and multicast for CARP to function. ISP gear does some silly-ass crap. Especially residential gear.

    There has to be solid layer 2 between the two CARP nodes and the upstream.

    Представители провайдера заявили, что никто не будет менять конфигурацию только для нас. Финиш.



  • Раз такая "петрушка", то :

    Развернуть пф как ВМ в том же Proxmox. И автобэкапить на сетевое хранилище, напр. В случае выхода из строя легко развернуть резервную копию.

    Или развернуть эээ "несинхронный" (без использования общего хранилища) кластер из 2-ух Proxmox. В этом случае настраивается периодическая миграция ВМ с мастер-ноды на слэйв. Не HA-кластер получается (что-то типа FT), но достаточно надежно и можно быстро стартовать ВМ с пф на др. ноде в случае выхода из строя мастера.

    https://forum.pfsense.org/index.php?topic=136398

    ![2018-03-21 15_33_00-pve.png](/public/imported_attachments/1/2018-03-21 15_33_00-pve.png)
    ![2018-03-21 15_33_00-pve.png_thumb](/public/imported_attachments/1/2018-03-21 15_33_00-pve.png_thumb)



  • В общем будет "несинхронный" кластер из двух NetGate SG-4860, один - рабочий, другой - зеркало. Питание одно на двоих ;) При сбое откроют серверный шкаф, вынут питание из первого и включат во второй.


Log in to reply