Поддержка тэгирования пакетов для IPFW. формат правил: # Пометить пакеты, удовлетворяющие правилу тэгом N ipfw add tag N # Проверить, помечен ли пакет тэгом N и выполнить # действие по отношению к нему ipfw add tagged N # Убрать пометку с пакета ipfw add untag N Здесь описано для чего это используется в PF http://openbsd.org/faq/pf/tagging.html Когда пакет обрабатывается правилом, в котором присутствует ключевое слово "tag", к нему добавляется "маркер" (тэг) с номером указанным вслед за ключевым словом "tag". Этих тэгов может быть несколько. Они используются только внутри ядра системы и не передаются в сеть. Тэги могут быть установлены либо удалены из пакета не только при помощи файрвола, а, например, при помощи специальной netgraph ноды. При прохождении через divert сокет тэги теряются. Для проверки установленных тэгов используется опция "tagged". Для удаления тэга из пакета используется модификатор "untag". От выше сказанного можно предложить такие области использования тэгов: * пометка пакетов до трансляции при помощи ng_nat или ipfw nat, с возможностью идентификации и фильтрации пакетов после трансляции. * пометка пакетов проходящих через определённые netgraph ноды. * пометка разными тэгами пакетов входящих на различные интерфейсы и настройка политик их фильтрации.. PS. Отдельное спасибо Вадиму Гончарову за идеи и патч к мануалу. PS2. Эти патчи включены в состав 7.0-CURRENT, 6.1-STABELE и будут в составе 6.2-RELEASE. (c) Andrey V. Elsukov