Нетсплиты ========= Version 1.0.0 Last translated by Azeri`H (B_R_E_A_K_E_R at hotmail.com) and The_Paranormal (raiden at bk.ru) on 2005-07-04 Originally written by Mystro (mystro at canshell.com) on 2000-10-01 Copyright (C) 2000-2005 by the DALnet IRC Network Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net/. Введение -------- Нетсплиты (Netspits - Network Splits) - к сожалению неизбежная проблема всех IRC сетей. Так как IRC использует Интернет, то он и зависит от Интернета полностью. Когда нарушается соединение (по любой причине) между двумя серверами, начинается "нетсплит". В настоящем документе я объясню почему происходят нетсплиты, как они устраняются, а также что делать и чего не делать во время нетсплита. Contents -------- 1 * Что такое нетсплит 2 * Что видят пользователи 3 * Как устраняются сплиты 4 * Что делать и чего не делать во время нетсплита 5 * Глоссарий 6 * Заключение 1 * Что такое нетсплит ---------------------- Нетсплиты происходят когда по какой-либо причине нарушается соединение между двумя или более серверами. Тогда сеть разделяется на две независимые части. DALnet имеет множесто серверов, которые бывают двух типов: "хабы" и "листья". Хабы соединены между собой и образуют сеть. Также хабы связывают один или более дополнительных серверов, называемых листьями. Когда все эти сервера соединены, у Вас есть сеть, где любой сервер соединен с другим напрямую или косвенно. Чтобы лучше проиллюстрировать ситуацию, предлагаю Вам представить некое большое дерево. Дерево имеет множество веток, соединенных между собой посредством ствола. Дерево также имеет листья, соединенные с ветками. Нетсплит - это когда срывается лист или отламывается ветка. В этом случае сеть больше не представляет собой единое целое - теперь существуют две части (или "стороны"). Одна сторона с несколькими серверами и другая - с другими серверами, и эти стороны, а, следовательно, и сервера, больше не соединены между собой. Если это кажется путанным, просто представьте дерево: одна ветка со всеми своими листьями отламывается и падает, а остальная часть дерева остается и больше не поддерживает "связь" с отломанной веткой. Это выглядит примерно так: ПРИМЕР #1 Hub1------------Hub2 | | |-Leaf1 |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6 В данном примере 2 хаба соединены между собой и каждый хаб имеет по три сервера. Другими словами, 8 серверов прямо или косвенно соединены между собой и все, что случается на одном сервере, случается и на другом. ПРИМЕР #2) Hub1 Hub2 | | |-Leaf1 |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6 Выше в примере видно, что хабы больше не соединены между собой и, хотя каждый хаб все еще держит по три сервера, сервера эти больше не обмениваются друг с другом информацией. ПРИМЕР #3) Hub1-----------Hub2 | | | Leaf1 |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6 Здесь оба хаба соединены, но хаб#1 потерял один свой сервер. Этот сервер все еще может быть онлайн, но так как он больше не подсоединен к хабу, пользователи на сервере будут как бы отсечены от всей остальной сети - пользователи сети не видят, что происходит на этом сервере, а пользователи сервера не видят, что происходит во всей остальной сети. 2 * Что видят пользователи -------------------------- * Когда сервера разделяются, пользователи каждой из сторон видят как остальные пользователи исчезают. Их quit сообщения выглядят примерно так: "server1.xx.xx.dal.net server2.xx.xx.dal.net", где server1 и server2 - сервера, отделяющиеся друг от друга. Однако, квит сообщения могут различаться на разных клиентах. ПРИМЕР #1) Mystro (mystro@mystro.canshell.com) Quit (liberty.nj.us.dal.net vader.ny.us.dal.net) Где Vader - это сервер, на котором находится Mystro, и liberty - это сервер, на котором находитесь Вы. Mystro по другую сторону нетсплита увидит что-то вроде: WhateverNick (someperson@someisp.com) Quit (vader.ny.us.dal.net liberty.nj.us.dal.net) (Для справки: Vader - это хаб на DALnet, не разрешающий публичные соединения, и я использовал его только в демонстрационных целях) ПРИМЕР #2) Vader----------------Hub2 | | |-Liberty |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6 Это тот же пример, что и выше только с названиями сервера и хаба. Все, кто на liberty увидят как все, кто на Vader как будто покидают их, а все, кто на Vader увидят, что выходят пользователи liberty. * В случае нетсплита между двумя или несколькими хабами, люди увидят ситуацию так, как будто они находятся на хабах. ПРИМЕР #1) Vader.ny.us.dal.net and Journey.ca.us.dal.netsplit. Vader все еще удерживает liberty и Journey удерживает оставшуюся часть серверов. Quit сообщение будет выглядеть примерно так: Mystro (mystro@mystro.canshell.com) Quit (vader.ny.us.dal.net journey.ca.us.dal.net) И наоборот для пользователей по другую сторону. ПРИМЕР #2) Продемонстрируем это на диаграмме: Vader Journey | | |-Liberty |-Leaf1 |-Leaf2 |-Leaf3 В данном примере Вы видите, что Vader отсоединился от Journey. Liberty соединен с Vader, но остальная часть сети потерялась. В этом случае я увижу что сплит произошел между Vader и Journey, а не между liberty и Journey. * Наконец, после того как сервера соединятся снова, Вы можете увидеть поток пользователей, входящих на канал(ы) и еще сервер скорее всего будет менять режимы, так, чтобы вернуть все в досплитовое состояние. ПРИМЕР [16:22] *** user1 (user1@blah.com) has joined #blah [16:22] *** user2 (user2@blah.com) has joined #blah [16:22] *** user3 (user3@blah.com) has joined #blah [16:22] *** user4 (user4@blah.com) has joined #blah [16:22] *** user5 (user5@blah.com) has joined #blah [16:22] *** liberty.nj.us.dal.net sets mode: +ovvv user1 user2 user3 user4 Сервер, меняющий режимы, всегда будет тем, который отключался от сети (и затем, соответственно, перезашел в нее). 3 * Как устраняются сплиты -------------------------- Это как раз тот момент, когда в игру вступают "IRC Операторы". Как только начинается нетсплит, сервером рассылается глобальное сообщение всем Иркопам о том, какой сервер и по какой причине (ошибки чтения, таймауты и т.д.) отключается от сети. И Иркопы выполняют свою работу быстро и точно, с максимально возможной скоростью устраняя нетсплиты. Они сразу же начинают пытаться пересоединить два или более серверов к остальной сети. Если это не удается, они перемаршрутизируют сервера на другие хабы, содержащие строки C/N (линковочные строки, без которых нельзя соединить один сервер с другим) для данного сервера. 4 * Что делать и чего не делать во время нетсплита -------------------------------------------------- * Наиболее удачное решение в случае нетсплита состоит в том, чтобы просто оставаться там, где Вы есть, и ждать пока сервера переконнектятся. * НЕ пытайтесь соединиться с выпавшим сервером для получения опа на каком-либо канале. Во-первых, это бесполезно с тех пор, как сервера DALnet перестали позволять людям получать опа на каналах во время нетсплита. А во-вторых, сервера восстанавливают режимы в досплитовое состояние, так что Вы будете деопнуты как только сервера переконнектятся. * Если Вы все-таки решили переключиться на другой сервер, убедитесь, что переключаетесь на тот, где больше всего пользователей, так же я рекомендую использовать другой ник, на тот случай, если какой-то из серверов лаганет и будет считать, что Вы все еще находитесь на этом сервере (в этом случае после реконнекта серверов Вас может килльнуть с причиной "Nick collision"). Хотя, повторюсь, лучшим вариантом будет просто оставаться там, где Вы есть и спокойно переждать, пока все не вернется на круги своя. * НЕ закидывайте Иркопов сообщениями о том, что Вы увидели нетсплит! Если они у "пульта", то и так будут в курсе, а если нет, то они и не увидят что Вы им что-то говорите. 5 * Глоссарий ------------- IRC IRC означает Internet Relay Chat. Позволяет тысячам пользователей, подобным Вам и мне, общаться с тысячей других пользователей со всего мира. IRC Оператор IRCop (Иркоп) - пользователь с особым доступом к IRC серверу. Иркоп следит за тем, чтобы сервер работал без сбоев, отслеживает нетсплиты и устраняет их, наказывает "проблемных" для сети пользователей. Иркопов часто ошибочно зовут "Копами" (Коп = мент на англ.), что, однако, совсем не верно. Они скорее техники, следящие за работой сети. Для блага пользователей. Хаб и лист "Хаб" - это сервер, соединяющий 2 или более серверов между собой, образуя сеть. Лист же не может соединяться более чем с одним сервером и, в большинстве случаев этим сервером является хаб. 6 * Заключение -------------- DALnet старается сделать пребывание "иркеров" в сети как можно более приятным. Если и когда случаются нетсплиты, администрация (Иркопы и Админы) сразу же принимается за работу, чтобы как можно быстрее устранить нетсплит и позволить пользователям продолжать нормальное общение. К сожалению ни одна IRC сеть не исключила полностью нетсплиты, и в случае, когда они случаются, все, о чем мы просим - это немного терпения, пока Иркопы выполняют свою работу, чтобы Вы могли вернуться к тому, чем занимались до сплита %) ---------------------------------------------------------------------- IRC: /server irc.dal.net 7000 (also port 6667) The Web: http://www.dal.net/ DALnet Help: http://help.dal.net/ IRC FTP: ftp://ftp.dal.net/ Network! Email: help at dal.net (help), docs at dal.net (help documents), suggest at dal.net (suggestions and comments)