Перейти до

2WAN и mikrotik


Рекомендованные сообщения

Доброго дня, камрады!
Снова подниму избитую тему, снова я со своим микротиком за помощью 🙂
Суть вопроса такова:
Имеем роутер, к которому изначально подведён был один провайдер (ISP1), он НАТил, некоторые ИПы были даны юзверям по PPPoE, по сути всё хорошо.
Роутер общается с провайдером по 123.123.123.2/30 (провайдер в свою очередь 123.123.123.1/30), так же провайдер отдаёт роутеру подсеть 124.124.124.0/24, всё чудесно бегает. Дефолт роут для роутера - 123.123.123.1 (т.е. ip route add dst-address=0.0.0.0/0 gateway 123.123.123.1)
Пришла идея (или необходимость) подвести ещё один провайдер (ISP2), который так же дал подсеть 126.126.126.0/24, роутер в свою очередь общается с ним по 125.125.125.2/30 (125.125.125.1/30 шлюз соответственно).

Появилась необходимость выпускать некоторых юзверей под вторым провайдером. Как НАТить, так и давать юзверям белые IP по PPPoE (т.е. за роутером).
Делалось это как (правила на роутере):
-- Для NATа:
1) ip firewall mangle add src-address=10.1.1.0/24 in-interface=ether2 new-routing-mark=isp2-mark passthrough=no
где 10.1.1.0/24 - адреса абонов; ether2 - интерфейс, за каким находятся абоны; isp2-mark - метка
2) ip firewall nat add chain=srcnat action=src-nat to-addresses=126.126.126.5 src-address=10.1.1.0/24 out-interface=isp2-int
где 126.126.126.5 - ип, с которого в мир будут ходить абоны, 10.1.1.0/24 - сами абоны, isp2-int - интерфейс на ISP2
3) ip route add dst-address=0.0.0.0/0 gateway=125.125.125.1 routing-mark=isp2-mark
здесь, полагаю, всё понятно.

-- Для PPPoE с белым ип:
1) ip firewall mangle add src-address=126.126.126.111 in-interface=ether2 new-routing-mark=isp2-mark passthrough=no
2) ip route add dst-address=126.126.126.111/32 gateway=10.10.1.25
где 126.126.126.111 - IP для абона, 10.10.1.25 - IP NASа, где абон авторизуется

От абонента трассировка красивая, всё хорошо, но...

Очередным ночным временем пришла мне идея поменять сфп, переложить патч-корды, навести порядок.. Потушил первого провайдера и офигел, когда отвалилось в буквальном смысле всё.
Действительно, из мира IP второго провайдера не пинговались, как те, что вбиты алиасами на роутере, так и абонентские на PPPoE.
И пришло прозрение: трафик ISP2 по сути ходил через ISP1!
Бред? Да, но частично.
Поначалу я аж растерялся, лихорадочно начал читать все_эти_ваши_интернеты, кто чего только не писал: и маркировать соединения, приходящие на интерфейс ISP2, с dst-address 126.126.126.0/24, затем их отправлять в таблицу, относящуюся к ISP2, кто делал это через policy based routing, кто ещё как-то.

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

Колдовство лишь приводило в ttl exceeded и прочим глупостям.

 

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

Готов за хорошее горячительное получить дельную консультацию, можно даже готовое решение за некоторые вечнозелёные.

 

Итого, прошу помощи, камрады.

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

Так Вы не указали action и chain в ip firewall mangle.

Должно быть что-то вроде

ip firewall mangle add action=mark-routing chain=prerouting src-address=10.1.1.0/24 in-interface=ether2 new-routing-mark=isp2-mark passthrough=no

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
4 минуты назад, Matou сказал:

Так Вы не указали action и chain в ip firewall mangle.

Должно быть что-то вроде

ip firewall mangle add action=mark-routing chain=prerouting src-address=10.1.1.0/24 in-interface=ether2 new-routing-mark=isp2-mark passthrough=no

 

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

Відредаговано Kiano
Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, Kiano сказал:

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

Это не так. Входящий трафик для нужных подсетей ISP1 и ISP2 правильно маршрутизируют на ваш МТ. А вот ответ ваш сервер шлет через default GW - другого шлюза у него нет, и он понятия не имеет чем одни пакеты отличаются от других.

Нужен policy based роутинг что б разные подсети уходили через разные шлюзы. Как сделать в linux знаю, как в МТ - нет.

Ссылка на сообщение
Поделиться на других сайтах
11 минут назад, KaYot сказал:

Это не так. Входящий трафик для нужных подсетей ISP1 и ISP2 правильно маршрутизируют на ваш МТ. А вот ответ ваш сервер шлет через default GW - другого шлюза у него нет, и он понятия не имеет чем одни пакеты отличаются от других.

Нужен policy based роутинг что б разные подсети уходили через разные шлюзы. Как сделать в linux знаю, как в МТ - нет.

Как на линухе? Мож по аналогии дойдет и с микром

Бгп никак

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

Не, по аналогии не получится.

ip rule add from 124.124.124.0/24 table isp2

ip route add default via x.x.x x table isp2

Итого весь трафик будет бегать по умолчанию через Isp1, а IP выданные ISP2 пойдут через него.

Без bgp у вас при падении Isp1 все равно большая часть сервисов умрет(нат, днс). Нужно дефолт менять на isp2 руками.

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

Колись була така сама потреба з двома провами.

Скористався витуалізацією, яка є Мікротіку. Робилося на РБ800. Пам'ятаю, що робило нормально.

Але це було давно.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Kiano сказал:

Бгп никак

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

 

[dandul@MikroTik] > ip firewall nat print

Flags: X - disabled, I - invalid, D – dynamic

 

26   ;;; Hard_nat_isp1

     chain=srcnat action=masquerade src-address-list=hard_nat_isp1 out-interface=isp1

27   ;;; Address list nat to isp1

     chain=srcnat action=masquerade src-address-list=!real out-interface=isp1

28   ;;; Address list nat to isp2

     chain=srcnat action=masquerade src-address-list=!real out-interface=isp2

 

[dandul@MikroTik] > ip firewall mangle print

Flags: X - disabled, I - invalid, D – dynamic

 

0   ;;; Mark connection isp1-in

     chain=prerouting action=mark-connection new-connection-mark=isp1-in

     passthrough=no in-interface=isp1

 1   ;;; Mark rout isp1

     chain=output action=mark-routing new-routing-mark=isp1_out passthrough=no

     connection-mark=isp1-in

 2   ;;; Mark connection isp2-in

     chain=prerouting action=mark-connection new-connection-mark=isp2-in

     passthrough=no in-interface=isp2

 3   ;;; Mark rout isp2

     chain=output action=mark-routing new-routing-mark=isp2_out passthrough=no

     connection-mark=isp2-in

 4   ;;; Mark rout real_ip_isp1

     chain=prerouting action=mark-routing new-routing-mark=isp1_out

     passthrough=no src-address=y.y.y.128/27

 

20   ;;; Excluding from address list (можно исключить из адрес листа любой адрес или подсеть)

     chain=prerouting action=mark-routing new-routing-mark=isp2_out

     passthrough=no src-address=10.10.58.0/26

21   ;;; Hard_nat_isp1

     chain=prerouting action=mark-routing new-routing-mark=isp1_out

     passthrough=no src-address-list=hard_nat_isp1

22   ;;; nat_isp2

     chain=prerouting action=mark-routing new-routing-mark=isp2_out

     passthrough=no src-address-list=nat_isp2

23   ;;; nat_isp1

     chain=prerouting action=mark-routing new-routing-mark=isp1_out

     passthrough=no src-address-list=nat

 

 

[dandul@MikroTik] > ip route print detail

Flags: X - disabled, A - active, D - dynamic,

C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,

B - blackhole, U - unreachable, P - prohibit

 

 0 A S  dst-address=0.0.0.0/0 gateway=y.y.y.65

        gateway-status=y.y.y.65 reachable via  isp1 check-gateway=arp

        distance=1 scope=30 target-scope=10 routing-mark=isp1_out

 1 A S  dst-address=0.0.0.0/0 gateway=x.x.x.9

        gateway-status=x.x.x.9 reachable via  isp2 check-gateway=arp

        distance=1 scope=30 target-scope=10 routing-mark=isp2_out

 2 A S  dst-address=0.0.0.0/0 gateway=x.x.x.9,y.y.y.65

        gateway-status=x.x.x.9 reachable via  isp2,y.y.y.65 reachable

               via  isp1

        check-gateway=arp distance=1 scope=30 target-scope=10

 3 ADC  dst-address=10.10.0.0/23 pref-src=10.10.0.1 gateway=Mikro.Net

        gateway-status=Mikro.Net reachable distance=0 scope=10

88 ADC  dst-address=x.x.x.8/30 pref-src=x.x.x.10 gateway=isp2

        gateway-status=isp2 reachable distance=0 scope=10

89 A S  dst-address=d.n.s.75/32 gateway=x.x.x.9

        gateway-status=x.x.x.9 reachable via  isp2 distance=1 scope=30

        target-scope=10

90 A S  dst-address=d.n.s.86/32 gateway=y.y.y.65

        gateway-status=y.y.y.65 reachable via  isp1 distance=1 scope=30

        target-scope=10

91 ADC  dst-address=y.y.y.64/30 pref-src=y.y.y.66 gateway=isp1

        gateway-status=isp1 reachable distance=0 scope=10

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

Попробовал различные методы, которые посоветовали в ЛС - ни одно пока не помогло, максимум - приводит к превышению ттл

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Kiano сказал:

Попробовал различные методы, которые посоветовали в ЛС - ни одно пока не помогло, максимум - приводит к превышению ттл

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

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

Не более чем стереотип - называться провайдером, не имея своей АС.

Відредаговано Dimkers
Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, Dimkers сказал:

Не более чем стереотип - называться провайдером, не имея своей АС.

Юлия Владимировна, это Вы? Перелогиньтесь

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

Про роутинг прочитай и поймёшь. Как, даже гипотетический 2-й пров смаршрутит тебе ip выданные первым из его АС, когда у тебя БГП нет?

И Юля тут совсем не при чем. Ты вопрос задал:

В 11.04.2019 в 15:00, Kiano сказал:

Значится, вопрос: как направить трафик по фэн-шую? Чтобы трафик обоих провайдеров как снаружи, так и изнутри ходил только через правильный интерфейс.

При отвале будешь ломать копья. Т.е. половина абонов что имеют ИПы отвалившегося прова - сосут. И того накой такой резерв? Да ни на кой. Лично я не понимаю. Но нормальный пров себе не может такое позволить, только пионер. А пионеру и МТ норм. Увы и ах.

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

 

ЗЫ. Даже при микротах была своя АС.

 

 

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

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

Резерв не интересует априори, именно одновременная работа двух провайдеров, оба по десятке, но такие тех условия, что на этот роутер втупую даются лишь айпишники

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

Ну если так, то трафик гнать по кольцу MPLS на Джун, а с него уже БГП дальше. Только не ясно тогда зачем вообще держать белые за джкном. Советы сааба?

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

Потому что нужен нат, как это странно ни звучит.

По мплс по кольцу и идет, бгп на джуне, ипы роутятся на этот роутер, который тупо натит. Но так исторически сложилось, что за этим роутером есть еще и абоны с пппое и белыми ипами

Этот джун нат не умеет, нет платки (и не будет)

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

Я четтне понял

БГП на Джуне, а блоки ипишек выдают провы, что являют собой транспорты до джуна?

Дай лучше схему с логикой Л3.

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

Не заморачивайся, меня интересует сейчас только тот вопрос, что выше в теме.

 

До микрото роутера всё работает хорошо

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

Тут вариантов не много. Если ты делаешь по описанным выше вещам и не получается, то:

1) либо ты явно делаешь не то, что советуют

2) есть нюансы, о которых не говоришь, а они как раз могут и быть всему заковыркой.

 

Ну не заморачивайся, так не заморачивайся :)

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

Кайот прав, он выплёвывает пакеты по дефолт роуту, т.к. не знает чего с ними делать, именно потому они через первый пров и выходят

Потушил на две минуты днём, с*ка, ипы на роутере пингуются, абоны за роутером с белыми - нет. Мистика, просто. Через час повторил - не пингуется уже ничего.

Чуйка такая, что это задрочки роутероса, но еще пеняю на конн трэкинг, туда не добрался просто

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

Коннтрак для белых вообще без надобности. Попробуй в raw спилить.

Хотя я всеравно не понимаю, кто анонсит Ипишки и куда. И как 2-й пров знает про ИПы, выданные первым, и наоборот.

Відредаговано Dimkers
Ссылка на сообщение
Поделиться на других сайтах
В 11.04.2019 в 21:51, KaYot сказал:

Не, по аналогии не получится.

ip rule add from 124.124.124.0/24 table isp2

ip route add default via x.x.x x table isp2

Итого весь трафик будет бегать по умолчанию через Isp1, а IP выданные ISP2 пойдут через него.

Без bgp у вас при падении Isp1 все равно большая часть сервисов умрет(нат, днс). Нужно дефолт менять на isp2 руками.

 Це все робиться на мт один в один, бо мт і є лінукс. Меню ip->rules. Працює чудово. 

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від Кузьменко.
      Куплю, можна на вінчестері, може хтось перейшов з Мікротіка...
    • Від Кузьменко.
      Бажаю здоров'я!
      Може є вже в кого живі відгуки про дане обладнання.
      Скільки сесій може тримати, чи працює вже адекватно на ROS7...
      Як в порівнянні з 1036?
    • Від wildcore
      WildcoreDMS - Инструмент для мониторинга, уведомлений и менеджмента устройств.
       
      Основная идея - разгрузить инженеров/админов, дать возможность монтажнику провести диагностику в поле, а оператору сориентироваться в проблеме, этим сократить время реакции..
       
      Инструмент чем то напоминает ламповый swtoolz и pon monitor(посмотреть что там на порту и с онушкой), но с отличием, что уже есть расширенный контроль доступов и логов действий.
      Так же имеет плюшки подобные заббикс и нагиос(графики, алерты, уведомления), но уведомление не на мыло или в группу телеграмм, а конкретно пользователю, который отвечает за работу оборудования на участке.
       
      Ориентирован на маленьких/средних интернет-провайдеров.
       
      Не перегружен
      Простая установка(в несколько команд) и максимально легкая настройка(добавить доступы к оборудованию, добавить оборудование, добавить персонал).
      Здесь нету сложных шаблонов по работе с оборудованием, замороченных настроек и т.п.
      (но если у кого то будет желание доработать инструментарий, добавить свои устройства - обращайтесь, обсудим) 
       
      Поддерживаемые вендоры 
      Dlink (DES/DGS) BDcom (P3310B/C/D, P3608B) C-data (OLTs) Mikrotik (роутеры) ZTE (C320, fw 2.1) Полный список поддерживаемого оборудования - https://github.com/meklis/switcher-core/blob/master/docs/DEVICES.md 
      С устройствами работает по SNMP/telnet/ssh  
       
      Основной функционал
      Отображение реалтайм состояния оборудования по запросу Алерты в телеграмм(лично каждому пользователю) и на почту с возможностью настроить фильтры История событий  Получение обновлений одной командой в консоли  RestAPI  Работа в Docker Хранение метрик в TSDB (Prometheus) Гибкое разделение прав доступа для пользователей (по группам) Разделение прав доступа(отображения) для пользователей по группам устройств(в случае, если пользователь не должен видеть все оборудование) Логирование действий пользователей, вызовов оборудования(только которые завершились ошибкой)   
      Как попробовать
      написать в группу в телеграм или оставить обращение на сайте (кнопка "Request beta")
       
       
      Инструмент бесплатен, но не опенсорс
      Группа в телеграмм: https://t.me/wildcore_dms_channel
      Сайт: https://wildcore.tools
      Дока: http://docs.wildcore.tools
       
    • Від Кузьменко.
      Добрий вечір.
      Вже не перший раз замічаю, що після масового пропадання електроенергії дуже погано конектяться абоненти на сервак.
      щоб законектилось чоловік 200 треба хвилин 15-20. В хвилину конектяться по 10-15 абонів.
      В логах запити від абонів дуже повільно з'являються.
      білінг працює нормально.
      Може є в когось ідеї?
    • Від Igor_GT
      Продам ліцензію ключ MikroTik CHR P10 разом з особистим кабінетом на mikrotik.com. Ключ активований, але його легко можна переносити з однієї RouterOS на іншу. 1500грн.

×
×
  • Створити нове...