1. מבוא
בשיעור הקוד הזה תלמדו איך להגדיר תחומי העברה יוצאת ב-Cloud DNS באמצעות שם דומיין שמוגדר במלואו (FQDN) כיעד העברה. התכונה הזו מאפשרת לכם לנתב את תעבורת ה-DNS לכתובות IP שפותרו משם DNS, במקום להטמיע כתובות IP באופן קבוע בהגדרות של תחום ההעברה. האפשרות הזו שימושית במיוחד כשכתובות ה-IP של פותר ה-DNS לקצה העורפי משתנות, כי אפשר לעדכן את רשומת ה-DNS של ה-FQDN, ומערכת Cloud DNS מזהה את השינויים באופן אוטומטי.
בסיום הקודלאב הזה, תוכלו להגדיר תחומים להעברה ב-Cloud DNS שמשתמשים באפשרויות הבאות:
- יעד FQDN שתואם לתחום פרטי עם רשומות A/AAAA.
- יעד FQDN שמגודר על ידי מדיניות ניתוב של Cloud DNS (מיקום גיאוגרפי או רוטציה מבוססת-משקל) לצורך התאמה לאזור או חלוקת תנועה.
סקירה כללית על העברת FQDN
העברה (forwarding) ב-Cloud DNS מאפשרת לכם לפתור שמות DNS פרטיים שמתארחים מחוץ ל-Google Cloud Platform (לדוגמה, בארגון או בעננים אחרים) ממשאבים של Google Cloud Platform. באופן מסורתי, האפשרות הזו תומכת בהעברה לרשימת כתובות IP של יעד. העברה של FQDN מרחיבה את האפשרויות האלה ומאפשרת לציין FQDN כיעד העברה באזור העברה.
כשמציינים FQDN, Cloud DNS מפנה אותו לכתובות IP באמצעות חיפוש פנימי שמשתמש בלוגיקה של הפתרון של רשת המקור. כלומר, היעד של FQDN יכול להתאים לאזור פרטי, למדיניות ניתוב DNS (מיקום גיאוגרפי או רוטציה מבוססת-משקל), או אפילו לשם דומיין ציבורי באינטרנט. לאחר מכן, Cloud DNS מעביר את השאילתה לכתובת ה-IP של היעד שהוגדרה.
מה תפַתחו
הפניה אוטומטית של FQDN אזורית באמצעות תחום פרטי חדש
תלמדו ליצור הגדרה שמאפשרת התאמה אזורית לתנועת ה-DNS. לשם כך, צריך ליצור תחום DNS פרטי ולהגדיר בו מדיניות ניתוב לפי מיקום גיאוגרפי, ולאחר מכן לקשר תחום העברה ליעד ה-FQDN הזה. כך מובטח שתנועה מאזור ספציפי (לדוגמה, us-east1) תועבר לשרת DNS אזורי תואם.
העברת FQDN עם תחום פרטי קיים
תלמדו ליצור תחום העברה שמטרגט FQDN שמגובל על ידי רשומת A/AAAA בתוך תחום DNS פרטי קיים. הדוגמה הזו ממחישה העברה של שאילתות לכתובות IP שהוגדרו באופן סטטי, ופענוח שלהן באמצעות יעד העברה של FQDN.
מה תלמדו
הקונספט של העברת FQDN
העברה של FQDN היא הרחבה של העברת DNS, ומאפשרת לציין יעד העברה של FQDN במקום רק כתובות IP כיעדי העברה לשאילתות יוצאות.
היתרונות של העברה של FQDN
תלמדו שהתכונה הזו מבטלת את הצורך בעדכונים ידניים כשכתובות ה-IP של פותר ה-DNS לקצה העורפי משתנות, כי Cloud DNS מזהה שינויים באופן אוטומטי מרשומות ה-DNS של ה-FQDN. הוא גם מאפשר התאמה גמישה יותר של התשתית של DNS, על ידי מתן אפשרות לשרתי DNS להיות מאחורי שם משותף או להתאים את עצמם באופן דינמי.
שילוב עם מדיניות הניתוב של Cloud DNS
נלמד איך אפשר לשלב העברה של FQDN עם כללי מדיניות הניתוב של Cloud DNS (מיקום גיאוגרפי או רוטציה מבוססת-משקל) כדי להשיג התאמה אזורית, לבצע אופטימיזציה של הביצועים לפריסות שונות מבחינה גיאוגרפית ולחלק את התנועה על סמך משקלים מוגדרים.
תחביר הפקודות של Google Cloud CLI
תלמדו להשתמש בפקודה gcloud dns managed-zones create
ובדגלים הרלוונטיים שלה (--forwarding-targets
, --private-forwarding-targets
) כדי להגדיר תחומים להעברת FQDN.
דרישות מוקדמות
כדי להשלים את סדנת הקוד הזו, נדרשים:
- חשבון Google
- פרויקט ב-Google Cloud שבו החיוב מופעל
- כלי שורת הפקודה של gcloud מותקן ומוגדר
- הבנה בסיסית של Cloud DNS ומושגי DNS
2. תהליך ההגדרה
הסבר על תרחישים של העברה של FQDN
העברת FQDN ב-Cloud DNS תומכת בכמה תרחישים שימוש:
- תחום פרטי עם רשומת A/AAAA: אם ה-FQDN תואם לרשומת A/AAAA בתחום פרטי, כתובות ה-IP שמוגדרות מתווספות לרשימת ההעברה וההתנהגות זהה להעברה ישירה לכתובות ה-IP של היעד.
- תחום פרטי עם מדיניות למיקום גיאוגרפי: מדיניות למיקום גיאוגרפי מאפשרת לציין את המיקום הגיאוגרפי של המקור ולספק תשובות תואמות, כדי לאמת את חלוקת התנועה על סמך מיקום גיאוגרפי. זהו המפתח להעברה ולמשיכה (affinity) של DNS אזורי.
- תחום פרטי עם מדיניות של רוטציה מבוססת-משקל (WRR): כללי מדיניות WRR מאפשרים לציין משקלים שונים לכל כתובת IP בשם DNS, כדי לוודא שהתנועה תופץ בהתאם למשקלים שהוגדרו.
- תחום ציבורי עם רשומת A/AAAA: אם ה-FQDN לא תואם לשום שם פרטי שגלוי לאותה רשת, Cloud DNS מנסה לפתור אותו באמצעות האינטרנט הציבורי.
הסבר על הפקודה של Google Cloud CLI להעברת FQDN
כדי ליצור תחום העברה עם יעד העברה של FQDN באמצעות פקודות CLI של gcloud, משתמשים בפקודה gcloud dns managed-zones create
. הדגלים של המפתח לציון יעד FQDN הם --forwarding-targets
או --private-forwarding-targets
. פרטים על שיטות ניתוב רגילות ופרטיות זמינים במסמך הזה.
--forwarding-targets
: רשימה של כתובות IPv4/IPv6 או שם דומיין אחד של שרת השמות היעד שאליו יתבצעו העברות של שאילתות מהתחום. התעלמות מהרשאות הגישה הגלויה לכולם. כתובות שאינן RFC1918 יועברו ליעד דרך האינטרנט. כתובות RFC1918 יועברו דרך ה-VPC.--private-forwarding-targets
: רשימה של כתובות IPv4/IPv6 או שם דומיין אחד של שרת השמות היעד שאליו יתבצעו העברות של שאילתות מהתחום. התעלמות מהרשאות הגישה הגלויה לכולם. כל הכתובות שצוינו לפרמטר הזה יגיעו דרך ה-VPC.
דוגמה לתחביר:
gcloud dns managed-zones create NAME \
--description=DESCRIPTION \
--dns-name=DNS_SUFFIX \
--networks=VPC_NETWORK_LIST \
--forwarding-targets=DEFAULT_FQDN_TARGET \
--visibility=private
הערה: אפשר לציין --private-forwarding-targets
במקום --forwarding-targets
.
הגדרת הפרויקט ב-Google Cloud Platform
מתחברים ל-CLI של gcloud.
gcloud auth login
יוצרים פרויקט.
gcloud projects create my-codelab-project
מפעילים את Cloud DNS API. יכול להיות שיחלפו כמה דקות עד שהשינוי ייכנס לתוקף.
gcloud services enable dns.googleapis.com
בקודלאב הזה נעשה שימוש ברשת ה-VPC שמוגדרת כברירת מחדל בפרויקט חדש. אפשר גם ליצור רשת חדשה לשימוש במקום זאת.
3. הגדרת העברת FQDN אזורית (עם תחום פרטי חדש)
התרחיש הזה מדגים איך לבצע העברה של DNS אזורית, כדי להבטיח שתנועה מאזור ספציפי תועבר לשרת DNS באותו אזור.
יצירת תחום DNS פרטי
קודם צריך ליצור תחום DNS פרטי (לדוגמה, foo.com.) שיארח את ה-FQDN ואת מדיניות הניתוב המשויכת למיקום הגיאוגרפי. האזור הזה חייב להיות גלוי לרשת ברירת המחדל.
gcloud dns managed-zones create my-zone \
--description="Private Zone for FQDN outbound DNS forwarding." \
--dns-name=foo.com. \
--networks=default \
--visibility=private
יצירת רשומת מדיניות ניתוב לפי מיקום גיאוגרפי בתוך האזור הפרטי
בשלב הבא יוצרים קבוצת רשומות (לדוגמה, geo.foo.com.) בתוך my-zone ומחילים מדיניות ניתוב לפי מיקום גיאוגרפי. בדוגמה הזו מגדירים כתובות IP לאזורים asia-east1 ו-asia-west1.
gcloud dns record-sets create geo.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--routing-policy-type="GEO" \
--routing-policy-data="asia-east1=192.168.0.1;us-central1=192.168.0.2"
הערה: אם הגדרת הגיאופיינס מושבתת (ברירת המחדל וההמלצה), השאילתות יישלחו לאזור התקין הקרוב ביותר אם יעד באזור המקורי לא תקין.
יצירת תחום העברה עם היעד FQDN
יוצרים תחום העברה (geo.test.com.) שגלוי באותה רשת ברירת המחדל, ומגדירים את geo.foo.com. (ה-FQDN עם מדיניות הניתוב לפי מיקום גיאוגרפי) כיעד ההעברה שלו.
gcloud dns managed-zones create my-geo-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for routing policy." \
--dns-name=geo.test.com. \
--networks=default \
--private-forwarding-targets=geo.foo.com. \
--visibility=private
כל שאילתה של DNS שתתאים ל-geo.test.com תועבר עכשיו לכתובת ה-IP שהותאמה (למשל, 192.168.0.1 או 192.168.0.2) של geo.foo.com, על סמך אזור המקור של השאילתה.
4. הגדרת העברה של FQDN (עם תחום פרטי קיים)
יש לכם תחום DNS פרטי קיים
נניח שכבר יש לכם תחום DNS פרטי בשם my-zone (foo.com.) שגלוי לרשת default.
יצירת רשומת משאב של DNS בתוך האזור הפרטי הזה
יוצרים רשומת A עבור a.foo.com בתחום my-zone הקיים.
gcloud dns record-sets create a.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--rrdatas=1.2.3.4
יצירת תחום העברה והגדרת היעד של FQDN
בדומה לתרחיש של FQDN אזורי, יוצרים תחום העברה ומציינים את a.foo.com כיעד ההעברה.
gcloud dns managed-zones create my-a-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for A record." \
--dns-name=a.test.com. \
--networks=default \
--private-forwarding-targets=a.foo.com. \
--visibility=private
כל שאילתת DNS שתתאים ל-a.test.com תועבר לכתובות ה-IP 1.2.3.4 שהותאמו ל-a.foo.com.
5. הסרת המשאבים
כדי למחוק תחום פרטי, קודם צריך למחוק את כל ה-ResourceRecordSets בתחום הפרטי (למעט רשומות NS ו-SOA, שנוצרות באופן אוטומטי ותמיד חייבות להתקיים בתחום הפרטי).
מוחקים את מדיניות הניתוב לפי מיקום גיאוגרפי באזור הפרטי.
gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"
מוחקים את רשומת ה-A בתחום הפרטי.
gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"
מוחקים את האזור הפרטי.
gcloud dns managed-zones delete "my-zone"
מוחקים את אזור ההעברה של מדיניות הניתוב לפי מיקום גיאוגרפי.
gcloud dns managed-zones delete "my-geo-fwd-zone"
מוחקים את אזור ההעברה של רשומת ה-A.
gcloud dns managed-zones delete "my-a-fwd-zone"
6. מזל טוב
מזל טוב, סיימתם ללמוד איך להשתמש בהעברת DNS יוצאת של FQDN.