Axe Опубликовано: 23 листопада, 2013 Опубликовано: 23 листопада, 2013 Доброго времени суток. Недавно начал пользоваться 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 vlan3table\(5\) - Локальные пользователиext0 - lo1:123.123.123.123 Есть ли варианты в IPFW реализовать это не таблицами, а через интерфейсы? Если у кого есть опыт - поделитесь пожалуйста.
nightfly Опубліковано: 23 листопада, 2013 Опубліковано: 23 листопада, 2013 Ну дык и шейпите себе только recv/xmit via "влан уходящий в мир" при помощи tablearg. Что вам мешает?
Axe Опубліковано: 23 листопада, 2013 Автор Опубліковано: 23 листопада, 2013 (відредаговано) Ну дык и шейпите себе только 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 Только вот при такой записи просто фаерволл перестаёт пропускать пакеты. Відредаговано 23 листопада, 2013 Axe
nightfly Опубліковано: 23 листопада, 2013 Опубліковано: 23 листопада, 2013 (відредаговано) Только вот при такой записи просто фаерволл перестаёт пропускать пакеты. Он не перестает. Они скорее всего просто перестают принадлежать стандартной доступа. Дефолтная политика для подсетей пользователей - deny. При net.inet.ip.fw.one_pass=1 наложение dummynet pipes работают как allow по дороге пошейпливая. Исходя из того, что у вас внезапно перестают ходить пакетики можно сделать вывод, что трафик от пользователей попадает в ipfw nat не долетая до шейпа. Проверяется очень просто при помощи ipfw show. Посмотрите что-ли в какую сторону у вас в эти правила не попадает трафик. Если в обе - утащите их выше nat-а, если в какую-то одну из сторон - утащите ее выше или ниже, чтобы быть уверенным, что src/dst будут адекватными с точки зрения текущего клиента относительно ваших интерфейсов. В общем шейпить и алловить уже проначеный траффик.... эмммм... как-бы даст вполне предсказуемый эффект Відредаговано 23 листопада, 2013 nightfly
Axe Опубліковано: 23 листопада, 2013 Автор Опубліковано: 23 листопада, 2013 Только вот при такой записи просто фаерволл перестаёт пропускать пакеты. Он не перестает. Дефолтная политика для подсетей пользователей - 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 В таком виде пакеты должны улетать только в мир(ну я бы так хотел) и по пути шейпится. Но этого не происходит. Если я добавляю ниже разрешающие правила(а они должны быть для остальных направлений) для прохождения пакетов из таблицы пользователей, то ясен пень что оно не шейпится и пакеты проходят.
nightfly Опубліковано: 23 листопада, 2013 Опубліковано: 23 листопада, 2013 (відредаговано) ${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) ${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any В таком виде всё шейпится. Это заведомо х....й вариант влияющий на все интерфейсы и пролетающие сквозь ядро пакеты, которые может увидеть. В таком виде пакеты должны улетать только в мир(ну я бы так хотел) и по пути шейпится. Но этого не происходит. И в предыдущем посте я отписал, почему так происходит и как это обойти. Відредаговано 23 листопада, 2013 nightfly
Axe Опубліковано: 23 листопада, 2013 Автор Опубліковано: 23 листопада, 2013 ${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) ${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any В таком виде всё шейпится. Это заведомо х....й вариант влияющий на все интерфейсы и пролетающие сквозь ядро пакеты, которые может увидеть. В таком виде пакеты должны улетать только в мир(ну я бы так хотел) и по пути шейпится. Но этого не происходит. И в предыдущем посте я отписал, почему так происходит и как это обойти. Попробовал утянуть пайпы выше ната... пакеты не ходят. На сколько я понял, вы предлагаете сперва отшейпить пакеты, потом пихать их в нат. Верно ?
nightfly Опубліковано: 23 листопада, 2013 Опубліковано: 23 листопада, 2013 Попробовал утянуть пайпы выше ната... пакеты не ходят. Значит так пробовали. Вам бог глаза зачем дал? ipfw show в один глаз, tcpdump в другой - и вперед, смотреть по каким рулесам и на каких интерфейсах оно не пробегает. На сколько я понял, вы предлагаете сперва отшейпить пакеты, потом пихать их в нат. Верно ? Я не предлагаю. Я просто констатирую факт, что это единственное адекватное решение.
Axe Опубліковано: 23 листопада, 2013 Автор Опубліковано: 23 листопада, 2013 Попробовал утянуть пайпы выше ната... пакеты не ходят. Значит так пробовали. Вам бог глаза зачем дал? ipfw show в один глаз, tcpdump в другой - и вперед, смотреть по каким рулесам и на каких интерфейсах оно не пробегает. На сколько я понял, вы предлагаете сперва отшейпить пакеты, потом пихать их в нат. Верно ? Я не предлагаю. Я просто констатирую факт, что это единственное адекватное решение. Спасибо)
Axe Опубліковано: 24 листопада, 2013 Автор Опубліковано: 24 листопада, 2013 (відредаговано) Подскажите всё же, как словить исходящий пакет ? добавив правило перед натом я снял ограничение на входящи траффик... ${FwCMD} add 2005 allow ip from any to table\(5\) out recv vlan2 (Всё чёто влетело через интерфейс UAIX) Но вот как словить исходящий пакет - вообще не могу понять. ipfw show просто показывает 0 пакетов... Хотя бы логику поясните. Если клиентский ип стучится в шлюз на интерфейс lan0 ... то как фаерволлом словить его на vlan2 ? Відредаговано 24 листопада, 2013 Axe
nightfly Опубліковано: 24 листопада, 2013 Опубліковано: 24 листопада, 2013 (відредаговано) Подскажите всё же, как словить исходящий пакет ? Сачком пробовали ловить? добавив правило перед натом я снял ограничение на входящи траффик... Еще раз перечитайте мой предыдущий пост. Рисуя allow-ы где ни попадя, в обход типичного комбайна из tablearg/pipe via interface вы просто нивелируете всю логику авторизации и аутентификации ваших пользователей. Хотя бы логику поясните Поясняю: http://nuclight.livejournal.com/124348.html то как шейпер узнать может что пакет отнатится И не напрашивается очевидный вывод? Задача шейпера ака dummynet... ВНЕЗАПНО шейпить а не "узнавать" чего-то там. Задача ната - тоже только натить никак не взаимодействуя с шейпером и тоже ничего не "угадывать". Где и в каком порядке, на каких интерфейсах будут происходить эти никак не взаимосвязанные процессы - зависит только от вас. ЗЫ ах да - есть же еще такие крутые штуки как skipto, fwd и прочие на которых можно строить PBR практически любой упоротости. Відредаговано 24 листопада, 2013 nightfly
Axe Опубліковано: 24 листопада, 2013 Автор Опубліковано: 24 листопада, 2013 Спасибо, ушёл курить маны ))
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас