Jump to content

IPFW+NAT+BGP+UAIX


Recommended Posts

Доброго времени суток. Недавно начал пользоваться BGP, до этого UAIX  пробрасывал мимо шейпинга таблицей(выгружал список сетей из интернета) в IPFW. Сейчас у меня есть 3 vlan для направлений(World - vlan1, UAIX - vlan2, peering - vlan3). Хочу резать траффик только для World. Стоит Ubilling, шейпер его.
 
${fwcmd} nat 1 config log if ext0 reset same_ports
${fwcmd} add nat 1 ip from table\(5\) to not table\(1\) via vlan1
${fwcmd} add nat 1 ip from any to 123.123.123.123 via vlan1
${fwcmd} add nat 1 ip from table\(5\) to not table\(1\) via vlan2
${fwcmd} add nat 1 ip from any to 123.123.123.123 via vlan2
${fwcmd} add nat 1 ip from table\(5\) to not table\(1\) via vlan3
${fwcmd} add nat 1 ip from any to 123.123.123.123 via vlan3


table\(5\) - Локальные пользователи
ext0 - lo1:123.123.123.123
 
Есть ли варианты в IPFW реализовать это не таблицами, а через интерфейсы? Если у кого есть опыт - поделитесь пожалуйста.

Link to post
Share on other sites

Ну дык и шейпите себе только recv/xmit via "влан уходящий в мир" при помощи tablearg.

Что вам мешает?

Отсутствие опыта. 

 

Уже пытался делать так

 

${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) out xmit vlan1

${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any in recv vlan1

 

Только вот при такой записи просто фаерволл перестаёт пропускать пакеты.

Edited by Axe
Link to post
Share on other sites

 

Только вот при такой записи просто фаерволл перестаёт пропускать пакеты.

Он не перестает. Они скорее всего просто перестают принадлежать стандартной доступа.

 

Дефолтная политика для подсетей пользователей - deny. При net.inet.ip.fw.one_pass=1 наложение dummynet pipes работают как allow по дороге пошейпливая. Исходя из того, что у вас внезапно перестают ходить пакетики можно сделать вывод, что трафик от пользователей  попадает в  ipfw nat не долетая до шейпа. Проверяется очень просто при помощи ipfw show. Посмотрите что-ли в какую сторону у вас в эти правила не попадает трафик. Если в обе - утащите их выше nat-а, если в какую-то одну из сторон - утащите ее выше или ниже, чтобы быть уверенным, что src/dst будут адекватными с точки зрения текущего клиента относительно ваших интерфейсов.

В общем шейпить и алловить уже проначеный траффик.... эмммм... как-бы даст вполне предсказуемый эффект :)

Edited by nightfly
Link to post
Share on other sites

 

 

Только вот при такой записи просто фаерволл перестаёт пропускать пакеты.

Он не перестает.

Дефолтная политика для подсетей пользователей - deny. При net.inet.ip.fw.one_pass=1 наложение dummynet pipes работают как allow по дороге пошейпливая. Исходя из того, что у вас внезапно перестают ходить пакетики можно сделать вывод, что трафик от пользователей  попадает в  ipfw nat не долетая до шейпа. Проверяется очень просто при помощи ipfw show. Посмотрите что-ли в какую сторону у вас в эти правила не попадает трафик. Если в обе - утащите их выше nat-а, если в какую-то одну из сторон - утащите ее выше или ниже, чтобы быть уверенным, что сорс/дест будут адекватными с точки зрения текущего клиента.

 

 

Извиняюсь, не корректно выразился

 

 

${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) 

${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any

В таком виде всё шейпится.

 

 

${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) out xmit vlan1

${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any in recv vlan1

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

Link to post
Share on other sites

 

${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) 

${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any

В таком виде всё шейпится.

Это заведомо х....й вариант влияющий на все интерфейсы и пролетающие сквозь ядро пакеты, которые может увидеть.

 

 

В таком виде пакеты должны улетать только в мир(ну я бы так хотел) и по пути шейпится. Но этого не происходит.

И в предыдущем посте я отписал, почему так происходит и как это обойти.

Edited by nightfly
Link to post
Share on other sites

 

 

${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) 

${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any

В таком виде всё шейпится.

Это заведомо х....й вариант влияющий на все интерфейсы и пролетающие сквозь ядро пакеты, которые может увидеть.

 

 

В таком виде пакеты должны улетать только в мир(ну я бы так хотел) и по пути шейпится. Но этого не происходит.

И в предыдущем посте я отписал, почему так происходит и как это обойти.

 

Попробовал утянуть пайпы выше ната... пакеты не ходят. На сколько я понял, вы предлагаете сперва отшейпить пакеты, потом пихать их в нат. Верно ?

Link to post
Share on other sites

 

Попробовал утянуть пайпы выше ната... пакеты не ходят.

Значит так пробовали. Вам бог глаза зачем дал?

ipfw show в один глаз, tcpdump в другой - и вперед, смотреть по каким рулесам и на каких интерфейсах оно не пробегает.

 

 

На сколько я понял, вы предлагаете сперва отшейпить пакеты, потом пихать их в нат. Верно ?

Я не предлагаю. Я просто констатирую факт, что это единственное адекватное решение.

Link to post
Share on other sites

 

 

Попробовал утянуть пайпы выше ната... пакеты не ходят.

Значит так пробовали. Вам бог глаза зачем дал?

ipfw show в один глаз, tcpdump в другой - и вперед, смотреть по каким рулесам и на каких интерфейсах оно не пробегает.

 

 

На сколько я понял, вы предлагаете сперва отшейпить пакеты, потом пихать их в нат. Верно ?

Я не предлагаю. Я просто констатирую факт, что это единственное адекватное решение.

 

Спасибо)

Link to post
Share on other sites

Подскажите всё же, как словить исходящий пакет ?

 

добавив правило перед натом я снял ограничение на входящи траффик... 

 

${FwCMD} add 2005 allow ip from any to table\(5\) out recv vlan2 (Всё чёто влетело через интерфейс UAIX)

 

Но вот как словить исходящий пакет - вообще не могу понять. ipfw show просто показывает 0 пакетов... Хотя бы логику поясните. Если клиентский ип стучится в шлюз на интерфейс lan0 ... то как фаерволлом словить его на vlan2 ? 

Edited by Axe
Link to post
Share on other sites

 

Подскажите всё же, как словить исходящий пакет ?

Сачком пробовали ловить?

 

 

добавив правило перед натом я снял ограничение на входящи траффик...

Еще раз перечитайте мой предыдущий пост.

Рисуя allow-ы где ни попадя, в обход типичного комбайна из tablearg/pipe via interface вы просто нивелируете всю логику авторизации и аутентификации ваших пользователей.

 

 

Хотя бы логику поясните

Поясняю: http://nuclight.livejournal.com/124348.html

 

 

то как шейпер узнать может что пакет отнатится

И не напрашивается очевидный вывод?

Задача шейпера ака dummynet... ВНЕЗАПНО шейпить а не "узнавать"  чего-то там.

Задача ната - тоже только натить никак не взаимодействуя с шейпером и тоже ничего не "угадывать". 

Где и в каком порядке, на каких интерфейсах будут происходить эти никак не взаимосвязанные процессы - зависит только от вас.

 

ЗЫ ах да - есть же еще такие крутые штуки как skipto, fwd и прочие на которых можно строить PBR практически любой упоротости.

Edited by nightfly
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 isp_skynet
      У зв’язку з переходом на продуктивнішу платформу продаємо свій Huawei NE40E-M2K. 
      Пристрій був придбаний у 2022 році в офіційних представників "АйтіБіз".
      Загальна вартість придбання пристрою разом із ліцензіями склала трохи більше 15 000$.
      Можливий продаж з ПДВ.
      З усіх питань прохання звертатися в особисті повідомлення або в Telegram — @Kodr555
       
       
       
      Продуктивність:
      До 2 Tbps загальна пропускна здатність (залежно від конфігурації) До 240 Mpps (мільйонів пакетів на секунду)
      Інтерфейси:
      Підтримка портів 10GE, 40GE, 100GE
      Активовані через RTU-ліцензії:
      40×10GE портів 2×100GE портів
      Шасі та слоти:
      3U шасі До 3 слотів для лінійних карт 2 слоти для комутаційного модуля (SFU) 2 слоти для живлення 1 слот для керуючого процесора (MPUE)
      Надійність та резервування:
      Підтримка GR, BFD, FRR, NSF тощо Резервування джерел живлення та керуючих модулів Охолодження фронт-зад
      Протоколи та функції:
      IPv4/IPv6 Dual Stack MPLS, LDP, RSVP-TE L2VPN (VPWS, VPLS), L3VPN (MPLS VPN) Мультикаст: PIM-SM, PIM-SSM Розширене QoS з 5 рівнями пріоритетів Маршрутизація на основі політик (PBR) BGP, OSPF, IS-IS, RIP
      Застосування:
      Магістральний маршрутизатор для телеком-операторів Агрегаційний маршрутизатор у регіональних мережах BNG (широкосмуговий мережевий шлюз) Прикордонний маршрутизатор у корпоративних мережах Підходить для дата-центрів та хмарної інфраструктури
      Функціональні ліцензії:
      Network Detection Function (діагностика та моніторинг) Функціональність BNG Агрегація трафіку Базове ПЗ NE40E-M2, VRP8 V800R010 Додаткові функції для аналізу трафіку
      Ліцензії на порти та ємність:
      RTU-ліцензія на 1×10GE порт – 10 шт. RTU-ліцензія на 10×10GE портів – 3 ліцензії (загалом 30 портів) RTU-ліцензія на 1×100GE порт – 2 шт. Ліцензія на збільшення пропускної здатності на 50GE – 1 шт.
      Підтримка користувачів:
      Підтримка до 20 000 абонентів
    • By Futura
      Какое количество абонентов за 1 реальным IP (v4) возможно в наше время? В плане онлайн игр, банов, каптч и т. п.
    • By Інет.укр
      Продам 
      juniper mx5-t (mx80) - 950$
      Juniper ms-mic-16g - 800$
      Juniper mic-3d-2xge-xfp - 200$
      https://t.me/serjiomati
    • By Dilan
      Продам свитч Arista DCS 7050S-52
      2 блока питания, уши+ салазки
      Цена 20 тыс + торг
    • By Myr4ik
      Всем привет!
      Когда-то на просторах локала находил as-set со списком российских asn, но сейчас что-то не нахожу.
      Поделитесь, пожалуйста.
       
×
×
  • Create New...