Ελληνικό Bridging mini-Howto <author>Christopher Cole <tt><htmlurl url="mailto:cole@coledd.com" name="cole@coledd.com"></tt> <date>v1.11, 7 Σεπτεμβρίου 1998 <abstract> Το έγγραφο αυτό περιγράφει πως να στήσετε μια ethernet γέφυρα. Τι είναι μια ethernet γέφυρα; Είναι μια συσκευή που ελέγχει τα πακέτα δεδομένων μέσα σε ένα υποδίκτυο προσπαθώντας να μειώσει την κυκλοφορία. Η γέφυρα είναι συνήθως μεταξύ δύο ξεχωριστών ομάδων υπολογιστών, που ενώ μιλούν πολύ μεταξύ τους, σπανίως μιλά η μια ομάδα με την άλλη. Ένα καλό παράδειγμα είναι αν σκεφτούμε μια ομάδα με Macintosh και μια ομάδα με Unix μηχανήματα. Και οι δύο ομάδες έχουν αυξημένη κίνηση εντός τους, οπότε η κίνηση αυτή δημιουργεί συγκρούσεις με την κίνηση της άλλης ομάδας. Η γέφυρα τοποθετείτε μεταξύ των δύο ομάδων. Η δουλειά της είναι να ελέγχει τα δεδομένα που ανταλλάσσονται και να αποφασίσει αν χρειάζεται να περάσουν στην άλλη πλευρά της γέφυρας. Το αποτέλεσμα είναι ένα γρηγορότερο και πιο ισχυρό δίκτυο με λιγότερες συγκρούσεις. --- Για οποιαδήποτε σχόλια, διορθώσεις, κλπ σχετικά με την ελληνική μετάφραση επικοινωνήστε με τον Παναγιώτη Βουδούρη στη διεύθυνση: <tt/panos@veria1.freeserve.co.uk/ </abstract> <!-- Table of contents --> <toc> <sect>Setup <p> <enum> <item>Βρείτε το ``Bridge Config'': <tscreen> <url url="ftp://shadow.cabi.net/pub/Linux/BRCFG.tgz"> </tscreen> <item>Ενεργοποιήστε πολλαπλές ethernet συσκευές βάζοντας το παρακάτω στο <tt>/etc/lilo.conf</tt>, και ξανά-τρέχοντας το <tt>lilo</tt>: <tscreen> <verb> append = "ether=0,0,eth1" </verb> </tscreen> Αν έχετε τρεις συσκευές στη γέφυρα βάλτε το παρακάτω αντί των άνω: <tscreen> <verb> append = "ether=0,0,eth1 ether=0,0,eth2" </verb> </tscreen> <!-- </p> --> <!-- <p> --> Περισσότερες συσκευές μπορούν να προστεθούν με περισσότερες δηλώσεις ether. Ένας έτοιμος πυρήνας ψάχνει για μία κάρτα και μόλις τη βρει σταματά το ψάξιμο. Με την παραπάνω εντολή συνεχίζει να ψάχνει και μετά την πρώτη κάρτα. <!-- </p> --> <!-- <p> --> Αντί των άνω, μπορείτε να χρησιμοποιήσετε την παρακάτω παράμετρο εκκίνησης: <tscreen> <verb> linux ether=0,0,eth1 </verb> </tscreen> Ή με 3 συσκευές: <tscreen> <verb> linux ether=0,0,eth1 ether=0,0,eth2 </verb> </tscreen> <!-- </p> --> <item>Αναμεταλωττίστε τον πυρήνα με το <tt>BRIDGING</tt> ενεργοποιημένο. <item>Η γέφυρα δε θα πρέπει να έχει IP διεύθυνση. ΜΠΟΡΕΙ να έχει αλλά μια απλή γέφυρα δεν την χρειάζεται. Για να αφαιρέσετε την IP διεύθυνση από τη γέφυρά σας, πηγαίνετε στο <tt>/etc/sysconfig/network-scripts/</tt> (για RedHat σύστημα) και αντιγράψτε το <tt>ifcfg-lo0</tt> σε <tt>ifcfg-eth0</tt> & <tt>ifcfg-eth1</tt>. Στα δύο αυτά αρχεία αλλάξτε τη γραμμή που περιέχει το ``<tt>DEVICE=lo</tt>'' σε ``<tt>DEVICE=eth0</tt>'' και ``<tt>DEVICE=eth1</tt>''. Άλλες διανομές μπορεί να διαφέρουν, κάντε ό,τι χρειάζεται! Αν έχετε πάνω από δύο συσκευές στη γέφυρα σιγουρευτείτε να διορθώσετε όλες τις ρυθμίσεις. <item>Επανεκκίνηση, ώστε να έχετε τον νέο πυρήνα και ξανασιγουρευτείτε ότι η γέφυρα δεν έχει IP διευθύνσεις. <item>Μόλις το σύστημα ξεκινήσει, βάλτε τις ethernet κάρτες σε promiscuous mode, ώστε να ελέγχουν οτιδήποτε περνάει από αυτές: <tscreen> <verb> ifconfig eth0 promisc ; ifconfig eth1 promisc </verb> </tscreen> Όλες οι κάρτες που είναι να συνδεθούν σε γέφυρα πρέπει να μπουν σε promiscuous mode. <item>Ενεργοποιήστε το bridging χρησιμοποιώντας το πρόγραμμα <tt>brcfg</tt>: <tscreen> <verb> brcfg -ena </verb> </tscreen> <item>Βεβαιωθείτε ότι υπάρχει διαφορετική κίνηση σε κάθε τμήμα: <tscreen> <verb> tcpdump -i eth0 (in one window) tcpdump -i eth1 (in another window) </verb> </tscreen> <item>Τρέξτε ένα sniffer ή το <tt>tcpdump</tt> σε άλλο μηχάνημα για να δείτε ότι η γέφυρα αποκόπτει τα τμήματα κανονικά. </enum> </p> <sect>Συχνά προβλήματα <p> <enum> <item> <descrip> <tag/Question/ Παίρνω το μήνυμα <tscreen> <verb> ioctl(SIOCGIFBR) failed: Package not installed </verb> </tscreen> Τι σημαίνει; <tag/Answer/ Δεν έχετε bridging δυνατότητες στον πυρήνα. Πάρτε πυρήνα 2.0 ή μεγαλύτερο, και αναμεταγλωττίστε το με την επιλογή <tt>BRIDGING</tt> ενεργοποιημένη. </descrip> <item> <descrip> <tag/Question/ Μηχανήματα στη μία πλευρά δε μπορούν να κάνουν ping στην άλλη! <tag/Answer/ <itemize> <item>Ενεργοποιήσατε το bridging με ``<tt>brcfg -ena</tt>''; (το <tt>brcfg</tt> θα πρέπει να λέει ``<tt>bridging is ENABLED</tt>'') <item>Βάλατε τις κάρτες σε promiscuous mode? (γράψτε ``<tt>ifconfig</tt>''. Το ``<tt>PROMISC</tt>'' πρέπει να εμφανιστεί και στις δύο πλευρές.) <item>Αν χρησιμοποιείτε κάρτες διασύνδεσης πολλαπλών μέσων σιγουρευτείτε ότι το σωστό έχει ενεργοποιηθεί. Ίσως χρειαστεί να χρησιμοποιήσετε το πρόγραμμα ρυθμίσεων που πήρατε με την κάρτα. </itemize> </descrip> <item> <descrip> <tag/Question/ Δε μπορώ να κάνω <tt>telnet</tt>/<tt>ftp</tt> από τη γέφυρα! Γιατί; <tag/Answer/ Αυτό δε γίνεται εφόσον δεν υπάρχει IP διεύθυνση στη γέφυρα. Η γέφυρα πρέπει να είναι ένα διάφανο μέρος του δικτύου. </descrip> <item> <descrip> <tag/Question/ Τι πρέπει να κάνω για να ρυθμίσω τη δρομολόγηση; <tag/Answer/ Τίποτα! Η δρομολόγηση ελέγχεται από τον κώδικα του πυρήνα. Για να δείτε τις ethernet διευθύνσεις όπως μαθαίνονται από τη γέφυρα χρησιμοποιήστε το <tt>brcfg</tt> σε debug mode: <tscreen> <verb> brcfg -deb </verb> </tscreen> </descrip> <item> <descrip> <tag/Question/ Η γέφυρα φαίνεται να δουλεύει, αλλά το ``traceroute'' δε δείχνει τη γέφυρα ως μέρος της διαδρομής. <tag/Answer/ Λόγω της φύσης της γέφυρας, το ``traceroute'' ΔΕΝ πρέπει να δείξει τη γέφυρα. Η γέφυρα είναι διαφανής στο δίκτυο. </descrip> <item> <descrip> <tag/Question/ Είναι απαραίτητο να μεταγλωττίσω τον πυρήνα με <tt>IP_FORWARD</tt>; <tag/Answer/ Όχι. Ο κώδικας για το bridging στον πυρήνα φροντίζει για τη μεταφορά. Το <tt>IP_FORWARD</tt> είναι για πύλη που έχει IP διεύθυνση. </descrip> <item> <descrip> <tag/Question/ Γιατί οι διευθύνσεις για τη θύρα 1 και θύρα 2 είναι ίδιες σύμφωνα με το ``<tt>brcfg</tt>''; Δε θα έπρεπε να είναι διαφορετικές; <tag/Answer/ Όχι. Κάθε θύρα στη γέφυρα έχει επίτηδες την ίδια διεύθυνση, όπως δίνεται από τον κώδικα του bridging. </descrip> <item> <descrip> <tag/Question/ Το bridging δεν εμφανίζεται ως επιλογή όταν κάνω make config για τον πυρήνα. Πως το ενεργοποιώ; <tag/Answer/ Κατά την παραμετροποίηση, απαντήστε 'Y' στην ερώτηση: ``Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]''. </descrip> <item> <descrip> <tag/Question/ Πολλοί κόμβοι (hubs, 4 ή παραπάνω) συνδεμένα σε σειρά προκαλούν προβλήματα συγχρονισμού σε ethernet. Τι επιπτώσεις έχει αυτό σε ένα υποδίκτυο που είναι στημένο με hubs; <tag/Answer/ Η γέφυρα αναορίζει τον κανόνα των 3/4/5 κόμβων. Η γέφυρα δεν χειρίζεται τα πακέτα δεδομένων όπως ένα hub, οπότε δεν δημιουργεί προβλήματα συγχρονισμού στο δίκτυο. </descrip> <item> <descrip> <tag/Question/ Μπορεί μια γέφυρα να συνδέσει δύο τμήματα με 10Mb και 100Mb; Τέτοια διαμόρφωση θα επηρεάσει την ταχύτητα στην γρήγορα πλευρά; <tag/Answer/ Ναι, η γέφυρα μπορεί να συνδέσει ένα τμήμα 10Mb με ένα τμήμα 100Mb. Εφόσον η κάρτα δικτύου στο γρήγορο δίκτυο φτάνει τα 100Mb, το TCP φροντίζει για τα υπόλοιπα. Φυσικά, τα δεδομένα από το γρήγορο προς το αργό τμήμα θα μεταφέρονται με 10Mb/s, αλλά η υπόλοιπη κίνηση στο γρήγορο δίκτυο δεν επιβραδύνεται. </descrip> </enum> </p> </article>