Перамыкач «allow local network» у кліенце VPN гучыць так, быццам ён ахоплівае ўсё ў будынку. На практыцы ён звычайна дадае некалькі выключэнняў для прыватных адрасоў у маршрут па змаўчанні тунеля і на гэтым спыняецца. Ваш VLAN сховішча застаецца даступным, толькі калі маршрут для гэтага пэўнага прэфікса перажыве прыход тунеля, а ў многіх кліентах гэтага не адбываецца.

Гэта пытанне маршрутызацыі, а не налады VPN, і гэта добрая навіна: у яго ёсць канкрэтны адказ.

Што насамрэч ахоплівае allow-local-network

Кліенты рэалізуюць гэты параметр па-рознаму. Некаторыя дадаюць маршруты для падсеткі, да якой падключана машына, некаторыя дадаюць дыяпазоны RFC 1918, а некаторыя толькі выключаюць шлюз па змаўчанні. Ніхто з іх не ведае, што ваш офісны роўтар таксама абслугоўвае VLAN сховішча, лабараторны сегмент або падсетку прынтараў, бо гэтых прэфіксаў няма на лініі, якую бачыць кліент. Чытайце ўласную дакументацыю кліента пра дакладныя паводзіны, замест таго каб меркаваць, што этыкетка апісвае вашу тапалогію.

Розніца найбольш важная ў архітэктуры поўнага тунеля, дзе кліент наўмысна замяняе маршрут па змаўчанні, каб увесь трафік ішоў праз VPN. Гэта ўвесь сэнс архітэктуры, і менавіта гэта прымушае лакальныя маршрутызаваныя сеткі знікаць. Яны ніколі не былі ахопленыя ўласным маршрутам; яны ехалі на маршруце па змаўчанні, які толькі што замянілі. Кліент не можа маршрутызаваць тое, пра існаванне чаго не ведае, і ён даведваецца толькі пра прэфіксы, далучаныя да ўласнага інтэрфейса. Усё астатняе павінен апісаць нехта, хто ведае тапалогію.

Падключаныя маршруты спыняюцца на першым роўтары

Працоўная станцыя з адрасам 192.168.10.20/24 і шлюзам 192.168.10.1 аўтаматычна атрымлівае падключаны маршрут для 192.168.10.0/24. VLAN сховішча з адрасам 192.168.20.0/24 — гэта іншы прэфікс, даступны толькі праз гэты шлюз, і ў працоўнай станцыі няма для яго маршруту, акрамя маршруту па змаўчанні. Пакуль тунель не ўзняты, звычайны маршрут па змаўчанні выпадкова накіроўвае трафік сховішча на 192.168.10.1, і ўсё працуе.

Калі VPN устанаўлівае маршрут па змаўчанні для поўнага тунеля, пакеты для 192.168.20.1 ідуць па новым маршруце па змаўчанні ў тунель. Аддалены шлюз не мае паняцця, дзе знаходзіцца гэты прэфікс, таму ён адкідае іх або перасылае некуды бясплённа. На VLAN сховішча нішто не было наладжана няправільна; яго шлях быў пазычаны, і пазыку запатрабавалі назад.

Спакуса — узяць шырокае выключэнне, напрыклад пару маршрутаў /1 або другі маршрут па змаўчанні. Супраціўляйцеся гэтаму. Чым вузейшае выключэнне, тым прасцей яго растлумачыць, праверыць і выдаліць, калі сетка зменіцца.

Змесціце выключэнне ў табліцу, якая перамагае

У межах адной табліцы маршрутызацыі /24 перамагае /0 або /1 па найдоўгім супадзенні прэфікса, таму пэўнага маршруту да VLAN сховішча праз лакальны шлюз дастаткова, пры ўмове што табліца наогул разглядаецца. У Linux звычайная форма кароткая:

ip route add 192.168.20.0/24 via 192.168.10.1 dev eth0

Маршрутызацыя па палітыцы ўскладняе гэтую гарантыю. Ранейшае правіла можа адправіць трафік у табліцу, уласны маршрут па змаўчанні якой вядзе ў тунель, і галоўная табліца з вашым /24 тады ніколі не дасягаецца. Праверце правілы, перш чым меркаваць, што маршрут галоўны, бо правільны на выгляд запіс у няправільнай табліцы тлумачыць збой, які выглядае як зламаны маршрут.

Затым зрабіце запіс пастаянным праз падтрыманы кліентам механізм або сеткавы менеджар, якому належыць інтэрфейс. Маршрут, набраны ў запыце, знікае пры наступным перападключэнні, а маршрут, прывязаны да аднаго шлюза Wi-Fi, не пераносіцца на наступную сетку, якую наведвае ноўтбук.

Імёны і палітыка не ідуць за маршрутамі

Выпраўленне маршруту вяртае пакеты, а не імёны. Калі лакальныя прылады развязваюцца праз навязаны рэзалвер, які нічога пра іх не ведае, мантаванне ўсё роўна няўдалае, нават калі адрас даступны. Лакальныя імёны патрабуюць лакальнай або раздзеленай DNS-схемы, і гэта асобнае рашэнне ад выключэння маршруту.

Палітыка зноў асобная. Фільтр лакальнага доступу кліента VPN можа наўмысна забараняць трафік да прыватных дыяпазонаў, і маршрут не адмяняе гэтае правіла. У недаверанай сетцы прыватны адрас таксама не доказ таго, што прызначэнне — ваш сервер сховішча, таму выключэнне павінна быць настолькі ж пэўным, як і сам маршрут.

Кантракт, які можна перадаць

Гатовы дызайн павінен чытацца як кароткі спіс: агульны інтэрнэт-трафік ідзе за тунелем, а гэтыя названыя лакальныя прэфіксы захоўваюць свой шлях праз лакальны роўтар. Запішыце прэфіксы, наступны хоп і DNS-суфікс, які з імі ідзе, і трымайце спіс дастаткова кароткім, каб нехта мог праверыць яго, не чытаючы табліцу маршрутызацыі.

Сачыце за перакрыццем лакальных і аддаленых дыяпазонаў. VLAN сховішча, які дзеліць прэфікс з чымсьці за VPN, будзе развязвацца ў маршрут, які больш пэўны, і выніковыя паводзіны заблытаныя так, што выглядаюць перарывістымі. Перанумарацыя аднаго боку звычайна таннейшая за вечнае наладжванне неадназначнасці.

Праверце кантракт двойчы: адзін раз з узнятым тунелем і адзін раз са спушчаным. Калі лакальны шлях працуе толькі ў адным з гэтых станаў, выключэнне яшчэ не кантракт.

Падобныя артыкулы