Interfejs API Cloud DNS ResourceRecordSets

1. Wprowadzenie

64e18005b6cdcd83.png

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.

Więcej informacji

Dokumenty referencyjne