MultiWAN (USB3G+ADSL+Optic_Fiber) перестало срабатывать переключение каналов



  • Доброе время суток знатоки pfSense.
    установлена pfSenese 2.3.
    Настроена и работало с некоторыми нюансами данная схема (на рисунке) с 2016г
    схема.png
    , но тогда было два провайдера (WAN1 + WAN2) переключалось успешно в обоих направлениях по схеме отказоустойчивого соединения (менялся маршрут по умолчанию и шлюз по умолчанию на соответсвующего доступного провайдера), но от WAN1 (DHCP) зависал его DNS_WAN1 в списке днсов и доменные адреса интернета не разрешались. Не решил эту проблему и ручками убирал эту строчку в файле /etc/resolv.conf.
    Но скорости WAN1 не хватало и добавил 3G/4G USB HUAWEI E8372h-153 модем в качестве дополнительного балансирующего канала вместе с WAN1, при условии ,что WAN2 откажет.
    Все сделал по статье и интерфейс ue0 создается. Краткая инструкция ниже как делал ниже:
    ИНСТРУКЦИЯ по установке на pfSense 2.3.1 модема HUAWEI E8372h-153


    1. Скачиваем usb-modeswitch (из комендной строки)
      pkg add http://pkg.freebsd.org/freebsd:10:x86:64/release_3/All/usb_modeswitch-2.2.5.txz

    2. Создаем файл конфигурации E8372 /usr/local/sbin/lte.cfg с содержимым:
      #Huawei E8372
      DefaultVendor=0x12d1
      DefaultProduct=0x1f01

    TargetVendor=0x12d1
    TargetProduct=0x14db

    MessageContent="55534243123456780000000000000a11062000000000000100000000000000"
    NoDriverLoading=0
    EnableLogging=1
    ###################################################

    1. Создаем скрипт с параметрами на исполенние (chmod +x) по следующему пути /etc/rc.d/lte.sh
      #!/bin/sh
      /usr/local/sbin/usb_modeswitch -c /usr/local/sbin/lte.cfg
      sleep 8
      /sbin/ifconfig ue0 up
      dhclient ue0
      camcontrol eject da0

    2. Запустить скрипт из комендной строки или через WebShellCmd /etc/rc.d/lte.sh
      должен появиться ue0 интерфейс в вэбморде. Присоединяем его (assign) и включаем DHCP-клиент для получения настроек (IP,DNS,Gateway) от модема.

    3. При загрузке pfSense при подключенном модеме он не сам не сконфигурируется, поэтому его необходимо инициализировать скриптом ДО инициализации всех интерфейсов.
      В файл /etc/rc.bootup
      добавляем строку вызова скрипта определения модема до инициализации интерфейсов pfSense
      shell_exec('/etc/rc.d/lte.sh');

    ПРИМЕЧАНИЕ: Если модем неизвестный то файл настроек можно получить путем анализа данных снифера USB порта (USBSnoop-WinXP, USBlyzer-Win7/8/10) при подключении можема с заранее установленными драйверами с вирт.сдрома.
    Для этого в трафике нужно найти 16-ричное значение команды переключения в режим модема драйвером windows ("MessageContent")
    В процессе єксплуатации данного модема 24/7/365 замечено, что спустя 10-14 дней он "зависает", причем есть второй такой же - та же ситуация. Сам модем пингуется, но интернета за ним нет (wifi на нем включен и подключались смартфонами и проверяли что инет отсутсвует). Спасает его отключение из гнезда usb и обратное включение с последующим выполнением скрипта для его инициализации. Но это некорректное выключение. Для себя составил последовательность условно "правильного" выключения:

    1. camcontrol eject da0
    2. вывести отключаемый шлюз из группы шлюзов балансировки (Never)
    3. шлюз disable
    4. интефейс ue0 = disable
      вытаскиваем usb

    Если, кто подскажет как это исправить буду признателен. На данный момент тестирую вариант исключить некорректность утилиты usb_modeswitch путем параллельной установки и работы ПК с Windows + HUAWEI E8372h-153, какая из них "зависнет". Такое впечатление, что переполняется какой-то буфер...

    Но вопрос по сути темы:
    При падении основного канала WAN2 должно происходить переключение на резервный канал, а вернее их балансировщик, но шлюз по умолчанию в netstat -r остается от первого провайдера и соответсвенно переключения не происходит.
    Работало же, но в какой из моментов перестало не могу сказать (редко на резервный канал переключаю), т.к какие-то изменения в конфиг вносил и в какой момент что-то пошло не так не заметил.

    P.S:

    1. галочка System-Advanced-Miscellaneous-Default gateway switching стоит
    2. Шлюзы GW_VSHT - я его исключил из балансировщика и он нужен для статического маршрута в локальную сеть за роутером в сети LAN
    3. VPNC1 - это клиент впн который поднимается на любом из доступных провайдеров и не прописывает шлюз по умолчанию путем запрещения в его настройках route-noexec, route-nopull
    4. пример балансировщика, шлюзов, ната на картинках ниже
      nat.png
      multiwan.png
      gw-group.png


  • Добрый

    установлена pfSenese 2.3.

    Переходите на ветку 2.4. Много нового.

    @dvv06 said in MultiWAN (USB3G+ADSL+Optic_Fiber) перестало срабатывать переключение каналов:

    но от WAN1 (DHCP) зависал его DNS_WAN1 в списке днсов и доменные адреса интернета не разрешались.

    Не используйте DNS-ы провайдера. Пользуйте общедоступные. Тот же 1.1.1.1 (он и DOH умеет).

    Не используйте в кач-ве Monitor IP GW провайдера (и любые ip провайдера) . Пользуйте общедоступные ip DNS-серверов, напр.

    Такое впечатление, что переполняется какой-то буфер...

    Для этого есть логи. В любой непонятной ситуации - логи.


    Зачем для Триолана вы адрес яндекс-DNS мониторите? Вы ж из UA. Его вам завтра "закроют" и будете голову ломать "а чого цэ воно нэ робэ?"


    Что-такое 192.168.1.81 ? Это др. роутер? Иначе зачем там GW ?


    Скрин правил fw на ЛАН покажите.



  • насколько я понимаю в 2.4 версия openvpn обновилась и с >=2.4 уже не поддерживает клиенты на windows xp, а это для меня важно. Максимум могу обновится в пределах ветки 2.3.х

    DNS првайдера я в качестве монитор_ip и в качестве dns не использую вообще. Только публичные.
    main.png

    гугловские 8.8.8.8, 8.8.4.4 только два поэтому приходится искать еще публичные стабильные (яндексовские использую). А указать их оба в разных WANах не получается, т.к форма не дает повторений IP_Monitoring, видимо создается маршрут для мониторинга этого айпи привязаного к провайдеру

    Да. 192.168.1.81 - там роутер а заним сеть (так исторически сложилось)
    монитор_gw.png

    Правила LAN и LAN2:
    FW-LAN.png
    FW-LAN2.png



  • @dvv06 said in MultiWAN (USB3G+ADSL+Optic_Fiber) перестало срабатывать переключение каналов:

    уже не поддерживает клиенты на windows xp

    При чем тут ОС клиента? PF совершенно безразлично, какой клиент будет им обслуживаться. Разница может быть только в поддержке IPV6, которая на старых ОС может быть неполной или отсутствовать.

    Для ветки 2.3 нет x64 версии, поэтому путь обновления в общем такой - экспорт конфига из 2.3, установка 2.4, ипорт конфига.
    Важно. При экспорте конфига отметить" Do not backup package information."
    Пакеты (если установлены) придется переустановить.
    https://docs.netgate.com/pfsense/en/latest/install/upgrade-guide.html



  • насколько я понимаю, вот тут прямо сказано что "Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions."
    https://openvpn.net/community-downloads/

    С обновлениями и импортом конфига у pfSense всегда были проблемы и косяки, не хотелось бы вылавливать по-новому уже на 2.4, ради одного нерабочего косяка на 2.3, как говорится "лучшее враг хорошего", "работает - не трогай!" :-)
    Хотелось бы понять причину текущей неправильной работы, а не просто тупо обновляться, есть какие-то мнения...?

    Порылся в англоязычной версии форума, нашел ответы с теми же проблемами но с уже обновленнной версией pfSense и даже указание на проблемный файл бэкэнда
    https://redmine.pfsense.org/issues/9004
    и его ручная правка:
    file /etc/inc/gwlb.inc

    line 1112 replace -> if ($gwgroupitem['gwip'] == $currentdefaultgwip) {
    BY-> if (!empty($currentdefaultgwip) AND $gwgroupitem['gwip'] == $currentdefaultgwip) {
    

    И самое интересное то ,что даже в версии 2.4.4 все еще это не исправлено и приходится править вручную

    Но в этого кода с этими переменными нет в моей версии 2.3, и какие изменения нужно подправить в этом файле принимо к 2.3 мне непонятно, может кто знает...



  • @dvv06 said in MultiWAN (USB3G+ADSL+Optic_Fiber) перестало срабатывать переключение каналов:

    DNS првайдера я в качестве монитор_ip и в качестве dns не использую вообще. Только публичные.

    "Только публичные"? Это не так.

    wewew.png

    С обновлениями и импортом конфига у pfSense всегда были проблемы и косяки

    Это не так-2. Сегодня коллега обновился с 2.2.6 до 2.4 простым подкидыванием конфига от первого. Без пакетов ,ес-но.

    Да. 192.168.1.81 - там роутер а заним сеть (так исторически сложилось)

    Сложилось - не значит правильно. Зачем необходимо доп. звено в виде еще одного роутера?
    Для ви-фи? Так в случае с ви-фи делается не так. Роутер переводится в режим простой AP. Всем остальным заведует пф. А если роутер умеет Openwrt , так еще и гостевые сети настроить можно\нужно, чтобы все, кто подключались к ви-фи не попадали в рабочую сеть вашей конторы.

    И еще. Есть вопросы по правилам fw на LAN-ах. Точнее, по их корректности.
    Как я понимаю (скрин ниже), вы разрешаете тем, кто в алиасе IPTV_Users доступ к локальному адресу пф на LAN на порт 4022 (что у вас на нем живет?) .И при этом еще и GW явно указываете. Зачем там GW? Вы же к LAN addr доступ даете. Мракобесие какое-то.
    sdasdasd.png

    И вишенка на торте (скрин ниже). На кой ? Вы явно разрешаете тем, кто уже наход-ся в сети LAN доступ к (внезапно) LAN. Или это вы так непрозрачный squid разрешили? На LAN2 такая же "каша".
    dfsdfdf.png

    Вам бы с правилами сначала разобраться. А уж после балансировкой заниматься.

    Зы. InternetWorkstations2 . Глаз режет.

    Зы2. Core i5 только для пф? Да это как "топить печь ассигнациями". Есть же виртуализация. Освойте. Оч. жизнь упрощает.



    1. по ДНС я уже убрал галку получать днс от провайдера на ване. их уже нет. только публичные. Пробовал переключаться на резервный канал 3G (WAN1 сейчас недоступен) - все равно шлюз по умолчанию в netstat -r остается от предыдущего вана.
    2. обновляться и перенастраивать все пакеты ради косяка, который работал до какого-то момента и перестал после чего-то я не буду. слишком много проблем будет с перенастройкой пакетов. Это приберегу на очень крайний случай.
    3. роутер есть в сети не для ви-фи, там сеть отдельной фирмы, со своими компами и настройками на них в своей подсети, просто получается что мы им даем резервный/основной инет. так что никак не повлияешь уже административно.
    4. правила в начале это когда-то я ставил udpxy (его уже нет), но правила остались, а шлюз GW_Triolan указан, т.к вещающий комп (судя по плайлисту каналов) находился в сетке провайдера и доступен только на этом провайдере, поэтому так. Но они ни на что не влияют уверяю вас. Работало всегда с ними без проблем и балансировщик и все остальное. Могу убрать если думаете, что из-за этого
    5. Алиас InterтetWorkstation2 был создан для того, чтобы в чрезвычайной ситуации разрешить только определенным компам из локалки доступ к проксе. А так там ранее было LAN net
    6. да у меня непрозрачный squid и заворачиваю на него
    7. по железу - бралось с запасом, чтобы хватило и хватает, хотя через полгода онлайн работы возникают какие-то "фрагментации" точно уже не помню, но вычитал и увеличил один параметр в настройках pfSense (позже его исправили обновлениями)

    З,Ы: Также заметил, что если создаешь шлюз (как у меня) в LAN/LAN2 и статический маршрут до сетки за ним, и ставишь "Never" в балансировщике на против его, то он все равно участвует в балансировке всей группы, поэтому я его принудительно гашу "force Down" в настройках шлюза и тогда балансировщик думает ,что он офлайн и выбирает уже из настоящих Wan'ов



  • @dvv06 said in MultiWAN (USB3G+ADSL+Optic_Fiber) перестало срабатывать переключение каналов:

    1. правила в начале это когда-то я ставил udpxy (его уже нет), но правила остались, а шлюз GW_Triolan указан, т.к вещающий комп (судя по плайлисту каналов) находился в сетке провайдера и доступен только на этом провайдере, поэтому так. Но они ни на что не влияют уверяю вас. Работало всегда с ними без проблем и балансировщик и все остальное. Могу убрать если думаете, что из-за этого

    Дело не в убрать-добавить. Дело в том, что для пф каждое правило - это приказ действовать. И от того, КАК правило написано зависит корректность работы в целом.

    1. да у меня непрозрачный squid и заворачиваю на него

    Круто. Только правило для разрешения доступа к порту, на к-ом крутится squid выглядит не так (и не факт, что его надо явно рисовать при установленном сквиде - "вдруг" сквид сам порт в fw разрешает(?) ). И заворачивать тут ничего не надо - достаточно корректного правила fw на LAN и явно указывать адрес и порт прокси в браузерах клиентов (или по dhcp файл с настройками прокси раздавать автоматом) . Эт при транспаренте пф сам весь HTTP(S) на сквид заворачивает.

    1. по железу - бралось с запасом, чтобы хватило и хватает, хотя через полгода онлайн работы возникают какие-то "фрагментации" точно уже не помню, но вычитал и увеличил один параметр в настройках pfSense (позже его исправили обновлениями)

    Про виртуализацию уже писал. Надеюсь быть услышанным.

    З,Ы: Также заметил, что если создаешь шлюз (как у меня) в LAN/LAN2 и статический маршрут до сетки за ним, и ставишь "Never" в балансировщике на против его, то он все равно участвует в балансировке всей группы, поэтому я его принудительно гашу "force Down" в настройках шлюза и тогда балансировщик думает ,что он офлайн и выбирает уже из настоящих Wan'ов

    Так у вас же еще шлюз и в др. лок. сеть имеется, а не только в инет. И пф ,ес-но, будет пытаться по дефолту и его задействовать при балансировке, если ему это явно не запретить. Логично же.



  • буду в Пн тестить с убраными правилами на udpxy. Эти правила были написаны с целью дать доступ только определенной группе (элиасу) на iptv. Первое должно разрешать элиасу доступ к порту 4022 udpxy, который в свою очередб крутится на локальном адресе пфсенса и соответсвенно видоизменен плайлист на ползователях iptv. Второе запрешает всем остальным доступ к этому порту в локальной сети. Работало корректно когда был сам udpxy.

    Как выглядит корректное правило для непрозрачного прокси на порту 3128 для локальной сети?
    (в браузерах прокси с портом прописан)

    @werter said in MultiWAN (USB3G+ADSL+Optic_Fiber) перестало срабатывать переключение каналов:

    Так у вас же еще шлюз и в др. лок. сеть имеется, а не только в инет. И пф ,ес-но, будет пытаться по дефолту и его задействовать при балансировке, если ему это явно не запретить. Логично же.

    Конечно логично, но в балансировщике стоит на против этого шлюза "Never" а он его все равно задействует игнорируя это, а это уже не логично. Поэтому костыль который я придумал выглядит так, что ставлю этот шлюз в "force Down". По крайней мере так работало.

    Если это как-то поможет, то единственные изменения которые я делал (я веду список изменений в журнале) это добавления/изменения ip адресов в элиасах (типа скайпа, вайбераб клиентбанков),добавил еще одного пользователя к серверу опенвпн, но они никак не могли повлиять на работу балансировщика. И добавил новый статический маршрут до того самого роутера с созданием GW_SHTC и правила для LAN, LAN2 - мне кажется это могло как-то балансировщиком расценено, как что-то выходящее за его понимание :-) Я даже позже гасил эти настройки в disable - всеравно остается маршрут по умолчанию от предыдущего провайдера.



  • В общем проверил с новыми вводными полученными по полю "Weight" у меня на основном провайдере WAN3 было мной выставилено 30, WAN1 = 1, WAN3 (OPT4) = 2 и команда cat /tmp/rules.debug | grep MyMultiWAN выдвала забитую шлюзом 109.87.20.254 "выборку"
    GWMyMultiWAN = " route-to { ( em1 109.87.20.254, 109.87.20.254 , 109.87.20.254 ,109.87.20.254 .... ) } "
    .........
    после того как изменил на всех провайдеров веса в 1, шлюз по умолчанию начал переключаться и вывод этой комнады выдавал:

    [2.3-RELEASE][admin@nacyalnika.local]/root: cat /tmp/rules.debug | grep MyMultiWAN
    GWMyMultiWAN = "  route-to { ( ue0 192.168.8.1 )  }  "
    .........
    

    и по traceroute все шло куда нужно, но по прежнему ничего не пингается и имена не разрешаются.



  • В общем попытался как-то сузить проблему. Получается, что при включении этого модема в комп с Windows он выдает 6-8 Мбит/с (с антеной 13-16Мбит/с), а включение его по инструкции вЫше как интерфейс ue0 выдает до 6 Мбит/с (с антеной таже скорость <=6 МБит/с) причем в основном до <=1 МБит/с с всплесками до 6Мбит/с. При єтом соответсвенно для разрешения имен не хватает канала на всех и пинги теряются. Смотрел при этом в настройки DNS lookup как в вєб-интерфейсе, так и через коносль - получается ,что то один днс ответит, то другой, а остальные "No response". Пробовал со ворым таким же модемом - ситуация на pfSense такая же, т.е не в модеме дело. Оcтается usb-modeswitch. Установлена usb_modeswitch-2.2.5, пробовал обновится до usb_modeswitch-2.5.2 на резервном пк - все внешние интерфейсы не отвечают, кроме периодически уходящего в "No response" DNS от этого провайдера. Причем на этом компе нагрузка от пользователя только от меня. Вот что в консоли получается
    11.jpg


Log in to reply