Имената се нуждаят от адреси, които не се местят, а файлът на пула на OpenVPN прави адреса само лепкав. Загубете ли този файл или издадете сертификат с друго общо име, клиентът, който се връща, попада другаде в пула, докато DNS записът му все още сочи към стария адрес. Трайното решение е override за конкретен клиент, който закрепва адреса, плюс по-широка мрежа на тунела, така че закрепените адреси да са извън динамичния обхват. Аритметиката зад това разширяване е мястото, където живее по-голямата част от объркването.

OPNsense пази тези override настройки в специфичните за клиента настройки на сървъра, с ключ по общото име на сертификата, което прави общото име част от плана за адресите.

Лепкавият лийз не е статичен адрес

Файлът на пула записва съответствия адрес-клиент и ги връща, когато познат клиент се свърже отново. Това е удобство, а не договор: файлът може да бъде генериран наново, съответствието изчезва, когато самоличността на клиента се промени, и два сървъра, споделящи пул, няма да се разберат за него. Override за конкретен клиент работи различно, защото адресът идва от конфигурацията, а не от историята. Той също преживява рестарт и преинсталиране на устройството, стига override да е архивиран заедно с останалата конфигурация.

Динамичната алтернатива, а именно свързване на VPN с DNS чрез client-connect скрипт и динамични обновявания, работи и изисква resolver, който приема обновявания, плюс скрипт при всяка връзка. На устройство сте ограничени до пакетите, които доставчикът предлага, и обикновено точно там този план спира.

Аритметиката /30, на която никой не се радва

При стандартната топология net30 всеки клиент получава свой /30: първият използваем адрес отива към страната на сървъра, вторият към клиента. Затова override адресите трябва да са извън динамичната мрежа на тунела на сървъра, което означава първо да разширим тази мрежа. Сървър на 10.8.0.0/24 може да премине към 10.8.0.0/23, оставяйки половината от стария обхват за динамични клиенти, а другата половина за override адреси. Добавете оригиналния /24 като допълнителна локална мрежа IPv4, така че трафикът към двете половини да минава в тунела.

Всеки override адрес трябва да попада на граница /30, затова последният октет е кратен на четири. /30 при 10.8.1.0 дава на клиента 10.8.1.2 и това е адресът, който носи DNS записът. Изборът на 10.8.1.3 вместо това дава клиент, който се свързва и не може да пропуска трафик, защото адресът принадлежи на подмрежа, която топологията никога не му е назначила.

Планът е по-лесен за поддържане, ако override адресите се разпределят от горния край на разширения обхват надолу, така че динамичният пул да се разширява в свободното пространство, а не около фиксирани острови.

Локални мрежи и зоната, която клиентите питат

Трафикът клиент-към-клиент се нуждае от собствено разрешение. Списъкът с локални мрежи IPv4 на сървъра трябва да включва двете половини на обхвата, динамична и статична; без него сървърът приема пакет от един клиент и няма политика, която да позволява преминаването му към друг. Симптомът изглежда като повреда в DNS, защото името се резолвва, а връзката все пак се проваля. Проверете настройката клиент-към-клиент по същото време, тъй като един запис за локална мрежа сам не включва препращане между партньори.

Публикувайте записите в зоната, която отдалечените клиенти действително питат. Запис в зона, обслужвана само от resolver на LAN, е невидим за клиент, чийто изтласкан resolver сочи другаде, и добавянето на още записи в грешната зона никога не поправя това. Потвърдете изтласканата DNS опция и домейна за търсене, преди да добавите каквото и да е.

Какво да проверите при нова връзка

Свържете клиента отново и потвърдете, че назначеният адрес съвпада с неговия override, преди да тествате каквото и да е друго. След това резолвнете името от втори клиент и се свържете с услугата по име, което изпробва едновременно DNS записа, маршрута и защитната стена. Потвърдете обратния път от страната на сървъра, защото име, което се резолвва, докато услугата остава недостъпна, е проблем на маршрутизацията или политиката, а не на именуването. Дръжте таблицата с override адреси до списъка със сертификати, за да се преглеждат заедно.

Сертификат, издаден наново с друго общо име, спира да съвпада със своя override и връща клиента в динамичния пул. Очаквайте това след всяка промяна на самоличността.

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