1. مقدمه
این لبه کد شما را در راهاندازی مناطق حمل و نقل خروجی Cloud DNS با استفاده از یک نام دامنه کاملاً واجد شرایط (FQDN) به عنوان هدف حملونقل راهنمایی میکند. این ویژگی به شما امکان میدهد ترافیک DNS را به آدرسهای IP که از یک نام DNS حل شدهاند هدایت کنید، به جای آدرسهای IP کدگذاری سخت در پیکربندی منطقه ارسال شما. این به ویژه زمانی مفید است که آدرسهای IP Resolver DNS Backend شما تغییر کند، زیرا میتوانید رکورد DNS را برای FQDN بهروزرسانی کنید و Cloud DNS بهطور خودکار تغییرات را دریافت میکند.
در پایان این کد لبه، میتوانید مناطق انتقال DNS Cloud را که از موارد زیر استفاده میکنند، پیکربندی کنید:
- یک هدف FQDN که با یک منطقه خصوصی با رکوردهای A/AAAA مطابقت دارد.
- یک هدف FQDN که توسط خطمشیهای مسیریابی Cloud DNS (موقعیت جغرافیایی یا دور هم وزن) برای پیوند منطقهای یا توزیع ترافیک پشتیبانی میشود.
مروری بر فوروارد FQDN
حمل و نقل 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 Forwarding با اجازه دادن به شما برای تعیین یک هدف حمل و نقل FQDN به جای آدرس های IP به عنوان اهداف حمل و نقل برای پرس و جوهای خروجی، حمل و نقل DNS را گسترش می دهد.
مزایای ارسال FQDN
شما خواهید آموخت که این ویژگی نیاز به به روز رسانی دستی را هنگامی که آدرس های IP Resolver DNS Backend تغییر می کند، از بین می برد، زیرا 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
ارسال Cloud DNS FQDN از چندین سناریو استفاده پشتیبانی می کند:
- منطقه خصوصی با رکورد A/AAAA : اگر FQDN با یک رکورد A/AAAA در یک منطقه خصوصی مطابقت داشته باشد، آدرسهای IP حلشده به لیست ارسال اضافه میشوند و رفتار مشابه با ارسال مستقیم به آدرسهای IP هدف است.
- منطقه خصوصی با خطمشی مکانیابی جغرافیایی : سیاستهای موقعیت جغرافیایی به شما امکان میدهند موقعیت جغرافیایی منبع را مشخص کنید و پاسخهای مربوطه را ارائه دهید و توزیع ترافیک را بر اساس جغرافیا تأیید کنید. این کلید برای ارسال و وابستگی DNS منطقه ای است.
- خطمشی منطقه خصوصی با خطمشی دور روبین وزندار (WRR) : خطمشیهای WRR امکان تعیین وزنهای مختلف به ازای آدرس IP برای یک نام DNS را فراهم میکند، تأیید ترافیک براساس وزنهای پیکربندی شده توزیع میشود.
- منطقه عمومی با رکورد A/AAAA : اگر FQDN با هیچ نام خصوصی قابل مشاهده برای همان شبکه مطابقت نداشته باشد، Cloud DNS سعی می کند آن را با استفاده از اینترنت عمومی حل کند.
درک دستور Google Cloud CLI برای ارسال FQDN
برای ایجاد یک منطقه ارسال با هدف ارسال FQDN با استفاده از دستورات gcloud CLI، از دستور 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
توجه داشته باشید که می توانید به جای --forwarding --private-forwarding-targets
--forwarding-targets
تعیین کنید.
پروژه Google Cloud Platform خود را راه اندازی کنید
وارد gcloud CLI شوید.
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"
توجه: اگر geofencing غیرفعال باشد (پیشفرض و توصیهشده)، اگر هدفی در منطقه اصلی ناسالم باشد، درخواستها به نزدیکترین منطقه سالم هدایت میشوند.
یک منطقه ارسال با هدف 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 Forwarding (با منطقه خصوصی موجود)
یک منطقه DNS خصوصی موجود داشته باشید
فرض کنید از قبل یک منطقه DNS خصوصی به نام my-zone (foo.com) دارید که برای شبکه پیشفرض قابل مشاهده است.
یک رکورد منبع DNS در این منطقه خصوصی ایجاد کنید
یک رکورد نوع A برای a.foo.com ایجاد کنید. در منطقه من موجود شما.
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 استفاده کنید!