Я пишу модуль ядра, который должен выполнять фильтрацию пакетов на уровне IP. То, что мне нужно сделать, это перехватить все IP-пакеты и некоторые исходящие пакеты, я должен удержать их в течение небольшого промежутка времени (например, несколько десятков миллисекунд) для анализа перед отправкой их на своем пути.netfilter - как указать номер очереди в модуле ядра?
У меня есть модуль ядра и работает, в настоящий момент он принимает все входящие пакеты и возвращает NF_QUEUE во всех исходящих пакетах. Затем я могу собрать эти пакеты с использованием libnetfilter в пользовательском пространстве (например, с помощью скрипта Python и NetfilterQueue), но проблема в том, что библиотека Python принимает номер очереди, а мой модуль ядра ставит очередь пакетов в очереди # 0. Как это настроить?
Это то, что исходящий пакет крюк моего ядра модуля выглядит (мощеный вверх из различных источников):
Где указать, какие очереди пакетов будут в конечном итоге на? Каково значение номеров очередей? Я не могу обрабатывать случайные бродячие пакеты, поставленные в очередь другим крюком, чем мои, это уже сделано по умолчанию?
Спасибо! Кроме того, я использую Linux 3.x.
Извините за поздний принять, я потерял этот вопрос. Спасибо :) – Thomas
Нет проблем. Надеюсь, это помогло. –