Перехват и редактирование файлов http-трафика на примере торрента

Пару лет назад возникла идея сделать локальный bittorrent-ретрекер для пользователей нашей «домашней» городской сети, чтобы и пользователи быстрее скачивали и у нас меньше трафика было. Установкой самого ретрекера дело только начиналось, необходимо было как-то анонсировать его для скачиваемых торрентов. В процессе выяснения способов и механизмов анонса я пришёл к достаточно общему и универсальному алгоритму, с которым и предлагаю познакомиться.

Итак, первое:

Что делать


Существуют три способа обьявить о существовании трекера в локальной сети:
  • Использовать добавляемыми некоторыми трекерами адрес retracker.local
  • Анонсировать локальный трекер посредством механизма isp.bep22
  • Перехватывать скачиваемые торрент-файлы и редактировать их, добавляя адрес нашего торрента, «на лету»

Каждый из них имеет свои преимущества и недостатки, соответственно:
  • Использование зоны .local противоречит черновику RFC «Multicast DNS» и вызывает проблемы в работе zeroconf-сервисов Linux и Apple; добавляется лишь немногими трекерами
  • Isp.bep22 работает, насколько мне известно, лишь в клиенте µTorrent и то выключен по умолчанию
  • О перехвате трафика нет никаких упоминаний с success stories, за исключением единственного опыта дружественной сети

Для начала сделали поддержку первых двух вариантов, благо никаких особых усилий для этого не требовалось: добавить в DNS несколько записей (retracker.local IN A и retracker.smarthome.spb.ru _SRV_) просто. На несовместимость .local с zeroconf в данном случае можно закрыть глаза, поскольку в идеале DNS-запросы клиента с включенным zeroconf даже не должны доходить до нашего сервера. Update: Важная ремарка cadmi — для работоспособности .local у пользователя и нашего ретрекера нужно создавать зону не .local, а .retracker.local, что как раз и позволит совместить оба варианта.

Но всё же наиболее интересным и заманчивым выглядел третий вариант, так что я решил поискать информацию об общей технике изменения скачиваемых файлов на лету. Требования к серверу были просты:
  • Работа во FreeBSD
  • Open-source
  • Прозрачность (незаметность) работы для клиента
  • Определение трафика 7 уровня и восстановление файлов из http-потока
  • Передача этих файлов редактирующему скрипту и получение их обратно
  • Передача отредактированных файлов клиенту


Чем делать


К своему удивлению я обнаружил, что техник и open-source программ для такого перехвата и редактирования файлов практически нет. По большому счёту, их всего две: это Squid с экспериментальными модулями ICAP/ECAP и некий фильтрующий прокси под названием "MiddleMan", последний релиз которого вышел в далёком 2004 году, но который продолжает поддерживаться в портах.

От использований Squid я отказался практически сразу: несмотря на наличие сразу двух экспериментальных модулей для работы с проходящим трафиком, решение оказалось чрезвычайно «кривым» и неустойчивым даже в установке и настройке, не говоря уж о работе.

Перешёл к middleman. Поразительно, но факт — старая программа оказалась функциональней и удобней современного монстра Squid. В сущности, он удовлетворяет всем требованиям, кроме полной прозрачности для пользователя — source ip пользователя переписывается на ip сервера с прокси. Замечу, что возможность оставлять source ip есть только у Squid с модулем TPROXY под Linux. Более того, у него есть уникальная опция — при превышении настраиваемого таймаута ожидания прокси отдаёт пользователю неизменённый исходный файл.

Как делать


1. Определение самых популярных торрент-серверов

Для начала я написал небольшой perl'овый скрипт, который через pcap слушает 80 порт и собирает ip-адреса, на которые идут запросы с «Content-Type: application/x-bittorrent». Нужно это для того, чтобы перехватывать не весь http-трафик, а только тот, который принадлежит крупным трекерам.

Затем путём нехитрых манипуляций эти ip-адреса заносятся в таблицу ipfw, используемую при перенаправлении на наш прокси:

${ipfw} add fwd ${proxy_ip}, ${proxy_port} tcp from $lan_customers to 'table(15)' dst-port 80 in via ${int_if}

2. Конфигурация прокси-сервера middleman
Секция, ответственная за отдачу файлов редактирующему скрипту, называется external в mman.xml.

3. Редактирующий «внешний» скрипт


Скрипту mypatcher.pl передаются файлы с mime-типом «application/x-bittorrent», он добавляет в него запись локального трекера (убирая при этом retracker.local, если он там есть, что решает проблемы клиентов с zeroconf) и передаёт содержимое обратно прокси, попутно сохраняя файл ещё и на диск, в таком виде:

#for i in `find /home/torrents/patched/ -type d`; do echo -n "$i" && ls -1 $i| wc -l; done | awk '{print $2" "$1}' | sort -rn | head -n 10

24103 /home/torrents/patched/dl.rutracker.org
7817 /home/torrents/patched/dl.torrents.ru
6184 /home/torrents/patched/tfile.ru
3744 /home/torrents/patched/kinozal.tv
2928 /home/torrents/patched/rutor.org
2872 /home/torrents/patched/torrents.thepiratebay.org
2583 /home/torrents/patched/www.tfile.ru
2582 /home/torrents/patched/www.torrentino.ru
2531 /home/torrents/patched/pornolab.net
1032 /home/torrents/patched/www.rutor.org


Итог работы: на сервере, который выполняет NAT, шейпинг и роутинг сети из 3000 пользователей, загрузка mman вообще не ощутима. В день сейчас таким образом редактируется порядка 200-400 файлов. Нареканий за почти год работы не было, все довольны.

Update 1. «Сохранение файлов на диск» служит исключительно для сбора обезличенной статистики в виде, указанном выше. Ну и попросту я забыл отключить этот механизм отладки скрипта. :) Cadm
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 104

    +2
    white hat во всей красе! Шикарно.
      +10
      Присутствие pornolab.net в топе радует… :)
        0
        куда ж без него xD
        +10
        А разве модификация трафика провайдером не нарушает каких нибудь законов или вроде того?
          0
          А что вы называете модификацией? Замена ARP-адреса и уменьшение значения TTL в ip-пакетах на маршрутизаторах тоже под модификацию трафика подпадает. ;)
            0
            Это не пользовательский трафик, это служебные заголовки, которые совершенно не волнуют пользователя.
            Тоже самое как если я заказываю такси, то мне все равно на чем оно едет — на бензине или солярке. Так и тут ARP-адрес — та «солярка», с помощью которой передается полезное содержимое.
            0
            Только принцип net neutrality.
              0
              Он соблюдён.
                +2
                Автоматическое изменение данных, запрашиваемых пользователем, не очень то укладывается в «нейтралитет».
                  0
                  В таком случае вы неправильно понимаете смысл термина.
                  Данное изменение тождественно указанию ip-адреса для DNS-имени retracker.local, не ухудшает трафикообмена пользователя и поддаётся контролю со стороны пользователя.
                    0
                    Вообще говоря, нарушается end-to-end principle и принцип dumb network (если уж ссылаться на Википедию).
                      +3
                      Если коротко обобщить, задача провайдера — передать трафик из точки A в точку B. Именно это подразумевается под «предоставлением доступа в Интернет».

                      Кстати, вполне возможно что этим нарушается какой либо пункт в договоре предоставления услуг, заключаемом абонентами — если им в каком либо виде гарантирована передача их трафика без изменений.

                      В общем, моё мнение — как технический трюк забавно, но в остальном — сомнительно.
                        +1
                        Я понимаю, но увы, действительность далека от принципов теоретиков: цисковские роутеры не обрабатывают icmp-пакеты с тем же приоритетом, что и пропускаемые, мы контролируем одновременное количество SMTP-коннектов, а ещё закрываем порты NetBIOS и DHCP и блокируем за вирусную активность.
                          0
                          Имхо это немного из другой оперы. Обеспечение жизнедеятельности сети это одно, навязывание непрошенных услуг — немного другое. Разве что у вас очень серьезные проблемы из-за чудовищных количеств исходящего p2p-траффика.
                            +1
                            Вы очень упрямы. Ещё раз прочитайте этот комментарий и подумайте над тем, каким образом замена одного DNS-имени на другое, оба из которых разрешаются в один ip, является навязыванием услуги.
                              +1
                              Да, тогда это не навязывание услуги. Но имхо всё равно слишком странное решение для не очень то серьёзной проблемы.
                        0
                        Скользкий вопрос. Data discrimination не наблюдается, вы согласны?
                        Операция замены в файлах имени retracker.local на retracker.smarthome.spb.ru равнозначна DNS -ответу retracker.local CNAME retracker.smarthome.spb.ru.
                          0
                          А я не говорю про data discrimination. Представьте что Вы парсите html-файлы пользователя и заменяете в ссылках yandex.ru на 77.88.21.11 (или любой другой их айпишник). Теоретически это тоже «равнозначно DNS ответу» :)
                            0
                            Не равнозначно, поскольку retracker.local изначально задуман и сделан именно для провайдеров, определяющих свой внутренний трекер.
                              0
                              Ну представьте что вы не Яндекс заменяете, а внутренний сайт своего провайдера.
                                0
                                Поясните?
                                  0
                                  Ну например. В нашей локальной сети все внутренние сайты расположены в зоне local. Там теоретически можно было бы проворачивать то же самое. Я считаю что замена домена в пользовательском трафике — не очень правильный способ направлять людей на нужные IP-адреса. Для этого существует DNS.
                                    0
                                    Проблема в том, что а) не все трекеры поддерживают добавление retracker.local б) наличие зоны .local у провайдера противоречит стандартам и нарушает работу этой зоны у клиентов, о чём писал и я, и другие.
                                    Поэтому как раз ваш вариант выглядит некорректным.
                        +1
                        Кстати, про «поддаётся контролю со стороны пользователя» в статье ничего не сказано. Судя по правилам ipfw, в middleman перенаправляются все lan-пользователи без исключения. Разве пользователь может контролировать эту фичу? Или под контроленм Вы понимаете возможность вручную удалить ретрекер из пришедшего файла? :)
                          +4
                          Ну… э-э-э… да. :) А ещё может в hosts указать 127.0.0.1 для этого ретрекера. :)
                          Хотя ваша идея мне нравится. Надо будет в личном кабинете добавить лишнюю галочку «торренты быстро/торренты неизменно». Спасибо.
                +3
                Хороший пример нормальной работы мозга специалиста.
                Успехов :)
                  0
                  красиво сделано, может и у себя в сети такое сделаю
                    0
                    Оригинальное решение. Везде бы таких админов в домашние сетки.
                      +10
                      Всегда не любил мелкие сети за то, что админы там творят что хотят. С какой стати МОИ файлы должны кем-то модифицироваться без моего согласия и к тому же сохраняться на стороннем ресурсе? А пароли и логи аськи вы не храните? Есть же соответствующий скрипт :)
                        +1
                        Ой да ладно. Вам Microsoft при обновлении впаривает кучу непонять, чего, а логи аськи всяко собирает сама Mirabilis, или кто там сейчас ей владеет?

                        torrent же по самой своей идеологии штука автогенерируемая и автомодифицируемая. Это только у принципиальных трекеров там может стоять только их адрес.

                        Ну, а если Вам нужна неприкосновенность в публичных сетях, пользуйтесь HTTPS и SSL.
                          –1
                          Сохранение не обязательно, оно у меня для обезличенной статистики ведётся.
                          А модифицироваться оно должно хотя бы для того, чтобы вы лезли не на retracker.local, а на нормальный адрес ретрекера. Если вам так легче, воспринимайте это как некий аналог внутреннего DNS. :)

                          P.S. А сеть в 50 000 абонентов тоже относите к мелкой?
                            +2
                            Шизоидных линуксоидов везде хватает :) В более крупных сетях их обычно контролируют.
                              0
                              У Суммы так же организовано?
                            +6
                            А как же магнеты?
                            А вообще, с позиции потребителя — против таких действий. Согласен с комментарием выше.
                              0
                              А магнеты никак, им по определению трекер не обязателен.
                                0
                                Там есть поле tr, если не ошибаюсь, в которое можно прописать адрес трекера, и тогда клиент начнет его использовать, что вам выгодно ;)
                                  +1
                                  Я подумаю :)
                              +1
                              Главный же тут вопрос, imho, должен быть таким — а как же рейтинги?
                                0
                                Так ведь не заменяют все announce urls, а лишь добавляют еще один, так что с рейтингом все в порядке
                                  0
                                  И даже более того, рейтинг взлетает — по локалке отдаётся быстрее.
                                +4
                                А оно не портит .torrent с закрытых трекеров, где за добавление ещё одного announce url могут и забанить?
                                  0
                                  Было у меня такое опасение, но его развеяли там же, да и практика подтвердила — info_hash не изменяется, а его и проверяют закрытые торренты. Другими словами, не портит и не служит причиной бана. :)
                                  Впрочем, ничто не мешает добавить в скрипт соотвествующий if с пропуском private торрентов.
                                    0
                                    уТоррент для приватных торрентов использовал только первый трекер из списка. Кажется с версии 1.8 началось. Как сейчас — не знаю.
                                    0
                                    Подскажите, а как они это определяют? Не сарказм — праздное любопытство, а есть ли такая возможность.
                                      0
                                      А вот это лучше спросить у них. На тех же blackcat-games что-то подобное в правилах есть.
                                        0
                                        Уже не помню, надо спецификацию читать.
                                      +3
                                      Благими намерениями… оно еще и «попутно сохраняет файл на диск». А можно еще рекламные блоки в html дописывать. А за техническую сторону — пять, очень интересно читать.
                                        0
                                        Попутно шлет файл по почте ТемКтоСледит :)
                                          0
                                          Им тоже нужно качать торренты быстро :)
                                        +2
                                        > На несовместимость .local с zeroconf в данном случае можно закрыть глаза, поскольку в идеале DNS-запросы клиента с включенным zeroconf даже не должны доходить до нашего сервера.

                                        Такие, как Вы «одмины» закрывают на это глаза, а у клиентов потом zeroconf автоматически отключается. Конечно, «запросы не доходят». Потому что Ubuntu, например, честно сообщает «У вашего [криворукого] провайдера в DNS'е [ВНЕЗАПНО] зона .local, поэтому мы avahi отключаем. упс.»

                                          +1
                                          cadmi, ты чего такой сердитый? ;) Обрати внимание, что я специально уделил внимание на вопрос совместимости в статье.
                                          Расскажи-ка лучше подробности:
                                          — Какого фига Ubuntu засылает DNS-запросы зоны .local к моему DNS'у, если ты его должен поднимать только внутри своей сети?
                                          — Что именно сообщает об отключении зоны .local (как раз сейчас сижу перед ноутбуком с Ubuntu и avahi, проблем таких не наблюдаю)

                                          Могу и отключить зону, она в общем-то, для backward compatibility сделана.
                                            0
                                            «специально уделить внимание совместимости» — это нифига равно «не обращать внимания, закрывать глаза» :)
                                            у вменяемых админов и retracker.local работает и zeroconf не выключается. и мы с тобой оба понимаем, как это можно сделать :)

                                            но вот у меня дома оба хоумпрова (бывший и текущий) сделали через ж… приду домой, сделаю скриншот, как именно сообщает.
                                              0
                                              Эм… ты можешь смеяться, но пока что-то не особо понимаю. Закрыть мультикаст с клиента, чтобы он не лез запросами .local?

                                              Давай, приобщай к «вменяемым админам». ;)
                                                –1
                                                да ну. попросту не делать в DNS'е зону .local :)
                                                  +1
                                                  Тогда как работает retracker.local? :D
                                                    +2
                                                    Все почему-то делают у себя на bind'e зону именно .local, а в ней запись retracker A x.x.x.x

                                                    Правильнее сделать зону retracker.local, так и назвать. а в ней, запись A, ну как делают «для сайтиков, чтобы без ввв». Почему это не доходит до большинства, я честно говоря, даже не понимаю.

                                                    Наверное потому, что для этого надо думать головой, а не копипастить «инструкцию с торрентс.ру» :)

                                                    Вспомни, когда я написал про фейл с .local на nag.ru, даже тамошняя публика начала кидаться помидорами, «да пофигу, это никто не использует». А казалось бы, там то мозгов по определению побольше. Я еще объяснял им там, «подождите, присунет Microsoft очередной апдейт, после которого windows начнут ругаться, тогда запоёте» :)
                                                      +1
                                                      Согласен.
                                                      Именно поэтому, как выяснилось, я и сделал год назад у себя зону retracker.local, а не .local:

                                                      [dyr@home-vr ~]$ dig +noall +answer ANY retracker.local
                                                      retracker.local. 86400 IN A 10.78.78.2
                                                      retracker.local. 86400 IN SOA ns2.smart. dyr.smartspb.net. 1 10800 3600 604800 3600
                                                      [dyr@home-vr ~]$ dig +noall +answer ANY local
                                                      [dyr@home-vr ~]$


                                                      Так что я всё-таки об этом тогда подумал. :)
                                                        +1
                                                        Т.е. ретрекер всё таки возможно поднять так, чтобы он не противоречил стандартам? )
                                                          +1
                                                          Остался ещё пункт а — не все трекеры добавляют retracker.local. А так да.
                                                            0
                                                            Может я чего не так делаю, но у провайдера зона retracker.local, но милая убунта не хочет обращаться к внешним днс, а скармливает всё своему avahi… Это нормально? У себя поправил конфиги резолвера.
                                                              0
                                                              Всё же даже зона retracker.local — это по-моему костыль, который до конца не решает конфликт.
                                                              Вот зарезервирована зона .local в протоколе mDNS (Multicast DNS) и нечего её было брать для добавления на обычный DNS-сервер.
                                                              Предложили бы изначально во все torrent-файлы добавлять announce-URL retracker.bittorrent/announce и заводили бы на всех DNS-серверах в локалках свою зону bittorrent и никаких бы конфликтов с протоколом mDNS не было бы.

                                                              А чтобы после неудачной попытки разрешить имя через mDNS линуксовый Avahi всё же передавал это имя для дальнейшего разрешения через обычный DNS, могу вам предложить открыть под рутом конфиг /etc/nsswitch.conf и в строке hosts: удалить фрагмент [NOTFOUND=return], который как раз там прописан после mdns4_minimal и перед dns.
                                            –6
                                            Заинтересовала статья.
                                            Но немного в другом русле. Нужно на локальном уровне как раз минимизировать трафик с торрентов, в сквиде как-то руки не так стоят.
                                            Поделился с коллегой, в итоге разбомбил он ее в пух и прах.

                                            x2 (13:23:46 14/10/2010)
                                            блин из-за твоей стать полчаса угрохал на анализ, судя по скрипту этот мудила недоговаривает))), если бы я был в его домашней сетке — я бы ему клавой зубы почистил бы))

                                            x2 (13:25:39 14/10/2010)
                                            он делает просто- ты например хочеш скачать порно с сайта порнолаб и просиш через файл анонс этой порнушки — твой файл анонса проходит через его торент и в него уже втсавлен локальный торент — то есть все в локалке видят что ты заанонсировал качающуюся порнушку и все могут подключиться для скачки у ТЕБЯ этой порнушки

                                            x1 (13:26:11 14/10/2010)
                                            т.е. некий аналог dht?

                                            x2 (13:26:37 14/10/2010)
                                            мало того что тебя с потрохами сдают)) так он еще анонсирует себя на порнолабе — он подменяет хеш файл — да блин за такое и забанить к хери могут притом навсегда

                                            x2 (13:28:02 14/10/2010)
                                            нет причем тут дхт, в дхт то отсальные незнают что ты качаеш и незнают что качать — а у него стоит трекер который аннсирует все твои закачки со ВСЕХ в мире торентов — ты скачал например фильм с рутрекера а об этом все знают в локалке и тупо гачина/т качать с тебя

                                            x2 (13:28:36 14/10/2010)
                                            то есть такой себе камунизм с разводом лохов

                                            x2 (13:30:01 14/10/2010)
                                            приватности пипец, тылох так как ты использовал инет на скачку фильма а потом просто раздаеш в локалке всем нашару — ведь ты неотключаеш его — нужно ведь для коэфа его раздать

                                            x2 (13:31:23 14/10/2010)
                                            самое прикольное что теоритечиски если закрытый трекер не сообразит то ты на локалке можеш нечестно накрутить коэфф так как хеш файл подменен — думаю скоро какаято подсеть будет забанена на многих закрытых трекерах)))

                                            x2 (13:32:39 14/10/2010)
                                            парень канешно умный, но мудак,


                                            Рискую конечно, но хочется предупредить энтузиастов, которые это реализуют.
                                              +4
                                              По моему этот собеседник нифига не понимает в устройстве торрентов.
                                                +6
                                                Передайте вашему коллеге, что он сам мудак может почитать внимательнее спецификацию. За год работы механизма не поступило ни одной жалобы от пользователей,, банящий pornolab вообще входит в десятку самых часто используемых. :)
                                                # for i in `find /home/torrents/patched/ -type d`; do echo -n "$i" && ls -1 $i| wc -l; done | awk '{print $2" "$1}' | sort -rn | head -n 10
                                                24103 /home/torrents/patched/dl.rutracker.org
                                                7817 /home/torrents/patched/dl.torrents.ru
                                                6184 /home/torrents/patched/tfile.ru
                                                3744 /home/torrents/patched/kinozal.tv
                                                2928 /home/torrents/patched/rutor.org
                                                2872 /home/torrents/patched/torrents.thepiratebay.org
                                                2583 /home/torrents/patched/www.tfile.ru
                                                2582 /home/torrents/patched/www.torrentino.ru
                                                2531 /home/torrents/patched/pornolab.net
                                                1032 /home/torrents/patched/www.rutor.org


                                                Ну и приватность при раздаче торрента — это уже гомерически смешно.
                                                  0
                                                  Спс за статистику :)
                                                  +2
                                                  а) Хеш файла не меняется
                                                  б) Список пиров остается тот же, только появляется возможность обмениваться в нутри локальной сети (что не влияет на рейтинг и не является нарушением условий трекера, если конечно админы трекера не параноики)))
                                                  в) Приватность в торрентах вообще в принципе вещь абстрактная и вряд ли обмен внутри локальной сети шибко повлияет на неё.
                                                  г) Пусть человек еще раз перечитает статью, а особенно понятия ретрекера (хоть в википедии) и вообще принципы устройства торрентов. Ибо после фразы:
                                                  нет причем тут дхт, в дхт то отсальные незнают что ты качаеш и незнают что качать — а у него стоит трекер который аннсирует все твои закачки со ВСЕХ в мире торентов — ты скачал например фильм с рутрекера а об этом все знают в локалке и тупо гачина/т качать с тебя

                                                  хотелось долго смеяться.
                                                    0
                                                    Список пиров остается тем же, только добавляется +3 шанс к тому, что будет засвечен внутренний, а не внешний адрес, который и является единственным нежелательным последствием для любителей скачивать порнографические материалы с участием Черного Вл. Любой торрент-клиент новее 2004 дает то же самое, любой ресолвинг внутренних адресов для «белых» IP дает то же самое, любой «белый» IP дает то же самое.

                                                    И чем еще сие может угрожать приватности?
                                                      –1
                                                      Если вы боитесь обычных юзверей, то да, приватность в каком то смысле страдает. Но как они видят вас, так и вы видите их.
                                                      Если вы боитесь некоторых органов, то наличие вашего локального адреса у них в кармане или его отсутствие (временное) вас не спасет.
                                                        +1
                                                        Более того, как раз локальный трекер увеличивает приватность — мониторинг трафика происходит обычно только на точке выхода трафика в интернет, но не в локальной сети. Таким образом становится возможным скачивать и раздавать трафик хоть вообще без Большого Брата.
                                                      0
                                                      В любом случае изменение пользовательских данных это не правильно.
                                                      За такое надо «клавой зубы чистить».
                                                    0
                                                    Прошу Вас, не давайте ему на хабр, троллей у нас и так полно.
                                                      0
                                                      sorry
                                                      *ему инвайт
                                                    +2
                                                    то есть по сути куча торрентов с пасскеями клиентов хранятся где-то у кого-то? забавно угу
                                                      +3
                                                      а вот насчёт пасскеев корректное замечание, да.
                                                        +4
                                                        на которое вам сейчас ответят, что провайдер и так всё знает, хоть пасскей, хоть не пасскей ) поэтому нечего метаться :)
                                                        +1
                                                        да незачем их там хранить. перехватил, пропатчил, отдал клиенту, стер. можно вообще не сохранять файл на диск, все делать в памяти (или на рамдиске). для «статистики использования трекеров» можно прямо в скрипте-патчере делать +1 к очередному трекеру.
                                                          +2
                                                          Низя так… :) Админам же хочется покачать чего-нибудь без расхода рейтинга! :)
                                                            +3
                                                            у админов обычно seedbox столько рейтинга наваривает, что впору его засаливать и закусывать! :)
                                                          +2
                                                          По идее, раз уж торрент файлы нужны для статистики, можно вести её просто в SQL, удаляя сами файлы сразу после учета.
                                                            +2
                                                            Ну не доделал я это, не доделал. Каюсь.
                                                          +2
                                                          Отличный повод перейти на https-трекеры (да, таких достаточно). В статье относительно безобидная модификация, но теоретически провайдер может сделать что угодно.
                                                            –3
                                                            Чего только не делается, лишь бы не раздавать пользователям белые IP адреса.
                                                            В нашем городе уже года три ни у одного провайдера нет такого понятия «внутренний адрес». Все айпи белые (чаще всего статические) и соединение всегда идет напрямую. Соответственно никакого геморроя с ретрекерами и т.п.
                                                              +1
                                                              Не понял… А какая связь между белыми адресами и повышением скорости работы p2p файлообмена в рамках одной локалки?
                                                                0
                                                                У компьютера в свойствах сетевухи прописывается статичный белый айпи. Больше никих других айпи нет. У провайдера сеть построена таким образом, что все соединения между его абонентами проходят внутри его сети на скорости 100 мбит (т.е. не доходят до шейперов). Поэтому на любом трекере пиры, принадлежащие этому провайдеру, легко подхватываются и качается/отдается со скоростью 100 мбит.
                                                                  +2
                                                                  Это я понимаю, у меня такой же провайдер (с внешней статикой, без всяких PPTP/PPoE), и скорость скачивания за счет пиринговых сетей достигает 100 Мбит — при официальном тарифе в 5 МБит… :)

                                                                  Вопрос в другом — насколько я понимаю, ретрекер полезен не только для обмена трафиком абонентов, сидящих за NAT'ом, но и в случае прямых адресов позволяет быстрее найти друг друга.

                                                                  Я ошибаюсь?
                                                              +3
                                                              ага, на абстрактном новафильм.тиви выложили свежую серию какого-нибудь «лай ту ми». 20000 (двадцать тысяч) обладателей белых статических ip пошли эту серию качать. а трекер выдает максимум 20 (двадцать) пиров каждому. и скорее всего — иногородних.

                                                              не знаю, чего делается в вашем городе, но в нашем в дополнение ретрекер немедленно сольет туеву хучу пиров и все (!) будут локальными. а по городу трафик валит на все сто мегабит порта без обрезания до скорости внешнего безлимита. кино приедет через пару минут. у кого геморрой? точно не у вас?

                                                              З.Ы. все имена трекеров, сериалов и количества пиров в этом комментарии взяты абсолютно из головы, не имеют ничего общего с реальными и упомянуты только для иллюстрации работы механизма :) более того, для примера специально взят трекер, «сам по себе» не поддерживающий retracker.local. тогда как описанный в статье механизм сделает «хорошо» и для торрентов с него тоже.
                                                                +2
                                                                Интересно, как вы такую щедрость RIPE'у объясняете.
                                                                +2
                                                                А есть ли цифры общей статистики по сэкономленному внешнему (для сети) трафику, за счет форсирования обмена между абонентами?
                                                                  0
                                                                  Нету.
                                                                  Целью было не столько экономия трафика, сколько повысить скорость обмена абонентам.
                                                                  • UFO just landed and posted this here
                                                                      0
                                                                      А нет такого тарифа. Есть 15Мбит за 900 рублей.
                                                                      • UFO just landed and posted this here
                                                                          0
                                                                          Повторюсь ещё раз — это сделано не для экономии трафика прежде всего, а для бонуса увеличенной скорости торренто-обмена.
                                                                • UFO just landed and posted this here
                                                                    0
                                                                    Шифровать надо всё, шифровать. Чтобы всякие там не «заоптимизировали» ваш трафик )
                                                                      0
                                                                      Не боись, разшифруем и заоптимизируем. )
                                                                      • UFO just landed and posted this here
                                                                    • UFO just landed and posted this here
                                                                        0
                                                                        > О перехвате трафика нет никаких упоминаний с success stories, за исключением единственного опыта дружественной сети

                                                                        Вот ещё success story: forum.nag.ru/forum/index.php?showtopic=47615&st=380&p=449831&#entry449831
                                                                          0
                                                                          Чёрт, по-моему, я вам выдал ссылку на ваше же решение :)

                                                                        Only users with full accounts can post comments. Log in, please.