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 сеть не исключила полностью нетсплиты, и в случае, когда они случаются, все, о чем мы просим - это немного терпения, пока Иркопы выполняют свою работу, чтобы Вы могли вернуться к тому, чем занимались до сплита %)
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.