Jump to content
Local
Kiano

Обмен маршрутами между NAS

Recommended Posts

Прошу помощи, камрады

 

Ситуация такова:

Есть много 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.

 

Что подскажете?

Share this post


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

rip

ospf

похоже на то, что нужно. спасибо, попробую

Share this post


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

похоже на то, что нужно. спасибо, попробую

лучше iBGP

вон тема была сегодня ж буквально

Share this post


Link to post
Share on other sites
Только что, l1ght сказал:

лучше iBGP

вон тема была сегодня ж буквально

можно ссылку пжл

Share this post


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

можно ссылку пжл

 

Share this post


Link to post
Share on other sites
Только что, l1ght сказал:

 

ага, видел, спасибо

Share this post


Link to post
Share on other sites

пока сделал RIP+Filters, как работает - устраивает.

Большое спасибо за советы.

Если кто в теме - подскажите как на оспф это реализуется

Share this post


Link to post
Share on other sites

Уйти от микротов. Смотрите в сторону акселя. Там на Л4 левеле можно абонов заворачивать куда угодно(по ридеректу порта). Это архиудобно. Абону вываливает его же ИП в любом случае, кроме случая, когда абон неизвестен(только тогда -гостевой). 

И да. ОСПФ - зло, т.к. линкстейт. Так что либо иБГП, либо РИП.2.

Edited by Dimkers

Share this post


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

ОСПФ - зло, т.к. линкстейт

проблема не в том что линкстейт. проблема - в том, что он имеет свойство терять роуты (то ли дропы пакетов, то ли еще какая причина), и нет никаких механизмов синхронизации таблиц маршрутов узлов. т.е. потерялся маршрут - и с концами...

Share this post


Link to post
Share on other sites
1 час назад, NiTr0 сказал:

проблема не в том что линкстейт. проблема - в том, что он имеет свойство терять роуты (то ли дропы пакетов, то ли еще какая причина), и нет никаких механизмов синхронизации таблиц маршрутов узлов. т.е. потерялся маршрут - и с концами...

теряет роуты на моей памяти только квагга и микротики (думаю что там тоже квагга)

вообще оспф не плох, но точно не для кучи \32 очень часто меняющихся

Share this post


Link to post
Share on other sites
1 час назад, NiTr0 сказал:

проблема не в том что линкстейт.

и в этом тоже. Куда там апдейты(и нет только) летают при любом чихе? На мультикаст? :)

Edited by Dimkers

Share this post


Link to post
Share on other sites
1 час назад, Dimkers сказал:

и в этом тоже. Куда там апдейты(и нет только) летают при любом чихе? На мультикаст? :)

у оспф нет апдейтов (до OSPFv3), есть лса флуд

и там может быть юникаст, мультик там что бы соседство динамическое было

Share this post


Link to post
Share on other sites
1 час назад, l1ght сказал:

теряет роуты на моей памяти только квагга и микротики (думаю что там тоже квагга)

птичка редко, но тоже теряет.

Share this post


Link to post
Share on other sites
2 часа назад, l1ght сказал:

теряет роуты на моей памяти только квагга и микротики (думаю что там тоже квагга)

Квагга перестает терять маршруты после минимальной настройки.

https://forum.nag.ru/index.php?/topic/119373-quagga-zebra/&tab=comments#comment-1493007

Share this post


Link to post
Share on other sites

у рип тоже может быть юникаст, оказывается.

а как через ibgp тогда?

Share this post


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

у рип тоже может быть юникаст, оказывается.

а как через ibgp тогда?

что "как?" ?

бгп тоже умеет в юникаст\мультикаст

Edited by l1ght

Share this post


Link to post
Share on other sites

спасибо всем, решение - через RIP. Понял, почему не сработало раньше и забил на эту тему - фильтровался мультикаст на уровне провайдера-транспорта, нихера не работало, вот и забил. В этот раз вник, вкурил, что это работает и по юникасту, теперь всё ок.

 

Для будущего "поколения" или для других юзернеймов, кому будет эта идея интересна.

На базе микротика это решил так:

1) На главном роутере, который будет получать маршруты от других, Routing -> RIP, добавляем в Interface новую запись.

Interface: тот интерфейс, на котором будем слушать инфу о маршрутах с других роутеров

Receive/Send: v2 (юзаем вторую версию протокола)

Authentication: none (не буду вдаваться в опции авторизации, кому интересно - разберется сам)

Passive - ставим галочку, т.к. этот роутер будет только слушать маршруты;

Neighbours - здесь добавляем ипы роутеров, с которых будем слушать маршруты;

2) На остальных роутерах, которые будут отправлять инфу о маршрутах, Routing -> RIP, добавляем в Interface новую запись.

Всё тоже самое, что и на главном, кроме галочки Passive, она не нужна.

На той же вкладке правее RIP Settings - здесь вверху never, т.к. нам не нужно ничего делать с дефолтным маршрутом

Ниже указываем какие маршруты будем отправлять (статические, оспф, бгп, кому что нужно, мне например - connected нужны были)

Далее идем в Neighbours, добавляем запись с ипом, куда будем слать инфу о маршрутах. Это как оказалось, ключевой момент, который определяет, что инфу нужно юникастом слать на определенный адрес (routeros wiki).

Теперь самое интересное. Если не задать что конкретно, то роутер будет отдавать инфу о всех подряд своих маршрутах, зачастую это нафиг не нужно, потому идем в RIP->Filters.

Добавляем новое правило, в chain указываем rip-out, а в action указываем reject. Это правило должно быть в итоге в самом конце, по окончанию настройки.

Снова добавляем правило, где в chain rip-out, prefix - указываем маску подсети для маршрутов, которые будем отправлять, ниже - длину маски, (можно указать диапазон, например 16-32, кому что нужно). В action - accept. Напомню, первое правило что мы создали должно быть последним в списке.

Такой подход мне понравился больше, чем фильтровать на входе всё подряд, а роутеры будут отправлять всё подряд. Лучше отправлять то, что полезно, а на входе вообще не фильтровать. Но это уже тонкости настройки.

 

Собственно всё. Описал своими словами, по памяти, для "чайников", иногда это нужно для общего понимания картины.

Edited by Kiano
  • Like 3

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
      Доброго дня, камрады!
      Снова подниму избитую тему, снова я со своим микротиком за помощью 🙂
      Суть вопроса такова:
      Имеем роутер, к которому изначально подведён был один провайдер (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 и прочим глупостям.
       
      Значится, вопрос: как направить трафик по фэн-шую? Чтобы трафик обоих провайдеров как снаружи, так и изнутри ходил только через правильный интерфейс.
      Повторюсь, роутер - продакшн, взять и потушить всё - можно конечно, но ненадолго и ночью.
      Готов за хорошее горячительное получить дельную консультацию, можно даже готовое решение за некоторые вечнозелёные.
       
      Итого, прошу помощи, камрады.
    • 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
×