Перейти до

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

Опубликовано:

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

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

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

Опубліковано:
4 минуты назад, KaYot сказал:

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

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

Опубліковано: (відредаговано)

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

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

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

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

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

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

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

Вхід

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

Войти сейчас
×
×
  • Створити нове...