MultiWan +SSTP

Тема в разделе "Вопросы начинающих", создана пользователем Pavel N, 14 дек 2018.

  1. Pavel N

    Pavel N Участник

    Доброго времени суток Всем

    Есть задача организовать l2 туннель между офисом и датацентром
    Датацентр один статический белый IP
    Офис - Основной канал статический белый IP
    - Резервный канал - роутер со стабильным внутренним IP в роли шлюза второго канала с модемом - серый динамический IP с неизвестным видом тунеля и пробросами и ограничениями от провайдера телефонии (Tele2)

    На сейчас - работает IPIP+IPsec +EoIP поверх между основным каналом и датацентром - все стабильно и без проблем т.к. оба IP белые и стационарные

    Пробовал поднять для резервного канала SSTP соединение - SSTPсервер на стороне датацентра - и SSTP клиент на стороне офиса через резервный канал (и через него в дальнейшем поднимать EoIP и далее по схеме) - с одного канала схема работает и переключение меня устраивает

    (Оба EoIP тунеля включены в бриджи и на обоих сторонах включен RSTP и для резервного туннеля выбрана Path-Cost больше чем для основного, т.е резервирование и переключение каналов возложено на L2 и RSTP)

    При реализации Multi Wan опирался на то, что было изложено в докладе Ильи Князева
    пинги по каналам для проверки ходят как и ожидается с одного канала на один с другого на другой, при отключения канала в основную таблицу роутинга не уходят, разделение доступа куда для проверки пускать трафик работает через /ip Route Rules

    Все хорошо когда адреса разные

    НО для SSTP у которого я не могу управлять адресом источника эта метода не работает
    я не могу в Rules по получателю переключить работу на резервный канал т.к это затронет и основной канал у которого тот же адрес получателя пакетов.

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

    я осознаю что в пиковом случае можно запросить у датацентра еще один адрес и пустить резервный канал на него и в route-rules прописать маршрут к нему на который сработает SSTP клиент - НО хотелось обойтись без доп. расходов и телодвижений на стороне датацентра и в другом месте где нужна схожая схема работы такой опции у меня нет ...

    Пробовал управлять через Mangle в цепочке Output маркировать соединение как ISP2
    в таблице установленных соединений канал числится с маркировкой ISP2 но адрес с которого он поднимается - адрес основного канала
    Эпизодически по непонятной мне схеме ситуация меняется и канал поднимается с резервого канала и маркировкой ISP2 Но потом меняется снова на основной канал

    Стабильности Нет ... и это проблема (не микротика а моя ... )
     
  2. Pavel N

    Pavel N Участник

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

    Добиться предсказуемого и управляемого поведения от туннеля SSTP мне не удалось, несмотря на все мои попытки управлять процессом установления связи, маршрут строился на базе основной таблицы маршрутизации и с использованием маршрута по умолчанию что в моем случае не подходило (нужно было чтоб SSTP клиент выходил в мир с адреса резервного канала всегда - НЕ Удалось)

    Для решения рабочего вопроса заказал у провайдера в датацентрре еще один IP который оказался в том-же диапазоне адресов рядом с основным каналом и шлюз по умолчанию для обоих адресов один и тот-же - что сильно упростило задачу.
    1. Просто добавил на микротик в датацентре на внешний интерфейс еще один адрес (задача - принимать тунель SSTP на этом адресе и более ничего)

    2. На офисном микротике перестроил тунель SSTP на новый адрес
    3. В разделе Route Rules добавил правило указывающее в явном виде что общение с этим IP только через резервный канал (LookUP - in This Table Only- toISP2)
    Это правило запрещает общение с адресом для установки туннеля всем кроме резервного канала, блокируя использование для этого основной таблицы маршрутизации)

    Итого - между офисом и датацентром поднято 2 туннеля (IPIP+IPSec - через ISP1) и (SSTP- черезISP2) каждый может ходить в датацентр только через своего провайдера интернета

    4. Поверх туннелей подняты EoIP туннели и оба туннеля заведены в бридж вместе с локальной сетью датацентра и локальной сетью офиса

    Оба туннеля в сущности образуют Ehternet петлю т.к. оба начинаются и заканчиваются в одних и тех же бриджах и между бриджами образуется 2 независимых маршрута что не есть правильно и грозит проблемой
    5. Для того чтоб управлять петлей из двух EoIP туннелей в бриджах были изменены настройки и включен механизм RSTP
    5.1 чтоб оба бриджа не боролись друг с другом за право главенствования - тот что в датацентре был директивно(мной) назначен главным из двух для этого был уменьшен показатель Priority c 8000-> 7000 Hex выбор главного у того у кого меньший показатель из обоих
    5.2 Чтоб указать какой из маршрутов для меня является основным а какой резервным я так-же поменял на резервном туннеле в разделе Bridge-Ports
    PRIORITY с 80 на 90 HEX
    PathCost с 10 на 20 HEX
    Internal Path Cost с 10 на 20 HEX
    сделал это на обоих маршрутизаторах в офисе и датацентре

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

    После восстановления основного канала - сначала восстанавливается маршрутизация и трафик через основной канал из офиса, затем поднимаются туннели IPIP затем EoIP ( Но все время, пока все оживает и включается, пока не поднимется EoIP туннель основного канала, трафик спокойно без перерыва идет через резервный туннель не обрывая сеанса, затем RSTP быстро обнаруживает петлю и переключает работу с резервного EoIP на основной вот тут и теряется 1-2 пинга что приемлемо для моих задач)