Jump to content

2WAN и mikrotik


Recommended Posts

Доброго дня, камрады!
Снова подниму избитую тему, снова я со своим микротиком за помощью ?
Суть вопроса такова:
Имеем роутер, к которому изначально подведён был один провайдер (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 и прочим глупостям.

 

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

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

 

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

Link to post
Share on other sites

Так Вы не указали 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

Link to post
Share on other sites
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

 

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

Edited by Kiano
Link to post
Share on other sites
5 часов назад, Kiano сказал:

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

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

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

Link to post
Share on other sites
11 минут назад, KaYot сказал:

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

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

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

Бгп никак

Link to post
Share on other sites

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

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 руками.

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites
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

Link to post
Share on other sites

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

Link to post
Share on other sites
8 часов назад, Kiano сказал:

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

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

Link to post
Share on other sites

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

Edited by Dimkers
Link to post
Share on other sites
17 минут назад, Dimkers сказал:

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

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

Link to post
Share on other sites

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

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

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

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

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

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

 

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

 

 

Edited by Dimkers
Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

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

Edited by Dimkers
Link to post
Share on other sites

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

 

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

Link to post
Share on other sites

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

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

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

 

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

Edited by Dimkers
Link to post
Share on other sites
В 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. Працює чудово. 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Кузьменко.
      Куплю, можна на вінчестері, може хтось перейшов з Мікротіка...
    • By Кузьменко.
      Бажаю здоров'я!
      Може є вже в кого живі відгуки про дане обладнання.
      Скільки сесій може тримати, чи працює вже адекватно на ROS7...
      Як в порівнянні з 1036?
    • By 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
       
    • By Кузьменко.
      Добрий вечір.
      Вже не перший раз замічаю, що після масового пропадання електроенергії дуже погано конектяться абоненти на сервак.
      щоб законектилось чоловік 200 треба хвилин 15-20. В хвилину конектяться по 10-15 абонів.
      В логах запити від абонів дуже повільно з'являються.
      білінг працює нормально.
      Може є в когось ідеї?
    • By Igor_GT
      Продам ліцензію ключ MikroTik CHR P10 разом з особистим кабінетом на mikrotik.com. Ключ активований, але його легко можна переносити з однієї RouterOS на іншу. 1500грн.

×
×
  • Create New...