Slackware - Перенаправление torrent траффика.

Ответить
Аватара пользователя
Trinux

Slackware - Перенаправление torrent траффика.

Сообщение Trinux »

Здравствуйте уважаемые форумчане. Задача в теме, скажу что есть:



1. Сервер (3 сетевые карты eth0 локальная сеть1 eth1 аплинк eth2 локальная сеть2)

2. Есть микротик RB750 на нем pppoe подключение к провайдеру №2





Задача состоит в том, чтобы как-то разгрузить аплинк №1 хочу перенаправить торрент траффик на микротик с pppoe .





Задача выполнима? Подскажите варианты реализации.
Аватара пользователя
AMDBulldozer

Re: Slackware - Перенаправление torrent траффика.

Сообщение AMDBulldozer »

Проще всего было бы сделать, установив opendpi.



Тогда маршрутизация torrent-трафика через второго провайдера выглядело бы примерно так (пишу навскидку и не проверяю):



iptables -t mange -A OUTPUT -m opendpi --bittorrent -j MARK --set-mark 2

iptables -t mange -A PREROUTING -m opendpi --bittorrent -j MARK --set-mark 2

ip route add default via table torrent

ip rule add fwmark 2 table torrent



Идея, я думаю, понятна.




P.S. Всё написанное выше - увы, бред. Раньше такое работало, но, увы, проект OpenDPI по каким-то причинам прекратил существование, ему на смену пришел какой-то
nDPI
, но я с ним не знаком. Решил не удалять это сообщение. Пусть останется как напоминание о том, насколько быстро устаревают знания.



Можно, конечно, задать диапазон портов для торрента через --destination-port, но это куда менее красивое решение. Изображение
Аватара пользователя
Trinux

Re: Slackware - Перенаправление torrent траффика.

Сообщение Trinux »

Не совсем понял, бред написал я или по поводу opendpi ???
Аватара пользователя
AMDBulldozer

Re: Slackware - Перенаправление torrent траффика.

Сообщение AMDBulldozer »

Цитата Trinux:



Не совсем понял, бред написал я или по поводу opendpi ???
Slackware - Перенаправление torrent траффика.




Прошу прощения за то, что неточно сформулировал свою мысль. Задача, которую Вам требуется решить, достаточно тривиальна.

Она обычно решается при помощи комбинации команд iptables с использованием цели MARK (каждому пакету присваивается тэг, по значению которого будет потом происходить маршрутизация) и команд ip rule (ip - это утилита из пакета iproute2) с помощью которых создаются дополнительные таблицы маршрутизации.

То есть, пакеты с указанным тэгом маршрутизируются с использованием набора правил для конкретной таблицы, а те, у которых тэга нет, маршруизируются с использованием обычной таблицы маршрутизации.

Команда "route" работает только с этой "обычной" таблицей, поэтому её недостаточно для дифференциации трафика по установленному целью MARK тэгу.



То есть, если бы Вам нужно было направить весь трафик через одного провайдера, а, скажем, интернет-серфинг осуществлять через другого, можно было бы использовать набор команд:



iptables -t mangle -A OUTPUT -p tcp --destination-port 80 -j MARK --set-mark 80

ip route add default via table http

ip rule add fwmark 80 table http



(в данном случае цель MARK находится в цепочке OUTPUT, поэтому правило действовало бы только на пакеты, отправителем которых был бы сам хост на котором установлен этот набор правил.

Транзитные пакеты, то есть пакеты, которые маршрутизировались бы через этот хост, не попали бы в цепочку OUTPUT и, следовательно, не могли бы получить тэг.



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

Остается единственный вопрос: каким образом отличить пакеты отправленные торрент-клиентом от всех остальных?

Правильный способ дифференциаци трафика основан на использовании DPI - deep packet inspection.

В этом случае, пакеты получат тэг даже при использовании нестандартных портов или после трансляции адресов (NAT).

В моем примере, я предложил использовать модуль opendpi, который я знал, потому что пару лет назад им пользовался.

К сожалению, когда я решил освежить свои воспоминания и залез в поисковую систему, выяснилось, что этот проект был закрыт несколько месяцев назад.

В сети я прочитал, что от него было сделано ответвление (fork) получившее название nDPI, ссылку на сайт которого я привел в предыдущем сообщении.

Но, opendpi больше не существует, поэтому предложенный мной метод в таком виде работать не будет.

Я расстроился, обозвал своё предложение бредом и честно признаюсь, что больше ничем не могу Вам помочь.

Уж извините. Единственное, на что я хотел обратить Ваше внимание - это на то, что задача, которую Вам требуется решить не только выполнима, но даже достаточно тривиальна.

Просто тривиальное решение с дифференциацией трафика по диапазону портов мне лично не нравится, потому что я считаю его некрасивым.
Аватара пользователя
Trinux

Re: Slackware - Перенаправление torrent траффика.

Сообщение Trinux »

Очень доходчиво и понятно. Вот бы помог кто-то, потому как гугл мне внятных ответов не дал.
Аватара пользователя
Trinux

Re: Slackware - Перенаправление torrent траффика.

Сообщение Trinux »

Вернусь к теме Изображение поставил layer7 (выполняет своию работу где-то на 10%)







так же поднял ipp2p, но почему-то не хочет с моим ядром работать. при запросе хелпа говорит возможные опции











root@server:/etc/network# iptables -m ipp2p --help

iptables v1.4.3



Usage: iptables -[AD] chain rule-specification [options]

iptables -I chain [rulenum] rule-specification [options]

iptables -R chain rulenum rule-specification [options]

iptables -D chain rulenum [options]



......................и т.д.











а вот при выполнении говорит следующее







root@server:/etc/network# iptables -A FORWARD -m ipp2p --edk --kazaa --gnu --bit

iptables: Incompatible with this kernel. Run `dmesg' for more information.













Opendpi не могу найти пакет opendpi-netfilter-wrapper-1.1.tar.gz может есть у кого-то?
Аватара пользователя
AMDBulldozer

Re: Slackware - Перенаправление torrent траффика.

Сообщение AMDBulldozer »

Цитата Trinux:



так же поднял ipp2p, но почему-то не хочет с моим ядром работать
Slackware - Перенаправление torrent траффика.




Утилита iptables сама по себе никакой фильтрации трафика не выполняет. И не должна выполнять. Она всего лишь служит для управления таблицами правил, которые используют модули сетевой подсистемы ядра. Таким образом, для работы любого модуля iptables требуется наличие соответствующего модуля ядра.

Для ipp2p это модуль ipt_ipp2p. Он не включен в ядро, поэтому должен собираться отдельно. С помощью команды "lsmod" Вы можете проверить, загружен этот модуль или нет. Если модуль отсутствует, установить правила, которые требуют его наличия, будет невозможно.
Аватара пользователя
Trinux

Re: Slackware - Перенаправление torrent траффика.

Сообщение Trinux »

Я наверное дал мало информации...





root@server:/etc/network# lsmod | grep ipp2p

ipt_ipp2p 5310 0

x_tables 13219 7 ipt_ipp2p,iptable_mangle,xt_mark,iptable_nat,iptable_filter,ip_tables,xt_layer7





и при этом....





root@server:/etc/network# iptables -A FORWARD -m ipp2p --edk --kazaa --gnu --bit

iptables: Incompatible with this kernel. Run `dmesg' for more information.
Аватара пользователя
AMDBulldozer

Re: Slackware - Перенаправление torrent траффика.

Сообщение AMDBulldozer »

Trinux, а в выводе "dmesg" ничего интересного нет?
Аватара пользователя
Trinux

Re: Slackware - Перенаправление torrent траффика.

Сообщение Trinux »

YНу как бэ намекает мне о моей версии ядра 2.6.35, но вот пытаюсь пересобрать на 2.6.22 а получается какая-то кака..... ничего не работает одни фейлы сыплются.... Изображение



[ 142.600956] IPP2P v0.8.2+2.6.22-patch loading
Ответить

Вернуться в «Общий по Linux»