Чаму парадак адаптараў не вызначае VPN-маршрут вашай лабараторыі
Адаптар 1 у гіпервізары нічога не кажа пра тое, які маршрут выбера госць. Параўноўвайце прэфіксы, метрыкі і правілы палітыкі пасля кожнай змены абсталявання.
Тое, што адаптар 1 стаіць першым у спісе гіпервізара, — гэта парадак адлюстравання, і табліца маршрутызацыі госця яго не чытае. Шлях вызначаюць прэфікс, метрыка і любое правіла палітыкі, якое дзейнічае раней за абедзве. Таму даданне маставога адаптара да VM лабараторыі можа стварыць другі маршрут па змаўчанні, пакуль стары інтэрфейс NAT па-ранейшаму паказваецца як наяўны і другі па нумары. Вынік — VM, якая часам выкарыстоўвае тунель, а часам не, без якой-небудзь змены канфігурацыі, якая б гэта тлумачыла.
Шлях вызначаюць тры ўмовы
Тры ўмовы — гэта які прэфікс больш канкрэтны, што робяць метрыкі, калі прэфіксы роўныя, і якія правілы госць ужыў пасля змены абсталявання. На кожнае пытанне можна адказаць адной камандай, і ніводнае з іх не залежыць ад нумарацыі гіпервізара.
Менавіта апошні пункт і ёсць рашэннем: калі вы не можаце сказаць, які прэфікс перамагае для ўласнага адраса VPN-эндпойнта, у вас няма палітыкі маршрутызацыі — у вас ёсць тапалогія, якая проста сёння працуе.
Умова першая: які прэфікс перамагае
Маршрут да 10.8.0.0/24 перамагае маршрут па змаўчанні для адраса ўнутры яго, незалежна ад метрык і ад парадку адаптараў. Менавіта таму VPN-кліент, які ўсталёўвае канкрэтны маршрут, працягвае працаваць нават калі з’яўляецца другі адаптар з меншай метрыкай: канкрэтнасць перамагае раней, чым улічваецца цана. Праверце камандай ip route show тую табліцу, якая, на вашу думку, выкарыстоўваецца, і камандай ip route get 203.0.113.9 адказ, які ядро сапраўды дало б для канкрэтнага прызначэння.
Уласны адрас эндпойнта — гэта самая важная праверка. Калі адрас VPN-сервера развязваецца праз нядаўна дададзены маставы адаптар, тунель можа не ўсталявацца зусім, або ўсталявацца і затым страціць уласны шлях транспарту. Запытвайце менавіта гэты адрас, замест таго каб меркаваць, што адказ — гэта тунельны інтэрфейс.
Умова другая: што метрыка робіць і чаго не робіць
Яе роля вузейшая, чым чакаюць большасць людзей. Метрыкі развязваюць роўнасць паміж маршрутамі да аднаго прэфікса; яны не дазваляюць шырэйшаму маршруту перамагчы больш канкрэтны. Меншы лік мае перавагу пры роўнасці, а розныя аперацыйныя сістэмы лічаць у процілеглых кірунках, таму парады, перанесеныя паміж Linux і Windows, часта супярэчаць самі сабе.
У госці ip route show друкуе метрыку побач з кожным маршрутам, а Get-NetRoute у Windows друкуе InterfaceMetric плюс метрыку маршруту. Чытайце абедзве, бо эфектыўная перавага можа быць сумай, а не адным полем. Калі існуюць два маршруты па змаўчанні, гэта і ёсць знаходка: у госця два выхады, і тое, які перамагае, залежыць ад лікаў, якія змена абсталявання можа змяніць.
Умова трэцяя: што госць насамрэч ужыў
Канфігурацыя — гэта не тое самае, што ўжыты стан. Імёны інтэрфейсаў не стабільныя паміж зменамі абсталявання на кожнай платформе, і канфігурацыя, якая адпавядала імені, можа цяпер не ўжывацца ні да чаго.
Правярайце ўжыты стан, а не меркаваны. ip -br link паказвае інтэрфейсы, якія існуюць цяпер, а на хаспе з NetworkManager nmcli connection show паказвае, які профіль прывязаны да якой прылады. Профіль, якому не ўдалося прывязацца, пакідае інтэрфейс уключаным без адрасацыі, што выглядае як праблема маршрутызацыі, а насамрэч з’яўляецца праблемай імёнаў. Адноўленыя здымкі робяць гэта горш, бо захаваны стан госця можа спасылацца на ідэнтычнасці адаптараў, якіх новае абсталяванне ўжо не дае.
Захавайце тапалогію лабараторыі ўзнаўляльнай
Захоўвайце меркаваныя далучэнні віртуальнай сеткі разам з канфігурацыяй госця, каб адпаведнасць роляў і адаптараў была запісана, а не выведзена з пазіцыі ў спісе.
Звычайна дастаткова назваць чатыры ролі: прыватнае злучэнне, кіраванне, знешні транспарт і тунель. Кожная павінна адпавядаць пэўнаму адаптару і пэўнаму інтэрфейсу госця ў файле.
Затым праверце рэальную праграму пасля змены абсталявання, перазапуску або адноўленага здымка і ўключыце ў гэтую праверку маршрут да VPN-эндпойнта. Калі VM-шлюз павінен быць адзіным выхадам, пераканайцеся, што ў тэставай VM няма ненаўмыснага другога маршруту па змаўчанні, бо маставы адаптар дадае менавіта другі маршрут па змаўчанні. Тэстуйце з госця, а не з кансолі гіпервізара, бо яны могуць разыходзіцца ў тым, які інтэрфейс які.
Дакументацыя па сетках VirtualBox апісвае рэжымы адаптараў і тое, да чаго кожны далучаецца, — гэта і ёсць частка, якую варта прачытаць перад даданнем другога. Лабараторыя, якая вызначае, які адаптар выконвае якую ролю, робіць змену маршруту зразумелай. Лабараторыя, якая спадзяецца на нумарацыю гіпервізара, робіць кожную змену эксперыментам.