1. Wprowadzenie

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.