Не работает Routing после перезагрузки.



  • Всем хорошего настроения!!
    Уважаемые гуру , прошу помощи т.к. я как сорт яблока "Грин" зелен в pfSense.. От одного слова "pfSense" в дрожь бросает..
    Во общем проблема следующая, Стоит в офисе 1  pfSense (2.4.3) на нем поднят L2tp сервер.
    На другой стороне офис 2 зухель кенеетик как клиент.
    Сеть внутри офиса 1 10.168.45.0 сеть внутри офиса 2 10.168.49.0
    Прописаны маршруты на обоих девайсах туда и обратно.  Все работает на ура, пинги летят из обоих сетей.
    НО!!!
    Стоит pfSense  перезагрузить  как маршрут на нем не работает!
    Лечится после того как зайти во вкладку Routing - Gateways открыть вкладку шлюза закрыть нажать Apply или зайти в кладку Static Routes открыть маршрут и обратно закрыть нажать Apply  все начинает работать.
    Странно это .
    Может маршрут не может заработать т.к. тунель еще не успел подняться во время загрузки?
    Чувствую что это какая то мелочь про которую я просто не знаю..



  • А что указано мониторить в настройках шлюза?
    Попробуйте временно поставить галку на "Disable Gateway Monitoring"



  • Эта галка стоит не помогло..



  • Добрый.
    Попробуйте использовать OpenVPN. Кинетик умеет его при перепрошивке в Padavan https://4pda.ru/forum/index.php?showtopic=714487.
    Или использовать ipsec. Кинетик умеет его из коробки в прошивке 2.x



  • Да дело в том, что моя зона ответственности закачивается в офис 1 где pfSense , и проблема именно на моей стороне. т.к. после перезагрузки на той стороне где стоит зуксель все ок.
    При этом я так понял что там стоит кинетик первого поколения  и ipsec нет. Да и собственно озадачиваться там никто этим не хочет.
    Да и странно такая ситуация, когда поднимается после перезапуска pfSense , IP адрес кенетика который он получает в результате подъема тунеля пингуется. Т.е. шлюз после перезагрузки работает. но маршрут который использует этот шлюз, нет.
    Совсем не понимаю логики



  • Да дело в том, что моя зона ответственности закачивается в офис 1 где pfSense
    Если так…
    Попробуйте pfSense ветки 2.3.x. Она будет поддерживаться еще приблизительно год.
    И да. Так как официально импорт конфига с более высокой версии не поддерживается, лучше поднять 2.3.х на отдельной машине и настроить все с нуля. Для теста подойдет практически любой ПК или виртуальная машина.



  • Внимательно просмотреть таблицу марш-ции на пф во время проблемы. И на кинетике бы тоже.



  • @werter:

    Внимательно просмотреть таблицу марш-ции на пф во время проблемы. И на кинетике бы тоже.

    А на что нужно обратить внимание?



  • Значит во время проблемы и во время рабочего состояния в таблицах ничего не меняется.
    Destination Gateway Flags Use Mtu Netif Expire
    10.168.49.0/24 10.168.45.6 UGS 0 1500 re1
    10.168.49.1 10.168.45.6 UGHS 1655 1500 re1

    А если есть другой сервис который может работать с маршрутами??



  • @DIMADUR:

    Значит во время проблемы и во время рабочего состояния в таблицах ничего не меняется.
    Destination Gateway Flags Use Mtu Netif Expire
    10.168.49.0/24 10.168.45.6 UGS 0 1500 re1
    10.168.49.1 10.168.45.6 UGHS 1655 1500 re1

    А если есть другой сервис который может работать с маршрутами??

    А вот и не одинаковые.  оказывается при нерабочем интерфейс после перезапуска re1 , после того как зайти во вкладку шлюзы открыть нажать сейв и применить интерфейс в таблице становится l2tp1 !!  Вот проблема…. почему то после перезагрузки таблицы маршрутов не тот интерфейс ставит..



  • Во общем для себя проблему закрыл как мне кажется кастылем.
    Удалил в пф (веб интерфейс) все шлюз и маршрут.
    Написал скрипт с добавлением статического маршрута.
    Сделал его загрузочным.
    Перезагрузил сначало машинку из консоли и ВСЕ РАБОТАЕТ!!
    Потом перезагрузил пф из веб интерфейса ииии НЕРАБОТАЕТ!!
    Ну пока что этого результата достаточно. Мне не страшны перезагрузки по питанию.
    Но вопрос открыт, что это баг или руkи не от туда!! :)
    Пока что довольный пошол спать.



  • Добрый.
    А если выдавать подключающемуся по л2тп кинетику постоянный ip? Тогда и маршрут можно привязать правильно.

    Написал скрипт с добавлением статического маршрута.
    Сделал его загрузочным.

    С этого места подробнее, пож-та.



  • По поводу статического IP для зукселя это само сабой сделанно. не в этом дело.
    Я так понимаю что когда пф загружается они пишет в таблицу маршрут до того как поднимается тунель.
    Поэтому получается что интерфейс не тунеля задается а интерфейса что смотрит в LAN.
    Адресация следующая LAN пф 10.168.45.0/24 , зуксель 10.168.49.0/24
    Тунель работает так адрес шлюза тунеля пф 10.168.45.5 <–----> зукселя 10.168.45.6
    Маршрут значит route add 10.168.49.0/24 10.168.45.6
    Вот он и задает интерфейс не l2tp т.к. после перезагрузки  он не успевает подняться . Вот и проблема.
    Может не правильно с адресацией в тунеле ?
    Что косается скрипта.
    Кстати вчера полностью все заработало с костылем.
    Как ни перезагружай пф все работает.
    Сделал скрипт script.sh

    #!/bin/sh
    sleep 45
    /sbin/route add -net 10.168.49.0 10.168.45.6 -netmask 255.255.255.0

    sleep это задержка выполнения скрипта 45 сек. хватает что бы все загрузилось и поднялось.
    запихиваю его в папку в моем случае /usr/local/etc/rc.d/ 
    делаю его исполнительным через консоль chmod +x /usr/local/etc/rc.d/script.sh
    даю права chmod 755 /usr/local/etc/rc.d/script.sh
    перезапускаю железку. все ОК..



  • Тут описаны варианты
    Executing commands at boot time:
    https://doc.pfsense.org/index.php/Executing_commands_at_boot_time
    IMHO, удобнее использовать пакет shellcmd.

    я как сорт яблока "Грин" зелен в pfSense.. От одного слова "pfSense" в дрожь бросает..
    Кто-то явно лукавит ;)



  • @pigbrother:

    Тут описаны варианты
    Executing commands at boot time:
    https://doc.pfsense.org/index.php/Executing_commands_at_boot_time
    IMHO, удобнее использовать пакет shellcmd.

    я как сорт яблока "Грин" зелен в pfSense.. От одного слова "pfSense" в дрожь бросает..
    Кто-то явно лукавит ;)

    За подсказку большое спасибо!! .
    хороший инструмент.
    А по поводу зелен в pfSense так и есть. Это первая железка с этим  зверем.

    Ооооочень давно как-то все делали на freebsd поэтому есть кое каие навыки прикручивания костылей )))



  • @pigbrother:

    Тут описаны варианты
    Executing commands at boot time:
    https://doc.pfsense.org/index.php/Executing_commands_at_boot_time
    IMHO, удобнее использовать пакет shellcmd.

    я как сорт яблока "Грин" зелен в pfSense.. От одного слова "pfSense" в дрожь бросает..
    Кто-то явно лукавит ;)

    ёпт! есть же стандартный пакет CRON



  • А ведь да!

    Хотя для целей ТС sleep достаточно.



  • Добрый.

    2 DIMADUR
    Спасибо за объяснение по скрипту.

    IP адрес кенетика который он получает в результате подъема тунеля пингуется. Т.е. шлюз после перезагрузки работает. но маршрут который использует этот шлюз, нет.

    оказывается при нерабочем интерфейс после перезапуска re1  , после того как зайти во вкладку шлюзы открыть нажать сейв и применить интерфейс в таблице становится l2tp1 !!

    Может в скрипт добавить доступность по icmp? Т.е., если есть пинг и в таблице марш-ции нет роута в удаленную сеть - добавляем роут. И скрипт в cron на каждые 5 мин, напр.

    Навскидку :

    #!/bin/sh
    if [[ $(ping -c 4 -i 1 10.168.45.6 | grep -wc "100.0%") -eq 0 && $(netstat -r | grep -w "10.168.49.0/24" | grep -c "l2tp" ) -eq 0 ]] ; then /sbin/route add -net 10.168.49.0/24 10.168.45.6; fi
    

    Попробуйте.



  • @werter:

    Добрый.

    2 DIMADUR
    Спасибо за объяснение по скрипту.

    IP адрес кенетика который он получает в результате подъема тунеля пингуется. Т.е. шлюз после перезагрузки работает. но маршрут который использует этот шлюз, нет.

    оказывается при нерабочем интерфейс после перезапуска re1  , после того как зайти во вкладку шлюзы открыть нажать сейв и применить интерфейс в таблице становится l2tp1 !!

    Может в скрипт добавить доступность по icmp? Т.е., если есть пинг и в таблице марш-ции нет роута в удаленную сеть - добавляем роут. И скрипт в cron на каждые 5 мин, напр.

    Навскидку :

    #!/bin/sh
    if [[ $(ping -c 4 -i 1 10.168.45.6 | grep -wc "100.0%") -eq 0 && $(netstat -r | grep -w "10.168.49.0/24" | grep -c "l2tp" ) -eq 0 ]] ; then /sbin/route add -net 10.168.49.0/24 10.168.45.6; fi
    

    Попробуйте.

    Это уже мы занимаемся допливанием пф, так должно быть по хорошему реализованно в самом ПФ :) :)
    Спасибо за скрипт.. попробую , но тут как бы он не ругался при добавлении существующего маршрута. Во общем надо пробовать.



  • Добрый.

    как бы он не ругался при добавлении существующего маршрута.

    Внимательнее еще раз всмотритесь в код скрипта.

    Маршрут будет добавляться, если выполняются оба условия (условие_1 && условие_2).

    Итого:
    Если нет пинга на 10.168.45.6, то скрипт завершит работу сразу и без проверки на 2-ое условие, т.к. первое не выполнено.
    Если есть пинг на 10.168.45.6 и нет маршрута в 10.168.49.0/24 через l2tp, то  маршрут добавится.
    Если есть пинг на 10.168.45.6 и есть маршрут в 10.168.49.0/24 через l2tp, то скрипт просто завершит работу без попытки добавления маршрута.

    P.s. Одно но. Обязательно убедитесь в том, что зюхел постоянно будет получать адрес 10.168.45.6 в l2tp-туннеле. Иначе "ахалай-махалай"(с) не выйдет.


 

© Copyright 2002 - 2018 Rubicon Communications, LLC | Privacy Policy