Започнете от полето за пул на 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 в локалната мрежа не резервира нищо за клиент вътре в тунела. Този единствен ред предотвратява най-честата преработка, при която някой добавя резервация и очаква адресът на тунела да я следва.

Подобни статии