The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как првильнее сделать модуль для iptables"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Как првильнее сделать модуль для iptables"  +/
Сообщение от Rick Atreides on 21-Сен-12, 10:18 
Добрый день.

Есть провайдер iptv, который выдаёт мультикастом udp траффик.
Сейчас он декодируется патченным udp2http proxy. При этом на телевизоре переключение iptv каналов идёт "не быстро", как я понял это связано именно с буферизацией http трафика.

По этому (и просто интересно поковырять), я хочу реализовать прозрачное декодирование пролетающего udp траффика.

Один из варинатов - написать модуль для iptables.
Прочитал статью "Target-модуль для iptables своими руками.", вроде всё понятно, но меня смутила часть
"Все функции, связанные с TCP/IP-стеком, должны обеспечивать минимально возможные задержки – скорость их работы влияет на производительность всей сетевой подсистемы в целом".

В связи с этим возник вопрос - как правильно реализовывать "это"
Варианты:
1) Прописать логику декодирования в модуль (ну почти 1-1 как в статье). В моём случае это расшифровка закрытым ключом, и, по идее, она не должна внести сильные задержки, не требует общих ресурсов при параллельной обработке пакетов, и т.д.
2) Сделать "проброс" пакетов в userland, где осуществить декодирование, и возврат обратно. В этом случае, в целом процесс принял-раскодировал-послал, по идее, работать будет медленнее, однако не будет влиять на работу системы (сети) в целом, и текущий вариант с udp2http показывает, что userland справляется с задачей на ура (это всё крутится на роутере с openwrt).
Кроме того он позволить расширить функционал нормальным дебагом, обновлением ключа шифрования ну и что там ещё захочется.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как првильнее сделать модуль для iptables"  +/
Сообщение от pavel_simple (ok) on 21-Сен-12, 15:40 
>[оверквотинг удален]
> В моём случае это расшифровка закрытым ключом, и, по идее, она
> не должна внести сильные задержки, не требует общих ресурсов при параллельной
> обработке пакетов, и т.д.
> 2) Сделать "проброс" пакетов в userland, где осуществить декодирование, и возврат обратно.
> В этом случае, в целом процесс принял-раскодировал-послал, по идее, работать будет
> медленнее, однако не будет влиять на работу системы (сети) в целом,
> и текущий вариант с udp2http показывает, что userland справляется с задачей
> на ура (это всё крутится на роутере с openwrt).
> Кроме того он позволить расширить функционал нормальным дебагом, обновлением ключа шифрования
> ну и что там ещё захочется.

ИМХО переносить это на ядерный уровень есть overkill - к тому-же сетевая подсистема (и netfilter тоже) регулярно значительно рихтуется -- так что переписывать придётся не раз.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как првильнее сделать модуль для iptables"  +/
Сообщение от pavlinux (ok) on 23-Сен-12, 17:21 
1. TCP/IP никак не гарантирует задержки!
2. Юзерлэнд и обратно - ужастно дорогостоящая проЦЕдура.
3. Декодирование и шифрация ещё хуже, чем юзерлэнд. :)

Не занимайтесь ерундой, правильно сформулируйте проблему и
найдите её, уже существующие, решение.  

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Как првильнее сделать модуль для iptables"  +/
Сообщение от Rick Atreides on 24-Сен-12, 11:05 
>1. TCP/IP никак не гарантирует задержки!

Ну тут речь идёт о udp, и о влиянии времени обработки пакета внутри модуля ядра на общую производительность системы в целом

>2. Юзерлэнд и обратно - ужастно дорогостоящая проЦЕдура.

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

>3. Декодирование и шифрация ещё хуже, чем юзерлэнд. :)

Ну кто-то должен это делать.

> Не занимайтесь ерундой, правильно сформулируйте проблему и
> найдите её, уже существующие, решение.

Это не проблема, а задача.
Есть сервер - источник шифрованного мултикаст траффика, есть мелиа-плеер, которуый умеет воспроизводить не шифрованный мультикаст udp стрим. Есть linux рутер посередине. Нужно на рутере прозрачно декодировать пролетающиие udp пакеты. Декодировать на клиенте - возможности нет.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру