LINUX.ORG.RU

NPF: новый пакетный фильтр в NetBSD

 , , npf


0

0

В NetBSD-current появился новый пакетный фильтр npf, написанный с нуля литовцем Миндаугасом Расюкевичиусом (Mindaugas Rasiukevičius). Основные возможности:

  • фильтр разработан с учётом многопроцессорных машин и без использования блокировок для получения масштабируемой производительности — теперь пакетный фильтр не является узким местом на многопроцессорном маршрутизаторе;
  • быстрый поиск по хеш-таблице и красно-чёрному дереву;
  • динамическая фильтрация пакетов (на основе информации о соединениях), преобразование сетевых адресов и портов (NAPT) и шлюзы уровня приложений (ALG);
  • новый «движок» N-Code, написанный по основным принципам BPF: N-Code использует для нахождения соответствия в пакетах основные RISC-подобные инструкции и несколько CISC-подобных инструкций для обычных шаблонов наподобие адресов IPv4;
  • уже знакомые синтаксис конфигурирования и утилиты;
  • модульность и расширяемость: пользователи могут расширить NPF путём загрузки модуля ядра; NPF предоставляет разработчикам API, а правила NPF могут использовать специальный метод для активизации расширения.

Таким образом, к январю пользователи NPF получат все те возможности, которые они получают от других пакетных фильтров:

  • повторная сборка пакетов IPv4;
  • двунаправленные NAT и перенаправление портов;
  • поддержка прокси FTP;
  • чистка флагов в заголовке IP;
  • блокировка пакетов ICMP и TCP RST;
  • сохранение и восстановление состояния;
  • журналирование пакетов, настраиваемые правила фильтрации.

Стоит отметить, что в NPF ещё не реализована поддержка IPv6. Автор NPF согласился предоставить техническую поддержку разработчикам, которые будут этим заниматься. Поддержку IPv6 обещают в ближайшем будущем.

>>> Подробности

★★★★★

Проверено: annoynimous ()
Последнее исправление: MuZHiK-2 (всего исправлений: 3)

рутеров

Молодец, правильно написал. Но нетрадиционно.

post-factum ★★★★★
()

> Фильтр заточен

Какое-то просторечное выражение. Или в прямом смысле «заточен напильником»?

irq
()
Ответ на: комментарий от irq

прошу для эстетов сделать s/заточен/притален/g

dilmah ★★★★★
() автор топика

Фильтрацию по содержимому пакета (не обертки ether/ip) оно умеет? Что-то по npf_ncode.9 не понятно.

lasso
()
Ответ на: комментарий от registrant

>> использование всей мощи многопроцессорных рутеров.

аж в дрожь бросает


Так рабы закона Мура же!

helios ★★★★★
()

Ещё чуть-чуть и тегов было бы больше, чем самого текста :)

helios ★★★★★
()
Ответ на: комментарий от Deleted

Не велосипед, просто литовец начал писать его еще до выхода первой версии obsd с pf, литовские программисты, такие литовские :D

anonymous
()
Ответ на: комментарий от irq

>Какое-то просторечное выражение. Или в прямом смысле «заточен напильником»?
что можно заточить напильником?

prizident ★★★★★
()

> Миндаугасом Разикевичем

Mindaugas Rasiukevicius


Итого, предположительно Миндаугасом Разюкевичиусом

sf ★★★
()

Раз уж bytecode в виде тэга, то добавьте ещё: N-Code, ipv4, lack of ipv6, nat, napt, ALGs, port forwarding, ftp proxy, ip header flags cleansing, rst blocking, save state, restore state, packet logging

anonymous
()
Ответ на: комментарий от anonymous

>Представил себе роутер с i7 внутри, порвал шаблон.

многопроцессорных

А теперь представь, что там этих i7 несколько. И у каждого свой здоровенный кулер.

dogbert ★★★★★
()
Ответ на: комментарий от MuZHiK-2

>Я немного дописал новость, не пугайтесь.

хорошо, что ты хоть комменты редактировать не можешь

registrant ★★★★★
()

В принципе круто. Ждём в FreeBSD =) Хотя зачем, если есть IPFW? Он вроде тоже масштабироваться может на SMP.

ЗЫ: В мире бсд с файерволами скоро будет такой же зоопарк как в мире линукс с менеджерами пакетов и ФС...

CKPbIT_HUK
()
Ответ на: комментарий от dogbert

У меня реально такая проблема вставала, что грузит 1 горшок, а остальные 7 простаивают, а пакеты виснут.

emomasson
()

Хрена новость выросла. Это мужик-2 постарался? Молодцом, будешь в наших краях - пивом угостим

mikhalich ★★
()

> написанный с нуля литовцем

Спасибо, но не нужно

paran0id ★★★★★
()
Ответ на: комментарий от anonymous

>и чем оно лучше pf?

Ну вроде как изначально заточено под SMP.

«фильтр разработан с учётом многопроцессорных машин и без использования блокировок для получения масштабируемой производительности — теперь пакетный фильтр не является узким местом на многопроцессорном маршрутизаторе;»

yurkis
()

netbsd еще живо? или автор перелючился с os/2 на свежачок?

AVL2 ★★★★★
()
Ответ на: комментарий от CKPbIT_HUK

>ЗЫ: В мире бсд с файерволами скоро будет такой же зоопарк как в мире линукс с менеджерами пакетов и ФС...

значит, bsd-файрволлы более востребованы, чем файлохранилища

annulen ★★★★★
()
Ответ на: комментарий от cruxish

Теперь команда netfilter из спортивного интереса должна наконец-то выпилить из своего продукта блокировки и сделать netfilter быстрым на smp.

ventilator ★★★
()

А многопроцессорные роутеры вообще бывают? Интересно, на какую нагрузку расчитаны? Ведь в обычных роутерах процы порядка 300 мгц если я не ошибаюсь, и ничего, хватает.

anonymous
()
Ответ на: комментарий от anonymous

Бывают. У провайдеров к примеру. В случае домашнего роутера конечно никакого смысла в куче i7 ядер нету, а вот провайдеры такое используют.

ventilator ★★★
()
Ответ на: комментарий от anonymous

>Ведь в обычных роутерах процы порядка 300 мгц если я не ошибаюсь, и ничего, хватает.

на что их хватает? стандартный роутер даже 100мбит не маршрутизирует. Не успевает.

AVL2 ★★★★★
()

А чем не устраивает штшатный IPFilter?

gns ★★★★★
()

>Rasiukevičius

я думал окончания только -ускас есть, как у меня.

eR ★★★★★
()
Ответ на: комментарий от ventilator

И не обязательно куча i7. К примеру, несколько низкочастотных mips ядер могут быть лучше чем одно высокочатотное. Я о энергопотреблении.

exst ★★★★
()
Ответ на: комментарий от anonymous

>А многопроцессорные роутеры вообще бывают? Интересно, на какую нагрузку расчитаны? Ведь в обычных роутерах процы порядка 300 мгц если я не ошибаюсь, и ничего, хватает.

Еще как бывают. Как роутить терабит да еще и с большим правил?

yurkis
()
Ответ на: комментарий от yurkis

> Еще как бывают. Как роутить терабит да еще и с большим правил?

Ну да, 4-головым роутером. И всенепременно с фряхой на борту, в крайнем случае - gentoo.

nicolnx
()
Ответ на: комментарий от nicolnx

>> Еще как бывают. Как роутить терабит да еще и с большим правил?

Ну да, 4-головым роутером. И всенепременно с фряхой на борту, в крайнем случае - gentoo

А если 2xMIPS? Или любым многоголовым девайсом с JunOS. Или да, 2-х головым роутером с фряхой.

Кстате, так любимые на наших просторах старые компы с относительно большим набором правил на 100 мегабитах, пардон, укакиваются.

yurkis
()
Ответ на: комментарий от yurkis

а нужно правила писать уметь, а то понапишут over9000 линейных правил, ни ipset, ни хештаблиц при шейпинге и потом оказывается что укакиваются. Старый атлон 1.8 влегкую делает 300 мегабит при правильной настройке. Да и дело чаще в pps, а не в мегабитах.

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

ventilator ★★★
()
Ответ на: комментарий от ventilator

> а нужно правила писать уметь, а то понапишут over9000 линейных правил

А должны быть юзерлэнд утилиты, умеющие эффективно компилировать правила, написанные неоптимально.

dilmah ★★★★★
() автор топика
Ответ на: комментарий от dilmah

Мне кажется что если берешься роутить что-то не в домашних условиях, и еще нужно много правил, стоит понимать что делаешь, а не пользоваться юзерленд утилитами. Это только в виндовсе у файрвола две кнопки - «cцуко фильтруй» и «погодь фильтровать»

ventilator ★★★
()
Ответ на: комментарий от anonymous

> А многопроцессорные роутеры вообще бывают?

Не слышал о таких. У T1600 с самым навороченным route engine RE-TXP-DUO-2600-16G-BB - один dual core celeron 2,66 внутри, если верить официальному даташиту. Практически все маршрутизирующие функции давно уже выгружены на ASIC'и.

А вот фаерволы, возможно и бывают. Во всяком случае, в цисковских ASA'шках традиционно стояли относительно современные процессоры.

anonymous
()
Ответ на: комментарий от anonymous

Если роутером считать только то на чем наклеена надпись cisco/juniper/etc то бывают, но сабж вряд ли там будет использоваться.

Если считать роутером все что выполняет такие функции в том числе x86 машины с линуксом/фрибсд то бывает тем более

ventilator ★★★
()
Ответ на: комментарий от ventilator

>Если роутером считать только то на чем наклеена надпись cisco/juniper/etc то бывают, но сабж вряд ли там будет использоваться.

Если говорить о JUNOS (который и на роутерах и на тех же SRX, например), то он основан на фряхе и можно предположить, что там используется bpf. Проблема в том, что предположить можно, а так фиг его знает, коды-то закрыты. Могли и свое что-то написать, захотят и n-code запихают. И никому об этом не расскажут. Что поделаешь, вендор. И это еще не самый скрытный вендор. =)

А насчет «бывают», было бы здорово, если бы подтвердили свои слова чем-нибудь, например ссылкой. Я узнаю для себя что-то новое, да и другим участникам ветки, думаю, будет интересно. Имею в виду конечные продукты на JUNOS, IOS и тому подобных ОС.

anonymous
()
Ответ на: комментарий от anonymous

Предположить конечно можно, только джунос - это контрол-плейн, он форвардингом пакетов не занимается, а только получением роутов/etc и заливкой результатов в pfe(packet forwarding engine).

Любой серьезный железный роутер имеет дублирование управляющих плат, соотвественно процессор там не один. Я думаю это можно без проблем загуглить. Но только форвардинг делают асики - тоже процессоры, не общего назначения. И сабж вряд ли применим к ним.

ventilator ★★★
()
Ответ на: комментарий от anonymous

Косвенно, подтверждением использования bpf Жунипером являются понатыканные там и сям в bpf.h комментарии вида:

* Juniper-private data link type, as per request from Hannes Gredler <hannes@juniper.net>.

http://fxr.watson.org/fxr/source/net/bpf.h?v=FREEBSD8

Слухи, разоблачения на линуксоргру. =)

anonymous
()

facepalm

Два раза уже фамилию исправляли, исправьте, что-ли, и еще разок — «Расюкявичюс».

Совсем братьев-литовцев забыли, господа.

Zmicier ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.