Poradnik wdrażania Split DNS dla lokalnie i zdalnie hostowanych aplikacji

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Bezpieczne podejście polega na traktowaniu etapowego wdrożenia split-DNS z deterministycznym zakresem resolvera, zgodną tożsamością TLS, testami przejściowymi i procedurą wycofania jako sekwencji obserwowalnych bramek, a nie pojedynczego polecenia.

W przypadku samodzielnie hostowanych aplikacji dostępnych za lokalnymi i zdalnymi ścieżkami odwrotnych proxy praktyczne ryzyko jest takie samo: ta sama nazwa hosta aplikacji musi rozwiązywać się do zamierzonych lokalnych, VPN-owych i publicznych punktów końcowych bez niespodzianek związanych z certyfikatem lub routingiem. Zapisz bieżącą tożsamość i punkt odzyskiwania, zacznij od najmniej inwazyjnego rozróżnika, zinterpretuj wyniki pozytywne i negatywne przed zmianą kolejnej zmiennej oraz zatrzymaj się, gdy pamięć masowa stanie się niestabilna albo jedyna możliwa do odzyskania kopia byłaby ujawniona. Poniższy proces kończy się dopiero wtedy, gdy pierwotne obciążenie zakończy się powodzeniem lub dowody osiągną granicę eskalacji.

Zdefiniuj nazwy, widoki i granice zaufania

Wybierz jedną w pełni kwalifikowaną nazwę hosta dla każdej aplikacji i udokumentuj oczekiwaną odpowiedź dla zaufanych klientów LAN, VPN, gości i klientów publicznych. Zachowaj stałą tożsamość aplikacji i nazwę TLS, zmieniając jedynie zwracany adres; używanie niezależnych nazw wewnętrznych często psuje przekierowania, wywołania zwrotne, zakładki i klientów mobilnych.

Praktyczny schemat dla domowego laboratorium polega na zwracaniu wewnątrz prywatnego adresu proxy, a na zewnątrz publicznego punktu końcowego proxy lub tunelu. Projekt split-DNS z jedną nazwą pokazuje tę konstrukcję z jedną nazwą i dwiema odpowiedziami oraz podkreśla, że walidacja przez wyzwanie DNS może wydać certyfikat bez udostępniania usługi wewnętrznej publicznie.

Zdecyduj, które sieci nigdy nie powinny otrzymywać prywatnych rekordów. Klienci gościnni i IoT mogą potrzebować ścieżki publicznej albo w ogóle żadnej odpowiedzi, a strefa publiczna nie może ujawniać prywatnych adresów ani nazw hostów przeznaczonych wyłącznie do użytku wewnętrznego.

Wdróż widok lokalny bez zmieniania ścieżki publicznej

Przed migracją obniż odpowiednie wartości TTL, dodaj wewnętrzne nadpisanie na wybranym resolverze i odpy taj ten resolver jawnie z klienta canary. Zweryfikuj osobno rekordy A i AAAA, ponieważ prawidłowa odpowiedź IPv4 może zostać pominięta przez nieaktualną lub publiczną odpowiedź IPv6.

Rozgłoś wewnętrzny resolver przez DHCP i konfigurację VPN, a następnie sprawdź aktywny resolver w każdym systemie operacyjnym. Bezpieczny DNS w przeglądarce, prywatny DNS w urządzeniach mobilnych, pamięć podręczna odpowiedzi i ręcznie skonfigurowany resolver mogą ominąć zamierzony widok, nawet gdy lokalna strefa jest prawidłowa.

Wykorzystaj istniejącą konfigurację split-horizon DNS ZimaSpace jako granicę konfiguracji, podczas gdy ten proces koncentruje się na kolejności wdrażania i akceptacji. Nie zmieniaj publicznego DNS, routingu lokalnego proxy i zasad resolvera klientów w jednym kroku; każda warstwa wymaga odrębnego wyniku pozytywnego lub wycofania.

Dopasuj odpowiedzi DNS do tożsamości proxy i certyfikatu

Otwórz nazwę hosta z lokalnego klienta canary i zapisz rozpoznany adres, trasę, nazwę certyfikatu TLS, host odpowiedzi, przekierowania, działanie WebSocket oraz URL generowany przez aplikację. Samo wyświetlenie strony internetowej jest niewystarczające, jeśli żądanie trafia do niewłaściwego hosta wirtualnego lub przekierowuje do adresu IP.

Powtórz test z sieci komórkowej lub innej sieci zewnętrznej przy wyłączonym Wi-Fi. Adres może się zmienić, ale nazwa hosta, tożsamość certyfikatu, logowanie i dane aplikacji muszą pozostać spójne. Jeśli ścieżki wewnętrzna i zewnętrzna celowo korzystają z różnych proxy, oba muszą prawidłowo obsługiwać ten sam host.

Przetestuj dostęp przez VPN spoza domu. Jeśli VPN powinien otrzymywać prywatną odpowiedź, ale otrzymuje publiczną, popraw przypisanie DNS lub routing dzielony, zanim dodasz kolejne nadpisanie dla aplikacji.

Zweryfikuj przejścia i zachowaj zapis umożliwiający wycofanie

Przenoś klienta canary między LAN, siecią komórkową i VPN, zapisując wyniki zapytań po wygaśnięciu TTL. Przetestuj nową sesję przeglądarki oraz istniejącą zalogowaną sesję, aby sukces DNS nie ukrył problemów z plikami cookie, wywołaniami zwrotnymi lub sesją powiązaną z innym hostem.

Raz zrestartuj resolver i proxy, odśwież dzierżawę klienta, a następnie powtórz macierz ścieżek. Potwierdź, że niezwiązane rekordy publiczne i usługi wewnętrzne zachowują wcześniejsze odpowiedzi; strefa dzielona, która przesłania brakujące rekordy publiczne, oznacza niekompletne wdrożenie.

Wdrażaj konfigurację na innych klientach dopiero wtedy, gdy każdy widok jest deterministyczny. Wycofaj wewnętrzne nadpisanie, jeśli klientów nie można utrzymać przy zamierzonym resolverze, tożsamość certyfikatu się różni lub prywatny adres wycieka publicznie; zachowaj wyniki zapytań i znaczniki czasu na potrzeby kolejnej próby.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.