Απομονωμένη γέφυρα TAP ανάμεσα σε δύο πλακέτες μέσω OpenVPN
Η γέφυρα προωθεί πλαίσια μεταξύ των θυρών-μελών, και η διεύθυνση του κεντρικού υπολογιστή ανήκει στην ίδια τη γέφυρα. Συνδέστε τις θύρες του πάγκου χωρίς να εκθέσετε τη διαχείριση.
Δύο πλακέτες ανάπτυξης πρέπει να μοιράζονται ένα τμήμα Ethernet, ενώ οι πάγκοι τους βρίσκονται σε διαφορετικά κτίρια. Το τούνελ υπάρχει ήδη και ήδη μεταφέρει Ethernet, οπότε η υπόλοιπη εργασία μοιάζει με τρεις εντολές και δεν είναι. Το τι κάνει ο κεντρικός υπολογιστής με ένα πλαίσιο που περνά από τη γέφυρα, πού ανήκει η διεύθυνση του ίδιου του υπολογιστή και ποιο όριο δεν δημιουργεί η γέφυρα είναι τρία ξεχωριστά γεγονότα, και το να κάνεις λάθος το δεύτερο είναι ο συνηθισμένος λόγος που ένα εργαστήριο λειτουργεί διακοπτόμενα και η πρόσβαση διαχείρισής του υποβαθμίζεται σιωπηλά. Κανένα από αυτά τα τρία γεγονότα δεν είναι ορατό σε ένα διάγραμμα τοπολογίας.
Η διαδρομή παρακάτω προϋποθέτει πιστοποιημένη σύνδεση TAP ανάμεσα σε δύο υπολογιστές Linux, μία αποκλειστική ενσύρματη θύρα ανά πάγκο και μια διεπαφή διαχείρισης που δεν αποτελεί μέρος του πειράματος. Η σειρά μετράει: πρώτα τα πλαίσια, μετά οι διευθύνσεις, τελευταίο το όριο.
Τι μετακινεί στην πραγματικότητα η γέφυρα
Η γέφυρα είναι ένας μεταγωγέας υλοποιημένος σε λογισμικό. Μαθαίνει ποια διεύθυνση MAC εμφανίζεται πίσω από ποια θύρα-μέλος και προωθεί πλαίσια μεταξύ των μελών χωρίς να συμβουλεύεται πίνακα δρομολόγησης IP. Τίποτα σε αυτή την περιγραφή δεν περιλαμβάνει υποδίκτυο, πύλη ή προεπιλεγμένη διαδρομή, γι' αυτό η ενεργοποίηση προώθησης IP δεν παράγει αυτή τη σύνδεση και γι' αυτό ένα ping μπορεί να πετύχει ενώ άλλη κίνηση ακόμη αποτυγχάνει. Μια πλακέτα μπορεί να φτάσει στον ομόλογό της χωρίς καμία ρυθμισμένη προεπιλεγμένη διαδρομή, κάτι που εκπλήσσει όσους περιμένουν το επίπεδο δύο να συμπεριφέρεται σαν το επίπεδο τρία.
Κάθε υπολογιστής συνεισφέρει μία ενσύρματη θύρα στη γέφυρα και τη συσκευή TAP στην ίδια γέφυρα, οπότε ένα πλαίσιο από μια πλακέτα μπαίνει στην τοπική θύρα, προωθείται στη συσκευή TAP, διασχίζει το τούνελ, φτάνει στη συσκευή TAP του ομολόγου και προωθείται έξω στην πλακέτα του ομολόγου. Το τούνελ είναι θύρα-μέλος όπως κάθε άλλη, και η γέφυρα δεν ξέρει ούτε νοιάζεται ότι πίσω της βρίσκεται ένα VPN. Αυτή η συμμετρία κάνει το παράδειγμα εύκολο στη συλλογιστική: κάθε πλευρά έχει μία θύρα προς το εργαστήριο και μία θύρα τούνελ, και καμία πλευρά δεν είναι ξεχωριστή.
Board A -- bench0 -- br-test -- tap-bench
| OpenVPN TAP
Board B -- bench0 -- br-test -- tap-benchΤα πανομοιότυπα ονόματα και στους δύο υπολογιστές είναι τοπικά ονόματα, όχι κοινά αντικείμενα. Υπάρχει μία διαδρομή Ethernet ανάμεσα στους πάγκους, χωρίς δεύτερο καλώδιο και χωρίς δεύτερο τούνελ που κλείνει βρόχο· μια γέφυρα που βλέπει την ίδια MAC να φτάνει σε δύο θύρες θα προωθήσει ευχαρίστως σε κύκλους.
Διευθυνσιοδοτήστε τη γέφυρα, όχι τις θύρες-μέλη της
Η ταυτότητα του υπολογιστή στο τμήμα του εργαστηρίου ανήκει στη συσκευή γέφυρας. Οι θύρες-μέλη μένουν χωρίς αρίθμηση, γιατί μια θύρα είναι μέλος προώθησης και μια διεύθυνση πάνω της θα δημιουργούσε δεύτερο, ανταγωνιστικό ιδιοκτήτη του ίδιου τμήματος. Αυτή είναι η διόρθωση που οι περισσότερες χειροποίητες συνταγές κάνουν λάθος: διευθυνσιοδοτούν τη συσκευή TAP και τη γέφυρα και μετά αναρωτιούνται σε ποια από τις δύο φτάνει στην πραγματικότητα ο ομόλογος.
ip link add br-test type bridge
ip link set bench0 master br-test
ip link set tap-bench master br-test
ip address add 172.30.90.2/24 dev br-test
ip link set bench0 up
ip link set tap-bench up
ip link set br-test upΟ ομόλογος χρησιμοποιεί το ίδιο σχήμα με διαφορετική διεύθυνση κεντρικού υπολογιστή, και οι πλακέτες παίρνουν διευθύνσεις στην ίδια περιοχή με τη διεύθυνση γέφυρας του υπολογιστή ως επόμενο άλμα αν χρειάζονται ένα. Χρησιμοποιήστε περιοχές τεκμηρίωσης μέχρι να συμφωνηθεί το σχέδιο, και δεσμεύστε την περιοχή ώστε να μη συγκρούεται με κάτι που το γραφείο δρομολογεί ήδη. Πριν εκτελέσετε οτιδήποτε από αυτά, επιβεβαιώστε ότι οι θύρες-μέλη δεν φέρουν υπολειπόμενη διεύθυνση, πελάτη DHCP και καμία συμμετοχή σε άλλη γέφυρα, και εναρμονίστε τη διευθυνσιοδότηση της συσκευής TAP μέσω όποιου κατέχει τη ρύθμιση του τούνελ ώστε να μην επαναφέρει διεύθυνση αργότερα.
Γιατί μία αποκλειστική θύρα ανά πάγκο
Μια αποκλειστική ενσύρματη θύρα είναι αυτό που εμποδίζει το πείραμα να γίνει αλλαγή σε όλο το γραφείο. Η διεπαφή διαχείρισης μεταφέρει SSH, την προεπιλεγμένη διαδρομή και την εξωτερική σύνδεση VPN, και τίποτα από αυτά δεν ανήκει σε μια γέφυρα της οποίας σκοπός είναι να μετακινεί πλαίσια εργαστηρίου.
Η σύνδεση ενός προσαρμογέα διαχείρισης βάζει το LAN του γραφείου μία απόφαση προώθησης μακριά από μια πλακέτα ανάπτυξης, και μια πλακέτα που συμπεριφέρεται άσχημα στο επίπεδο δύο είναι ακριβώς ο τύπος συσκευής που δεν θέλετε σε αυτό το τμήμα. Ένας προσαρμογέας Wi-Fi είναι χειρότερος: η γεφύρωση ασύρματης διεπαφής σε λειτουργία υποδομής δεν συμπεριφέρεται όπως η γεφύρωση Ethernet, και η αποτυχία είναι μπερδεμένη αντί για καθαρή.
Κρατήστε την περιοχή του εργαστηρίου έξω από κάθε εύρος DHCP παραγωγής. Αν οι πλακέτες χρειαστούν αργότερα δυναμική διευθυνσιοδότηση, ένας εξουσιοδοτημένος εκχωρητής με μία δεξαμενή είναι η μόνη διάταξη που μένει προβλέψιμη· οι συνηθισμένοι δρομολογητές δύο τοποθεσιών που απαντούν στο ίδιο τμήμα παράγουν διευθύνσεις που κανείς δεν μπορεί να εξηγήσει.
Το όριο που δεν δημιουργεί η γέφυρα
Η γεφύρωση δεν είναι δρομολόγηση και δεν είναι επίσης απομόνωση. Τα πλαίσια που διασχίζουν τη γέφυρα μπορούν ακόμη να φτάσουν στα άγκιστρα φιλτραρίσματος του κεντρικού υπολογιστή, ανάλογα με τη διαδρομή bridge-netfilter που έχει εγκατασταθεί, οπότε η πραγματική πολιτική πρέπει να επιθεωρείται και όχι να υποτίθεται. Η απενεργοποίηση του τείχους προστασίας επειδή χάθηκε ένα πλαίσιο ανταλλάσσει ένα συγκεκριμένο σφάλμα με ένα γενικό.
Η προώθηση IP ανάμεσα στη γέφυρα και σε κάθε διεπαφή διαχείρισης ή ανάντη ζεύξης πρέπει να μένει κλειστή ή να απαγορεύεται ρητά, και αυτός είναι ξεχωριστός έλεγχος από τη συμμετοχή στη γέφυρα. Μια πλακέτα που επιλέγει τη διεύθυνση εργαστηρίου του υπολογιστή ως πύλη της δοκιμάζει ακριβώς αυτό: αν η διέλευση διαχείρισης πετύχει, το όριο που σκόπευες δεν ήταν ποτέ εκεί.
Δύο ακόμη οικογένειες αξίζουν ρητή απόφαση. Το σχέδιο διευθύνσεων δεν κάνει τη γέφυρα μόνο IPv4, οπότε το IPv6 και άλλοι EtherTypes χρειάζονται δικό τους σχέδιο ή φίλτρο. Και ένα επιτυχές ping δεν λέει τίποτα για το αν οι εκπομπές ανακάλυψης της πλακέτας, οι ομάδες multicast ή τα jumbo πλαίσια θα περάσουν τη διαδρομή, γιατί αυτές είναι διαφορετικές κλάσεις κίνησης με διαφορετικές προεπιλογές.
Τέλος, η μεταφορά και η εμπιστευτικότητα είναι δύο διαφορετικές αγορές. Το TAP μεταφέρει Ethernet· η υπηρεσία OpenVPN παρέχει την προστασία γύρω του. Μια επικάλυψη VXLAN μεταφέρει επίσης Ethernet και δεν παρέχει εμπιστευτικότητα από μόνη της, οπότε η αντικατάσταση του ενός από το άλλο αλλάζει τις ιδιότητες ασφαλείας ακόμη και όταν το διάγραμμα τοπολογίας φαίνεται ίδιο.
Διατήρηση και οι δοκιμές που την αποδεικνύουν
Μια εντολή που πληκτρολογείται μία φορά μετά τη σύνδεση δεν είναι διαμόρφωση. Κάντε μόνιμα τη γέφυρα, τη συμμετοχή των θυρών και τη μοναδική διεύθυνση κεντρικού υπολογιστή μέσω του υπάρχοντος διαχειριστή δικτύου του υπολογιστή, και δέστε τη σύνδεση με την εμφάνιση της συσκευής TAP ώστε μια επανασύνδεση να μην αφήσει γέφυρα με εξαφανισμένο μέλος.
bridge link show
ip -d link show br-test
bridge fdb show br br-test | headΈπειτα δοκιμάστε τι χρειάζονται πραγματικά οι πλακέτες και προς τις δύο κατευθύνσεις, επανασυνδέστε το τούνελ και επανεκκινήστε έναν υπολογιστή σύμφωνα με το εγκεκριμένο σχέδιο ανάκτησης. Επιβεβαιώστε τρία πράγματα μετά: η πρόσβαση διαχείρισης λειτουργεί ακόμη ανεξάρτητα, δεν εμφανίζεται διπλή διεύθυνση εργαστηρίου και καμία απρόσμενη διεπαφή παραγωγής δεν εντάχθηκε στη γέφυρα. Αυτός ο συνδυασμός είναι η απόδειξη ότι το πείραμα έμεινε μέσα στον πάγκο του.