Як спланаваць пул адрасоў кліентаў VPN, які падыходзіць
Выберыце пул у полі сервера, затым прачытайце адрас, які кліент фактычна атрымлівае, прасачыце адказ назад і запішыце дыяпазон, рэжым, маршрут і абсяг DNS.
Пачніце з поля пула на серверы VPN, а не з табліцы. Тое, што вы ўвядзеце там, становіцца ўнутранай адраснай прасторай для кожнага кліента, які падключыцца пазней, і яно павінна суіснаваць з лакальнай сеткай, да якой гэтыя кліенты дабіраюцца, з маршрутызаванымі сайтамі за ёй і з любым адрасам, які кліент ужо мае дома. Падключыце аднаго кліента адразу пасля захавання пула, бо гэта першае злучэнне скажа вам, ці працуе значэнне на практыцы. Адтуль праходка рухаецца вонкі: адрас, які атрымаў кліент, шлях, якім ідзе адказ, і запіс, які вы пакідаеце пасля сябе.
Пачніце з поля пула, перш чым падключыцца любы кліент
Кожны прадукт паказвае гэта па-свойму, таму знайдзіце аб'ект, які фактычна прызначае адрасы. У OpenVPN ёсць серверная дырэктыва пула, якая выдае наступны свабодны адрас, у шлюза IKEv2 ёсць раздзел пула, прывязаны да канфігурацыі партнёра, а ў WireGuard няма ні таго, ні іншага, бо кожны партнёр носіць свой адрас у сваім файле канфігурацыі. Дырэктыва пула і адрас асобнага партнёра не ўзаемазаменныя, і рэдагаванне не таго з іх марнуе астатнюю частку праходкі.
Атрымаўшы поле, пералічыце дыяпазоны, якія ўжо існуюць: офісную лакальную сетку, кожны маршрутызаваны сайт, хмарную VPC і любы іншы пул, што яшчэ ў эксплуатацыі. Перасячэнне вызначаецца арыфметыкай прэфікса, а не тым, ці выглядаюць нумары хастоў знаёма, таму параўнайце агрэгат з кожным з гэтых дыяпазонаў. Два дыяпазоны, якія абое выглядаюць як 10.x, бясшкодныя, калі іх агрэгаты не перасякаюцца, і здарэнне падтрымкі, калі перасякаюцца.
Затым вырашыце, ці адрас з'яўляецца функцыяй таго, хто падключаецца, ці таго, калі яны падключаюцца. Дынамічнае прызначэнне выдае тое, што свабодна, а прызначэнне па ідэнтычнасці прывязвае фіксаваны адрас да ўліковых дадзеных. Запішыце выбар, бо ён змяняе тое, як пазней павінна выглядаць перападключэнне.
Прачытайце адрас, які кліент фактычна атрымаў
Падключыце аднаго кліента і прачытайце тое, што паведамляе тунель, а не тое, што абяцаў пул. Кліент паказвае свой унутраны адрас у стане злучэння, а ў Linux інтэрфейс носіць яго напрамую.
Параўнайце гэты адрас з дыяпазонам, які вы захавалі. Калі ён па-за дыяпазонам, вы бачыце іншы шлях прызначэння, чым той, які рэдагавалі. Праверце таксама даўжыню прэфікса, бо кліент з /32 не мае партнёра на звяне і адпраўляе кожнае прызначэнне праз свой маршрут па змаўчанні.
ip -4 addr show tun0
ip route get 192.168.50.20
Кліент, які падключаецца з хатняга роўтара з тым жа дыяпазонам, падключыцца і потым не дасягне амаль нічога. Кліент захоўвае свой лакальны маршрут для гэтага прэфікса, таму адрас тунеля сутыкаецца з сеткай за ім, і трафік выходзіць праз няправільны інтэрфейс. Гэты выпадак нельга выправіць на серверы; дакументаванае рашэнне — перанумараваць хатнюю сетку або выбраць дыяпазон пула, дастаткова далёкі, каб сутыкненні заставаліся рэдкімі. Запішыце і збой, і рашэнне, бо служба падтрымкі сустрэне яго зноў.
Перападключыце таго ж кліента і назірайце за адрасам. Дынамічны пул можа вярнуць тое ж значэнне або іншае, і абое правільна, а пул па ідэнтычнасці, які змяняе адрас, не выконвае прывязку. Гэтая праверка займае секунды і вырашае, ці рэжым, запісаны вамі ў першым раздзеле, і ёсць рэжым, што дзейнічае.
Прасочыце адказ назад ад сэрвісу
Пул працуе, толькі калі адказы могуць вяртацца да яго. Сэрвіс у лакальнай сетцы адказвае на ўнутраны адрас, таму яго шлюзу патрэбен маршрут для пула або трансляцыя перад сэрвісам. Калі запыт прыходзіць праз тунель, а адказ выходзіць іншым шляхам, захавальны файрвол або праверка зваротнага шляху скідвае яго, і кліент бачыць сэрвіс, які падключаецца і потым завісае. Уключыце пул у праект маршрутызацыі як адзін блок, які можна агрэгаваць, замест дадання маршрутаў на кожны хост.
Трансляцыя змяняе тое, што бачыць астатняя частка сістэмы. Калі крыніца перапісваецца, адрас у файрволе хоста і ў журнале праграмы — гэта трансляваны адрас, таму правіла, напісанае супраць адраса пула, не супадае ні з чым, і радок журнала нельга прасачыць да кліента. Дакументацыя strongSwan па перасылцы ахоплівае серверную палову гэтага шляху для шлюза IKEv2. DNS нясе тое ж абмежаванне, бо імя, што развязваецца ў адрас, якога кліент не можа дасягнуць, збаіць пазней і ў іншым месцы.
Два кліенты, потым адно адкліканне
Падключыце двух кліентаў адначасова і прачытайце абодва адрасы. Яны павінны быць рознымі, прыдатнымі і ўнутры пула, і кожны павінен дасягаць сэрвісу, для якога прызначаны. Пул, які выдае дублікаты адрасоў, звычайна выяўляецца тут, а не ў першым тэсце з адным кліентам.
Адклічце адны ўліковыя дадзеныя, пакуль іншы кліент застаецца падключаным, затым паспрабуйце сэрвіс з кліента, што выжыў. Адкліканне, якое парушае іншую сесію, указвае на агульны стан, найчасцей адны ўліковыя дадзеныя або адзін адрас, паўторна выкарыстаныя паміж прыладамі. Перападключыце адкліканага кліента і пацвердзіце, што яму адмоўлена, а не выдадзены вызвалены адрас.
Скончыце прызначэннем, якое павінна быць забаронена. Кліент, які дасягае ўсяго, быў падключаны, а не пратэставаны.
Запішыце чатыры значэнні там, дзе іх знойдзе наступная змена
Запіс кароткі: дыяпазон пула і прэфікс, рэжым прызначэння, зваротны шлях або трансляцыя ў выкарыстанні, і абсяг DNS, які адказвае за гэтыя прызначэнні. Пакладзіце яго побач з канфігурацыяй сервера, а не ў тыкет, і пастаўце дату. Кожны, хто пазней зменіць адно з чатырох, мае патрэбу ў іншых трох перад сабой, бо змяненне памеру пула ламае маршрут, а змяненне маршруту ламае адказ DNS.
Трымайце побач запіску пра ўласнасць: дыяпазон тунеля належыць серверу VPN, а рэзерваванне, зробленае ў абсягу DHCP лакальнай сеткі нічога не рэзервуе для кліента ўнутры тунеля. Гэты адзіны радок прадухіляе найбольш частую пераробку, калі нехта дадае рэзерваванне і чакае, што адрас тунеля будзе ісці за ім.