Jump to content

Recommended Posts

Posted

Добрый день коллеги, есть задача сделать на Микротике передачу данных с какого канала пришел в тот и ушел. Сейчас настроенна балансировка через prepend, а требуется сделать если абонент пришел из А канала значит в него и ушел, если из B аналогично А,

Имеется две сессии FV с разными магистралами. Подскажите пожалуйста как это реализовать ?

Posted

Абонент не может придти извне. Пакеты от абонентов прилетают из внутренней сети, и согласно правилам и таблицам маршрутизации улетают во внешку на тот или иной канал. Ответ не обязательно придёт на тот же интерфейс с которого улетел ответ, и это нормально.

Posted
Just now, pppoetest said:

Абонент не может придти извне. Пакеты от абонентов прилетают из внутренней сети, и согласно правилам и таблицам маршрутизации улетает во внешку на тот или иной канал. Ответ не обязательно придёт на тот же интерфейс с которого улетел ответ, и это нормально.

Получается асинхронная передача данных, для некоторые сервисов это не подходит.

Вопрос:

Как сделать, чтоб приходил и уходил в один интерфейс, есть мысли ? Подскажите пожалуйста.

Posted
6 минут назад, 7sergeynazarov7 сказал:

для некоторые сервисов это не подходит.

Это что за сервисы такие?

6 минут назад, 7sergeynazarov7 сказал:

Как сделать, чтоб приходил и уходил в один интерфейс, есть мысли ? Подскажите пожалуйста.

В общем случае никак. Но если сильно хочется, убираете с анонсов префикс /23, анонсите в канал А первый /24, в канал Б второй /24, ну и правка NAT соот-но. Но я бы так не делал, потому что нет таких сервисов о которых вы говорите.

Posted
1 minute ago, pppoetest said:

Это что за сервисы такие?

В общем случае никак. Но если сильно хочется, убираете с анонсов префикс /23, анонсите в канал А первый /24, в канал Б второй /24, ну и правка NAT соот-но. Но я бы так не делал, потому что нет таких сервисов о которых вы говорите.

Сейчас и сделан Анонс сети А в первый predend 3 и второй канал /24 и канал Б первый второй prepend 3 /24 префикс /23 не анонсируется.  На Cisco это реализовывается, а на микротике реально ?

Posted

,,,,,,,,,,,,,,,, вот, расставте, а то "казнить нельзя помиловать" получается 

Что реализовать на микроте? Анонс разных сетей в разные аплинки? 

Posted
3 часа назад, 7sergeynazarov7 сказал:

Сейчас и сделан Анонс сети А в первый predend 3 и второй канал /24 и канал Б первый второй prepend 3 /24 префикс /23 не анонсируется.  На Cisco это реализовывается, а на микротике реально ?

А почему вы /23 не анонсируете? Если у вас один канал упадет, то пол сети курят? Так получается?

Posted
18 hours ago, 7sergeynazarov7 said:

на Микротике передачу данных с какого канала пришел в тот и ушел.

Вам, наверное, надо чтобы ответ на входящие подключения уходил на гейт соответсвующего канала, а не на default gateway, который один.

На Линуксах и Микротике это решается policy based routing, это позволяет базировать выбор маршрута не только на dst IP, но и на других параметрах пакета, например src IP. По сути, в системе присутствует несколько таблиц маршрутизации, одна из них дефолтная. Разными способами можно заставить применять ту или иную таблицу к исходящим пакетам.

 

Описанно здесь, но не слишком детально:

https://wiki.mikrotik.com/wiki/Manual:IP/Route#Forwarding_Information_Base

 

Релевантный пример, описывает решение несколько иной задачи, но все элементы для вашего кейса там есть:

https://wiki.mikrotik.com/wiki/Per-Traffic_Load_Balancing

(в примере аплинк выбирается исходя из dst-port, вам надо исходя из src-address вашего интерфейса)

 

Posted
18 hours ago, VolanD666 said:

А почему вы /23 не анонсируете? Если у вас один канал упадет, то пол сети курят? Так получается?

Нет, получается анонс сети осуществляется и в канал А и в канал Б, только сети поделены не целая /23, а две сети /24, балансируется это все дело через prepend.

 

18 hours ago, sdy_moscow said:

Поскольку из-за НАТа трафик сам собой в сеть не запрыгнет, можно для разных абонентов прописать разные дефаулт гейтвэй.

А пример можно ? И что будет если один gateway станет не рабочим ? Как это дело переключится ?

 

3 hours ago, lugoblin said:

Вам, наверное, надо чтобы ответ на входящие подключения уходил на гейт соответсвующего канала, а не на default gateway, который один.

На Линуксах и Микротике это решается policy based routing, это позволяет базировать выбор маршрута не только на dst IP, но и на других параметрах пакета, например src IP. По сути, в системе присутствует несколько таблиц маршрутизации, одна из них дефолтная. Разными способами можно заставить применять ту или иную таблицу к исходящим пакетам.

 

Описанно здесь, но не слишком детально:

https://wiki.mikrotik.com/wiki/Manual:IP/Route#Forwarding_Information_Base

 

Релевантный пример, описывает решение несколько иной задачи, но все элементы для вашего кейса там есть:

https://wiki.mikrotik.com/wiki/Per-Traffic_Load_Balancing

(в примере аплинк выбирается исходя из dst-port, вам надо исходя из src-address вашего интерфейса)

 

Вы правы "надо чтобы ответ на входящие подключения уходил на гейт соответсвующего канала" - именно это и нужно.

Posted
33 минуты назад, 7sergeynazarov7 сказал:

Вы правы "надо чтобы ответ на входящие подключения уходил на гейт соответсвующего канала" - именно это и нужно.

Так бы сразу и сказали, вам нужен pbr

Posted
3 hours ago, pppoetest said:

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

https://nixman.info/?p=133    согласно этой статье не понравилась строчка out-interface=ether1 и out-interface=ether2 в случае падения выщестоящего магистрала переключение не произойдет. Подскажите коллеги у кого как реализовано ?

/ip firewall nat add chain=srcnat action=masquerade out-interface=ether1 src-address=192.168.88.0/24
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether2 src-address=192.168.89.0/24

 

Posted
7 hours ago, 7sergeynazarov7 said:

в случае падения выщестоящего магистрала переключение не произойдет

Вы замечательную шпаргалку нашли, и её автор имеет толковую репутацию.

Не произойдёт, но это совсем другая задача. Рекомендую достигнуть сначала одного, и уже потом решать другое.

 

У меня под рукой примера нет, но я бы попробовал так:

1. В правилах NAT, убрать ограничение по src-address, оно всё равно достаточно бессмысленно. Пусть применяет srcnat ко всем пакетам что уходят по данному out-interface. От кого идут пакеты, всё равно решается в другом месте.

2. В кастомных таблицах маршруизации, прописать гейт обоих провайдеров, но с разными приоритетами. В одной пусть приоритет будет у первого провайдера, в другой у второго.

3. В кастомных таблицах маршруизации, добавить опцию check-gateway к каждому гейту.
https://wiki.mikrotik.com/wiki/Manual:IP/Route#General_properties

 

Если мне не изменяет память, у меня работало что-то похожее, но неважно обрабатывало flapping. Это ещё более другая задача.

 

Posted
10 hours ago, lugoblin said:

Вы замечательную шпаргалку нашли, и её автор имеет толковую репутацию.

Не произойдёт, но это совсем другая задача. Рекомендую достигнуть сначала одного, и уже потом решать другое.

 

У меня под рукой примера нет, но я бы попробовал так:

1. В правилах NAT, убрать ограничение по src-address, оно всё равно достаточно бессмысленно. Пусть применяет srcnat ко всем пакетам что уходят по данному out-interface. От кого идут пакеты, всё равно решается в другом месте.

2. В кастомных таблицах маршруизации, прописать гейт обоих провайдеров, но с разными приоритетами. В одной пусть приоритет будет у первого провайдера, в другой у второго.

3. В кастомных таблицах маршруизации, добавить опцию check-gateway к каждому гейту.
https://wiki.mikrotik.com/wiki/Manual:IP/Route#General_properties

 

Если мне не изменяет память, у меня работало что-то похожее, но неважно обрабатывало flapping. Это ещё более другая задача.

 

Спасибо за диалог можно с Вами подискутировать на эту тему ?

1) src-address в правилах NAT, в данном случае у меня обеспечивает деление по пулам. Пример 10.0.0.0-10.0.28.0 к same no by dst xx.xxx.xxx.xx 1-й пул и 10.0.28.0-10.0.57.0 2 к same no by dst xx.xxx.xxx.xx 2-й пул.

2) Как это сделать не совсем понимаю. если в ip routes находится очень большая часть маршрутов.

3) Понятно.

По поводу флапа согласен очень плохо отрабатывало если указывать out-interface

Posted

 

2 hours ago, 7sergeynazarov7 said:

1) src-address в правилах NAT, в данном случае у меня обеспечивает деление по пулам. Пример 10.0.0.0-10.0.28.0 к same no by dst xx.xxx.xxx.xx 1-й пул и 10.0.28.0-10.0.57.0 2 к same no by dst xx.xxx.xxx.xx 2-й пул. 

Примера вашего я не понял, но подозреваю что вы собираетесь этими правилами задать, какая сеть через какой аплинк пойдёт в Интернет. Типа пусть 192.168.88.0/24 выходит через ether1, а 192.168.89.0/24 через ether2. Оно раборает не так, интерфейс куда пакет пресылается определяется маршрутизацией а не параметрами правила NAT.

/ip firewall nat add chain=srcnat action=masquerade out-interface=ether1 src-address=192.168.88.0/24
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether2 src-address=192.168.89.0/24

С такой конфигурацией как у вас, action=masquerade будет применено только если пакет удовлетворяет обоим условиям: out-interface=ether1 и src-address=192.168.88.0/24. А если вдруг у вас заработает failover и через ether1 пойдут пакеты от 192.168.89.0/24, то NAT к ним применятся не будет, и провайдер их отбросит, т.к. приватные адреса не должны маршрутизироваться в публичных сетях.

Читайте доку: https://wiki.mikrotik.com/wiki/Manual:IP/Firewall/NAT

src-address (Ip/Netmaks, Ip range; Default: )

Matches packets which source is equal to specified IP or falls into specified IP range.

Если вам надо чтобы пакет уходил с другим обратным адресом, не с адресом интерфейса, то это указывается параметром to-addresses .

 

2 hours ago, 7sergeynazarov7 said:

2) Как это сделать не совсем понимаю. если в ip routes находится очень большая часть маршрутов.

Приоритет правила маршрутизации (которое вы добавляете /ip route add ...) конторолируется параметром distance.

distance (integer[1..255]; Default: "1")

Value used in route selection. Routes with smaller distance value are given preference.

Смотрите https://wiki.mikrotik.com/wiki/Manual:IP/Route#General_properties

 

Не пытайтесь настроить всё сразу. Делайте мелкие и контролируемые шаги, фиксируйте достигнутый функционал.

 

1 hour ago, Saab95 said:

Просто надо поставить 2 микротика и на каждом анонсировать свою /24, НАТ делать там же и все пойдет куда надо. 

Кстати, да. Только для failover-а всё равно придётся странности мутить.

 

1 hour ago, 7sergeynazarov7 said:

А как быть с одним, реально сделать синхронную передачу данных.

Вообще чем опасна асинхронная передача данных.

Да, реально. (Синхронную маршрутизацию, синхронная передача данных это про другое)

Асинхронная маршрутизация опасна своей запутанностью. Будут глюки в функционале, зависящем от connection tracking, плохо предсказуемое поведение доступа, и вообще трудности с траблшутингом.

 

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.