Google API'leri için Private Service Connect

1. Giriş

Private Service Connect ile Google API'lerine erişmek için VPC ağınızda genel dahili IP adreslerini kullanarak özel uç noktalar oluşturabilirsiniz. Bu dahili IP adreslerine storage-pscendpoint.p.googleapis.com ve bigtable-adsteam.p.googleapis.com gibi anlamlı adlar içeren DNS adları atayabilirsiniz. API isteklerini storage.googleapis.com gibi herkese açık hizmet uç noktalarına göndermek yerine, istekleri VPC ağınız için özel ve dahili olan Private Service Connect uç noktasına gönderebilirsiniz.

Bu adlar ve IP adresleri, VPC ağınızın ve Cloud VPN tünelleri veya Cloud Interconnect ekleri (VLAN'lar) kullanılarak kendisine bağlanan tüm şirket içi ağların içindedir.

Hangi trafiğin hangi uç noktaya gideceğini kontrol edebilir ve trafiğin Google Cloud içinde kaldığını gösterebilirsiniz.

Neler öğreneceksiniz?

  • Private Service Connect kullanım alanları
  • Ağ gereksinimleri
  • Desteklenen API'ler
  • Private Service Connect uç noktası oluşturma
  • Cloud Storage paketi oluşturma
  • Cloud DNS özel bölgelerini oluşturma ve güncelleme
  • Herkese açık googleapis'e erişmek için NAT ağ geçidi oluşturma
  • BOTO yapılandırma dosyası oluşturma ve güncelleme
  • VM1'de PSC hizmeti uç noktanıza göre çözümlenen gsutil list komutunu çalıştırın.
  • Herkese açık googleapis.com'a göre çözümlenen VM2'de gsutil list komutunu çalıştırın.
  • DNS çözümlemesini doğrulamak için Tcpdump'ı kullanma

Gerekenler

  • DNS, nano veya vi düzenleyici hakkında bilgi sahibi olmanız gerekir.

2. Private Service Connect kullanım alanları

Aynı VPC ağında birden fazla Private Service Connect uç noktası oluşturabilirsiniz. Belirli bir uç noktaya yönelik bant genişliği sınırlaması yoktur. Private Service Connect uç noktaları genel dahili IP adresleri kullandığından VPC ağınızdaki tüm kaynaklar tarafından kullanılabilir.

Birden fazla uç nokta ile Cloud Router ve güvenlik duvarı kurallarını kullanarak farklı ağ yolları belirtebilirsiniz.

  • Bazı sanal makinelerin Private Service Connect uç noktası üzerinden Google API'lerine erişmesini engellerken diğer sanal makinelerin erişmesine izin vermek için güvenlik duvarı kuralları oluşturabilirsiniz.
  • Bir sanal makine örneğinde internete giden tüm trafiği engelleyen bir güvenlik duvarı kuralınız olabilir. Private Service Connect uç noktalarına gönderilen trafik yine de Google'a ulaşır.
  • Cloud VPN tüneli veya Cloud Interconnect ara bağlantı eki (VLAN) kullanarak bir VPC'ye bağlı şirket içi ana makineleriniz varsa bazı istekleri tünel veya VLAN üzerinden, diğer istekleri ise herkese açık internet üzerinden gönderebilirsiniz. Bu yapılandırma, Özel Google Erişimi tarafından desteklenmeyen Google Kitaplar gibi hizmetler için tüneli veya VLAN'ı atlamanıza olanak tanır. Bu yapılandırmayı oluşturmak için bir Private Service Connect uç noktası oluşturun, Private Service Connect uç noktası IP adreslerini Cloud Router özel rota reklamlarını kullanarak duyurun ve Cloud DNS gelen iletme politikasını etkinleştirin. Uygulama, Private Service Connect uç noktasının adını kullanarak bazı istekleri Cloud VPN tüneli veya Cloud Interconnect ara bağlantı eki (VLAN) üzerinden, diğerlerini ise varsayılan DNS adını kullanarak internet üzerinden gönderebilir.
  • Şirket içi ağınızı birden fazla Cloud Interconnect eki (VLAN) kullanarak VPC ağınıza bağlıyorsanız şirket içinden gelen trafiğin bir kısmını bir VLAN üzerinden, geri kalanını ise diğerleri üzerinden gönderebilirsiniz (Şekil 2'de gösterildiği gibi). Bu sayede, Google'ın geniş alan ağı yerine kendi geniş alan ağınızı kullanabilir ve coğrafi şartları karşılamak için veri hareketini kontrol edebilirsiniz. Bu yapılandırmayı oluşturmak için iki Private Service Connect uç noktası oluşturun. İlk VLAN'ı yöneten Cloud Router'ın BGP oturumundaki ilk uç nokta için özel bir rota bildirimi oluşturun ve ikinci VLAN'ı yöneten Cloud Router'ın BGP oturumundaki ikinci uç nokta için farklı bir özel rota bildirimi oluşturun. Private Service Connect uç nokta adını kullanacak şekilde yapılandırılmış şirket içi ana makineler, trafiği ilgili Cloud Interconnect ara bağlantı eki (VLAN) üzerinden gönderir.
  • Etkin/etkin topolojide birden fazla Cloud Interconnect eki (VLAN) de kullanabilirsiniz. VLAN'ları yöneten Cloud Router'lardaki BGP oturumları için özel rota bildirimlerini kullanarak aynı Private Service Connect uç nokta IP adresini duyurursanız şirket içi sistemlerden uç noktalara gönderilen paketler, ECMP kullanılarak VLAN'lar arasında yönlendirilir.

5e142c2fbf6f010e.png

Şekil 1. Private Service Connect, Cloud Router ve şirket içi ana makineleri yapılandırarak Google API'lerine trafik göndermek için hangi Cloud Interconnect ara bağlantı ekinin (VLAN) kullanılacağını kontrol edebilirsiniz.

3. Ağ gereksinimleri

Private Service Connect'i kullanmak için harici IP adresleri olmayan sanal makine (VM) örneklerinin birincil arayüzü, Özel Google Erişimi'nin etkin olduğu bir alt ağda olmalıdır.

Harici IP adresi olan bir sanal makine, alt ağı için Özel Google Erişimi etkinleştirilmiş olsun veya olmasın Private Service Connect uç noktalarını kullanarak Google API'lerine ve hizmetlerine erişebilir. Private Service Connect uç noktasına bağlantı, Google'ın ağı içinde kalır.

Private Service Connect uç noktalarına eşlenmiş VPC ağlarından erişilemez.

Desteklenen API'ler

Private Service Connect uç noktası oluşturduğunuzda, erişmeniz gereken API paketini (all-apis veya vpc-sc) seçersiniz.

API paketleri, Özel Google Erişimi VIP'leri üzerinden kullanılabilen API'lere erişim sağlar.

  • all-apis paketi, private.googleapis.com ile aynı API'lere erişim sağlar.
  • vpc-sc paketi, restricted.googleapis.com ile aynı API'lere erişim sağlar.

4. Codelab topolojisi ve kullanım alanı

2ac275eb86f26338.png

Şekil 1: Codelab topolojisi

Codelab kullanım alanı:

Müşterimiz, bulut depolama alanı verilerinin aktarılması için özel (ara bağlantı) ve herkese açık googleapis erişiminin bir arada kullanılmasını gerektiriyor. Müşterilerimizin gereksinimlerini karşılamak için benzersiz bir /32 adresi, BOTO yapılandırması ve DNS kaydı güncellemelerinden oluşan Private Service Connect'i dağıtacağız. 1. sanal makine, bulut depolama alanı paketi erişimi için PSC'yi kullanır. Buna karşılık, 2. sanal makine NAT GW üzerinden herkese açık googleapis.com IP aralıklarını kullanır.

Laboratuvarın tüm yönleri Google Cloud Platform'da dağıtılır. Ancak aynı kullanım alanı, trafik ayrımı gerektiren hibrit bulut dağıtımı için de geçerlidir.

5. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'in ilerleyen kısımlarında PROJECT_ID olarak adlandırılacaktır.

  1. Ardından, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.

Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları nasıl kapatacağınız konusunda size tavsiyelerde bulunan "Temizleme" bölümündeki talimatları uyguladığınızdan emin olun. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

GCP Console'da sağ üstteki araç çubuğunda Cloud Shell simgesini tıklayın:

bce75f34b2c53987.png

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

f6ef2b5f13479f3a.png

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu laboratuvardaki çalışmalarınızın tamamını yalnızca bir tarayıcı kullanarak yapabilirsiniz.

6. Başlamadan önce

API'leri etkinleştir

Cloud Shell'de proje kimliğinizin ayarlandığından emin olun.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

Gerekli tüm hizmetleri etkinleştirin

gcloud services enable compute.googleapis.com
gcloud services enable servicedirectory.googleapis.com
gcloud services enable dns.googleapis.com

7. VPC ağı oluştur

VPC Ağı

Cloud Shell'den

gcloud compute networks create psc-lab --subnet-mode custom

Alt Ağ Oluştur

Cloud Shell'den

gcloud compute networks subnets create psclab-subnet \
--network psc-lab --range 10.0.0.0/24 --region us-central1 --enable-private-ip-google-access

Güvenlik Duvarı Kuralları Oluşturma

IAP'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki özellikleri içeren bir güvenlik duvarı kuralı oluşturun:

  • IAP kullanarak erişmek istediğiniz tüm sanal makine örnekleri için geçerlidir.
  • 35.235.240.0/20 IP aralığından gelen giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.

Cloud Shell'den

gcloud compute firewall-rules create psclab-ssh \
    --network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20

Cloud NAT örneği oluşturma

Cloud Router oluşturma

Cloud Shell'den

gcloud compute routers create crnat \
    --network psc-lab \
    --asn 65000 \
    --region us-central1

Cloud NAT oluşturma

Cloud Shell'den

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 uç noktası oluşturma

Private Service Connect uç noktası IP'sini <pscendpointip> yapılandırırken VPC'nde tanımlanmamış benzersiz bir IP adresi sağlamanız gerekir.

Cloud Shell'den

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=192.168.255.250 \
    --network=psc-lab

Laboratuvar süresince "pscendpointip" değerini saklayın.

pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")

echo $pscendpointip

Uç noktayı Google API'lerine ve hizmetlerine bağlamak için bir yönlendirme kuralı oluşturun.

Cloud Shell'den

gcloud compute forwarding-rules create pscendpoint \
    --global \
    --network=psc-lab \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Yapılandırılmış Private Service Connect uç noktalarını listeleme

Cloud Shell'den

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Yapılandırılmış Private Service Connect uç noktalarını açıklama

Cloud Shell'den

gcloud compute forwarding-rules describe \
    pscendpoint --global

9. Paket oluşturma

Cloud Storage paketi oluşturun ve BUCKET_NAME'i tercih ettiğiniz küresel olarak benzersiz bir adla değiştirin.

Cloud Shell'den

gsutil mb  -l us-central1 -b on gs://BUCKET_NAME

Laboratuvar süresince "BUCKET_NAME" adlı paketi saklayın.

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

10. DNS Yapılandırması

Private Service Connect uç noktası oluşturduğunuzda Hizmet Dizini, bu uç nokta kullanılarak sunulan API'ler ve hizmetler için bir DNS kaydı oluşturur.

DNS kayıtları, Private Service Connect uç nokta IP adresinizi gösterir ve şu biçimdedir: SERVICE-ENDPOINT.p.googleapis.com.

İsteği Private Service Connect uç noktanıza yönlendirmek için API isteklerinizde bu DNS adlarını kullanabilirsiniz. Bu DNS adlarını isteğinizin Ana Makine başlığında da kullanabilirsiniz.

Google API'lerine ve hizmetlerine erişen bir istemci veya uygulamayla Private Service Connect uç noktası kullanmak istiyorsanız istemcinizi ya da uygulamanızı p.googleapis.com DNS adlarını kullanacak şekilde güncelleyin.

Ayrıntılar için istemcinizin veya istemci kitaplığınızın belgelerine bakın. Örneğin:

  • Python: google-api-core paketindeki Client options class içinde api_endpoint'i yapılandırabilirsiniz.
  • Go: WithEndpoint'i api paketindeki Client options package içinde yapılandırabilirsiniz.
  • gcloud: You can configure api_endpoint_overrides using this command. gcloud config set api_endpoint_overrides/SERVICE ENDPOINT_URL

Örneğin: gcloud config set api_endpoint_overrides/storage https://storage-xyz.p.googleapis.com/storage/v1/

İstemcinizi veya uygulamanızı farklı bir uç nokta kullanacak şekilde yapılandıramıyorsanız varsayılan DNS adlarıyla eşleşen DNS kayıtları oluşturun. Örneğin, storage.googleapis.com. Varsayılan DNS adlarını kullanarak DNS kayıtları oluşturma başlıklı makaleyi inceleyin.

DNS kaydını doğrulama

Bulut konsolunda, Ağ Hizmetleri → Cloud DNS altında bulunan oluşturulmuş DNS girişini doğrulayın. Oluşturulan DNS adını ("p.googleapis.com") not edin.

11. Sanal makine oluşturma

Private Service Connect'i doğrulamak için kullanılan sanal makineyi (psc-instance-1) oluşturun.

Cloud Shell'den

  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 

Sanal makine örneğine (psc-instance-1) giriş yapın.

Cloud Shell aracılığıyla sanal makineye SSH ile bağlanma

gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

+ simgesini (aşağıdaki ekran görüntüsü) üç kez tıklayarak ek Cloud Shell terminalleri oluşturun.

69ea94e1527912bb.png

Herkese açık Google API'lerini doğrulamak için kullanılan sanal makineyi (psc-instance-2) oluşturun.

2. sekmeden

  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. sekmeden Cloud Shell aracılığıyla sanal makineye SSH bağlayın.

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. sekmeden Cloud Shell aracılığıyla psc-instance-1'e SSH ile bağlanın.

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. sekmeden Cloud Shell aracılığıyla psc-instance-2'ye SSH

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. Mevcut Gsutil davranışını doğrulama

4. sekmeden (psc-instance-2) tcpdump'ı başlatın ve DNS trafiğini izleyin.

sudo tcpdump -vv -i eth0 port 53

2. sekmeden (psc-instance-2) depolama grubu DNS aramasını inceleyin.

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME
gsutil -D ls gs://$BUCKET_NAME

gsutil hata ayıklama işlemini inceleyin. DNS çözümlemesi için HOST storage.googleapis.com kullanılır.

<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. sekmeden (psc-instance-2) depolama paketine erişilirken GoogleAPI.com ortak DNS A kayıtlarının kullanıldığını doğrulayın.

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 davranışını değiştirme

Önceki bir adımda, PSC uç noktası IP adresiyle eşlenmiş bir özel DNS bölgesi ve A kaydı oluşturduğunuzu hatırlayın. Sonraki adımda, psc-instance-1'deki sanal makine BOTO dosyası güncellenerek gsutil'in nasıl davranacağı kontrol edilecek.

1. sekmedeki (psc-instance-1) sanal makine örneği terminalinden varsayılan BOTO yapılandırmasını görüntüleyin.

[psc-instance ~]$ more  /etc/boto.cfg

Çıkış (project_id değeriniz farklı olacaktır)

[GSUtil]
default_project_id  = [your project number]
default_api_version = 2

[GoogleCompute]
service_account = default

Nano veya VI Editor'ı kullanarak BOTO yapılandırmasını güncelleyin, tüm girişleri kopyalayıp yapıştırdığınızdan emin olun.

Örnek: sudo nano /etc/boto.cfg

veya

Örnek: sudo vi /etc/boto.cfg

Sanal makine örneği terminali sekmesi 1'den(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

Yapılandırmayı doğrulayın, [Kimlik Bilgileri] sırası DNS araması için önemlidir.

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. Güncellenen gsutil arama davranışını doğrulama

3. sekmeden (psc-instance-1) tcpdump'ı başlatın ve DNS trafiğini izleyin.

sudo tcpdump -vv -i eth0 port 53

1. sekmeden (psc-instance-1) depolama paketi gsutil aramasıyla ilgili inceleme yapın.

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

gsutil -D ls gs://$BUCKET_NAME

Hata ayıklama günlükleri, depolama paketine "pscendpoint" adlı Private Service Connect uç noktası üzerinden erişilebildiğini onaylıyor.

Çıkış:

<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. sekmede (psc-instance-1), PSC uç nokta IP'nizin depolama paketinize erişmeye çalışırken kullanılan DNS A kaydı olduğunu doğrulayın.

@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)

DNS çözümlemesi için artık Private Service Connect uç noktası IP'sinin kullanıldığını doğrulayın.

tab1'den

nslookup storage-pscendpoint.p.googleapis.com

Çıkış

@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. Temizleme adımları

Sanal makine örneğinden çıkma (tüm sekmeler)

exit

Tek bir Cloud Shell terminalinden laboratuvar bileşenlerini silme

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'da doğru projeyi görüntülediğinizden emin olun, ardından Ağ Hizmetleri → Cloud DNS'yi seçin.

16. Tebrikler!

Codelab'i tamamladığınız için tebrik ederiz.

İşlediğimiz konular

  • Private Service Connect kullanım alanları
  • Ağ gereksinimleri
  • Desteklenen API'ler
  • Private Service Connect uç noktası oluşturduysanız
  • Cloud Storage paketi oluşturma
  • BOTO yapılandırma dosyasını güncellediyseniz
  • NAT ağ geçidi oluşturduysanız
  • PSC hizmet uç noktanızla çözümlenen VM1'de gsutil list komutunu çalıştırın.
  • Herkese açık googleapis.com'a göre çözümlenen VM2'de gsutil list komutunu çalıştırın.
  • DNS çözümlemesini doğrulamak için Tcpdump'ı kullanma