DNS dla Państwa VPS i odwrotny DNS
Moduł 7: Domena, serwer WWW i https · Czas czytania: 10 min
Cel lekcji: Po tej lekcji potrafią Państwo skierować domenę lub subdomenę na swój VPS za pomocą rekordów A i AAAA, poprawnie ustawić odwrotny DNS serwera oraz sprawdzić, czy nazwa i adres zgadzają się w obie strony.
Kluczowe pojęcia: rekord A, rekord AAAA, TTL, subdomena dla każdej usługi, www, nazwa hosta serwera, PTR, odwrotny DNS (reverse DNS), forward-confirmed reverse DNS (FCrDNS), CAA, zapomniany IPv6
Od adresu IP do nazwy
Do tej pory łączyli się Państwo z serwerem przez jego adres IP, na przykład ssh anna@192.0.2.10. Do strony internetowej, certyfikatu (lekcja 7.3) i usług z modułu 9 potrzebna jest jednak nazwa. To powiązanie tworzy się w DNS domeny, u podmiotu, który zarządza Państwa DNS: u rejestratora, firmy hostingowej lub w usłudze DNS. Sam VPS nie ma z tym nic wspólnego; serwer „nie wie”, jakie nazwy na niego wskazują.
Podstawy DNS poznali Państwo w kursie DNS. Dla VPS potrzebne są przede wszystkim dwa rekordy:
| Rekord | Co | Przykład |
|---|---|---|
| A | nazwa na adres IPv4 | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | nazwa na adres IPv6 | web1.example.com. 3600 IN AAAA 2001:db8::10 |
VPS ma zazwyczaj stały adres IPv4 oraz IPv6. Prosimy wtedy ustawić oba rekordy. Odwiedzający z IPv6 (w Holandii duża część łączy domowych i sieci komórkowych) korzystają wtedy z IPv6, pozostali z IPv4.
Jakie nazwy utworzyć?
Typowy układ dla VPS ze stroną internetową i kilkoma usługami:
web1.example.com. A 192.0.2.10 ; sam serwer (nazwa hosta, PTR)
web1.example.com. AAAA 2001:db8::10
example.com. A 192.0.2.10 ; strona internetowa
example.com. AAAA 2001:db8::10
www.example.com. CNAME example.com.
status.example.com. CNAME web1.example.com. ; Uptime Kuma (lekcja 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (lekcja 9.4)Kryje się w nim kilka decyzji:
- Serwer ma własną nazwę (
web1), niezależną od strony internetowej. Tej nazwy używają Państwo do SSH, do odwrotnego DNS i jako nazwy hosta systemu. Jeśli strona przeniesie się później na inny serwer,web1nadal będzie poprawna. - Subdomena dla każdej usługi. Uptime Kuma i Vaultwarden otrzymują każda własną nazwę. To znacznie prostsze (i bezpieczniejsze) niż umieszczanie usług pod ścieżką taką jak
example.com/kluis: każda usługa ma własny certyfikat, ciasteczka się nie mieszają, a usługę można później przenieść na inny serwer, zmieniając jeden rekord. - CNAME dla subdomen. CNAME wskazujący na
web1oznacza, że gdy zmieni się adres IP serwera, wystarczy poprawić rekordyweb1. Na samej nazwie domeny (example.com) nie może być rekordu CNAME; tam ustawia się A i AAAA.
Nazwę hosta samego systemu ustawiają Państwo na serwerze:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comProsimy też sprawdzić, czy /etc/hosts nie zawiera starej nazwy. Poprawna nazwa hosta jest szczególnie ważna, jeśli serwer kiedykolwiek wysyła pocztę.
TTL: jak szybko zmiana dociera wszędzie
TTL (time to live) to liczba sekund, przez którą resolwery mogą pamiętać odpowiedź. Przy wartości 3600 może minąć nawet godzina, zanim wszyscy zobaczą nowy adres. Jeśli planują Państwo przenieść stronę na swój VPS, prosimy dzień wcześniej ustawić TTL na 300 (pięć minut), odczekać co najmniej czas starego TTL, zmienić adres, a potem ponownie podnieść TTL. To dokładnie plan krok po kroku z kursu DNS, lekcja 6.3.
Za pomocą dig (kurs DNS, lekcja 8.2) mogą Państwo sprawdzić, co widzi reszta internetu. Prosimy pytać publiczny resolwer, a nie własny komputer:
anna@laptop:~$ dig +short A example.com @1.1.1.1
192.0.2.10
anna@laptop:~$ dig +short AAAA example.com @1.1.1.1
2001:db8::10W systemie Windows: Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1.
Pułapka: rekord AAAA bez działającego IPv6
Jeśli ustawią Państwo rekord AAAA, usługa musi być naprawdę dostępna przez IPv6. Częsty błąd: rekord istnieje, ale serwer WWW nasłuchuje tylko na IPv4, zapora nie przepuszcza IPv6 (lekcja 5.2) albo IPv6 nie jest skonfigurowany na VPS. Odwiedzający z IPv6 widzą wtedy wolną lub niedziałającą stronę, podczas gdy u Państwa „wszystko działa”, bo w domu mają Państwo być może tylko IPv4. Również Let's Encrypt najpierw próbuje IPv6, jeśli istnieje rekord AAAA (lekcja 7.3). Jeśli serwer odpowiada przez IPv6 inaczej niż przez IPv4, wniosek o certyfikat się nie powiedzie.
Dlatego prosimy testować IPv6 osobno, z innej maszyny z IPv6: curl -6 -I https://example.com. Jeśli sami nie mają Państwo IPv6, prosimy skorzystać z testu online, takiego jak internet.nl.
Odwrotny DNS: od adresu z powrotem do nazwy
Odwrotny DNS (reverse DNS) wiąże adres IP z powrotem z nazwą za pomocą rekordu PTR (kurs DNS, lekcja 4.6). Ten rekord nie znajduje się w strefie Państwa domeny, lecz w strefie adresu IP, która należy do podmiotu zarządzającego adresem: dostawcy VPS. Rekord PTR ustawia się więc w panelu dostawcy, a nie we własnym DNS.
Po co to robić?
- Poczta. Serwery pocztowe odbiorców odrzucają lub traktują z nieufnością pocztę z adresu bez poprawnego odwrotnego DNS. Jeśli VPS wysyła pocztę (choćby tylko powiadomienie z formularza), jest to obowiązkowe (zob. kurs „E-mail w porządku”, lekcja 5.1).
- Rozpoznawalność. W logach i wynikach traceroute inni widzą
web1.example.comzamiast ogólnej nazwy dostawcy. - Porządek. Niektóre usługi i filtry antyspamowe przyznają punkty karne adresom z ogólnym lub brakującym rekordem PTR.
Zasadą jest forward-confirmed reverse DNS (FCrDNS): adres wskazuje rekordem PTR na nazwę, a ta nazwa wskazuje rekordem A lub AAAA z powrotem na ten sam adres. Najpierw więc tworzą Państwo rekordy A i AAAA, potem zlecają ustawienie PTR, zarówno dla IPv4, jak i dla IPv6.
anna@laptop:~$ dig +short -x 192.0.2.10
web1.example.com.
anna@laptop:~$ dig +short A web1.example.com
192.0.2.10
anna@laptop:~$ dig +short -x 2001:db8::10
web1.example.com.
anna@laptop:~$ dig +short AAAA web1.example.com
2001:db8::10Jeśli we wszystkich czterech przypadkach wraca oczekiwana odpowiedź, wszystko zgadza się w obie strony.
CAA: kto może wystawiać certyfikaty?
Rekordem CAA (kurs DNS, lekcja 5.2) określają Państwo, które urzędy certyfikacji mogą wystawiać certyfikaty dla Państwa domeny. Jeśli korzystają Państwo wyłącznie z Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"Nie jest to obowiązkowe, ale stanowi przydatną dodatkową warstwę. Uwaga: jeśli istnieje już rekord CAA z innym wystawcą, Let's Encrypt odrzuci wniosek. Dlatego prosimy najpierw sprawdzić za pomocą dig CAA example.com.
W praktyce: odwrotny DNS w panelu VPS
W WebOké odwrotny DNS ustawia się w panelu VPS, na karcie „ISO i rDNS”. Jeśli DNS Państwa domeny również znajduje się w WebOké, panel może od razu utworzyć rekordy A i AAAA; jeśli DNS jest gdzie indziej, najpierw tworzą Państwo te rekordy samodzielnie, a następnie wpisują pełną nazwę. U innych dostawców funkcja ta nazywa się w panelu klienta „Reverse DNS”, „rDNS” lub „PTR”; u niektórych trzeba o nią poprosić przez zgłoszenie. Wszędzie działa to tak samo: najpierw nazwa na adres, potem adres na nazwę.
Podsumowanie
- Nazwę wiąże się z VPS rekordem A (IPv4) i rekordem AAAA (IPv6) w DNS domeny.
- Prosimy nadać serwerowi własną nazwę (
web1.example.com), a każdej usłudze własną subdomenę; rekordy CNAME wskazujące na nazwę serwera ułatwiają przeprowadzki. - Prosimy obniżyć TTL przed przeprowadzką i sprawdzić wynik za pomocą
digw publicznym resolwerze. - Nie należy ustawiać rekordu AAAA, jeśli usługa naprawdę nie działa przez IPv6; IPv6 prosimy testować osobno.
- Rekord PTR ustawia się u dostawcy VPS; nazwa i adres muszą zgadzać się w obie strony (FCrDNS), dla IPv4 i IPv6.
Quiz
Zadanie
Zadanie Z7.1: A, AAAA i PTR Państwa serwera. Prosimy nadać serwerowi własną nazwę (na przykład web1.<jouwdomein>), utworzyć rekordy A i AAAA oraz ustawić odwrotny DNS u dostawcy. W zadaniu prosimy wpisać nazwę serwera, adres IPv4 i adres IPv6 oraz nazwę, którą otrzymali Państwo za pomocą dig -x dla obu adresów. Program na bieżąco odpytuje rekordy A i AAAA oraz PTR obu adresów i sprawdza, czy wszystko zgadza się w obie strony. Jeśli serwer nie ma IPv6, sprawdzany jest tylko IPv4, co zostanie zgłoszone na pomarańczowo.
Przeczytaj więcej
- Wysyłanie poczty z Państwa VPS i konfiguracja reverse DNS
- IPv6 w WebOké
- Bezpłatny kurs DNS 3.1: Rekordy A i AAAA
- Bezpłatny kurs DNS 4.6: Reverse DNS (PTR): od numeru z powrotem do nazwy
- Bezpłatny kurs DNS 5.2: CAA: kto może wydawać certyfikaty?
- Bezpłatny kurs DNS 8.2: Odpytywanie DNS za pomocą dig i nslookup
