Manual de Netsplits

Versão 1.0.0


Última tradução feita por Master_of_Chaos em 2005-10-19

Originalmente escrito por Mystro () em 2000-10-01

Por favor dirige quaisquer comentários ou feedback acerca deste documento (apenas! não envies solicitações de ajuda!) a docs@dal.net. Se necessitares de ajuda em relação a temas não abrangidos por este documento, por favor vê a seguinte informação http://help.dal.net.

Introdução

Os Netsplits, também conhecidos como Separações da Rede, infelizmente, são uma parte inevitável do IRC. Uma vez que o IRC usa a Internet, o IRC depende do estado da Internet a qualquer dado momento. Quando una conexão entre dois ou mais servidores se rompe (por qualquer razão) ocorre um netsplit. Neste documento explicarei porquê ocorre um netsplit, como se solucionam e o que fazer e não fazer durante um netsplit.

Conteúdo

1 · O que são os netsplits?

Os netsplits ocorrem quando a conexão entre um ou mais servidores se separa de outro servidor (por qualquer razão). A rede dividir-se-á em duas, partes separadas. A DALnet tem muitos servidores, alguns dos quais são hubs e outros tantos são leafs. Esses hubs estão conectados juntos e formam uma rede. Os hubs também ligam um ou mais servidores adicionais que são habitualmente chamados leafs. Quando todos esses servidores estão ligados entre si, tens uma rede a funcionar onde todos os servidores estão quer directamente quer indirectamente ligados uns aos outros.

A melhor ilustração em que podes pensar é uma árvore grande. A árvore tem muitos ramos que estão todos ligados uns aos outros. A árvore também tem folhas (leafs) que estão ligadas a um ramo específico. Quando ocorre um netsplit, uma leaf ou hub desconecta-se do resto da rede.

Quando isto sucede, a rede já não é um todo: há duas partes ( ou 'lados'). Um lado com alguns servidores e outro lado com alguns outros servidores que não estão conectados de nenhuma forma.

Se isto parece confuso, pensa na árvore, se um ramo cair, parte da árvore permanecerá junta e a outra parte (a qual seria o ramo com todas as folhas) está noutro lado. Embora sendo parte da mesma rede, estão de momento separadas e não podem interagir. Aqui está um exemplo que poderá torná-lo mais simples:

Ex. #1)

Hub1------------Hub2
 |               |
 |-Leaf1         |-Leaf4
 |-Leaf2         |-Leaf5
 |-Leaf3         |-Leaf6

Neste exemplo, 2 hubs estão conectados entre si, e cada um sustém mais 3 servidores. Noutras palavras, 8 servidores estão conectados entre si, directa ou indirectamente, e tudo o que se passa num servidor, passa-se noutro.

Ex. #2)

Hub1            Hub2
 |               |
 |-Leaf1         |-Leaf4
 |-Leaf2         |-Leaf5
 |-Leaf3         |-Leaf6

Acima podes ver que os hubs já não estão ligados um ao outro e, enquanto cada hub mantém 3 servidores cada, eles não transmitem informação para os outros 3 servidores.

Ex. #3)

Hub1-----------Hub2
 |              |
 | Leaf1        |-Leaf4
 |-Leaf2        |-Leaf5
 |-Leaf3        |-Leaf6

Aqui ambos os hubs estão conectados entre si, mas o Hub1 tem o primeiro servidor desconectado. Este servidor pode continuar online mas, enquanto não estiver conectado ao hub, somente os utilizadores nesse servidor serão capazes de ver o que se passa ali.

2 · Que vêem os utilizadores?

  • Quando um servidor se separa, os utilizadores em cada lado do split, verão os outros utilizadores a desaparecer. A mensagem de quit parecer-se-á com algo assim "server1.xx.xx.dal.net server2.xx.xx.dal.net", onde server1 e server2 são os servidores que se separam entre si. De qualquer forma, as mensagens de quit podem variar de cliente para cliente.

    Ex. #1)

    Mystro (mystro@mystro.canshell.com) Quit (liberty.nj.us.dal.net vader.ny.us.dal.net)

    onde Vader é o servidor onde está Mystro e liberty é o servidor ao qual tu estás conectado.

    No entanto, Mystro, por seu lado, verá algo assim:

    QualquerNick (xpessoa@algumisp.com) Quit (vader.ny.us.dal.net liberty.nj.us.dal.net)

    onde liberty é o servidor em que estás e Vader o servidor no qual está Mystro.

    (Apenas como nota, Vader é um hub na DALnet e não permite conexões do público, apenas o usei para propósitos de demonstração).

    Ex. #2)

    Vader----------------Hub2
     |                    |
     |-Liberty            |-Leaf4
     |-Leaf2              |-Leaf5
     |-Leaf3              |-Leaf6
    

    Isto é totalmente a mesma coisa, mas é mais fácil de compreender. Todos em liberty verão como se Vader os deixou, e todos em Vader verão como se Liberty os deixou.

  • Caso a separação ocorra onde 2 ou mais hubs se separam, as pessoas verão como se os hubs fossem os servidores nos quais elas estão.

    Ex. #1)

    Vader.ny.us.dal.net e Journey.ca.us.dal.net separam-se. Vader ainda sustém liberty e Journey sustém o resto dos demais servidores.

    A mensagem de quit parecer-se-ia algo como isto:

    Mystro (mystro@mystro.canshell.com) Quit (vader.ny.us.dal.net journey.ca.us.dal.net)

    e vice-versa do outro lado.

    Ex. #2)

    Uma forma mais fácil de ilustrar isto é desenhar um diagrama:

    Vader           Journey
     |                 |
     |-Liberty         |-Leaf1
                       |-Leaf2
                       |-Leaf3
    

    Nesta ilustração vês que Vader separou-se de journey. Enquanto que Liberty continua conectado a Vader, o resto da rede foi-se. Neste caso, eu veria Vader e Journey separarem-se, em vez de Liberty e Journey.

  • Finalmente, quando os servidores reconectam-se, verás um flood de pessoas a entrar e os servidores mudam os modos dos canais de forma a que tudo volte a ser como estava antes do split.

    Ex.

    [16:22] *** utilizador1 (user1@blah.com) has joined #blah

    [16:22] *** utilizador2 (user2@blah.com) has joined #blah

    [16:22] *** utilizador3 (user3@blah.com) has joined #blah

    [16:22] *** utilizador4 (user4@blah.com) has joined #blah

    [16:22] *** utilizador5 (user5@blah.com) has joined #blah

    [16:22] *** liberty.nj.us.dal.net sets mode: +ovvv utilizador1 utilizador2 utilizador3 utilizador4

    Isto seria algo como o que verias quando um servidor é reconectado, o servidor que muda os modos no canal será sempre aquele que deixou a rede e depois regressou.

3 · Como são resolvidos os netsplits

Aqui é onde entra em jogo o Operador de IRC. Mal ocorra um netsplit, uma mensagem global é enviada pelo servidor de IRC a dizer que ocorreu, qual o servidor e porquê (erros de leitura, tempo de leitura, etc...). Agora, ao contrário da crença popular, os IRCops fazem o seu trabalho bastante bem e põem-se a trabalhar nos netsplits tão breve quanto possível. Os Operadores de IRC tentarão de imediato reconectar os dois ou mais servidores ao resto da rede. Caso isto falhe, eles tentarão redireccionar os servidores a outros hubs que contenham linhas C/N (Linking Lines - Linhas de União, sem as quais não se consegue conectar um servidor a outro) para esse servidor.

4 · Que fazer e não fazer durante um netsplit

  • A forma mais segura de cavalgar para fora dum netsplit é simplesmente ficar onde estás e esperar que os servidores reconectem-se.

  • NÃO tentes conectar-te a um servidor que está em split para que te dê op num canal específico. Antes de mais provar-se-á fútil uma vez que os servidores de IRC da DALnet não permitem às pessoas obter ops em canais enquanto um netsplit está em progresso. Segundo, os servidores fazem reset às opções e modos às que estavam antes do netsplit, em cujo caso eles far-te-ão deop mal a rede volte à normalidade. Em terceiro, apenas fará um monte de pessoas furiosas a olhar para ti, e ninguém gosta disso.

  • Se decidires mudar de servidores, assegura-te que te mudes para onde a maioria dos outros utilizadores estão, daí não um servidor que está conectado aos servidores actuais onde estás no momento. De igual modo, eu sugeria usares um nickname diferente para caso do servidor estar com lag e ainda te ter no registo como estivesses no servidor. Embora, como referi anteriormente, é melhor ficares onde estás e deixar tudo voltar ao normal.

  • NÃO chateies os IRCops se vês um netsplit, se eles estiverem activos tê-lo-ão visto, e, se não estiverem activos não existe grande razão em incomodá-los em primeiro lugar.

5 · Glossário

IRC

IRC significa Internet Relay Chat, (Conversação Simultânea por Internet), e permite a milhares de utilizadores como tu e eu conversar com outros milhares de utilizadores de forma simultânea em qualquer parte do mundo.

Operador de IRC

IRCop, também conhecido como Operador de IRC é um utilizador com acesso especial ao Servidor de IRC, ele está lá para ajudar a correr o servidor, corrigir netsplits, lidar com utilizadores abusivos e muito mais. Os Operadores de IRC são algumas vezes confundidos com 'Cops' (polícias), 'mIRC Cops' ou outras muitas coisas. Não são de forma alguma polícias. São simplesmente seres humanos normais que estão na rede para tornar a tua estadia mais agradável.

Hub e Leaf

Um 'hub' é um servidor que normalmente conecta 2 ou mais servidores juntos para formar uma rede. Uma leaf, por seu lado, não pode conectar mais do que 1 servidor e, na maioria dos casos, a leaf está conectada ao hub.

6 · Conclusão

A DALnet tenta tornar a estadia de qualquer IRCeador tão agradável quanto possível. Se e quando um netsplit ocorre, a administração (IRCops e Admins) põem-se a trabalhar o mais rapidamente possível para corrigi-lo de forma a que os IRCeadores possam ter uma conversação tranquila. Infelizmente, nenhuma rede de IRC tem a alegria de ter falta de netsplits completamente, e quando um netsplit ocorre, tudo o que nós pedimos é que tenhas alguma paciência, deixa-o passar e volta a fazer o que quer que estivesses a fazer antes :)