Comments 108
Данное изменение тождественно указанию ip-адреса для DNS-имени retracker.local, не ухудшает трафикообмена пользователя и поддаётся контролю со стороны пользователя.
Кстати, вполне возможно что этим нарушается какой либо пункт в договоре предоставления услуг, заключаемом абонентами — если им в каком либо виде гарантирована передача их трафика без изменений.
В общем, моё мнение — как технический трюк забавно, но в остальном — сомнительно.
Операция замены в файлах имени retracker.local на retracker.smarthome.spb.ru равнозначна DNS -ответу retracker.local CNAME retracker.smarthome.spb.ru.
Успехов :)
torrent же по самой своей идеологии штука автогенерируемая и автомодифицируемая. Это только у принципиальных трекеров там может стоять только их адрес.
Ну, а если Вам нужна неприкосновенность в публичных сетях, пользуйтесь HTTPS и SSL.
А модифицироваться оно должно хотя бы для того, чтобы вы лезли не на retracker.local, а на нормальный адрес ретрекера. Если вам так легче, воспринимайте это как некий аналог внутреннего DNS. :)
P.S. А сеть в 50 000 абонентов тоже относите к мелкой?
А вообще, с позиции потребителя — против таких действий. Согласен с комментарием выше.
Такие, как Вы «одмины» закрывают на это глаза, а у клиентов потом zeroconf автоматически отключается. Конечно, «запросы не доходят». Потому что Ubuntu, например, честно сообщает «У вашего [криворукого] провайдера в DNS'е [ВНЕЗАПНО] зона .local, поэтому мы avahi отключаем. упс.»
Расскажи-ка лучше подробности:
— Какого фига Ubuntu засылает DNS-запросы зоны .local к моему DNS'у, если ты его должен поднимать только внутри своей сети?
— Что именно сообщает об отключении зоны .local (как раз сейчас сижу перед ноутбуком с Ubuntu и avahi, проблем таких не наблюдаю)
Могу и отключить зону, она в общем-то, для backward compatibility сделана.
у вменяемых админов и retracker.local работает и zeroconf не выключается. и мы с тобой оба понимаем, как это можно сделать :)
но вот у меня дома оба хоумпрова (бывший и текущий) сделали через ж… приду домой, сделаю скриншот, как именно сообщает.
Давай, приобщай к «вменяемым админам». ;)
Правильнее сделать зону retracker.local, так и назвать. а в ней, запись A, ну как делают «для сайтиков, чтобы без ввв». Почему это не доходит до большинства, я честно говоря, даже не понимаю.
Наверное потому, что для этого надо думать головой, а не копипастить «инструкцию с торрентс.ру» :)
Вспомни, когда я написал про фейл с .local на nag.ru, даже тамошняя публика начала кидаться помидорами, «да пофигу, это никто не использует». А казалось бы, там то мозгов по определению побольше. Я еще объяснял им там, «подождите, присунет Microsoft очередной апдейт, после которого windows начнут ругаться, тогда запоёте» :)
Именно поэтому, как выяснилось, я и сделал год назад у себя зону 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 ~]$
Так что я всё-таки об этом тогда подумал. :)
Вот зарезервирована зона .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.
Скорее всего, можно даже ничего не поднимать, полностью соответствовать стандартам, и всё будет работать. Идея (только что придумал) такая: модифицируем код клиента, чтобы он, вместе с обычным анонсом на трекер, слал ещё один точно такой же анонс в DHT, только вместа инфохэша использовал
ХЭШ(ИНФОХЭШ_ИСХОДНОГО_ТОРРЕНТА + ВНЕШНИЙ_IP_КЛИЕНТА)
А в качестве своего IP указывал локальный IP текущего устройства.
Естественно, если локальный IP — внешний, это всё делать не нужно.
Понимаете, да? Если внешний айпи у двух клиентов совпадает, то они, вероятно, сидят из одного NAT'а, и смогут через обычную DHT, без всяких retracker.local и патчей узнавать локальные IP друг друга.
Как вам? Как по мне, выглядит красиво. И если DHT позволяет указывать в качестве своего IP что угодно — должно сработать. Но нужна поддержка в клиентах. Я мог бы попробовать в qBittorrent добавить такое, например.
UPD: Смотрю в исходники libtorrent-rasterbar, файл src/kademlia/dht_storage.cpp
void announce_peer(sha1_hash const& info_hash
, tcp::endpoint const& endp
, string_view name, bool const seed) override
— выходит, в DHT действительно можно сохранить произвольную пару IP:port для некоего хэша. То есть концепция рабочая.
> А в качестве своего IP указывал локальный IP текущего устройства.
Тут неточность. Правильно: «А в качестве IP указывал провайдерский IP из локального диапазона».
Как определять провайдерский IP из локального диапазона, если клиент за роутером? По UPNP. Если UPNP выключен или не отвечает, использовать локальный адрес устройства.
Возможное решение для самого частого кейса: Windows + uTorrent. Приложение, висит в трее, работает ретрекером на локалхосте, данные хранит/получает из DHT, как описано выше. Также следит, чтобы в hosts retracker.local смотрел на localhost (можно использовать 127.0.0.14 или что-нибудь такое, чтоб не мешать пользовательским HTTP серверам), если нужной записи нет, даёт создать одной кнопкой. И ещё пусть проверяет, что uPNP на роутере работает (если нет, рассказывает, как настроить).
Но немного в другом русле. Нужно на локальном уровне как раз минимизировать трафик с торрентов, в сквиде как-то руки не так стоят.
Поделился с коллегой, в итоге разбомбил он ее в пух и прах.
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)
парень канешно умный, но мудак,
Рискую конечно, но хочется предупредить энтузиастов, которые это реализуют.
# 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
Ну и приватность при раздаче торрента — это уже гомерически смешно.
б) Список пиров остается тот же, только появляется возможность обмениваться в нутри локальной сети (что не влияет на рейтинг и не является нарушением условий трекера, если конечно админы трекера не параноики)))
в) Приватность в торрентах вообще в принципе вещь абстрактная и вряд ли обмен внутри локальной сети шибко повлияет на неё.
г) Пусть человек еще раз перечитает статью, а особенно понятия ретрекера (хоть в википедии) и вообще принципы устройства торрентов. Ибо после фразы:
нет причем тут дхт, в дхт то отсальные незнают что ты качаеш и незнают что качать — а у него стоит трекер который аннсирует все твои закачки со ВСЕХ в мире торентов — ты скачал например фильм с рутрекера а об этом все знают в локалке и тупо гачина/т качать с тебя
хотелось долго смеяться.
И чем еще сие может угрожать приватности?
Если вы боитесь некоторых органов, то наличие вашего локального адреса у них в кармане или его отсутствие (временное) вас не спасет.
За такое надо «клавой зубы чистить».
habrahabr.ru/blogs/sysadm/106131/#comment_3333936
В нашем городе уже года три ни у одного провайдера нет такого понятия «внутренний адрес». Все айпи белые (чаще всего статические) и соединение всегда идет напрямую. Соответственно никакого геморроя с ретрекерами и т.п.
Вопрос в другом — насколько я понимаю, ретрекер полезен не только для обмена трафиком абонентов, сидящих за NAT'ом, но и в случае прямых адресов позволяет быстрее найти друг друга.
Я ошибаюсь?
habrahabr.ru/blogs/sysadm/106131/#comment_3335148
не знаю, чего делается в вашем городе, но в нашем в дополнение ретрекер немедленно сольет туеву хучу пиров и все (!) будут локальными. а по городу трафик валит на все сто мегабит порта без обрезания до скорости внешнего безлимита. кино приедет через пару минут. у кого геморрой? точно не у вас?
З.Ы. все имена трекеров, сериалов и количества пиров в этом комментарии взяты абсолютно из головы, не имеют ничего общего с реальными и упомянуты только для иллюстрации работы механизма :) более того, для примера специально взят трекер, «сам по себе» не поддерживающий retracker.local. тогда как описанный в статье механизм сделает «хорошо» и для торрентов с него тоже.
Вот ещё success story: forum.nag.ru/forum/index.php?showtopic=47615&st=380&p=449831&#entry449831
Перехват и редактирование файлов http-трафика на примере торрента