Οδηγός Netsplit

Version 1.0.0


Last translated by ssr () on 2003-11-07

Originally written by Mystro () on 2000-10-01

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.

Εισαγωγή

Τα netsplit είναι γνωστά και σαν split(διαχωρισμός) δικτύου, δυστυχώς είναι ένα αναπόσπαστο μέρος του IRC. Καθώς το IRC χρησιμοποιεί το Internet είναι λογικό να βασίζεται πάνω στην σταθερότητα του. Όταν μια σύνδεση ανάμεσα σε δυο η παραπάνω server σπάει (για οποιοδήποτε λόγο) τότε έχουμε netsplit . Σε αυτό το κείμενο θα προσπαθήσω να εξηγήσω γιατί συμβαίνει ένα netsplit, πως λύνεται το πρόβλημα, τι να κάνετε και τι να μην κάνετε κατά την διάρκεια ενoς netsplit.

Contents

1 · Τι είναι τα netsplits

Τα netsplits συμβαίνουν όταν μια η παραπάνω συνδέσεις ανάμεσα στους server σπάει (για οποιοδήποτε λόγο). Τότε το δίκτυο θα χωριστεί σε δυο μισά. Το DALnet έχει πολλούς server, μερικοί είναι hubs και μερικοί είναι leafs. Τα hubs συνδέονται μεταξύ τους και φτιάχνουν έναν *ιστό*. Πάνω στα hubs συνδέονται ένας η περισσότεροι server που αποκαλούνται leafs. Όταν όλοι αυτοί οι server είναι συνδεδεμένοι, τότε έχουμε ένα δίκτυο που όλοι οι servers είναι συνδεδεμένοι μεταξύ τους έμμεσα ή άμεσα, ο ένας στον άλλο.

Για να το φαντασθείτε καλύτερα μπορεί να θέλετε να το σκεφτείτε σαν ένα δέντρο. Το δέντρο έχει πολλά κλαδιά που είναι όλα συνδεδεμένα μεταξύ τους. Το δέντρο επίσης έχει πολλά φύλλα που συνδέονται σε ένα συγκεκριμένο κλαδί. Όταν συμβαίνει ένα netsplit ένα leaf ή ένα hub αποσυνδέεται από το υπόλοιπο δίκτυο.

Όταν αυτό συμβαίνει, το δίκτυο δεν είναι πλέον ολόκληρο: υπάρχουν δυο μέρη (η δυο πλευρές). Μια πλευρά με μερικούς server και άλλη μια πλευρά με άλλους μερικούς server που δεν είναι συνδεδεμένοι μεταξύ τους με κανένα τρόπο.

Εάν αυτό σας μπερδεύει απλά σκεφτείτε ένα δέντρο, εάν ένα κλαδί πέσει, ένα μέρος του δέντρου είναι ακόμα μαζί και το άλλο μέρος (το οποίο θα είναι το κλαδί με όλα τα φύλλα) είναι κάπου αλλού. Καθώς είναι μέρος του δικτύου, είναι προς το παρόν χωριστά και δεν μπορούν να *συνεργαστούν*. Εδώ είναι ένα παράδειγμα που μπορεί να το κάνει να φανεί πιο εύκολο.

Ex. #1

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

Σε αυτό το παράδειγμα 2 hubs είναι συνδεδεμένα μεταξύ τους και κάθε hub κρατάει 3 άλλους server. Με άλλα λόγια, 8 server είναι άμεσα και έμμεσα συνδεδεμένοι μεταξύ τους και ότι συμβαίνει στον ένα server συμβαίνει και στον άλλο.

Ex. #2)

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

Από πάνω μπορείτε να δείτε ότι τα hub δεν είναι πλέον συνδεδεμένα μεταξύ τους και το κάθε hub κρατάει 3 servers, δεν μεταφέρουν όμως πληροφορίες στους άλλους 3 servers.

Ex. #3)

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

Εδώ και τα δυο hub είναι συνδεδεμένα μεταξύ τους, παρόλα αυτά όμως λείπει ένας server Από το Hub#1. Αυτός ο server μπορεί ακόμα να είναι στο internet άλλα για όσο δεν είναι συνδεδεμένο στο hub, μόνο οι χρήστες που είναι σε αυτόν το server θα μπορούν να δουν τι συμβαίνει.

2 · Τι βλέπουν οι χρήστες

  • Όταν ένας server κάνει split (αποσυνδέεται), οι χρήστες στην κάθε μια πλευρά του split (διαχωρισμού) θα δουν τους άλλους χρήστες να εξαφανίζονται. Το quit μήνυμα τους θα είναι κάπως έτσι "server1.xx.xx.dal.net server2.xx.xx.dal.net", όπου ο server1 και ο server2 είναι οι server που χώρισαν ο ένας από τον άλλο. Παρόλα αυτά όμως το quit μήνυμα μπορεί να διαφέρει από πρόγραμμα σε πρόγραμμα που χρησιμοποιείτε

    Ex. #1)

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

    όπου ο Vader είναι ο server στον οποίο ο Mystro είναι επάνω και liberty ο server που είσαι εσύ επάνω.

    Παρόλα αυτά όμως, ο Mystro στην άλλη πλευρά του split(διαχωρισμού) θα δει κάτι τέτοιο:

    WhateverNick (someperson@someisp.com) Quit (vader.ny.us.dal.net liberty.nj.us.dal.net)

    όπου liberty είναι ο server στον οποίο επάνω είσαι και vader είναι ο server στον οποίο είναι ο Mystro επάνω.

    (Μια σημείωση, ο Vader είναι ένα hub του DALnet και δεν επιτρέπει σύνδεση στο κοινό, το χρησιμοποίησα μόνο για λόγους επίδειξης.)

    Ex. #2)

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

    Αυτό βασικά είναι το ίδιο πράγμα αλλά είναι πιο εύκολο να το καταλάβετε. Όλοι στον liberty θα δουν σαν να έφυγε ο vader και όλοι στο vader θα δουν σαν να έφυγε ο liberty

  • Στην περίπτωση ενός split που οι παραπάνω hubs split(χωριστούν), οι χρήστες θα το δουν σαν τα hubs να είναι οι server στους οποίους είναι.

    Ex. #1)

    Vader.ny.us.dal.net and Journey.ca.us.dal.netsplit. Ο Vader ακόμα κρατάει τον liberty και ο Journey κρατάει τους υπόλοιπους servers.

    To quit μήνυμα θα είναι κάπως έτσι:

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

    και το αντίθετο από την άλλη πλευρά.

    Ex. #2)

    Ένας ευκολότερος τρόπος να το παρουσιάσω αυτό είναι να σχεδιάσω ένα διάγραμμα:

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

    Σε αυτή την παρουσίαση βλέπετε τον vader να έχει χωριστεί από τον journey. Καθώς ο liberty είναι ακόμα συνδεδεμένος με τον vader, το υπόλοιπο δίκτυο έχει φύγει. Σε αυτή την περίπτωση θα δω τον Vader και τον Journey να διαχωρίζονται και όχι τον Liberty και τον Journey.

  • Τελικώς, μόλις οι server ξανά συνδεθούν, θα δείτε πολλούς χρήστες μαζί να μπαίνουν και τους server να αλλάζουν τα modes στα κανάλια, έτσι ώστε τα πάντα να είναι όπως πριν γίνει το split.

    Ex.

    [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

    Αυτό είναι κάτι που θα μπορούσατε να δείτε όταν ένας server ξανά συνδέεται, ο server που θα αλλάξει τα modes στο κανάλι πάντα θα είναι αυτός που έφυγε από το δίκτυο και μετά ξανά συνδέθηκε.

3 · Πως λύνεται το πρόβλημα των netsplits

Εδώ είναι η στιγμή που ο IRC operator μπαίνει στο παιχνίδι.Όταν συμβεί ένα netsplit , τότε ένα μήνυμα από τον IRC server στέλνετε και λέει ότι έγινε netsplit, ποιος server και γιατί (read errors, timeouts κλπ...). Τώρα αντιθέτως με την κοινή γνώμη, οι IRCOps κάνουν την δουλεία τους μια χαρά και δουλεύουν πάνω στα netsplit αμέσως μόλις μπορέσουν. Οι IRC Operators θα προσπαθήσουν αμέσως να ξανά συνδέσουν τους δυο ή περισσότερους servers στο υπόλοιπο του δικτύου. Εάν αυτό αποτύχει, θα προσπαθήσουν να βάλουν τους server σε άλλα hub που περιέχουν τις C/N γραμμές (γραμμές σύνδεσης που χωρίς αυτές δεν μπορείς να συνδέσεις τον ένα server στον άλλο) για αυτόν τον server.

4 · Τι να κάνετε και τι να μην κάνετε κατά την διάρκεια ενός netsplit.

  • Το καλύτερο που έχετε να κάνετε κατά την διάρκεια ενός netsplit είναι να μείνετε εκεί που είστε και να περιμένετε τους server να ξανά συνδεθούν.

  • Μην προσπαθήσετε να συνδεθείτε σε ένα split server έτσι ώστε να πάρετε Ops(@) σε οποιοδήποτε κανάλι. Κατά πρώτον οι server ξανά θέτουν τα πράγματα όπως ήταν πριν το split, σε αυτή την περίπτωση θα σας κάνουν deop με το μόλις επανέλθει στο φυσιολογικό. Κατά δεύτερον θα εξαγριώσετε πολλούς ανθρώπους, πράγμα που δεν θα σας αρέσει.

  • Εάν αποφασίσετε να αλλάξετε server, να είστε σίγουροι ότι αλλάζετε σε ένα server όπου είναι οι περισσότεροι χρήστες, και όχι σε ένα που είναι συνδεδεμένος στον server που ήδη είστε. Ακόμα, θα πρότεινα να χρησιμοποιούσατε ένα διαφορετικό όνομα (Nick), μήπως και κάποιος από τους δυο server είναι lagged (αργούν να αλλάξουν πληροφορίες) και σας βλέπει ακόμα σαν να είστε στον server. Όμως όπως είπα και πριν, είναι καλύτερο να κάτσετε εκεί που είστε και να περιμένετε όλα να γίνουν φυσιολογικά.

  • Μην ενοχλείτε τους IRCOps εάν δείτε ένα netsplit, εάν είναι εκεί θα το έχουν δει και αυτοί, αν δεν είναι εκεί δεν υπάρχει λόγος να τους ενοχλήσετε.

5 · Λεξιλόγιο

IRC

Το IRC είναι τα αρχικά του Internet Relay Chat, και επιτρέπει σε χιλιάδες χρήστες σαν εσένα και εμένα να μιλάμε μαζί με άλλους χιλιάδες, οπουδήποτε στον κόσμο.

IRC operator

Ο IRCOp, γνωστός και σαν IRC Operator είναι ένας χρήστης με ειδική πρόσβαση πάνω στον server, είναι εκεί για να βοηθάει στο να τρέχει ο server, να φτιάχνει τα net splits, να ασχολείται με χρήστες που δημιουργούν πρόβλημα και πολλά άλλα. Οι IRC Operators έχουν παρεξηγηθεί και τους αποκαλούν *αστυνομικούς* η *αστυνομικούς του MIRC* η διάφορα άλλα. Δεν είναι σε καμία περίπτωση αστυνομικοί. είναι απλοί άνθρωποι που είναι στο δίκτυο και κάνουν την παραμονή σας πιο ευχάριστη .

Hub and Leaf

Το Hub είναι ένας server που συνήθως συνδέει 2 η παραπάνω server μαζί, ώστε να φτιάξει έναν *ιστό*. Αντιθέτως το leaf δεν μπορεί να συνδεθεί σε παραπάνω από 1 server και στις περισσότερες περιπτώσεις, το leaf είναι συνδεδεμένο πάνω στο hub.

6 · Συμπέρασμα

Το DALnet προσπαθεί να κάνει την διαμονή στους χρήστες του, όσο το δυνατόν πιο ευχάριστη. Εάν και όταν ένα netsplit συμβεί, η διαχείριση (administration (IRCops και Admins)) πιάνει δουλεία το συντομότερο δυνατό, για να φτιάξουν το πρόβλημα ώστε οι χρήστες να έχουν μια ευχάριστη συνομιλία. δυστυχώς κανένα IRC δίκτυο, δεν έχει την πολυτέλεια να μην έχει καθόλου splits, για αυτό όταν συμβαίνει ένα split, το μόνο που σας ζητάω είναι να έχετε λίγο υπομονή, να το ξεπεράσετε και κάνετε ότι κάνατε πριν :)