Перейти к содержимому
Калькуляторы

mikrotik, резервирование роутера и conntrack когда VRRP надо дополнить чем-то ещё...

Приветствую всех!

 

Помогите, пожалуйста, найти решение для хотелки.

 

Исходные данные:

- 2 провайдера (если важно, никаких PPP, сразу на eth у одного статический адрес, у второго dhcp)

- два микротика

- коммутировать их можно как угодно, есть ещё свич с поддержкой VLAN

- несколько машин в LAN

 

Что хочу получить в итоге: сохранять связь машин в LAN с интернетом при отказе любого из провайдеров или самих роутеров. При этом в полнофункциональном режиме проброс портов до машины в LAN должен корректно работать для обоих провайдеров. При аварии роутера терять одного провайдера допустимо. Время переключения не первостепенно, простой допустим даже в минуты.

 

В какие стороны пробовал копать сам:

Если ставить только один микротик - то в него заводятся оба провайдера, check-gateway или скрипты, conntrack, PCC и нет проблем.

Вот только если отрубается сам роутер по какой-то причине? (в частности, помер тут недавно UPS, на котором этот роутер жил и всё, связи больше нет)

Ок, тоже рядовое решение - добавляем второй роутер, одного провайдера заводим на него, включаем VRRP. Но это решение для исходящего трафика. А на входящем закономерно получаю бяку: если из интернета приходит пакет через провайдера backup-роутера, тот передаётся машинке в LAN, а оттуда машинка отвечает на master-роутер, который об этом соединении ничего не знает и отправляет через своего провайдера. Т.е. не туда.

 

Прежде чем строить какие-то костыли решил посоветоваться, нет ли какого-то более стандартного решения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хочу чего-то очень странного? Или чего-то очень простого, что должно гуглиться за час?

 

Вот такой вариант сильно наркоманский?

В каждый микротик воткнуть по провайдеру, включить VRRP, между роутерами сделать отдельный VLAN.

Исходящий из LAN-сегмента трафик раскидывать через PCC одну часть напрямую в провайдера этого роутера, вторую передавать второму роутеру по этому vlan'у.

Входящий трафик от провайдера принудительно заворачивать в этот vlan для регистрации в conntrack второго роутера. Наверное, достаточно так отправлять только первый пакет соединения.

Вроде бы в конечном итоге пакеты должны ходить куда надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Я бы поставил линукс-тазики, или если объем трафика небольшой - какое-то сохо, перешитое в опенврт, и поднял бы conntrackd из conntrack-tools чтобы синхронизировать коннтрак.

 

Ну либо мириться с тем, что при смерти одного из роутеров сессии порвутся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну либо мириться с тем, что при смерти одного из роутеров сессии порвутся.

Половина коннектов в любом случае порвётся - без роутера же будет физически недоступен подключённый к нему провайдер.

То что порвутся соединения - это пофиг. Всё-таки довольно редкая ситуация и это гораздо лучше, чем вообще без связи оказаться.

 

Трафика не слишком много - от 2k до 10k pps, 30-150мбит/с суммарно по обоим аплинкам.

conntrackd и openwrt - хм, любопытно. Вроде бы даже на имеющийся RB951G-2HnD можно поставить openwrt. Только проверю, можно ли будет потом ros обратно впилить или это безвозвратно.

Изменено пользователем cobald

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пробую собрать из пары openwrt. L3 топологию я ведь правильно понял?

post-130384-068384500 1444829085_thumb.png

Входящий от провайдеров трафик фиксируется в conntrack, реплицируется на соседа и отдаётся напрямую в локальную сеть.

А обратно: VRRP мастер получает пакет от клиента. По conntrack видит, через какого провайдера надо отправить пакет. Если это провайдер этого роутера - то отправляет напрямую. А если это провайдер другого роутера, то отправляет пакет на отдельный интерфейс до второго роутера. Второй роутер все входящие пакеты с этого линка отправляет сразу через своего провайдера.

И ещё один vlan между роутерами понадобится для изоляции conntrackd от остального мира.

 

Всё правильно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Входящий от провайдеров трафик фиксируется в conntrack, реплицируется на соседа и отдаётся напрямую в локальную сеть.

Реплицировать на соседа нафига? Скучно соседу, пускай чужие байтики полопатит?

 

Запустить conntrackd, чтобы таблицы соединений синхронизировать. Оба аплинка завести на оба роутера через свич, и заюзать VRRP на всех интерфейсах. Итог - резервирование всего л3. Как-то так.

 

Возможно и получится маршрутизировать пакеты согласно коннтрака, но как это просто сделать - не представляю. Хотя, если у провов нет фильтра по source IP, все будет работать и без VRRP на аплинках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Коряво написал - реплицируется состояние conntrack через conntrackd, а сами пакеты данных передаются в LAN напрямую этим роутером.

У провайдеров фильтр по MAC'у точно, возможно ещё какие-то, не проверял. Соответственно в одном L2 домене вещать с двух одинаковых маков - хорошо это работать не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У провайдеров фильтр по MAC'у точно, возможно ещё какие-то, не проверял. Соответственно в одном L2 домене вещать с двух одинаковых маков - хорошо это работать не будет.

VRRP демон может иметь возможность использовать внешние скрипты - можно и гасить/поднимать интерфейсы с одинаковыми маками...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не в ту сторону смотрите - нужно больше микротиков.

 

На каждого провайдера ставите по микротику, каждый анонсит дефолт через OSPF, через нетвоч пингуете что-то в инете, если пинг перестал ходить, убираете анонс дефолта. Этим решаете проблему отказа операторов и самих микротиков, если оператор отключится, или сломается микротик, эта ветка выйдет из работы.

Далее ставите еще один микротик, к которому уже и подключаете потребителей. Если нужен проброс портов - то с первых двух делаете пробросы на третий, а уже с него пробросы на конечные станции.

Если хотите зарезервировать микротики на каналах, хотя они обычно сами по себе не ломаются, просто ставите по микротику дополнительно, прописываете те же сетевые реквизиты, только другие сети для OSPF, они друг друга пингуют и в случае не доступности берут функционал на себя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.