1. Wprowadzenie
Ostatnia aktualizacja: 6.01.2021
Co to jest Cloud DNS?
Zobacz naszą stronę główną.
Co utworzysz
W ramach tego ćwiczenia w Codelabs utworzysz strefę zarządzaną Cloud DNS i odpowiednie obiekty ResourceRecordSets za pomocą gcloud do zarządzania rozpoznaniem nazw niektórych instancji maszyn wirtualnych.
Czego się nauczysz
Jak UTWÓRZ, CZYTUJ, USUŃ i AKTUALIZUJ poszczególne zestawy rekordów zasobów.
Czego potrzebujesz
2. Przygotowanie
Skonfiguruj projekt Google Cloud Platform
Zaloguj się w gcloud
gcloud auth login
Utwórz projekt
gcloud projects create my-codelab-project
Włączanie Cloud DNS API
gcloud services enable dns.googleapis.com
Zanim ta zmiana stanie się widoczna, może minąć kilka minut
3. Tworzenie prywatnej strefy zarządzanej
Strefa zarządzana zawiera obiekty ResourceRecordSets.
Zapisz nazwę domeny, dla której chcesz dodać rekordy DNS. W tym przykładzie użyjemy domeny „moja-domena.com” przy założeniu, że maszyna wirtualna znajduje się w sieci domyślnej.
gcloud dns managed-zones create my-zone \
--description="ManagedZone for Cloud DNS ResourceRecordSets codelab." \
--dns-name=my-domain.com. \
--networks=default \
--visibility=private
4. Zarządzanie zasobami rekordów zasobów
Na końcu tej sekcji: żądania DNS przez wirtualną sieć prywatną dla Twojej domeny będą rozpatrywane pod adresem IP maszyny wirtualnej.
Jeśli na przykład adres IP Twojej maszyny wirtualnej to „1.2.3.4” i chcesz użyć adresu „moja-domena.com”. Aby połączyć się z tym adresem IP, musisz utworzyć „rekord A”.
UTWÓRZ rekord A
gcloud dns record-sets create "my-domain.com." --type="A" --ttl="60" --rrdatas="1.2.3.4" --zone="my-zone"
- Argument pozycjonowania „moja-domena.com”. (inaczej dnsName) to nazwa, dla której ma zostać zdefiniowany rozpoznawanie nazw DNS.
- –type: wskazuje typ rekordu DNS, który próbujemy utworzyć.
- –ttl: oznacza czas życia danego rekordu.
- –rrdatas: zawiera rzeczywistą odpowiedź na zapytanie.
- –strefa: wymagane do wskazywania, w której strefie zarządzanej ma zostać utworzony ten rekord.
Więcej informacji o pojęciach związanych z DNS znajdziesz tutaj.
Po utworzeniu rekordu A możesz przetestować rozpoznawanie nazw DNS.
Połącz się z komputerem przez SSH. W tym przykładzie korzystamy z instancji maszyny wirtualnej o nazwie „dns-codelab” w regionie „us-central1-a”
gcloud compute ssh codelab --zone=us-central1-a
Zainstaluj narzędzie dnsutils, aby móc użyć polecenia „dig” polecenie
sudo apt install dnsutils
zapytanie Twojej domeny
dig my-domain.com.
powinno to dać dane wyjściowe podobne do
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19979
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
...
;; QUESTION SECTION:
;my-domain.com. IN A
;; ANSWER SECTION:
my-domain.com. 60 IN A 1.2.3.4
...
CREATE, PATCH i GET a rekord CNAME
Po zmapowaniu domeny moja-domena.com do wersji 1.2.3.4, upewnij się, że www.moja-domena.com a także wersję 1.2.3.4. Rekordy dla „www.” prefiksy nie są tworzone automatycznie.
Jeśli wysyłasz zapytanie na adres www.moja-domena.com.
dig www.my-domain.com.
otrzymasz dane wyjściowe podobne do
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
wskazując, że dla danej domeny nie ma rekordu DNS.
Zamiast tworzyć kolejny rekord A, należy utworzyć rekord CNAME będący wskaźnikiem do innego rekordu. Dzięki temu nie będziemy musieli zmieniać obu rekordów, jeśli zechcemy użyć innego adresu IP.
zakończ inst. maszyny wirtualnej
exit
Utwórz rekord CNAME
gcloud dns record-sets create "www.my-domain.com." --type="CNAME" --ttl="60" --rrdatas="my-domin.com." --zone="my-zone"
Po utworzeniu rekordu CNAME możesz przetestować rozpoznawanie nazw DNS.
Ponownie połącz się z komputerem przez SSH
gcloud compute ssh codelab --zone=us-central1-a
zapytanie Twojej domeny
dig www.my-domain.com.
powinny pojawić się dane wyjściowe podobne do
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
O nie! Wygląda na to, że podczas tworzenia rekordu CNAME w „–rrdatas” wystąpił błąd flaga. Zamiast usuwać i odtworzyć rekord, możemy wprowadzić poprawki we właściwej zmianie.
zamknij instancję maszyny wirtualnej
exit
Instalowanie poprawki w rekordzie CNAME
gcloud dns record-sets update "www.my-domain.com." --type="CNAME" --rrdatas="my-domain.com." --zone="my-zone"
Zwróć uwagę, że możemy pominąć „-ttl”. , ponieważ go nie zmieniamy, ale wszystkie inne flagi muszą być uwzględnione, ponieważ są one częścią uniwersalnego unikalnego identyfikatora obiektu ResourceRecordSet.
Możemy też za pomocą gcloud sprawdzić, czy rekord jest zgodny z oczekiwaniami
gcloud dns record-sets describe "www.my-domain.com." --type="CNAME" --zone="my-zone"
który powinien generować dane wyjściowe
NAME TYPE TTL DATA
www.my-domain.com. CNAME 60 "my-domain.com."
Sprawdź, czy rekord CNAME jest poprawnie rozpoznawany
gcloud compute ssh codelab --zone=us-central1-a
dig www.my-domain.com.
powinny pojawić się dane wyjściowe podobne do
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7471
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
...
;; QUESTION SECTION:
;www.my-domain.com. IN A
;; ANSWER SECTION:
www.my-domain.com. 60 IN CNAME my-domain.com..
...
USUŃ, aby wyczyścić
Aby usunąć strefę zarządzaną, musisz usunąć wszystkie zestawy rekordów zasobów w strefie zarządzanej (z wyjątkiem rekordów NS i SOA, które są generowane automatycznie i muszą zawsze istnieć w strefie zarządzanej).
zamknij instancję maszyny wirtualnej
exit
Usuń rekord CNAME
gcloud dns record-sets delete "www.my-domain.com." --type="CNAME" --zone="my-zone"
Usuwanie rekordu A
gcloud dns record-sets delete "my-domain.com." --type="A" --zone="my-zone"
Usuwanie strefy zarządzanej
gcloud dns managed-zones delete "my-zone"
5. Gratulacje
Gratulacje, udało Ci się nauczyć zarządzania elementami ResourceRecordSets.