درباره این codelab
1. مقدمه
با Private Service Connect، میتوانید با استفاده از آدرسهای IP داخلی جهانی در شبکه VPC خود، برای دسترسی به APIهای Google، نقاط پایانی خصوصی ایجاد کنید. میتوانید نامهای 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 یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های 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
ایجاد زیر شبکه
از 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
قوانین فایروال را ایجاد کنید
برای اینکه به IAP اجازه دهید به نمونه های VM شما متصل شود، یک قانون فایروال ایجاد کنید که:
- برای تمام نمونه های VM که می خواهید با استفاده از IAP در دسترس باشند، اعمال می شود.
- به ترافیک ورودی از محدوده IP 35.235.240.0/20 اجازه می دهد. این محدوده شامل تمام آدرس های IP است که IAP برای ارسال TCP استفاده می کند.
از Cloud Shell
gcloud compute firewall-rules create psclab-ssh \ --network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20
نمونه 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 compute addresses create psc-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=192.168.255.250 \ --network=psc-lab
"pscendpointip" را برای مدت زمان آزمایشگاه ذخیره کنید
pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)") echo $pscendpointip
یک قانون بازارسال برای اتصال نقطه پایانی به APIها و سرویسهای Google ایجاد کنید.
از Cloud Shell
gcloud 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
وقتی یک نقطه پایانی Private Service Connect ایجاد میکنید، Service Directory یک رکورد DNS برای APIها و سرویسهایی که با استفاده از آن نقطه پایانی در دسترس هستند ایجاد میکند.
سوابق DNS به آدرس IP نقطه پایانی Private Service Connect شما اشاره دارد و در این قالب است: SERVICE-ENDPOINT.p.googleapis.com.
میتوانید از این نامهای DNS در درخواستهای API خود برای هدایت درخواست به نقطه پایانی Private Service Connect خود استفاده کنید. همچنین می توانید از این نام های DNS در هدر Host درخواست خود استفاده کنید.
اگر میخواهید از یک نقطه پایانی Private Service Connect با کلاینت یا برنامهای استفاده کنید که به APIها و سرویسهای Google دسترسی دارد، مشتری یا برنامه خود را برای استفاده از نامهای DNS p.googleapis.com بهروزرسانی کنید.
برای جزئیات بیشتر به اسناد مربوط به کتابخانه مشتری یا مشتری خود مراجعه کنید. به عنوان مثال:
- Python: می توانید api_endpoint را در کلاس Client options در بسته google-api-core پیکربندی کنید.
- Go: می توانید WithEndpoint را در بسته Client options در بسته api پیکربندی کنید.
- gcloud: با استفاده از این دستور می توانید api_endpoint_overrides را پیکربندی کنید. تنظیم پیکربندی gcloud api_endpoint_overrides/SERVICE ENDPOINT_URL
به عنوان مثال: تنظیم پیکربندی gcloud api_endpoint_overrides/storage https://storage-xyz.p.googleapis.com/storage/v1/
اگر نمی توانید مشتری یا برنامه خود را برای استفاده از نقطه پایانی دیگری پیکربندی کنید، رکوردهای DNS را ایجاد کنید تا با نام های پیش فرض DNS مطابقت داشته باشد. برای مثال storage.googleapis.com. به ایجاد رکوردهای DNS با استفاده از نامهای پیشفرض DNS مراجعه کنید.
تایید رکورد DNS
از کنسول ابری ورودی dns تولید شده را که در زیر خدمات شبکه → Cloud DNS قرار دارد، تأیید کنید. به نام DNS تولید شده 'p.googleapis.com' توجه کنید.
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 = [your project number] 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 = [your project number 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 compute forwarding-rules delete pscendpoint --global --quiet gcloud 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 را انتخاب کنید
16. تبریک می گویم!
برای تکمیل کد لبه تبریک می گویم.
آنچه را پوشش داده ایم
- موارد استفاده اتصال سرویس خصوصی
- الزامات شبکه
- API های پشتیبانی شده
- یک نقطه پایانی Private Service Connect ایجاد کرد
- یک سطل ذخیره سازی ابری ایجاد کرد
- یک فایل پیکربندی BOTO به روز شد
- یک NAT GW ایجاد کرد
- لیست gsutil را در VM1 انجام دهید که با نقطه پایانی سرویس PSC شما حل می شود
- لیست gsutil را در VM2 انجام دهید که با googleapis.com عمومی حل می شود
- از Tcpdump برای تایید رزولوشن DNS استفاده کنید