Jump to content
Local
Kiano

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 и прочим глупостям.

 

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

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

 

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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites

Зарегать AS, поднять с провайдерами BGP. 

Любые другие варианты будут работать через зепу.

  • Thanks 1

Share this post


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

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

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

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

Share this post


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

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

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

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

Бгп никак

Share this post


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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


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

Share this post


Link to post
Share on other sites

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

Share this post


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

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

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

Share this post


Link to post
Share on other sites

Микротик в провайдинге это 3.14...

Share this post


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

Микротик в провайдинге это 3.14...

Не более чем стереотип

Share this post


Link to post
Share on other sites

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

Edited by Dimkers

Share this post


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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

 

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

 

 

Edited by Dimkers

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Edited by Dimkers

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

Edited by Dimkers

Share this post


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. Працює чудово. 

Share this post


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 Kiano
      Прошу помощи, камрады
       
      Ситуация такова:
      Есть много NAS-ов на базе зоопарка, от routeros до линуха и разных извращений.
      Но сейчас о первых, на базе RouterOS. В свою очередь NAT - это сервачок, на том же нелюбимом RouterOS, который тупо натит и роутит.
       
      На NAS-ах: авторизация по PPPoE, обычный роутинг, без NATа, NAS не имеет дефолт роута, абоны маркируются mangle-ом и роутятся на NAT, а дальше в интернеты.
      Абонент с деньгами получает всегда один и тот же серый/белый IP, на NATе статик роуты на подсеть (для каждого NASа своя подсеть), всё в порядке.
      Абонент без денег получает КАЖДЫЙ РАЗ новый серый адрес из подсети с маской /21, а NAT уже в душе не е*ёт, какой IP на какой NAS роутить, вот здесь пи*дец и наступает.
      Т.е. сейчас абон получил IP 172.30.1.1 на одном NASе, через час ребутнул свою железку, получил тут же IP 172.30.123.123, а 172.30.1.1 например, получил уже совсем другой абон, на совсем другом NASе. Итого, эдакая динамика.
       
      Сейчас решил через задницу (как по мне), но оно работает.
      Каждый NAS все ноумани IP роутит по отдельному маршруту на NAT, у каждого NASа свой влан, своя подсеточка для обмена с NATом, в свою очередь NAT добавляет в отдельный address list все src которые пришли с каждого влана, а обратный трафик исходя dst засылает на нужный NAS. Сами address list-ы динамические, т.е. новая запись появляется там только тогда, когда абон без денег пытается куда-то ломиться. Таймаут 30сек (или около того) и всё.
      Повторюсь, в принципе, всё работает, но через ж#пу. Если запросов от абона не было - то NAT снова же в душе не е*ёт, где тот абон и с каким он ипом сейчас.
       
      ЗАЧЕМ ЭТО НУЖНО:
      Чтобы дать возможность абонам без денег зайти в личный кабинет, пополнить счёт через приватики и прочую фигню, чтобы сайтик компании был доступен и прочие whitelist.
       
      Что хочется:
      Чтобы NASы волшебным образом обменивались с NATом маршрутами, чтобы NAT знал от NASa какие на нём сейчас абоны с ипами из диапазона /21.
       
      Что подскажете?
    • By Kiano
      Продам RouterOS level 6 x86_64
      С коробки видит всю оперативку (не 2гб)
      Официальная, никаких нюансов и приколов, снял у себя с продакшна, перешли на другое железо.
       
      В наличии 2 шт.
      Цена 2000 грн. за одну.

    • By tarantul13
      Продам вінчестер SSD з RouterOS Level5  х86. Підходить для запуску маршрутизатора на компютері. Ціна 2200.
    • By WideAreaNetwork
      пожалуйста посоветуйте нормальную флешку юсб для ROS, а то если глюкнет флешка не приятно будет
    • By maliner
      Продайте ключ L5 x86 routeros
×