העברה של יציאות DNS של FQDN ב-Cloud DNS

1. מבוא

ef2d068c413a15bd.png

בשיעור הקוד הזה תלמדו איך להגדיר תחומי העברה יוצאת ב-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.

דרישות מוקדמות

כדי להשלים את סדנת הקוד הזו, נדרשים:

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.

קריאה נוספת

מסמכי עזרה