Как получить пакеты, поставленные в очередь фильтром пакетов ядра?

Я сделал простой HTTP-прокси, который принимает подключения от клиентов на фиксированном порту; прокси-вилки для каждого входящего соединения, а разветвленный процесс связан с потоком пакетов в Интернет и из Интернета; реализован простой QOS, пакеты хранятся в трех разных очередях в соответствии с их уровнем приоритета (минимальным, средним, максимальным) и затем отправляются в порядке приоритета.

Пока все хорошо, но мой прокси-сервер не совсем там, где он должен быть: прокси-сервер находится на моем ноутбуке, а клиенты, которые должны подключаться к прокси-серверу, – это только мой ноутбук: так что прокси работает, но это не реальный случай (я не хочу прокси на локальном компьютере, я хочу, чтобы он был «снаружи»).

Теперь, когда этап тестирования завершен, я хочу перенести свой прокси-сервер на внешний объект, где (я предполагаю) это должно быть: например, моя малина Pi 2, но прежде чем сообщить мне о переносе этого вопроса, пожалуйста, узнайте о моей проблеме , Я читал вопросы в Rackberry Stack Exchange, и все они касаются датчиков, как подключить Pi к монитору или проблемы с Bluetooth.

Моя проблема связана с библиотеками в базовой ОС, Raspbian, операционной платформе Debian, поэтому я подумал, что этот Stack Exchange будет подходящим местом.

Я пробовал первый подход с libnetfilter_queue (всегда с прокси-сервером на моем ноутбуке) и с флагом iptables , NFQUEUE , у меня была очередь (-ы) пакетов (для копирования в моей очереди, DROP их и отправки их снова, когда время пришел с сырым сокетом): но мой RPi может быть мультиинтерфейсом (он может содержать до четырех ключей Wi-Fi, поскольку это точка доступа, а также кабель Ethernet, с которым он подключен к моему модему) и мой руководитель сказал, что libnetfilter_queue не подходит для моей цели, поскольку он не может иметь дело с более чем одним интерфейсом, и он имеет трудности при выборе того, какой интерфейс использовать для отправки пакетов.

В итоге: у меня есть прокси-сервер на моем ноутбуке, я бы хотел его перенести в свой RPi (так что помимо точки доступа он также должен предлагать QOS), но я не знаю, как перенаправить пакеты с один интерфейс wlan0 (или все четыре из них) для моего прокси, предназначенный для прослушивания порта, переданного main программе.

libnetfilter_queue (по-видимому) не является опцией, поэтому какую библиотеку / API я могу использовать?

Это часть моей диссертации, поэтому я предпочитаю использовать библиотеки и / или API для интеграции с моим кодом, а не для использования уже существующих программ.

Спасибо за вашу помощь.

Interesting Posts

Как сообщить xrandr, чтобы моя мышь перемещалась между мониторами?

поиск сценария Bash – возврат к ошибке, а не выход?

«Ip route get» игнорирует таблицы, указанные в «правиле ip»,

Как я могу узнать, была ли исправлена ​​моя система Ubuntu, поэтому она не может быть отвратительной для Dirty Cow?

Объедините несколько файлов на основе md5sum

Установка Ubuntu 12 – разделы

Существует ли идентификатор PID для каждого сервиса tomcat? Если он существует, можно ли найти имя службы из этого PID текущей службы tomcat?

Приложение не может выполнить из-за проблемы с общей библиотекой

Установлено CentOS, теперь нет параметров Windows 8 при перезагрузке

Ubuntu apt -f установить эквивалент в Fedora

Могу ли я объединить SAS и SATA HDD вместе с LVM?

Как сбросить USB-трафик?

Как мы можем изменить пароль root?

Кто-нибудь получил какие-либо показатели производительности, сравнивающие IIS и .NET с Cherokee и Mono?

Несколько шлюзов / серверов имен для физического и логического интерфейса (на одном физическом интерфейсе)?

Linux и Unix - лучшая ОС в мире.