Statyczne adresy klientów OpenVPN za OPNsense
Plik puli czyni adres lepkim, nie trwałym. Przypnij adresy klientów nadpisaniami, poszerz zakres tunelu pod arytmetykę /30, a następnie je opublikuj.
Nazwy potrzebują adresów, które się nie ruszają, a plik puli OpenVPN tylko czyni adres lepkim. Zgub ten plik albo wystaw ponownie certyfikat pod inną nazwą powszechną, a powracający klient wyląduje gdzie indziej w puli, podczas gdy jego rekord DNS nadal wskazuje stary adres. Trwałą odpowiedzią jest nadpisanie właściwe dla klienta, które przypina adres, plus szersza sieć tunelu, aby przypięte adresy leżały poza zakresem dynamicznym. Arytmetyka stojąca za tym poszerzeniem jest miejscem, w którym mieszka większość zamieszania.
OPNsense trzyma te nadpisania w ustawieniach serwera właściwych dla klienta, kluczowanych nazwą powszechną certyfikatu, co czyni nazwę powszechną częścią planu adresów.
Lepka dzierżawa nie jest adresem statycznym
Plik puli zapisuje przypisania adresu do klienta i zwraca je, gdy znany klient łączy się ponownie. To wygoda, a nie umowa: plik można wygenerować od nowa, przypisanie znika, gdy zmienia się tożsamość klienta, a dwa serwery dzielące pulę nie dojdą w tej sprawie do porozumienia. Nadpisanie właściwe dla klienta działa inaczej, ponieważ adres pochodzi z konfiguracji, a nie z historii. Przetrwa też restart i reinstalację urządzenia, o ile nadpisanie jest objęte kopią zapasową razem z resztą konfiguracji.
Alternatywa dynamiczna, czyli wpięcie VPN do DNS skryptem połączenia klienta i aktualizacjami dynamicznymi, działa i wymaga resolvera przyjmującego aktualizacje oraz skryptu przy każdym połączeniu. Na urządzeniu jesteś ograniczony do pakietów dostarczanych przez producenta i zwykle właśnie tam ten plan się zatrzymuje.
Arytmetyka /30, której nikt nie lubi
W domyślnej topologii net30 każdy klient dostaje własny /30: pierwszy użyteczny adres trafia na stronę serwera, drugi do klienta. Nadpisania muszą więc leżeć poza dynamiczną siecią tunelu serwera, co oznacza, że najpierw trzeba tę sieć poszerzyć. Serwer na 10.8.0.0/24 może przejść na 10.8.0.0/23, zostawiając połowę starego zakresu dla klientów dynamicznych, a drugą połowę dla nadpisań. Dodaj oryginalny /24 jako dodatkową lokalną sieć IPv4, aby ruch do obu połówek trafiał do tunelu.
Każdy adres nadpisania musi wypadać na granicy /30, więc ostatni oktet jest wielokrotnością czterech. /30 na 10.8.1.0 daje klientowi 10.8.1.2 i to jest adres, który niesie rekord DNS. Wybranie zamiast tego 10.8.1.3 daje klienta, który łączy się i nie może przepuścić ruchu, ponieważ adres należy do podsieci, której topologia nigdy mu nie przydzieliła.
Plan łatwiej utrzymać, jeśli nadpisania są przydzielane od góry poszerzonego zakresu w dół, dzięki czemu pula dynamiczna rozszerza się w wolne miejsce, a nie wokół stałych wysp.
Sieci lokalne i strefa, o którą pytają klienci
Ruch między klientami wymaga własnego zezwolenia. Lista lokalnych sieci IPv4 serwera musi obejmować obie połowy zakresu, dynamiczną i statyczną; bez niej serwer przyjmuje pakiet od jednego klienta i nie ma reguły, która przepuściłaby go do drugiego. Objaw czyta się jak awaria DNS, bo nazwa się rozwiązuje, a połączenie nadal zawodzi. Sprawdź jednocześnie ustawienie komunikacji między klientami, ponieważ sam wpis sieci lokalnej nie włącza przekazywania między równorzędnymi klientami.
Opublikuj rekordy w strefie, o którą zdalni klienci naprawdę pytają. Rekord w strefie obsługiwanej tylko przez resolver LAN jest niewidoczny dla klienta, którego wciśnięty resolver wskazuje gdzie indziej, a dodawanie kolejnych rekordów do niewłaściwej strefy nigdy tego nie naprawi. Potwierdź wciśniętą opcję DNS i domenę wyszukiwania przed dodaniem czegokolwiek.
Co sprawdzić przy nowym połączeniu
Połącz klienta ponownie i potwierdź, że przydzielony adres zgadza się z jego nadpisaniem, zanim zaczniesz testować cokolwiek innego. Następnie rozwiąż nazwę z drugiego klienta i połącz się z usługą po nazwie, co razem sprawdza rekord DNS, trasę i zaporę. Potwierdź ścieżkę odpowiedzi po stronie serwera, ponieważ nazwa, która się rozwiązuje, gdy usługa pozostaje nieosiągalna, to problem routingu lub polityki, a nie nazewnictwa. Trzymaj tabelę nadpisań obok listy certyfikatów, aby oba były przeglądane razem.
Certyfikat wystawiony ponownie pod inną nazwą powszechną przestaje pasować do swojego nadpisania i zwraca klienta do puli dynamicznej. Oczekuj tego po każdej zmianie tożsamości.