Netsplit

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

netsplit (в компьютерных сетях, в частности, в IRC) — термин, обозначающих отключение узла из ранее созданной сети или между двумя узлами. IRC-сеть является ненаправленным ациклическим графом, и разрыв соединения между двумя узлами разделяет всю сеть на две части.

Рассмотрим изображение, изображающее компьютерную сеть.

Нормально функционирующая сеть
Сеть, в которой произошёл netsplit
Скриншот типичного Netsplit’а (клиент X-Chat)

Каждая линия представляет собой соединение между двумя узлами; каждый узел представляет собой сервер или пользователя сети. Таким образом, сервер C прямо подключен к A, который также соединён с B и D.

Когда соединение между A и C разорвано, пользователи, соединённые с другими серверами, которые больше не доступны в сети, отображаются, как покинувшие сеть. Например, если пользователь Sara соединён с сервером A, пользователь Bob соединён с сервером B, и пользователь Joe соединён с C, и C отсоединяется от A, это будет выглядеть для Joe, как если бы Sara и Bob отсоединились от сети, а для пользователей Sara и Bob, как если бы вышел Joe. Это происходит потому, что серверы получают информацию об изменениях в сети, и обновляют свою местную информацию для отображения изменений.

Потом, сервер C может воссоединиться с серверами в сети и пользователи, которые были отображены как вышедшие, вернутся; процесс отправки обновлённой информации ко всем серверам в сети называется netburst (или синхронизацией).

Иногда некоторые пользователи пытаются использовать netsplit для получения доступа к защищённым паролем каналам. Если на канале нет ни одного пользователя сервера C, он может зайти на частный канал и позже получить к нему доступ после воссоединения серверов. Это обычно называется split riding.

Другая, типичная IRC-атака, ориентированная на netsplit — пересечение имён пользователей. Атака заключается в том, что пользователь из отделённого сегмента изменяет своё имя в сети на ник существующего пользователя другой части разделённой сети. После восстановления соединения сеть отключит пользователей, так как только один пользователь с одинаковым ником может быть в сети одновременно. Современное программное обеспечение IRC-серверов устраняют этот вид атаки, но при использовании на серверах старого ПО уязвимость по прежнему существует.

Как выглядит netsplit?[править | править код]

Когда два сервера в сети разделяются, пользователь видит большое число покинувших канал пользователей. После воссоединения серверов, пользователеь видит возвращение на канал других пользователей, покинувших его во время netsplit'а.

В обычных IRC-клиентах[править | править код]

* usera has quit (a.irc.net b.irc.net)
* userb has quit (a.irc.net b.irc.net)
* userc has quit (a.irc.net b.irc.net)
* usera has joined #channel
* userb has joined #channel
* userc has joined #channel

В консольном клиенте irssi[править | править код]

00:00 -!- Netsplit a.irc.net <-> b.irc.net quits: usera, userb, userc
00:00 -!- Netsplit over, joins: usera, userb, userc

Для пользователей частной сети[править | править код]

* usera has quit (*.net *.split)
* userb has quit (*.net *.split)
* userc has quit (*.net *.split)
* usera has joined #channel
* userb has joined #channel
* userc has joined #channel