Перейти до

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

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

Доброго времени суток. Недавно начал пользоваться 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 реализовать это не таблицами, а через интерфейсы? Если у кого есть опыт - поделитесь пожалуйста.

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

Ну дык и шейпите себе только 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

 

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

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

 

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

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

 

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

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

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

 

 

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

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

Дефолтная политика для подсетей пользователей - 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

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

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

 

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

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

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

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

 

 

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

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

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

 

 

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

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

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

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

 

 

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

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

 

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

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

 

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

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

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

 

 

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

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

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

 

 

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

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

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

 

 

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

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

 

Спасибо)

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

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

 

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

 

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

 

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

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

 

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

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

 

 

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

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

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

 

 

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

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

 

 

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

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

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

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

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

 

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

Відредаговано nightfly

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

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

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

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

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

Вхід

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

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