Обсуждение:IRCd

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Не Undernet’а, а EFNet’а.

И получилось это следующим образом: как только появились баны, появилось и разделение пользователей на «просто пользователей», и «тех, кто может поставить бан» — операторов канала. Разумеется, как только появляется «администрация», появляются «и несогласные с ней». Но, ввиду очевидных недоработок в структуре IRC, стало возможным «захватить» канал: сделать так, чтобы часть людей, которая, скажем так, на этом канале «была изначально», не имела возможностей больше на него попасть.

Принцип захвата каналов прост: при соединении двух IRC-серверов производится проверка на уникальность ников, которые на этих серверах зарегистрированы, так как nickname должно быть уникально внутри IRC-сети. Если по каким-то причинам при соединении двух серверов обнаруживается, что на них есть совпадающие ники, возникает nick collision, и ircd просто «убивает» (дисконнектит) пользователей с совпадающими никами. Соответственно, для захвата каналов нужно найти момент «рассоединения» двух серверов (момент так называемого нетсплита) и законнектиться пользователями, оставшимися на части сети A, на часть сети B, и, соответственно, наоборот; плюс к этому, сделать ещё один коннект на любой из IRC-серверов, но на канал не заходить. После Netjoin’а (восстановления связности IRC-сети) сервера «вынесут» с сети всех участников канала, атакер с резервного коннекта заходит на канал, который создаётся серверами, получает на нём статус IRC-оператора и радуется жизни. Недовольных (но, в любом случае, уже бывших) операторов канала, разумеется, отправляют в бан, чтобы «не отсвечивали».

Соответственно, в июне 1996 года внутри девелоперов и администраторов IRCnet’а возник великий срач: как бороться с данной ситуацией. Было предложено два варианта: Nick propagation delays и Time Stamps. Первый обладал тем недостатком, что снижал юзабилити сети (вы не могли заходить на каналы в течение какого-то времени), второй — тем, что требовал синхронизации часов на всей структуре IRC-серверов. А в тогдашнем IRCnet’е были сервера, админы которых на IRC давно положили болт. Например, таким был eris.berkeley.edu, который постоянно падал и уходил в сплит. Разумеется, напрячь его админа засинхронизировать время было делом тухлым, и срач закончился т. н. «великим сплитом 1996 года» — вместо единой IRC-сети IRCnet появилось две — IRCnet с Nick delays и EFNet с Time Stamps. Название EFNet происходит от «eris-Free Network», где eris — это, конечно же, eris.berkeley.edu.

Тем не менее, концепция Time Stamp’ов оказалась более разумной, и современные протоколы IRC, по большей части, являются вариациями оригинального EFNet TS (современные версии — TS5 и TS6, которая в некоей зачаточной фазе позволяет сделать «избыточность» линковки в IRC — оригинальный IRC-протокол требовал связности между серверами в виде графа связности 1). 62.182.91.3 18:08, 29 сентября 2011 (UTC)Мимо проходил[ответить]