Вадим Гончаров сообщил в своем блоге (http://nuclight.livejournal.com/130012.html) о начале работ над ipfw ng (http://wiki.freebsd.org/IpfwNg) - обновленной реализацией пакетного фильтра ipfw для FreeBSD.
Основные задачи проекта:
- Не переписывание всего ipfw с нуля, а улучшение и оптимизация текущей реализации;
- Введение поддержки множественных наборов правил (multiple rulesets - аналог Cisco ACLs), которые позволят задавать отдельные наборы правил для разных интерфейсов и входящих/исходящих пакетов);
- Новая реализация динамических правил с унифицированной системой отслеживания состояния соединений;
- Поддержка модулей фильтрации уровня ядра и уровня пользователя;
- Более тесная интеграция с netgraph.URL: http://nuclight.livejournal.com/130012.html
Новость: http://www.opennet.me/opennews/art.shtml?num=33700
>>В честь 26 годовщины 26 апреля уволился с текущей работы и таки наконец начал проект http://wiki.freebsd.org/IpfwNgУважаю человека, все делает ради FreeBSD.
26 апреля? Ах да, 1986 год. Оптимистичное начало...
Еще бы писали оценочное время, сколько требуется хотя бы для выпуска бета-релиза.
это вы о чем? какое оценочное время? ему ж не грант выделили, это энтузиазм.
В этом вашем ipfw dnat как был гемороем, так и остался?
В чем проблеиа с dnat?
Лимит на количество redirect_port? Лимит давно уже починили.
В том же iptables, чтобы пробросить порт нужно только правило. А сколько нужно телодвижений в ipfw?
Вот за этим, в том числе, проект и начат.
> Вот за этим, в том числе, проект и начат.кастую ipfw в качестве ноды netgraph!!!! =)
А ссылко прочитать? Это и будет.
какое же? )))
мне потребовалось три, и то перестало работать после добавления еще одного ипа на интерфейс
на фре есть просто ipnat с простейшим текстовым конфигом
> какое же? )))
> мне потребовалось три, и то перестало работать после добавления еще одного ипа
> на интерфейсправило в студию.
> на фре есть просто ipnat с простейшим текстовым конфигом
оно давно уже плохо пахнет.
:~# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 100.100.100.254 tcp dpt:2022 to:10.122.1.3:22* * * * * * *
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- 10.122.1.3 0.0.0.0/0 tcp spt:22 to:100.100.100.254:2022
SNAT tcp -- 0.0.0.0/0 10.122.1.3 tcp dpt:22 to:100.100.100.254
до добавления второго ипа на интерфейсе 100.100.100.254 работало
всякие эксперименты найденные через гугл в виде одной, двух строк - не работали однозначно
> :~# iptables -nL -t natлучше выхлоп iptables-save
iptables-save не юзаю
по привычке с фри закидываю правила в файл, в котором первыми строками - сном всех правилдостаточно подредактировать файл и запустить его
> iptables-save не юзаю
> по привычке с фри закидываю правила в файл, в котором первыми строками
> - сном всех правилну и зря. потому как iptables-save/iptables-restore атомарны.
кроме того, выгружают набор из всех таблиц.
*сноса в файле оно выглядит так -
/sbin/iptables -I PREROUTING -i eth0 -d 100.100.100.254 -p tcp -m tcp --dport 2022 -j DNAT --to-destination 10.122.1.3:22 -t nat
/sbin/iptables -I POSTROUTING -o eth0 -s 10.122.1.3 -p tcp -m tcp --sport 22 -j SNAT --to-source 100.100.100.254:2022 -t nat
/sbin/iptables -A POSTROUTING -d 10.122.1.3 -p tcp --dport 22 -j SNAT --to-source 100.100.100.254 -t nat
> /sbin/iptables -I PREROUTING -i eth0 -d 100.100.100.254 -p tcp -m tcp --dport
> 2022 -j DNAT --to-destination 10.122.1.3:22 -t natа что за -t nat ?
если вы так указываете так таблицу, то в man iptables совершенного другой SYNOPSIS.
> *снос
> а в файле оно выглядит так -
> /sbin/iptables -I PREROUTING -i eth0 -d 100.100.100.254 -p tcp -m tcp --dport
> 2022 -j DNAT --to-destination 10.122.1.3:22 -t nat
> /sbin/iptables -I POSTROUTING -o eth0 -s 10.122.1.3 -p tcp -m tcp --sport
> 22 -j SNAT --to-source 100.100.100.254:2022 -t nat
> /sbin/iptables -A POSTROUTING -d 10.122.1.3 -p tcp --dport 22 -j SNAT --to-source
> 100.100.100.254 -t natи достаточно было всего 1 правила:
/sbin/iptables -t nat -A PREROUTING -d 100.100.100.254 -p tcp -m tcp --dport 2022 -j DNAT --to-destination 10.122.1.3:22
У меня ядро собрано с "options IPFIREWALL_NAT", поэтому проброс порта (или портов) выполняется одним правилом. Например:
${FwCMD} nat 5 config log redirect_port tcp ${PPTPServer}:pptp ${VirtualServer}:pptp
> В том же iptables, чтобы пробросить порт нужно только правило. А сколько нужно телодвижений в ipfw?Ты не проверишь, одно.
Главное что бы к нему мануалы были понятные!
Расскажите пожалуйста, чем оно лучше/хуже PF? И зачем конкуренция внутри базовой системы?
пф портируют, а ipfw родной.
ipfw быстрей работает и интегрируем с netgraph.
> Расскажите пожалуйста, чем оно лучше/хуже PF? И зачем конкуренция внутри базовой системы?pf не параллелится.
Раньше тоже пользовали PF, пока не возросли нагрузки. При сегодняшних скоростях и типах трафика неродной PF уже не справляется. ALTQ - отдельная пестня, как он теряет пакеты на шейпинге-не передать словами. ng_car даёт ему 100 очков вперед. Вообще связка ipfw и ng - невероятно гибкая и очень мощная.
С некоторого времени мы делаем авторизаторы и маршрутизаторы и шейперы на машинках на базе inetl atom - мега зашибись, себя оправдывает over9000. Стоит 10-15к, не греется не шумит, грузится с флешки с nanobsd, очень практично и удобно. Габариты мелкие. Супер.
И каждый такой ящичек обслуживает 500-1000 клиентов одновременно, шейпит, натит, роутит, авторизует по единому радиусу. При этом даже не грузится ничуть.
Просто сказка какая то, а сколько килопакетов в секунду пропускает это чудо?
> Просто сказка какая то, а сколько килопакетов в секунду пропускает это чудо?50-60к. Ну это то, что я видел на одном из них. А что, там несколько процессоров, ipfw хорошо с smp работает, отличная машинка.
Ну вот у нас около 10 таких машинок, да, где то до 10к пользователей бывает. Ну pps можно сказать суммарный где то поллимона и больше.
Такие дела.
> 50-60к.Столько роутер за 1000 рублей спокойно прожует. А у вас - 10-15 тысяч выходит? Почти цыско какое-то прямо.
С шейпером и радиусами?
>> 50-60к.
> Столько роутер за 1000 рублей спокойно прожует. А у вас - 10-15
> тысяч выходит? Почти цыско какое-то прямо.Прошу прощения, наврал. Мы их не покупаем оказывается сборными, готовыми, а сами делаем. Материнка с процом + корпус выходит 4к рублей. 10-15 это стоит такой же, но фирменной сборки asus например. Не, мы оказывается сами заказываем и собираем.
Такие дела.
Ой как не верится мне что-то. У меня стоит пара серверов на Атоме под те же задачи, пропускает порядка 400 клиентов и 20-30 кппс, но загрузка проца сетёвкой порядка 80% при этом.
Шо вы там такое настраиваете, шо оно у вас тормозит? (С)Как-то виндовый админ на ISA-server подтянул патчик, который отрубал сетевой интерфейс. Пока разбирался в чем проблема, на десктопном серваке Celeron 2.1GHZ, который выступал в качестве тестового, быстренько подымается роутер на PF, тогда еще 4.1, настраивается НАТ, фильтрация и т.д. Пятница, после обеда, народ уже не работает, а тупо висит в инете... Компов до 600 будет. Подробностей загрузки роутера не помню - давно было, но idle ниже 75 не опускался.
> Шо вы там такое настраиваете, шо оно у вас тормозит? (С)http://forum.nag.ru/forum/index.php?showtopic=47497
http://habrahabr.ru/post/111580/#comment_3560901
http://habrahabr.ru/post/82656/#comment_2456000"pf — это вообще файрволл для домохозяек. :-) Если надо побыстрому выпустить в инет офис и есть время только для написания двух строчек — альтернативы pf отсутствуют. :-) Но для серьезного провайдинга — это все фигня. К тому же он на несколько процессоров не раскладывается до сих пор по-моему…
В общем, мой вам совет — откажитесь от pf и перейдите полностью на ipfw. Серверу сильно полегчает и избавитесь от костылей (от тех же дополнительных прокси для активного FTP)."
>[оверквотинг удален]
> http://habrahabr.ru/post/111580/#comment_3560901
> http://habrahabr.ru/post/82656/#comment_2456000
> "pf — это вообще файрволл для домохозяек. :-) Если надо побыстрому выпустить
> в инет офис и есть время только для написания двух строчек
> — альтернативы pf отсутствуют. :-) Но для серьезного провайдинга — это
> все фигня. К тому же он на несколько процессоров не раскладывается
> до сих пор по-моему…
> В общем, мой вам совет — откажитесь от pf и перейдите полностью
> на ipfw. Серверу сильно полегчает и избавитесь от костылей (от тех
> же дополнительных прокси для активного FTP)."А вы опять спорите о разных продуктах для разных задач?... Это то же самое, что сравнивать километры и килограммы.
А по-поводу "для домохозяек". Три физ. интерфейса. Есть еще три gif-IPsec туннеля, mpd-интерфейсы, правила для которых через up\down скрипты, ну и ессно openvpn. И всем этим нормально рулит pf. И да, еще НАТ для сети за роутером.
А вот если вы инетом, извините, барыжничаете (ну так тыщи полторы-две активных pppoe сессий) то тут конечно ipfw вне конкуренции, а если учесть, что в 10-ке еще и diffuse должен появиться, то вообще супер.
И хватит на тему pf - го*но, ipfw - все наше.
>>[оверквотинг удален]
>> "pf — это вообще файрволл для домохозяек. :-) Если надо побыстрому выпустить
>> в инет офис и есть время только для написания двух строчек
>> — альтернативы pf отсутствуют. :-)
> А вы опять спорите о разных продуктах для разных задач?...вы решили выступить в роли Капитана Очевидность? Выше написано, что они для разных задач.
> А по-поводу "для домохозяек". Три физ. интерфейса. Есть еще три gif-IPsec туннеля,
> mpd-интерфейсы, правила для которых через up\down скрипты, ну и ессно openvpn.
> И всем этим нормально рулит pf. И да, еще НАТ для
> сети за роутером.я очень рад за вас. только что вы этим хотите сказать? вы хотите опровергнуть или подтвердить мой тезис?
> А вот если вы инетом, извините, барыжничаете (ну так тыщи полторы-две
> активных pppoe сессий) то тут конечно ipfw вне конкуренции, а если
> учесть, что в 10-ке еще и diffuse должен появиться, то вообще
> супер.1)причём тут diffuse?
2)почему именно ipfw?> И хватит на тему pf - го*но, ipfw - все наше.
новость о:
1)имеющихся проблемах/сложностях в ipfw
2)возможностях, которые хотелось бы иметь
3)вариантах решения п.1 и достижения п.2
4)создании универсального решения, одинаково хорошо подходящего для любых задач.
gre много раз ваш pf умеет без костылей?
> gre много раз ваш pf умеет без костылей?Да.
Достаточно сделать allow gre no state
PBR во фре на PF нормально не сделать
> зачем конкуренция внутри базовой системы?конкуренция - это всегда хорошо. Это прежде всего ваш выбор.
Впрочем, именно тут речь не о конкуренции, а о разных нишах.
PF - для "ленивых". Или, как правильно сказано выше, для домохозяек. Быстро настроил и в путь. Это его главное преимущество. Всё остальное (почти) - преимущества IPFW.
О! Давно ждал этого от Вадима, все думал свершится или нет, пожелаем ему удачи.
Этот парень (нуклайт который) все к нетграф тянет...> Поддержка модулей фильтрации уровня ядра и уровня пользователя;
А это неплохо звучит.
пайпы модулем грузить-бы...
/etc/rc.conf
dummynet_enable="YES"?
нуклайту респект и уважуха!
>> Введение поддержки множественных наборов правил (multiple rulesets - аналог Cisco ACLs)разве ipfw list это не то же самое? (точнее даже лучше какой то ущербной цыски)
>>> Введение поддержки множественных наборов правил (multiple rulesets - аналог Cisco ACLs)
> разве ipfw list это не то же самое? (точнее даже лучше какой
> то ущербной цыски)нет. речь идёт о возможности иметь несколько наборов правил ipfw и выбирать, кто из них будет активным в данный момент.
хотя, на мой взгляд, более полезно иметь несколько наборов таблиц, т.к. данные меняются чаще, чем сами наборы правил.
Вынесение ipfw в ноду netgraph имеет много всяких приятных плюшек:
1)можно иметь хоть per interface набор правил.
2)можно скрестить с mpd и правила вливать per user
> нет. речь идёт о возможности иметь несколько наборов правил ipfw и выбирать,
> кто из них будет активным в данный момент.Нет. Это и сейчас есть. Речь идет о том, что бы можно было написать так:
ipfw add all from me to any ruseset myrulesТо есть что бы можно было применить рульсет какой то к конкретным пакетам. Щас можно ставить один из нескольких рульсетов активным.