Interfejs API Cloud DNS ResourceRecordSets

1. Wprowadzenie

64e18005b6cdcd83.png

Ostatnia aktualizacja: 2021-01-06

Co to jest Cloud DNS?

Odwiedź naszą stronę główną.

Co utworzysz

W tym laboratorium utworzysz zarządzaną strefę Cloud DNS i odpowiednie zestawy rekordów zasobów za pomocą gcloud, aby zarządzać rozpoznawaniem nazw w przypadku instancji maszyny wirtualnej.

Czego się nauczysz

Jak tworzyć, odczytywać, usuwać i aktualizować poszczególne obiekty ResourceRecordSet.

Czego potrzebujesz

2. Przygotowania

Konfigurowanie projektu Google Cloud Platform

Logowanie się w gcloud

gcloud auth login

Utwórz projekt

gcloud projects create my-codelab-project

Włączanie interfejsu Cloud DNS API

gcloud services enable dns.googleapis.com

Zastosowanie tej zmiany może potrwać kilka minut.

3. Tworzenie prywatnej strefy zarządzanej

Obiekt ManagedZone zawiera obiekty ResourceRecordSets.

Zanotuj nazwę domeny, do której chcesz dodać rekordy DNS. W tym przykładzie użyjemy domeny „my-domain.com” i założymy, że instancja maszyny wirtualnej 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 zestawami rekordów zasobów

Po zakończeniu tej sekcji żądania DNS dotyczące Twojej domeny w wirtualnej sieci prywatnej będą rozpoznawane jako adres IP maszyny wirtualnej.

Jeśli na przykład adres IP maszyny wirtualnej to „1.2.3.4”, a chcesz, aby nazwa „mojadomena.com” była rozpoznawana jako ten adres 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 pozycyjny „my-domain.com.”. , czyli dnsName, to nazwa, dla której chcemy zdefiniować rozpoznawanie nazw DNS.
  • –type: oznacza typ rekordu DNS, który próbujemy utworzyć.
  • –ttl: oznacza czas życia tego rekordu.
  • –rrdatas: zawiera rzeczywistą odpowiedź na zapytanie.
  • –zone: wymagane, aby określić, 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 maszyną przez SSH. W tym przykładzie używamy instancji maszyny wirtualnej o nazwie „dns-codelab” w strefie „us-central1-a”.

gcloud compute ssh codelab --zone=us-central1-a

Zainstaluj dnsutils, aby móc używać polecenia „dig”.

sudo apt install dnsutils

wysyłać zapytania do domeny,

dig my-domain.com.

Powinny pojawić się dane wyjściowe podobne do tych:

...
;; 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
...

Tworzenie, modyfikowanie i pobieranie rekordu CNAME

Po zmapowaniu domeny my-domain.com na adres 1.2.3.4 prawdopodobnie zechcesz się upewnić, że adres www.my-domain.com również jest rozpoznawany jako 1.2.3.4. Rekordy dla prefiksów „www.” nie są tworzone automatycznie.

Jeśli wyślesz zapytanie dotyczące domeny www.my-domain.com.

dig www.my-domain.com.

Otrzymasz dane wyjściowe podobne do tych:

...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...

oznacza, że nie ma rekordu DNS dla tej domeny.

Zamiast tworzyć kolejny rekord A, utwórz rekord CNAME, który jest wskaźnikiem do innego rekordu. Dzięki temu nie będziemy musieli zmieniać obu rekordów, jeśli będziemy chcieli użyć innego adresu IP.

zakończyć pracę na instancji maszyny wirtualnej.

exit

Tworzenie rekordu 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.

Ponowne łączenie się z maszyną przez SSH

gcloud compute ssh codelab --zone=us-central1-a

wysyłać zapytania do domeny,

dig www.my-domain.com.

Powinny pojawić się wyniki podobne do tych:

...
;; 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 przypadku flagi „–rrdatas” wystąpił błąd. Zamiast usuwać i ponownie tworzyć rekordu, możemy wprowadzić odpowiednią zmianę.

zakończyć pracę na instancji maszyny wirtualnej,

exit

Poprawianie rekordu CNAME

gcloud dns record-sets update "www.my-domain.com." --type="CNAME" --rrdatas="my-domain.com." --zone="my-zone"

Pamiętaj, że możemy pominąć flagę „–ttl”, ponieważ jej nie zmieniamy, ale wszystkie inne flagi muszą być uwzględnione, ponieważ są częścią unikalnego identyfikatora zestawu rekordów zasobów.

Możemy też sprawdzić, czy rekord jest zgodny z oczekiwaniami, za pomocą gcloud.

gcloud dns record-sets describe "www.my-domain.com." --type="CNAME" --zone="my-zone"

które powinno wygenerować dane wyjściowe

NAME                    TYPE    TTL  DATA
www.my-domain.com.      CNAME   60  "my-domain.com."

sprawdzić, czy rekord CNAME jest prawidłowo rozpoznawany;

gcloud compute ssh codelab --zone=us-central1-a
dig www.my-domain.com.

Powinny pojawić się wyniki podobne do tych:

...
;; 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 najpierw usunąć wszystkie zestawy ResourceRecordSet w tej strefie (z wyjątkiem rekordów NS i SOA, które są generowane automatycznie i muszą zawsze znajdować się w strefie zarządzanej).

zakończyć pracę na instancji maszyny wirtualnej,

exit

Usuwanie rekordu CNAME

gcloud dns record-sets delete "www.my-domain.com." --type="CNAME" --zone="my-zone"

Usuń rekord A

gcloud dns record-sets delete "my-domain.com." --type="A" --zone="my-zone"

Usuwanie obiektu ManagedZone

gcloud dns managed-zones delete "my-zone"

5. Gratulacje

Gratulujemy. Udało Ci się nauczyć zarządzać zbiorami rekordów zasobów.

Więcej informacji

Dokumentacja