Două plăci de dezvoltare trebuie să partajeze un singur segment Ethernet, în timp ce băncile lor sunt în clădiri diferite. Tunelul există deja și transportă deja Ethernet, așa că munca rămasă arată ca trei comenzi și nu este. Ce face gazda cu un cadru trecut prin punte, unde aparține adresa computerului însuși și ce graniță nu creează puntea sunt trei fapte separate, iar greșeala la al doilea este motivul obișnuit pentru care un laborator funcționează intermitent și accesul său de administrare se degradează în tăcere. Niciunul dintre aceste trei fapte nu este vizibil într-o diagramă de topologie.

Calea de mai jos presupune o conexiune TAP autentificată între două calculatoare Linux, un port cu fir dedicat pentru fiecare bancă și o interfață de administrare care nu face parte din experiment. Ordinea contează: mai întâi cadrele, apoi adresele, la final granița.

Ce mută de fapt puntea

O punte este un comutator implementat în software. Învață ce adresă MAC apare în spatele cărui port membru și transmite cadre între membri fără a consulta un tabel de rutare IP. Nimic din acea descriere nu implică o subrețea, o poartă de acces sau o rută implicită, de aceea activarea transmiterii IP nu produce această conexiune și de aceea un ping poate reuși în timp ce alt trafic încă eșuează. O placă poate ajunge la partenerul ei fără nicio rută implicită configurată, ceea ce îi surprinde pe cei care se așteaptă ca nivelul doi să se comporte ca nivelul trei.

Fiecare calculator adaugă un port cu fir punții și dispozitivul TAP aceleiași punți, așa că un cadru de la o placă intră pe portul local, este transmis dispozitivului TAP, traversează tunelul, ajunge la dispozitivul TAP al partenerului și este transmis plăcii acestuia. Tunelul este un port membru ca oricare altul, iar puntea nu știe și nu îi pasă că în spate se află o VPN. Această simetrie face exemplul ușor de analizat: fiecare parte are un port orientat spre laborator și un port de tunel, iar nicio parte nu este specială.

Board A -- bench0 -- br-test -- tap-bench
                                 |  OpenVPN TAP
Board B -- bench0 -- br-test -- tap-bench

Numele identice de pe ambele calculatoare sunt nume locale, nu obiecte partajate. Există o singură cale Ethernet între bănci, fără un al doilea cablu și fără un al doilea tunel care să închidă o buclă; o punte care vede același MAC venind pe două porturi va transmite bucuroasă în cercuri.

Adresați puntea, nu porturile ei membre

Identitatea calculatorului în segmentul laboratorului aparține dispozitivului punte. Porturile membre rămân fără număr, pentru că un port este un membru care transmite, iar o adresă pe el ar crea un al doilea proprietar concurent al aceluiași segment. Aceasta este corecția pe care majoritatea rețetelor făcute manual o greșesc: ele adresează dispozitivul TAP și puntea, apoi se întreabă pe care dintre ele ajunge de fapt partenerul.

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

Partenerul folosește aceeași formă cu o altă adresă de gazdă, iar plăcile iau adrese în același interval folosind adresa punții calculatorului ca următor salt dacă au nevoie de unul. Folosiți intervale de documentație până când planul este convenit, și rezervați intervalul ca să nu se ciocnească cu nimic ce biroul rutează deja. Înainte de a rula orice parte, confirmați că porturile membre nu poartă nicio adresă rămasă, niciun client DHCP și nicio apartenență la altă punte, și armonizați adresarea dispozitivului TAP prin ceea ce deține configurația tunelului, ca să nu restaureze o adresă mai târziu.

De ce un port dedicat pe bancă

Un port cu fir dedicat este ceea ce împiedică experimentul să devină o schimbare la nivelul întregului birou. Interfața de administrare poartă SSH, ruta implicită și conexiunea VPN exterioară, și nimic din toate acestea nu aparține unei punți al cărei scop este să mute cadre de laborator.

Conectarea unui adaptor de administrare pune LAN-ul biroului la o decizie de transmitere distanță de o placă de dezvoltare, iar o placă care se comportă prost la nivelul doi este exact tipul de dispozitiv pe care nu îl doriți în acel segment. Un adaptor Wi-Fi este mai rău: puntea unei interfețe wireless în modul infrastructură nu se comportă ca puntea Ethernet, iar eșecul este confuz în loc de curat.

Țineți intervalul laboratorului în afara oricărui domeniu DHCP de producție. Dacă plăcile au nevoie mai târziu de adresare dinamică, un singur alocator autorizat cu un singur pool este singura aranjare care rămâne previzibilă; routerele obișnuite ale două locații care răspund în același segment produc adrese pe care nimeni nu le poate explica.

Granița pe care puntea nu o creează

Puntea nu este rutare și nu este nici izolare. Cadrele care traversează puntea pot ajunge în continuare la cârligele de filtrare ale gazdei, în funcție de calea bridge-netfilter instalată, așa că politica efectivă trebuie inspectată, nu presupusă. Dezactivarea firewall-ului pentru că s-a pierdut un cadru schimbă un defect specific cu unul general.

Transmiterea IP între punte și fiecare interfață de administrare sau uplink ar trebui să rămână oprită sau să fie refuzată explicit, iar acesta este un control separat de apartenența la punte. O placă ce alege adresa de laborator a calculatorului ca poartă de acces testează exact acest lucru: dacă tranzitul de administrare reușește, granița dorită nu a existat niciodată.

Încă două familii merită o decizie explicită. Planul de adresare nu face puntea doar IPv4, așa că IPv6 și alte EtherType au nevoie de propriul plan sau filtru. Și un ping reușit nu spune nimic despre dacă difuzările de descoperire ale plăcii, grupurile multicast sau cadrele jumbo vor traversa calea, pentru că acestea sunt clase de trafic diferite cu valori implicite diferite.

În final, transportul și confidențialitatea sunt două achiziții diferite. TAP transportă Ethernet; serviciul OpenVPN oferă protecția din jur. O suprapunere VXLAN transportă și ea Ethernet și nu oferă confidențialitate prin sine, așa că înlocuirea uneia cu cealaltă schimbă proprietățile de securitate chiar și atunci când diagrama de topologie pare identică.

Persistență și testele care o dovedesc

O comandă tastată o dată după conectare nu este o configurație. Faceți persistente puntea, apartenența porturilor și unica adresă de gazdă prin managerul de rețea existent al calculatorului, și legați conexiunea de apariția dispozitivului TAP ca o reconectare să nu lase o punte cu un membru dispărut.

bridge link show
ip -d link show br-test
bridge fdb show br br-test | head

Apoi testați de ce au plăcile nevoie cu adevărat în ambele direcții, reconectați tunelul și reporniți un calculator conform planului de recuperare aprobat. Confirmați trei lucruri după aceea: accesul de administrare funcționează în continuare independent, nu apare nicio adresă de laborator duplicată și nicio interfață de producție neașteptată nu s-a alăturat punții. Acea combinație este dovada că experimentul a rămas în interiorul bancului său.

Articole similare