Разработчики NetBSD представили новый пакетный фильтр — NPF
14 сентября 2010 года
В рамках проекта NetBSD разработан новый пакетный фильтр NPF, вобравший в себя лучшие черты ранее присутствующих в NetBSD систем PF и IP Filter. Главными критериями при разработке NPF выступали: обеспечение высокой производительности на многопроцессорных системах и легкость разработки дополнений, расширяющих базовую функциональность. Отличительной и уникальной чертой нового пакетного фильтра является использование интерпретатора байткода в движке инспектирования пакетов.
Основные возможности NPF:
- Изначальная поддержка обработки пакетов в многопоточном режиме и минимизация блокировок в коде. NPF отлично масштабируется на многопроцессорных системах, в отличие от PF, в котором используется однопоточный режим работы.
- Использование эффективных хэш-таблиц и красно-черных деревьев для ускорения выборки элементов;
- Поддержка фильтрации с учетом состояния TCP-соединений;
- Поддержка нескольких режимов трансляции адресов, включая NAPT (несколько внутренних адресов могут быть привязаны к одному реальному IP с разделением по номеру порта) и ALG (Application-Level Gateway, учет особенностей прикладных протоколов при организации трансляции адресов, например, позволяет работать через NAT ftp, p2p, h.323, sip и т.п.);
- Привычный, для пользователей PF и IP Filter, синтаксис файла конфигурации и типовой набор утилит;
- Модульность и расширяемость: функции NPF могут расширяться через загрузку дополнительных модулей. Для создания модулей и расширений подготовлен специальный API. В заданных пользователем правилах фильтрации могут быть встроены обращения к внешним модулям;
- Движок инспектирования пакетов "N-Code processor", основанный на идеях, реализованных в интерфейсе BPF (Berkeley Packet Filter): попадание пакетов под правила обеспечивается через формирование набора RISC-подобных инструкций и CISC-подобных команд для выполнения типовых операций (например, проверка IPv4-адреса).
Разработку планируется довести до полнофункционального состояния к концу января 2011 года. Ожидается, что в это время NPF сможет обеспечить работу всех функций, свойственных другим пакетным фильтрам:
- поддержка пересборки IPv4-пакетов;
- двунаправленный NAT и форвардинг портов;
- режим FTP-прокси;
- возможность очистки флаговых полей в заголовках IP-пакетов;
- выборочное блокирования ICMP и TCP RST пакетов;
- сохранение и восстановление состояния;
- ведение лога пакетов, настраиваемого через систему фильтров.
В настоящее время NPF испытывает трудности с реализацией поддержки IPv6, разработчики NetBSD приглашают присоединиться к проекту энтузиастов, заинтересованных в интеграции поддержки IPv6.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.