Dvi kūrimo plokštės turi dalytis vienu Ethernet segmentu, nors jų stendai yra skirtinguose pastatuose. Tunelis jau egzistuoja ir jau perduoda Ethernet, todėl likęs darbas atrodo kaip trys komandos ir nėra toks. Ką pagrindinis kompiuteris daro su tiltu persiųstu kadru, kur priklauso paties kompiuterio adresas ir kokios ribos tiltas nesukuria, yra trys atskiri faktai, o klaida antrajame yra įprasta priežastis, kodėl laboratorija veikia su pertraukomis, o jos valdymo prieiga tyliai prastėja. Nė vienas iš šių trijų faktų nėra matomas topologijos diagramoje.

Toliau pateiktas kelias daro prielaidą, kad tarp dviejų Linux kompiuterių yra autentifikuotas TAP ryšys, vienas skirtas laidinis prievadas kiekvienam stendui ir valdymo sąsaja, kuri nėra eksperimento dalis. Tvarka svarbi: pirmiausia kadrai, paskui adresai, galiausiai riba.

Ką tiltas iš tikrųjų perkelia

Tiltas yra programinėje įrangoje įgyvendintas komutatorius. Jis išmoksta, kuris MAC adresas pasirodo už kurio nario prievado, ir persiunčia kadrus tarp narių neskaitęs IP maršrutizavimo lentelės. Šiame aprašyme nėra potinklės, tinklų sietuvo ar numatytojo maršruto, todėl įjungus IP persiuntimą šis prisijungimas neatsiranda ir todėl ping gali pavykti, nors kitas srautas vis tiek nepraeina. Plokštė gali pasiekti savo partnerį visiškai be jokio sukonfigūruoto numatytojo maršruto, o tai nustebina tuos, kurie tikisi, kad antrasis sluoksnis elgsis kaip trečiasis.

Kiekvienas kompiuteris prideda prie tilto vieną laidinį prievadą ir TAP įrenginį į tą patį tiltą, todėl kadras iš plokštės patenka į vietinį prievadą, perduodamas TAP įrenginiui, kerta tunelį, atvyksta į partnerio TAP įrenginį ir perduodamas partnerio plokštei. Tunelis yra toks pat nario prievadas kaip ir bet kuris kitas, o tiltas nežino ir nesirūpina, kad už jo yra VPN. Būtent ši simetrija daro pavyzdį lengvai suprantamą: kiekviena pusė turi vieną laboratorijos link nukreiptą prievadą ir vieną tunelio prievadą, ir nė viena pusė nėra ypatinga.

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

Tie patys pavadinimai abiejuose kompiuteriuose yra vietiniai pavadinimai, o ne bendri objektai. Tarp stendų yra vienas Ethernet kelias, be antro kabelio ir be antro tunelio, uždarančio kilpą; tiltas, matantis tą patį MAC ateinantį į du prievadus, mielai persiųs ratu.

Adresuokite tiltą, o ne jo narių prievadus

Kompiuterio tapatybė laboratorijos segmente priklauso tilto įrenginiui. Narių prievadai lieka nenumeruoti, nes prievadas yra persiunčiantis narys, o adresas jame sukurtų antrą, konkuruojantį to paties segmento savininką. Tai pataisa, kurią dauguma ranka rašytų receptų padaro neteisingai: jie adresuoja TAP įrenginį ir tiltą, o paskui stebisi, kurį iš jų partneris iš tikrųjų pasiekia.

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

Partneris naudoja tą pačią formą su kitu pagrindinio kompiuterio adresu, o plokštės ima adresus tame pačiame diapazone, naudodamos kompiuterio tilto adresą kaip kitą šuolį, jei jo reikia. Naudokite dokumentacijos diapazonus, kol planas bus suderintas, ir rezervuokite diapazoną, kad jis nesusidurtų su niekuo, ką biuras jau maršrutizuoja. Prieš paleisdami bet kurią dalį, patvirtinkite, kad narių prievaduose nėra likusio adreso, DHCP kliento ir narystės kitame tilte, ir suderinkite TAP įrenginio adresavimą per tai, kas valdo tunelio konfigūraciją, kad vėliau neatkurtų adreso.

Kodėl vienas skirtas prievadas kiekvienam stendui

Skirtas laidinis prievadas yra tai, kas neleidžia eksperimentui tapti viso biuro pakeitimu. Valdymo sąsaja perduoda SSH, numatytąjį maršrutą ir išorinį VPN ryšį, ir niekas iš to nepriklauso tiltui, kurio tikslas yra perkelti laboratorijos kadrus.

Valdymo adapterio prijungimas pastato biuro LAN vieno persiuntimo sprendimo atstumu nuo kūrimo plokštės, o plokštė, kuri blogai elgiasi antrajame sluoksnyje, yra būtent toks įrenginys, kurio tame segmente nenorite. Wi-Fi adapteris yra blogesnis: belaidės sąsajos tiltavimas infrastruktūros režimu nesielgia kaip Ethernet tiltavimas, o gedimas yra klaidinantis, o ne švarus.

Laikykite laboratorijos diapazoną už bet kurios gamybinės DHCP srities. Jei plokštėms vėliau prireiks dinaminio adresavimo, vienas įgaliotas skirstytojas su vienu telkiniu yra vienintelė tvarka, kuri išlieka nuspėjama; įprasti dviejų vietų maršrutizatoriai, atsakantys tame pačiame segmente, sukuria adresus, kurių niekas negali paaiškinti.

Riba, kurios tiltas nesukuria

Tiltavimas nėra maršrutizavimas, ir tai taip pat nėra izoliacija. Kadrai, kertantys tiltą, vis tiek gali pasiekti pagrindinio kompiuterio filtravimo kabliukus, priklausomai nuo įdiegto bridge-netfilter kelio, todėl veiksminga politika turi būti tikrinama, o ne daroma prielaida. Ugniasienės išjungimas dėl vieno prarasto kadro iškeičia konkrečią klaidą į bendrą.

IP persiuntimas tarp tilto ir kiekvienos valdymo ar uplink sąsajos turėtų likti išjungtas arba būti aiškiai uždraustas, ir tai yra atskira kontrolė nuo narystės tilte. Plokštė, pasirenkanti kompiuterio laboratorijos adresą savo tinklų sietuvu, tikrina būtent tai: jei valdymo tranzitas pavyksta, numatytos ribos niekada nebuvo.

Dar dvi šeimos nusipelno aiškaus sprendimo. Adresavimo planas nepadaro tilto tik IPv4, todėl IPv6 ir kiti EtherType turi savo planą ar filtrą. O sėkmingas ping nieko nesako apie tai, ar plokštės aptikimo transliacijos, multicast grupės ar jumbo kadrai praeis keliu, nes tai skirtingos srauto klasės su skirtingomis numatytosiomis reikšmėmis.

Galiausiai, perdavimas ir konfidencialumas yra du skirtingi pirkiniai. TAP perduoda Ethernet; OpenVPN paslauga teikia apsaugą aplink jį. VXLAN perdanga taip pat perduoda Ethernet ir pati savaime nesuteikia konfidencialumo, todėl vieno pakeitimas kitu keičia saugumo savybes net tada, kai topologijos diagrama atrodo identiška.

Ilgaamžiškumas ir jį įrodantys testai

Komanda, įvesta vieną kartą po prisijungimo, nėra konfigūracija. Padarykite ilgaamžius tiltą, prievadų narystę ir vieną pagrindinio kompiuterio adresą per esamą kompiuterio tinklo tvarkyklę, ir susiekite prisijungimą su TAP įrenginio pasirodymu, kad pakartotinis prisijungimas nepaliktų tilto su dingusiu nariu.

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

Tada patikrinkite, ko plokštėms iš tikrųjų reikia abiem kryptimis, iš naujo prijunkite tunelį ir paleiskite iš naujo vieną kompiuterį pagal patvirtintą atkūrimo planą. Po to patvirtinkite tris dalykus: valdymo prieiga vis dar veikia savarankiškai, neatsiranda dvigubo laboratorijos adreso ir jokia netikėta gamybinė sąsaja neprisijungė prie tilto. Būtent šis derinys yra įrodymas, kad eksperimentas liko savo stendo ribose.

Susiję straipsniai