Ізаляваны мост 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 і іншыя EtherType патрабуюць уласнага плана або фільтра. А паспяховы 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Затым праверце, што платам насамрэч патрэбна ў абодвух напрамках, перападключыце тунэль і перазапусціце адзін камп'ютар па зацверджаным плане аднаўлення. Пасля гэтага пацвердзіце тры рэчы: доступ да кіравання па-ранейшаму працуе незалежна, падвойны лабараторны адрас не з'яўляецца, і нечаканы вытворчы інтэрфейс не далучыўся да моста. Менавіта гэтая камбінацыя і ёсць доказ таго, што эксперымент застаўся ў межах свайго стэнда.