1. مقدمه
با Private Service Connect، می توانید با استفاده از آدرس های IP داخلی جهانی در شبکه VPC خود، نقاط پایانی خصوصی ایجاد کنید. میتوانید نامهای DNS را به این آدرسهای IP داخلی با نامهای معنیداری مانند storage-pscendpoint.p.googleapis.com و bigtable-adsteam.p.googleapis.com اختصاص دهید. بهجای ارسال درخواستهای API به نقاط پایانی سرویس عمومی مانند storage.googleapis.com، میتوانید درخواستها را به نقطه پایانی Private Service Connect ارسال کنید که خصوصی و داخلی شبکه VPC شما است.
این نامها و آدرسهای IP در شبکه VPC شما و هر شبکه داخلی که با استفاده از تونلهای Cloud VPN یا پیوستهای Cloud Interconnect (VLAN) به آن متصل شدهاند، داخلی هستند.
میتوانید کنترل کنید که کدام ترافیک به کدام نقطه پایانی میرود، و میتوانید نشان دهید که ترافیک در Google Cloud باقی میماند.
چیزی که یاد خواهید گرفت
- موارد استفاده اتصال سرویس خصوصی
- الزامات شبکه
- API های پشتیبانی شده
- یک نقطه پایانی Private Service Connect ایجاد کنید
- یک سطل ذخیره سازی ابری ایجاد کنید
- مناطق خصوصی Cloud DNS را ایجاد و به روز کنید
- یک NAT GW برای دسترسی به googleapis عمومی ایجاد کنید
- یک فایل پیکربندی BOTO ایجاد و به روز کنید
- لیست gsutil را در VM1 انجام دهید که در مقابل نقطه پایانی سرویس PSC شما حل شده است
- لیست gsutil را در VM2 حل شده در برابر googleapis.com عمومی انجام دهید
- از Tcpdump برای تایید رزولوشن DNS استفاده کنید
آنچه شما نیاز دارید
- آشنایی با ویرایشگر DNS، nano یا vi
2. موارد استفاده اتصال سرویس خصوصی
می توانید چندین نقطه پایانی Private Service Connect را در یک شبکه VPC ایجاد کنید. هیچ محدودیتی در پهنای باند برای یک نقطه پایانی خاص وجود ندارد. از آنجا که نقاط پایانی Private Service Connect از آدرس های IP داخلی جهانی استفاده می کنند، می توانند توسط هر منبعی در شبکه VPC شما استفاده شوند.
با چندین نقطه پایانی، می توانید مسیرهای شبکه مختلف را با استفاده از روتر ابری و قوانین فایروال مشخص کنید.
- میتوانید قوانین فایروال را ایجاد کنید تا از دسترسی برخی ماشینهای مجازی به APIهای Google از طریق یک نقطه پایانی Private Service Connect جلوگیری کنید، در حالی که به سایر ماشینهای مجازی اجازه دسترسی بدهید.
- شما می توانید یک قانون فایروال در نمونه VM داشته باشید که تمام ترافیک به اینترنت را ممنوع می کند. ترافیک ارسال شده به نقاط پایانی Private Service Connect همچنان به Google می رسد.
- اگر میزبان های داخلی دارید که با استفاده از یک تونل Cloud VPN یا یک پیوست Cloud Interconnect (VLAN) به VPC متصل هستند، می توانید برخی از درخواست ها را از طریق تونل یا VLAN ارسال کنید در حالی که سایر درخواست ها را از طریق اینترنت عمومی ارسال می کنید. این پیکربندی به شما امکان میدهد تونل یا VLAN را برای سرویسهایی مانند Google Books که توسط Google Access خصوصی پشتیبانی نمیشوند دور بزنید. برای ایجاد این پیکربندی، یک نقطه پایانی Private Service Connect ایجاد کنید، آدرسهای IP پایانی Private Service Connect را با استفاده از تبلیغات مسیریاب Cloud سفارشی تبلیغ کنید و یک خطمشی حمل و نقل ورودی Cloud DNS را فعال کنید. این برنامه میتواند برخی از درخواستها را از طریق تونل Cloud VPN یا پیوست Cloud Interconnect (VLAN) با استفاده از نام نقطه پایانی Private Service Connect و سایر درخواستها را از طریق اینترنت با استفاده از نام پیشفرض DNS ارسال کند.
- اگر شبکه داخلی خود را با استفاده از چندین پیوست Cloud Interconnect (VLAN) به شبکه VPC خود متصل کنید، میتوانید مقداری از ترافیک را از داخل محل بر روی یک VLAN و بقیه را روی دیگران ارسال کنید، همانطور که در شکل 2 نشان داده شده است. این به شما امکان میدهد از به جای شبکه های گوگل، شبکه های گسترده ای را در اختیار داشته باشید و حرکت داده ها را برای برآوردن نیازهای جغرافیایی کنترل کنید. برای ایجاد این پیکربندی، دو نقطه پایانی Private Service Connect ایجاد کنید. یک تبلیغ مسیر سفارشی برای اولین نقطه پایانی در جلسه BGP Cloud Router که VLAN اول را مدیریت می کند و یک تبلیغ مسیر سفارشی متفاوت برای نقطه پایانی دوم در جلسه BGP روتر Cloud که VLAN دوم را مدیریت می کند ایجاد کنید. میزبانهای داخلی که برای استفاده از نام نقطه پایانی Private Service Connect پیکربندی شدهاند، ترافیک را از طریق پیوست Cloud Interconnect (VLAN) مربوطه ارسال میکنند.
- همچنین می توانید از چندین پیوست Cloud Interconnect (VLAN) در یک توپولوژی فعال/فعال استفاده کنید. اگر همان آدرس IP نقطه پایانی Private Service Connect را با استفاده از تبلیغات مسیر سفارشی برای جلسات BGP در مسیریاب های ابری که VLAN ها را مدیریت می کنند، تبلیغ می کنید، بسته های ارسال شده از سیستم های داخلی به نقاط پایانی با استفاده از ECMP در سراسر VLAN ها هدایت می شوند.
شکل 1. با پیکربندی Private Service Connect، Cloud Router، و میزبان های داخلی، می توانید کنترل کنید که کدام پیوست Cloud Interconnect (VLAN) برای ارسال ترافیک به Google API استفاده می شود.
3. الزامات شبکه
برای استفاده از Private Service Connect، نمونههای ماشین مجازی (VM) بدون آدرس IP خارجی باید رابط اصلی خود را در زیرشبکهای با دسترسی Google خصوصی فعال داشته باشند.
ماشین مجازی با آدرس IP خارجی میتواند با استفاده از نقاط پایانی Private Service Connect به APIها و سرویسهای Google دسترسی داشته باشد، چه Private Google Access برای زیرشبکه آن فعال باشد یا نه. اتصال به نقطه پایانی Private Service Connect در شبکه Google باقی می ماند.
نقاط پایانی Private Service Connect از شبکههای VPC همتا قابل دسترسی نیستند.
API های پشتیبانی شده
وقتی یک نقطه پایانی Private Service Connect ایجاد میکنید، انتخاب میکنید که به کدام دسته از APIها نیاز دارید: all-apis یا vpc-sc.
بستههای API به همان APIهایی دسترسی میدهند که از طریق Private Google Access VIP در دسترس هستند.
- بسته all-apis دسترسی به API های مشابه private.googleapis.com را فراهم می کند.
- بسته vpc-sc دسترسی به APIهای مشابه limited.googleapis.com را فراهم می کند.
4. توپولوژی Codelab و مورد استفاده
شکل 1 - توپولوژی Codelab
مورد استفاده Codelab -
مشتری ما به ترکیبی از دسترسی googleapis خصوصی (متقابل) و عمومی برای انتقال داده های ذخیره سازی ابری نیاز دارد. برای برآورده کردن نیازهای مشتریان خود، Private Service Connect شامل یک آدرس /32 منحصر به فرد، پیکربندی BOTO و بهروزرسانیهای رکورد DNS را مستقر خواهیم کرد. ماشین مجازی 1 از PSC برای دسترسی به سطل ذخیره سازی ابری استفاده می کند. در مقابل، VM2 از محدوده IP عمومی googleapis.com از طریق NAT GW استفاده خواهد کرد.
همه جنبههای آزمایشگاه در Google Cloud Platform مستقر شدهاند، اما همان مورد استفاده برای استقرار Hybrid Cloud که نیاز به جداسازی ترافیک دارد، قابل اجرا است.
5. راه اندازی و الزامات
تنظیم محیط خود به خود
- به کنسول Cloud وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. (اگر قبلاً یک حساب Gmail یا G Suite ندارید، باید یک حساب ایجاد کنید .)
شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud (نام بالا قبلاً گرفته شده است و برای شما کار نخواهد کرد، متأسفیم!). بعداً در این آزمایشگاه کد به عنوان PROJECT_ID
نامیده خواهد شد.
- در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورتحساب را در Cloud Console فعال کنید .
اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. حتماً دستورالعملهای موجود در بخش «تمیز کردن» را دنبال کنید که به شما توصیه میکند چگونه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از کنسول GCP روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این آزمایشگاه به سادگی با یک مرورگر قابل انجام است.
6. قبل از شروع
API ها را فعال کنید
در داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname
تمام خدمات لازم را فعال کنید
gcloud services enable compute.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable dns.googleapis.com
7. شبکه VPC ایجاد کنید
شبکه VPC
از Cloud Shell
gcloud compute networks create psc-lab --subnet-mode custom
خروجی
Created NAME SUBNET_MODE BGP_ROUTING_MODE IPV4_RANGE GATEWAY_IPV4 psc-lab CUSTOM REGIONAL
زیر شبکه ایجاد کنید
از Cloud Shell
gcloud compute networks subnets create psclab-subnet \ --network psc-lab --range 10.0.0.0/24 --region us-central1
-enable-private-ip-google-access
خروجی
Created NAME REGION NETWORK RANGE psclab-subnet us-central1 psc-lab 10.0.0.0/24
قوانین فایروال را ایجاد کنید
از Cloud Shell
gcloud compute firewall-rules create psclab-ssh \ --network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20
خروجی
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED psclab-ssh psc-lab INGRESS 1000 tcp:22 False
نمونه Cloud NAT را ایجاد کنید
ایجاد Cloud Router
از Cloud Shell
gcloud compute routers create crnat \ --network psc-lab \ --asn 65000 \ --region us-central1
Cloud NAT را ایجاد کنید
از Cloud Shell
gcloud compute routers nats create cloudnat \ --router=crnat \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges \ --enable-logging \ --region us-central1
8. نقطه پایانی Private Service Connect را ایجاد کنید
هنگامی که IP <pscendpointip>
را به صورت Private Service Connect پیکربندی می کنید، باید یک آدرس IP منحصر به فرد ارائه دهید که در VPC شما تعریف نشده است.
از Cloud Shell
gcloud beta compute addresses create psc-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=<pscendpointip> \ --network=psc-lab
"pscendpointip" را برای مدت زمان آزمایشگاه ذخیره کنید
(gcloud compute addresses list --filter=name:psc-ip --format="value(address)") pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)") echo $pscendpointip
یک قانون بازارسال برای اتصال نقطه پایانی به APIها و سرویسهای Google ایجاد کنید.
از Cloud Shell
gcloud beta compute forwarding-rules create pscendpoint \ --global \ --network=psc-lab \ --address=psc-ip \ --target-google-apis-bundle=all-apis
نقاط پایانی پیکربندی شده Private Service Connect را فهرست کنید
از Cloud Shell
gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --global
نقاط پایانی پیکربندی شده Private Service Connect را شرح دهید
از Cloud Shell
gcloud compute forwarding-rules describe \ pscendpoint --global
9. یک سطل ایجاد کنید
یک سطل Cloud Storage ایجاد کنید و BUCKET_NAME را با نام منحصربهفرد جهانی که ترجیح میدهید جایگزین کنید.
از Cloud Shell
gsutil mb -l us-central1 -b on gs://BUCKET_NAME
«BUCKET_NAME» را برای مدت زمان آزمایشگاه ذخیره کنید
BUCKET_NAME=YOUR BUCKET NAME echo $BUCKET_NAME
10. پیکربندی DNS
فرض کنید برنامهای دارید که از Google Cloud Storage استفاده میکند. بدون Private Service Connect، برنامه های شما ممکن است به "storage.googleapis.com" متصل شوند که به طور پیش فرض به برخی از آدرس های عمومی حل می شود. با Private Service Connect میتوانید نامهایی مانند «storage-psclab.p.googleapis.com» ایجاد و استفاده کنید. نام و آدرس ها برای شبکه VPC شما و هر شبکه داخلی متصل خصوصی هستند.
Private Service Connect for DNS از قرارداد نامگذاری SERVICE-ENDPOINT.p.googleapis.com پیروی می کند. در مثال ارائه شده در بالا، "ذخیره سازی" SERVICE است و "psclab" نقطه پایانی است. گنجاندن "-" بین SERVICE و ENDPOINT ضروری است.
برای دسترسی به Cloud Storage با استفاده از نقطه پایانی Private Service Connect یک رکورد DNS (A) storage-psclab.p.googleapis.com ایجاد کنید که به آدرس IP نقطه پایانی Private Service Connect اشاره می کند.
DNS Private Zone ایجاد کنید
gcloud dns --project=$projectname managed-zones create psc-dns-zone --description="" --dns-name="p.googleapis.com." --visibility="private" --networks="psc-lab"
یک رکورد DNS ایجاد کنید
gcloud dns --project=$projectname record-sets transaction start --zone=psc-dns-zone gcloud dns --project=$projectname record-sets transaction add $pscendpointip --name=storage-pscendpoint.p.googleapis.com. --ttl=300 --type=A --zone=psc-dns-zone gcloud dns --project=$projectname record-sets transaction execute --zone=psc-dns-zone
11. ماشین های مجازی ایجاد کنید
ماشین مجازی (psc-instance-1) ایجاد کنید که برای اعتبارسنجی Private Service Connect استفاده میشود
از Cloud Shell
gcloud compute instances create psc-instance-1 \ --subnet psclab-subnet \ --zone us-central1-a \ --image=centos-7-v20210122 \ --image-project=centos-cloud \ --no-address \ --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y
وارد نمونه VM شوید (psc-instance-1)
SSH به VM از طریق Cloud Shell
gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"
با سه بار کلیک کردن روی + (عکس زیر) پایانه های پوسته ابری اضافی ایجاد کنید.
ماشین مجازی (psc-instance-2) ایجاد کنید که برای اعتبارسنجی Googleapis عمومی استفاده می شود
از برگه 2
gcloud compute instances create psc-instance-2 \ --subnet psclab-subnet \ --zone us-central1-a \ --image=centos-7-v20210122 \ --image-project=centos-cloud \ --no-address \ --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y
از برگه 2 SSH به VM از طریق Cloud Shell
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"
از برگه 3 SSH به psc-instance-1 از طریق Cloud Shell
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"
از برگه 4 Shell SSH به psc-instance-2 از طریق Cloud Shell
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"
12. رفتار Gsutil موجود را بررسی کنید
از برگه 4 (psc-instance-2) tcpdump را شروع کرده و ترافیک DNS را نظارت کنید
sudo tcpdump -vv -i eth0 port 53
جستجوی DNS سطل ذخیره سازی را از برگه 2 (psc-instance-2) بررسی کنید
BUCKET_NAME=YOUR BUCKET NAME echo $BUCKET_NAME gsutil -D ls gs://$BUCKET_NAME
اشکال زدایی gsutil را بررسی کنید، HOST storage.googleapis.com برای وضوح DNS استفاده می شود
<snip> send: 'GET /storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nauthorization: Bearer ya29.c.KpkB7wfaMjfc_WXEKCeNF4Md0fEHnfDU7tqBf3cd0u43yEmYXqj8fX_X5wWdNdDVH6k1EkjeAeIJDzKGvyjPOkf1Io2kVeUqYX69sDv53huW1NslffjAHKchbZ0CP3Cg83TS3Pa55jLcuE0TLbYycVrgSbD3H90LaapUGbWD3kj4IsJLf9J8R98Bqobu8HZwwqk92hlZ4zVzRqOM\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\n\r\n' reply: 'HTTP/1.1 200 OK\r\n' <snip>
از برگه 4 (psc-instance-2) بررسی کنید GoogleAPI.com یک رکورد(های) DNS عمومی هنگام دسترسی به سطل ذخیره سازی استفاده می شود.
metadata.google.internal.domain > psc-instance-2.c.yourprojectname.internal.33973: [udp sum ok] 36442 q: A? storage.googleapis.com. 11/0/0 storage.googleapis.com. A 108.177.111.128, storage.googleapis.com. A 142.250.128.128, storage.googleapis.com. A 74.125.70.128, storage.googleapis.com. A 74.125.201.128, storage.googleapis.com. A 64.233.183.128, storage.googleapis.com. A 173.194.198.128, storage.googleapis.com. A 172.217.219.128, storage.googleapis.com. A 142.250.136.128, storage.googleapis.com. A 209.85.234.128, storage.googleapis.com. A 172.217.212.128, storage.googleapis.com. A 172.217.214.128
13. رفتار Gsutil را اصلاح کنید
در مرحله قبل به یاد بیاورید، شما یک منطقه DNS خصوصی و یک رکورد ایجاد کرده اید که به آدرس IP نقطه پایانی PSC نگاشت شده است. در مرحله بعدی، اکنون با بهروزرسانی فایل VM BOTO در psc-instance-1، نحوه رفتار gsutil را کنترل میکنیم.
مشاهده پیکربندی پیشفرض BOTO از ترمینال نمونه VM از برگه 1 (psc-instance-1)
[psc-instance ~]$ more /etc/boto.cfg
خروجی (project_id شما متفاوت خواهد بود)
[GSUtil] default_project_id = 234086459238 default_api_version = 2 [GoogleCompute] service_account = default
پیکربندی BOTO را با استفاده از ویرایشگر نانو یا VI به روز کنید، اطمینان حاصل کنید که همه ورودی ها را کپی و جایگذاری کنید.
مثال: sudo nano /etc/boto.cfg
یا
مثال: sudo vi /etc/boto.cfg
از برگه ترمینال نمونه VM 1 (psc-instance-1)
[Credentials] gs_host = storage-pscendpoint.p.googleapis.com gs_host_header = storage.googleapis.com gs_json_host = storage-pscendpoint.p.googleapis.com gs_json_host_header = www.googleapis.com
پیکربندی را تأیید کنید، ترتیب [Credentials] برای جستجوی DNS بسیار مهم است
more /etc/boto.cfg [Credentials] gs_host = storage-pscendpoint.p.googleapis.com gs_host_header = storage.googleapis.com gs_json_host = storage-pscendpoint.p.googleapis.com gs_json_host_header = www.googleapis.com [GSUtil] default_project_id = 234086459238 default_api_version = 2 [GoogleCompute] service_account = default
14. رفتار جستجوی gsutil به روز شده را بررسی کنید
از برگه 3 (psc-instance-1) tcpdump را شروع کنید و ترافیک DNS را نظارت کنید
sudo tcpdump -vv -i eth0 port 53
جستجوی gsutil سطل ذخیره سازی را از برگه 1 (psc-instance-1) بررسی کنید
BUCKET_NAME=YOUR BUCKET NAME echo $BUCKET_NAME gsutil -D ls gs://$BUCKET_NAME
گزارشهای اشکالزدایی تأیید میکنند که سطل ذخیرهسازی از طریق Private Service Connect نقطه پایانی "pscendpoint" قابل دسترسی است
خروجی:
<snip> INFO 0131 22:14:18.795986 base_api.py] Making http GET to https://storage-pscendpoint.p.googleapis.com/storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 INFO 0131 22:14:18.796415 base_api.py] Headers: {u'Host': 'www.googleapis.com', 'accept': 'application/json', 'accept-encoding': 'gzip, deflate', 'content-length': '0', 'user-agent': 'apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0'} INFO 0131 22:14:18.796502 base_api.py] Body: (none) connect: (storage-pscendpoint.p.googleapis.com, 443) send: 'GET /storage/v1/b/psc-bucket/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\ncontent-length: 0\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\nhost: www.googleapis.com\r\nauthorization: Bearer ya29.c.KpkB7wd3XWiYeRyTuth5_HPlNV-hPwc2Nn7RSIeMpzrpa_j4EsMPl2m_mDGKAcGHvYIgiC5bT2UVQirAPpSbbpToa6G6lkaBbH5SZwHwgNXYfisp5Ww1UjXe4rTa69a_Wp0WesafcwPNnYzDo3xf5VGh3iGhySA04kTXuyT--MgOU8U-XLII2LJQxUWlV8KEdrvyCuqRb-jsDdk_\r\n\r\n' reply: 'HTTP/1.1 200 OK\r\n' <snip>
از برگه 3 (psc-instance-1) تأیید کنید IP نقطه پایانی PSC شما یک رکورد DNS است که هنگام تلاش برای دسترسی به سطل ذخیرهسازی استفاده میشود.
@psc-instance-1 ~]$ sudo tcpdump -vv -i eth0 port 53 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 05:02:33.936256 IP (tos 0x0, ttl 64, id 55416, offset 0, flags [DF], proto UDP (17), length 82) psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0xcceb!] 34796+ A? storage-pscendpoint.p.googleapis.com. (54) 05:02:33.936269 IP (tos 0x0, ttl 64, id 55417, offset 0, flags [DF], proto UDP (17), length 82) psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0x3ebd!] 5632+ AAAA? storage-pscendpoint.p.googleapis.com. (54) 05:02:33.944018 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 98) metadata.google.internal.domain > psc-instance-1.c.yourprojectname.42296: [udp sum ok] 34796 q: A? storage-pscendpoint.p.googleapis.com. 1/0/0 storage-pscendpoint.p.googleapis.com. A 10.10.110.10 (70) 05:02:33.946005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 175)
تأیید کنید IP نقطه پایانی اتصال Private Service اکنون برای وضوح DNS استفاده می شود
از برگه 1
nslookup storage-pscendpoint.p.googleapis.com
خروجی
@psc-instance ~]$ nslookup storage-pscendpoint.p.googleapis.com Server: 169.254.169.254 Address: 169.254.169.254#53 Non-authoritative answer: Name: storage-pscendpoint.p.googleapis.com Address: <pscip>
15. مراحل پاکسازی
خروج از نمونه VM (همه برگه ها)
exit
از یک ترمینال Cloud Shell، اجزای آزمایشگاه را حذف کنید
gcloud compute routers nats delete cloudnat --router=crnat --region=us-central1 --quiet gcloud compute routers delete crnat --region=us-central1 --quiet gcloud beta compute forwarding-rules delete pscendpoint --global --quiet gcloud beta compute addresses delete psc-ip --global --quiet gsutil rm -r gs://$BUCKET_NAME gcloud compute instances delete psc-instance-1 --zone=us-central1-a --quiet gcloud compute instances delete psc-instance-2 --zone=us-central1-a --quiet gcloud compute firewall-rules delete psclab-ssh --quiet gcloud compute networks subnets delete psclab-subnet --region us-central1 --quiet gcloud compute networks delete psc-lab --quiet
از Console، مطمئن شوید که پروژه صحیح را مشاهده می کنید، سپس Networking Services → Cloud DNS را انتخاب کنید
شناسایی و روی «psc-dns-zone» کلیک کنید
مجموعه رکورد "storage-pscendpoint.p.googleapis.com" را انتخاب کنید سپس روی Delete Record Sets کلیک کنید.
برای تکمیل پاکسازی آزمایشگاه، روی Delete Zone کلیک کنید
16. تبریک می گویم!
برای تکمیل کد لبه تبریک می گویم.
آنچه را پوشش داده ایم
- موارد استفاده اتصال سرویس خصوصی
- الزامات شبکه
- API های پشتیبانی شده
- یک نقطه پایانی Private Service Connect ایجاد کرد
- یک سطل ذخیره سازی ابری ایجاد کرد
- مناطق خصوصی Cloud DNS ایجاد کرد
- یک فایل پیکربندی BOTO به روز شد
- یک NAT GW ایجاد کرد
- لیست gsutil را در VM1 انجام دهید که با نقطه پایانی سرویس PSC شما حل می شود
- لیست gsutil را در VM2 انجام دهید که با googleapis.com عمومی حل می شود
- از Tcpdump برای تایید رزولوشن DNS استفاده کنید