1. מבוא
עדכון אחרון:6 בינואר 2021
מה זה Cloud DNS?
ניתן לעיין בדף הבית.
מה תפַתחו
ב-Codelab הזה תיצרו Cloud DNS ManagedZone ו-ResourceRecordSets רלוונטיים באמצעות gcloud כדי לנהל את רזולוציית השמות למכונה וירטואלית מסוימת.
מה תלמדו
איך ליצור, לקרוא, למחוק ולעדכן ResourceRecordSets בודדים.
מה צריך להכין
2. בתהליך ההגדרה
הגדרת פרויקט ב-Google Cloud Platform
התחברות ל-gcloud
gcloud auth login
יצירת פרויקט
gcloud projects create my-codelab-project
הפעלת Cloud DNS API
gcloud services enable dns.googleapis.com
יכול להיות שיעברו כמה דקות עד שההגדרה תיכנס לתוקף
3. יצירת ManagedZone פרטי
ManagedZone מכיל ResourceRecordSets.
שימו לב לשם הדומיין שעבורו רוצים להוסיף רשומות DNS. בדוגמה הזו, נשתמש בכתובת 'my-domain.com' ונניח שהמכונה הווירטואלית נמצאת ברשת ברירת המחדל.
gcloud dns managed-zones create my-zone \
--description="ManagedZone for Cloud DNS ResourceRecordSets codelab." \
--dns-name=my-domain.com. \
--networks=default \
--visibility=private
4. ניהול ResourceRecordSets
בסוף הקטע הזה, בקשות DNS דרך הרשת הווירטואלית הפרטית עבור הדומיין שלך יטופלו לכתובת ה-IP של המכונה הווירטואלית.
לדוגמה, אם כתובת ה-IP של המכונה הווירטואלית היא 1.2.3.4, ואתם רוצים להזין את הכתובת 'my-domain.com'. כדי להתאים לכתובת ה-IP הזו, צריך ליצור 'רשומת A'.
יצירה של רשומת A
gcloud dns record-sets create "my-domain.com." --type="A" --ttl="60" --rrdatas="1.2.3.4" --zone="my-zone"
- הארגומנט "my-domain.com" , ומכונה גם dnsName, הוא השם שאנחנו רוצים להגדיר עבורו רזולוציית DNS.
- –type: מציין את הסוג של רשומת ה-DNS שאנחנו מנסים ליצור.
- –ttl: מציין את משך הזמן עד לתיעוד הזה.
- –rrdata: מכיל את התשובה בפועל לשאילתה.
- –zone: נדרש כדי לקבוע באיזה אזור ManagedZone צריך ליצור את הרשומה.
מידע נוסף על מושגי DNS זמין כאן.
עכשיו, לאחר שיצרתם רשומת A, תוכלו לבדוק את רזולוציית ה-DNS.
SSH למחשב. בדוגמה הזו אנחנו משתמשים במכונת VM בשם dns-codelab ב-"us-central1-a"
gcloud compute ssh codelab --zone=us-central1-a
עליך להתקין dnsutils כדי להשתמש ב-'dig' מקש Command
sudo apt install dnsutils
שליחת שאילתה על הדומיין
dig my-domain.com.
זה אמור להפיק פלט שדומה
...
;; 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
...
יצירה, תיקון ואחזור של רשומת CNAME
עכשיו, לאחר שמיפיתם את my-domain.com. עד 1.2.3.4, כדאי לוודא שהכתובת www.my-domain.com שווה ל-1.2.3.4. רשומות עבור "www. " הקידומות לא נוצרות באופן אוטומטי.
אם אתם מחפשים את השאילתה www.my-domain.com
dig www.my-domain.com.
תקבלו פלט דומה
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
שמציין שאין רשומת DNS לדומיין הזה
במקום ליצור רשומת A נוספת, כדאי ליצור רשומת CNAME שהיא מצביעה לרשומה אחרת. כך לא נצטרך לשנות את שתי הרשומות במקרה שנרצה להשתמש בכתובת IP שונה.
יציאה ממכונת ה-VM
exit
יצירת רשומת CNAME
gcloud dns record-sets create "www.my-domain.com." --type="CNAME" --ttl="60" --rrdatas="my-domin.com." --zone="my-zone"
עכשיו, לאחר שיצרתם את רשומת ה-CNAME, תוכלו לבדוק את רזולוציית ה-DNS.
SSH שוב במחשב
gcloud compute ssh codelab --zone=us-central1-a
שליחת שאילתה על הדומיין
dig www.my-domain.com.
הייתם אמורים לקבל פלט דומה
...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
...
אויש… נראה שאירעה שגיאת הקלדה כשיצרנו את רשומת ה-CNAME ב-' -rrdatas'. לסמן. במקום למחוק את הרשומה וליצור אותה מחדש, אנחנו יכולים לתקן אותה באמצעות השינוי הנכון.
יציאה ממכונת ה-VM
exit
תיקון רשומת ה-CNAME
gcloud dns record-sets update "www.my-domain.com." --type="CNAME" --rrdatas="my-domain.com." --zone="my-zone"
שימו לב שאפשר להשמיט את הסימן ' -ttl'. מאחר שאנחנו לא משנים אותו, אבל כל הדגלים האחרים חייבים להיכלל מאחר שהם חלק מהמזהה הייחודי האוניברסלי של ResourceRecordSet.
אפשר גם לוודא שהרשומה תקינה באמצעות gcloud
gcloud dns record-sets describe "www.my-domain.com." --type="CNAME" --zone="my-zone"
שאמורה להפיק פלט
NAME TYPE TTL DATA
www.my-domain.com. CNAME 60 "my-domain.com."
מוודאים שרשומת ה-CNAME מגיבה באופן תקין
gcloud compute ssh codelab --zone=us-central1-a
dig www.my-domain.com.
הייתם אמורים לקבל פלט דומה
...
;; 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..
...
מחיקה כדי לפנות נתונים
כדי שאפשר יהיה למחוק ManagedZone, קודם צריך למחוק את כל ResourceRecordSets ב-ManagedZone (למעט רשומות NS ו-SOA, שנוצרות באופן אוטומטי ותמיד צריכות להתקיים ב-ManagedZone).
יציאה ממכונת ה-VM
exit
מחיקת רשומת ה-CNAME
gcloud dns record-sets delete "www.my-domain.com." --type="CNAME" --zone="my-zone"
מחיקת רשומת A
gcloud dns record-sets delete "my-domain.com." --type="A" --zone="my-zone"
מחיקת ה-ManagedZone
gcloud dns managed-zones delete "my-zone"
5. מזל טוב
כל הכבוד, למדת בהצלחה לנהל את ResourceRecordSets!