Народ, упёрся лбом в стену и не могу сдвинуться.
Было:
1. Роутер на провайдера 1: WAN: X.X.X.X; LAN: 192.168.1.1
2. Роутер на провайдера 2: WAN: Y.Y.Y.Y; LAN: 192.168.1.2
Никакой балансировки и резервирования канала не было. Пользователь сам мог менять маршрут меняя Default Gateway c 192.168.1.1 на 192.168.1.2 и обратно.Сейчас для замены этих двух роутеров взяли одну железку Mikrotik, на которой, конечно же, хотелось бы настроить маршрутизацию и балансировку, но так же оставить и ручной выбор маршрута. Например так:
Ether1: X.X.X.X
Ether2: Y.Y.Y.Y
Ether3: 192.168.1.1, 192.168.1.2, 192.168.1.3
Если у пользователя указан Default Gateway 192.168.1.1, то маршрут определяется автоматически, но если 192.168.1.2 или 192.168.1.3, то пакеты, соответственно, маршрутизируются на Ether1 или Ether2.Возможно ли такое? И если "да" то в какую сторону копать?
> Ether3: 192.168.1.1, 192.168.1.2, 192.168.1.3
> Если у пользователя указан Default Gateway 192.168.1.1, то маршрут определяется автоматически,
> но если 192.168.1.2 или 192.168.1.3, то пакеты, соответственно, маршрутизируются на Ether1
> или Ether2.
> Возможно ли такое? И если "да" то в какую сторону копать?Единственным критерием, по которому роутер сможет определить "выбранный пользователем маршрутизатор", является мак-адрес роутера. Сейчас он один (т.к. роутер один), надо чтобы их стало больше.
Например, организовать интерфейсы Ether3,Ether4,Ether5, вероятно физически соединенные еще одним коммутатором, или еще как-то. Тогда на основании имени интерфейса, через который вошел пакет от пользователя, делаешь маркировку пакета, а на основании маркировки - выбираешь маршрутизацию.
>[оверквотинг удален]
>> но если 192.168.1.2 или 192.168.1.3, то пакеты, соответственно, маршрутизируются на Ether1
>> или Ether2.
>> Возможно ли такое? И если "да" то в какую сторону копать?
> Единственным критерием, по которому роутер сможет определить "выбранный пользователем
> маршрутизатор", является мак-адрес роутера. Сейчас он один (т.к. роутер один), надо
> чтобы их стало больше.
> Например, организовать интерфейсы Ether3,Ether4,Ether5, вероятно физически соединенные
> еще одним коммутатором, или еще как-то. Тогда на основании имени интерфейса,
> через который вошел пакет от пользователя, делаешь маркировку пакета, а на
> основании маркировки - выбираешь маршрутизацию.Спасибо!
Ну разве что три интерфейса в локалку. С какого пришло так и маршрутизировать.
> Ну разве что три интерфейса в локалку. С какого пришло так и
> маршрутизировать.Да. Спасибо. Видимо, так и надо: выделять три интерфейса с разными IP, и смотреть, на какой пришел запрос.
>> Ну разве что три интерфейса в локалку. С какого пришло так и
>> маршрутизировать.
> Да. Спасибо. Видимо, так и надо: выделять три интерфейса с разными IP,
> и смотреть, на какой пришел запрос.Вместо двух доп интерфейсов можно попробовать два PPPoE сервиса. Про ARP-proxy не забыть... Мне кажется для клиента удобнее включать/выключать соединение чем руками в маршруты лазить.
> Возможно ли такое?Да, возможно. Кейс не самый стандартный, но и не экзотический. Важная харакеристика, которая делает его таким, это то что вы делегируете пользователю решать, через какой маршрут он хочет ходить в инет. Это не правильно и не неправильно, что вы вам не говорили (здесь или где-то ещё), а просто ваша данность.
> И если "да" то в какую сторону копать?
Эту задачу реашает та или иная разновидность Policy Based Routing.
https://wiki.mikrotik.com/wiki/Policy_Base_RoutingВ принципе, вам понадобится обеспечить два ключевых момента:
1. Иметь две (или более) таблицы маршрутизации. Одна обычная, которая будет применяться по дефолту, а другая сама по себе, которая будет применяться в специально прописанных случаях (см. п. 2). В обеих таблицах будет присутствовать некий default route.
2. Механизм, позволяющий на основе какого-то критерия (src IP, dst IP, dst port, in-interface и т.д.) выбирать, какую именно таблицу использовать при принятии решения маршрутизации.
У Mikrotik, разные таблицы обозначаются "routing mark". Термин, ИМХО, запутывающий, т.к. он указывает на несколько разнородных сущностей сразу. В документации TLRP по policy routing к Линуксу, понятия "таблица маршрутизации" и "маркировка" более явно различимы, если есть желание вдаваться в суть. Это непринципиально для вашего случая, просто потребуется прописать default gateway в стандартную таблицу (называется main), и второй default gateway в другую таблицу как-её-назовёте. Заранее вторую таблицу создавать не требуется, достаточно начать создавать маршруты на неё указывающие.Выбор конкретной таблицы можно указывать правилами mangle в секции IP/Firewall, с помощью "action" "mark routing". В примере по ссылке выше это делают ориентируясь на "content", вам же, наверное, следует вместо этого указывать in-interface.
Самое простое будет разнести разные адреса 192.168.1.1, 192.168.1.2 и 192.168.1.3 по разным интерфейсам. Просто добавить их к Ether3 не достаточно, т.к. правило mangle их не различит.
>[оверквотинг удален]
> Сейчас для замены этих двух роутеров взяли одну железку Mikrotik, на которой,
> конечно же, хотелось бы настроить маршрутизацию и балансировку, но так же
> оставить и ручной выбор маршрута. Например так:
> Ether1: X.X.X.X
> Ether2: Y.Y.Y.Y
> Ether3: 192.168.1.1, 192.168.1.2, 192.168.1.3
> Если у пользователя указан Default Gateway 192.168.1.1, то маршрут определяется автоматически,
> но если 192.168.1.2 или 192.168.1.3, то пакеты, соответственно, маршрутизируются на Ether1
> или Ether2.
> Возможно ли такое? И если "да" то в какую сторону копать?В терминаз cisco VRF вам помочь может.
> Ether3: 192.168.1.1, 192.168.1.2, 192.168.1.3
> Если у пользователя указан Default Gateway 192.168.1.1, то маршрут определяется автоматически,
> но если 192.168.1.2 или 192.168.1.3, то пакеты, соответственно, маршрутизируются на Ether1
> или Ether2.
> Возможно ли такое? И если "да" то в какую сторону копать?Именно так - нельзя. В пакетах от пользователя в интернет нет информации об адресе шлюза. MAC адрес у всех 3 адресов шлюза будет один и тотже, поэтому на стороне роутера пакеты по этому признаку не разобрать.
Можно сделать три разных интерфейса ether[1,2,3] в разных сетях 192.168.[1,2,3].1, и на клиентах менять (раз уж они могут менять настройки) и IP адрес тоже. Тогда ваш алгоритм можно воплотить.
Нужно создать 2 VRF'А затем балансить с помощью одинаковых метрик, например через OSPF и глобальную таблицу(либо еще 1 VRF)это один из возможных вариантов балансировки.
Можно. Копать в сторону поддержки разных (нескольких) таблиц маршрутизации.Это достаточно просто настраивается в Микротике или в Линуксе.