IPv6 adreslerini kullanarak şirket içi ana makinelerden Google API'lerine erişme

1. Giriş

Şirket içi ana makineler için özel Google erişimi, şirket içi sistemlerin trafiği Cloud VPN tüneli veya Cloud Interconnect için bir VLAN eki üzerinden yönlendirerek Google API'lerine ve hizmetlerine bağlanmasını sağlar. Şirket içi ana makineler için Özel Google Erişimi, Google API'lerine ve hizmetlerine internet üzerinden bağlanmaya alternatif bir yöntemdir.

Şirket içi ana makineler için Özel Google Erişimi, Google API'leri isteklerini sanal IP adreslerine (VIP) yönlendirmenizi gerektirir. IPv6 için aşağıdaki IP adresleri kullanılır:

  • private.googleapis.com için: 2600:2d00:0002:2000::/64
  • restricted.googleapis.com için: 2600:2d00:0002:1000::/64

Seçtiğiniz VIP, hangi hizmetlere erişebileceğinizi belirler. Bu codelab'de private.googleapis.com'u kullanacağız. Daha fazla bilgi için Alan seçenekleri başlıklı makaleyi inceleyin.

Bu codelab'de, IPv6 adreslerini kullanan şirket içi ana makineler için Özel Google Erişimi'nin nasıl etkinleştirileceği açıklanmaktadır. Şirket içi bir ortamı temsil etmek için on-premises-vpc adlı bir VPC ağı oluşturacaksınız. Dağıtımınızda on-premises-vpc olmaz. Bunun yerine, şirket içi veri merkezinize veya bulut sağlayıcınıza hibrit ağ oluşturma kullanılır.

Ne oluşturacaksınız?

Bu codelab'de, Şekil 1'de gösterildiği gibi, CNAME *.googleapis.com'u private.googleapis.com IPv6 adresine 2600:2d00:0002:2000::/64 kullanarak bulut depolama API'sine şirket içi erişimi gösteren uçtan uca bir IPv6 ağı oluşturacaksınız.

Şekil 1

a0fc56abf24f3535.png

Neler öğreneceksiniz?

  • Çift yığınlı VPC ağı oluşturma
  • IPv6 ile HA VPN oluşturma
  • Özel Google Erişimi'ne erişmek için DNS'yi güncelleme
  • Özel Google Erişimi bağlantısını kurma ve doğrulama

İhtiyacınız olanlar

  • Google Cloud projesi

2. Başlamadan önce

Proje, codelab'i destekleyecek şekilde güncellenmelidir.

Bu Codelab, Cloud Shell'de gcloud yapılandırma uygulamasını kolaylaştırmak için $variables kullanır.

Cloud Shell'de aşağıdakileri yapın:

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

3. Transit VPC'yi oluşturma

f6932f551b5acac0.png

Geçiş VPC ağı oluşturma

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional

4. Şirket içi ağı oluşturma

58d75cbc9cb20a51.png

Bu VPC ağı, şirket içi bir ortamı temsil eder.

Şirket içi VPC ağını oluşturma

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional

Alt ağı oluşturun

Cloud Shell'de aşağıdakileri yapın:

gcloud compute networks subnets create on-premises-subnet1-us-central1 --project=$projectname --range=172.16.10.0/27 --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL --network=on-premises-vpc --region=us-central1

5. Transit-vpc ve şirket içi-vpc için HA VPN oluşturma

Transit VPC için HA VPN ağ geçidini oluşturun.

a0fc56abf24f3535.png

Her ağ geçidi oluşturulduğunda, her ağ geçidi arayüzü için biri olmak üzere iki harici IPv4 adresi otomatik olarak ayrılır. Yapılandırma adımlarında daha sonra kullanmak üzere bu IP adreslerini not edin.

Cloud Shell'de, yığın türü IPV4_IPV6 olan HA VPN ağ geçidini oluşturun.

gcloud compute vpn-gateways create transit-vpc-vpngw \
   --network=transit-vpc\
   --region=us-central1 \
   --stack-type=IPV4_IPV6

Şirket içi vpc için HA VPN GW'yi oluşturun.

Cloud Shell'de, yığın türü IPV4_IPV6 olan HA VPN ağ geçidini oluşturun.

gcloud compute vpn-gateways create on-premises-vpc-vpngw \
   --network=on-premises-vpc\
   --region=us-central1 \
   --stack-type=IPV4_IPV6

HA VPN GW oluşturma işlemini doğrulama

Konsolu kullanarak Karma Bağlantı → VPN → CLOUD VPN GATEWAYS'e (Cloud VPN Ağ Geçitleri) gidin.

c8eed6ca929935bc.png

Transit-vpc için Cloud Router'ı oluşturun.

Cloud Shell'de us-central1 bölgesinde bulunan Cloud Router'ı oluşturun.

gcloud compute routers create transit-vpc-cr-us-central1 \
   --region=us-central1 \
   --network=transit-vpc\
   --asn=65001

şirket içi-vpc için Cloud Router oluşturun

Cloud Shell'de us-central1 bölgesinde bulunan Cloud Router'ı oluşturun.

gcloud compute routers create on-premises-vpc-cr-us-central1 \
   --region=us-central1 \
   --network=on-premises-vpc \
   --asn=65002

Transit-vpc için VPN tünelleri oluşturun

Her HA VPN ağ geçidinde iki VPN tüneli oluşturursunuz.

VPN tüneli oluşturma

Cloud Shell'de tunnel0'ı oluşturun:

gcloud compute vpn-tunnels create transit-vpc-tunnel0 \
    --peer-gcp-gateway on-premises-vpc-vpngw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router transit-vpc-cr-us-central1 \
    --vpn-gateway transit-vpc-vpngw \
    --interface 0

VPN tüneli oluşturma

Cloud Shell'de tunnel1'i oluşturun:

gcloud compute vpn-tunnels create transit-vpc-tunnel1 \
    --peer-gcp-gateway on-premises-vpc-vpngw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router transit-vpc-cr-us-central1 \
    --vpn-gateway transit-vpc-vpngw \
    --interface 1

Şirket içi VPC için VPN tünellerini oluşturun

Her HA VPN ağ geçidinde iki VPN tüneli oluşturursunuz.

VPN tüneli oluşturma

Cloud Shell'de tunnel0'ı oluşturun:

gcloud compute vpn-tunnels create on-premises-tunnel0 \
    --peer-gcp-gateway transit-vpc-vpngw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-premises-vpc-cr-us-central1 \
    --vpn-gateway on-premises-vpc-vpngw \
    --interface 0

VPN tüneli oluşturma

Cloud Shell'de tunnel1'i oluşturun:

gcloud compute vpn-tunnels create on-premises-tunnel1 \
    --peer-gcp-gateway transit-vpc-vpngw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-premises-vpc-cr-us-central1 \
    --vpn-gateway on-premises-vpc-vpngw \
    --interface 1

VPN tüneli oluşturma işlemini doğrulama

Konsolu kullanarak Hybrid Connectivity (Karma Bağlantı) → VPN → CLOUD VPN TUNNELS (CLOUD VPN TÜNELLERİ) bölümüne gidin.

85fd5aef4b2c4010.png

BGP oturumları oluşturma

Bu bölümde, Cloud Router arayüzlerini ve BGP eşlerini yapılandıracaksınız.

IPv6 trafiğine izin veren VPN tünelleri oluştururken add-bgp-peer komutunu çalıştırdığınızda --enable-ipv6 değerini belirtin.

Transit-vpc için BGP arayüzü ve eşleme oluşturma

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface transit-vpc-cr-us-central1 \
    --interface-name if-tunnel1-to-onpremise \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel transit-vpc-tunnel0 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer transit-vpc-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onpremise \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region us-central1 \
    --enable-ipv6 \
    --ipv6-nexthop-address 2600:2d00:0:3:0:0:0:1 \
    --peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:2

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface transit-vpc-cr-us-central1 \
    --interface-name if-tunnel2-to-onpremise \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel transit-vpc-tunnel1 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer transit-vpc-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel2 \
    --interface if-tunnel2-to-onpremise \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region us-central1 \
    --enable-ipv6 \
    --ipv6-nexthop-address 2600:2d00:0:3:0:0:0:11 \
    --peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:12

Şirket içi VPC için BGP arayüzü ve eşlemesi oluşturma

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface on-premises-vpc-cr-us-central1\
    --interface-name if-tunnel1-to-hub-vpc \
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-premises-tunnel0 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer on-premises-vpc-cr-us-central1 \
    --peer-name bgp-transit-vpc-tunnel0 \
    --interface if-tunnel1-to-hub-vpc \
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region us-central1 \
    --enable-ipv6 \
    --ipv6-nexthop-address 2600:2d00:0:3:0:0:0:2 \
    --peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:1

Cloud Shell'de BGP arayüzünü oluşturun:

gcloud compute routers add-interface on-premises-vpc-cr-us-central1\
    --interface-name if-tunnel2-to-hub-vpc \
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-premises-tunnel1 \
    --region us-central1

Cloud Shell'de BGP eşini oluşturun:

gcloud compute routers add-bgp-peer  on-premises-vpc-cr-us-central1\
    --peer-name bgp-transit-vpc-tunnel1\
    --interface if-tunnel2-to-hub-vpc \
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region us-central1 \
    --enable-ipv6 \
    --ipv6-nexthop-address 2600:2d00:0:3:0:0:0:12 \
    --peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:11

VPN tüneli ayrıntılarını görüntülemek için Karma Bağlantı → VPN'e gidin.

e100e31ea22c8124.png

Transit-vpc'nin HA VPN üzerinden IPv4 ve IPv6 rotalarını öğrendiğini doğrulayın.

HA VPN tünelleri ve BGP oturumları oluşturulduğundan, şirket içi-vpc'deki rotalar transit-vpc'den öğrenilir. Konsolu kullanarak VPC ağı → VPC ağları → transit-vpc → ROTALAR'a gidin.

Aşağıda gösterilen öğrenilmiş IPv4 ve IPv6 dinamik rotalarını inceleyin:

216bde7d08d75ec4.png

Şirket içi VPC'nin HA VPN üzerinden rotaları öğrenmediğini doğrulayın.

Transit-vpc'nin alt ağı yoktur. Bu nedenle Cloud Router, şirket içi-vpc'ye herhangi bir alt ağ bildirmez. Konsolu kullanarak VPC ağı → VPC ağları → şirket içi-vpc → ROTALAR'a gidin.

6. IPv6 private.googleapis.com VIP'sini duyurun

Özel Google Erişimi'ne şirket içi ağdan erişmek için transit-vpc'den özel bir rota bildirme oluşturmanız gerekir. IPv6 adresi 2600:2d00:0002:2000::, şirket içi ortama duyurulur ve yerel DNS güncellendikten sonra iş yükleri tarafından Cloud Storage, Cloud BigQuery ve Cloud Bigtable gibi Google API'lerine erişmek için kullanılır.

Bu codelab'de, VPC Hizmet Kontrolleri tarafından desteklenip desteklenmediklerine bakılmaksızın çoğu Google API'sine ve hizmetine API erişimini etkinleştireceksiniz.

Konsolda Hybrid Connectivity (Hibrit Bağlantı) → Cloud Routers (Cloud Yönlendiriciler) → transit-vpc-cr-us-central1'e gidin ve EDIT'i (DÜZENLE) seçin.

3e36e3b5ea741ec5.png

Reklamı yapılan rotalar bölümünde Özel rotalar oluştur seçeneğini belirleyin, alanları aşağıdaki örneğe göre güncelleyin, BİTTİ'yi seçin ve ardından KAYDET'i tıklayın.

9283aba7b214f70d.png

Şirket içi VPC'nin IPv6 rotalarını öğrendiğini doğrulayın.

IPv6 private.googleapis.com VIP'si artık transit-vpc'den duyurulduğundan şirket içi-vpc, VIP için IPv6 dinamik rotalarını öğrenmiş olur. Konsolu kullanarak VPC ağı → VPC ağları → şirket içi-vpc → ROTALAR'a gidin.

Transit-vpc'den bildirilen IPv6 rotalarını inceleyin:

caf3b79b035b2a20.png

7. Özel Google Erişimi'ni kullanarak Google API'leriyle iletişim kurma

Aşağıdaki bölümde, IPv6 private.googleapis.com VIP'sini kullanarak Cloud Storage'a bağlantıyı doğrulayacağız. Bunun için şirket içi VPC'de aşağıdaki işlemleri yapmamız gerekir.

  • SSH erişimi için Identity-Aware Proxy (IAP) erişimine izin veren bir giriş güvenlik duvarı kuralı oluşturun.
  • tcpdump ve dnsutils'i indirmek için Cloud Router ve Cloud NAT oluşturun.
  • googleapis.com için özel bir Cloud DNS bölgesi oluşturun.
  • Cloud Storage paketi oluşturun.

IAP güvenlik duvarı kuralını 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'de IAP güvenlik duvarı kuralını oluşturun.

gcloud compute firewall-rules create ssh-iap-on-premises-vpc \
    --network on-premises-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

Cloud Router ve NAT yapılandırması

Sanal makine örneğinde harici IP adresi bulunmadığı için yazılım paketi yükleme amacıyla bu kod laboratuvarında Cloud NAT kullanılır.

Cloud Shell'de Cloud Router'ı oluşturun.

gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1

Cloud Shell'de NAT ağ geçidini oluşturun.

gcloud compute routers nats create on-premises-nat-us-central1 --router=on-premises-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

Şirket içi test kutusu olan bir test örneği oluşturun

IPv6 private.googleapis.com VIP'ye bağlantıyı test etmek ve doğrulamak için kullanılacak bir test örneği oluşturun.

Cloud Shell'de örneği oluşturun.

gcloud compute instances create on-premises-testbox \
    --project=$projectname \
    --machine-type=e2-micro \
    --stack-type=IPV4_IPV6 \
    --image-family debian-10 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=on-premises-subnet1-us-central1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump -y
      sudo apt-get install dnsutils -y"

Cloud DNS özel bölgesi oluşturma

*.googleapis.com için özel bir bölge ve kayıtlar oluşturmak üzere Cloud DNS'yi kullanacağız. Gerekli adımlar aşağıda verilmiştir.

Cloud Shell'de v6-googleapis.com özel DNS bölgesini oluşturun.

gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"

Cloud Shell'de, 2600:2d00:0002:2000:: IPv6 adresini işaret eden private.googleapis.com için AAAA kaydı oluşturun.

gcloud dns --project=$projectname record-sets create private.googleapis.com. --zone="v6-googleapis" --type="AAAA" --ttl="300" --rrdatas="2600:2d00:0002:2000::"

Cloud Shell'de, *.googleapis.com için private.googleapis.com'a yönlendiren bir CNAME oluşturun.

gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."

Cloud DNS özel bölgesini doğrulama

Ağ hizmetleri → Cloud DNS → v6-googleapis'e gidin.

455e355195a2a48f.png

Cloud Storage paketi oluşturma

Cloud Shell'de bir Cloud Storage paketi oluşturun ve bucket_name yerine tercih ettiğiniz, genel olarak benzersiz bir ad girin. Ad zaten kullanılıyorsa başka bir ad deneyin.

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

8. IPv6 adreslerini kullanarak Google API'lerine erişme ve bunları doğrulama

Aşağıdaki bölümde, iki Cloud Shell terminaline SSH bağlantısı oluşturacaksınız. İlk terminal, tcpdump kullanılarak IPv6 aramasının doğrulanması için kullanılırken ikinci terminal, bulut depolama alanı paketine erişim için kullanılır.

Cloud Shell'de, şirket içi-testbox test örneğine SSH uygulayın.

 gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"

Birinci Cloud Shell terminalinde tcpdump'ı başlatın ve DNS trafiği için 53 numaralı bağlantı noktasını izleyin.

sudo tcpdump -nn -i ens4 port 53

Aşağıda bir örnek verilmiştir.

user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53

"+"yı seçerek yeni bir Cloud Shell terminali açın. Yeni sekme açıldıktan sonra proje adı değişkenini güncelleyin.

Cloud Shell'de proje adı değişkenini güncelleyin.

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

İkinci Cloud Shell'de şirket içi-testbox test örneğine SSH uygulayın.

gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"

DNS aramasını doğrulamak için dig komutunu kullanma

İki numaralı Cloud Shell terminalinde storage.googleapis.com'a karşı bir dig işlemi gerçekleştirin.

dig AAAA storage.googleapis.com

YANIT BÖLÜMÜ'nü inceleyin. Özel DNS bölgesi storage.googleapis.com, private.googleapis.com AAAA'ya CNAME'dir 2600:2d00:2:2000::. Aşağıda örnek verilmiştir:

user@on-premises-testbox:~$ dig AAAA storage.googleapis.com

; <<>> DiG 9.11.5-P4-5.1+deb10u8-Debian <<>> AAAA storage.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2782
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;storage.googleapis.com.                IN      AAAA

;; ANSWER SECTION:
storage.googleapis.com. 300     IN      CNAME   private.googleapis.com.
private.googleapis.com. 300     IN      AAAA    2600:2d00:2:2000::

;; Query time: 9 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Mon Feb 20 01:56:33 UTC 2023
;; MSG SIZE  rcvd: 101

Cloud Shell terminalinde, AAAA 2600:2d00:2:2000:: için DNS çözümlemesini daha da doğrulayan tcpdump'ı inceleyin.

user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
01:56:33.473208 IP 172.16.10.3.41476 > 169.254.169.254.53: 2782+ [1au] AAAA? storage.googleapis.com. (63)
01:56:33.482580 IP 169.254.169.254.53 > 172.16.10.3.41476: 2782 2/0/1 CNAME private.googleapis.com., AAAA 2600:2d00:2:2000:: (101)

dig ve tcpdump'a göre, storage.googleapis.com için DNS çözümlemesinin 2600:2d00:2:2000:: (private.googleapis.com'un IPv6 adresi) üzerinden yapıldığı sonucuna varabiliriz.

Bulut depolama alanına erişimi doğrulamak için gsutil list komutunu çalıştırın.

İkinci Cloud Shell terminalinde, gsutil'i kullanarak daha önce oluşturulan depolama paketiyle ilgili bir liste oluşturun. bucket_name'i daha önce oluşturduğunuz paketle değiştirin.

gsutil -d ls gs://bucket_name

codelab-ipv6 adlı Cloud Storage paketinin kullanıldığı örnekte, storage.googleapis.com ve HTTP/1.1 200 OK değerlerini gösteren hata ayıklama çıkışını inceleyin.

user@on-premises-testbox:~$ gsutil -d ls gs://codelab-ipv6
***************************** WARNING *****************************
*** You are running gsutil with debug output enabled.
*** Be aware that debug output includes authentication credentials.
*** Make sure to remove the value of the Authorization header for
*** each HTTP request printed to the console prior to posting to
*** a public medium such as a forum post or Stack Overflow.
***************************** WARNING *****************************
gsutil version: 5.19
checksum: 49a18b9e15560adbc187bab09c51b5fd (OK)
boto version: 2.49.0
python version: 3.9.16 (main, Jan 10 2023, 02:29:25) [Clang 12.0.1 ]
OS: Linux 4.19.0-23-cloud-amd64
multiprocessing available: True
using cloud sdk: True
pass cloud sdk credentials to gsutil: True
config path(s): /etc/boto.cfg
gsutil path: /usr/lib/google-cloud-sdk/bin/gsutil
compiled crcmod: True
installed via package manager: False
editable install: False
shim enabled: False
Command being run: /usr/lib/google-cloud-sdk/platform/gsutil/gsutil -o GSUtil:default_project_id=myprojectid -o GoogleCompute:service_account=default -d ls gs://codelab-ipv6
config_file_list: ['/etc/boto.cfg']
config: [('working_dir', '/mnt/pyami'), ('debug', '0'), ('https_validate_certificates', 'true'), ('working_dir', '/mnt/pyami'), ('debug', '0'), ('default_project_id', 'myproject'), ('default_api_version', '2')]
DEBUG 0220 02:01:14.713012 multiprocess_file_storage.py] Read credential file
INFO 0220 02:01:14.714742 base_api.py] Calling method storage.objects.list with StorageObjectsListRequest: <StorageObjectsListRequest
 bucket: 'codelab-ipv6'
 delimiter: '/'
 maxResults: 1000
 projection: ProjectionValueValuesEnum(noAcl, 1)
 versions: False>
INFO 0220 02:01:14.715939 base_api.py] Making http GET to https://storage.googleapis.com/storage/v1/b/codelab-ipv6/o?alt=json&fields=prefixes%2Citems%2Fname%2CnextPageToken&delimiter=%2F&maxResults=1000&projection=noAcl&versions=False
INFO 0220 02:01:14.716369 base_api.py] Headers: {'accept': 'application/json',
 'accept-encoding': 'gzip, deflate',
 'content-length': '0',
 'user-agent': 'apitools Python/3.9.16 gsutil/5.19 (linux) analytics/disabled '
               'interactive/True command/ls google-cloud-sdk/416.0.0'}
INFO 0220 02:01:14.716875 base_api.py] Body: (none)
connect: (storage.googleapis.com, 443)
send: b'GET /storage/v1/b/codelab-ipv6/o?alt=json&fields=prefixes%2Citems%2Fname%2CnextPageToken&delimiter=%2F&maxResults=1000&projection=noAcl&versions=False HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nuser-agent: apitools Python/3.9.16 gsutil/5.19 (linux) analytics/disabled
<SNIP>
reply: 'HTTP/1.1 200 OK\r\n'
header: X-GUploader-UploadID: ADPycdvunHlbN1WQBxDr_LefzLaH_HY1bBH22X7IxX9sF1G2Yo_7-nhYwjxUf6N7AF9Zg_JDwPxYtuNJiFutfd6qauEfohYPs7mE
header: Content-Type: application/json; charset=UTF-8
header: Date: Mon, 20 Feb 2023 02:01:14 GMT
header: Vary: Origin
header: Vary: X-Origin
header: Cache-Control: private, max-age=0, must-revalidate, no-transform
header: Expires: Mon, 20 Feb 2023 02:01:14 GMT
header: Content-Length: 3
header: Server: UploadServer
INFO 0220 02:01:14.803286 base_api.py] Response of type Objects: <Objects
 items: []
 prefixes: []>
user@on-premises-testbox:~$ 

Cloud Shell terminalinde, AAAA 2600:2d00:2:2000:: için DNS çözümlemesini daha da doğrulayan tcpdump'ı inceleyin.

eepakmichael@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
02:01:14.725000 IP 172.16.10.3.48792 > 169.254.169.254.53: 7056+ A? storage.googleapis.com. (40)
02:01:14.725106 IP 172.16.10.3.48792 > 169.254.169.254.53: 50841+ AAAA? storage.googleapis.com. (40)
02:01:14.732516 IP 169.254.169.254.53 > 172.16.10.3.48792: 50841 2/0/0 CNAME private.googleapis.com., AAAA 2600:2d00:2:2000:: (90)

Şirket içi test kutusu örneğinin işletim sisteminden çıkıp Cloud Shell istemine dönün.

9. Temizleme

Cloud Shell'de aşağıdakileri yapın:

gcloud compute vpn-tunnels delete transit-vpc-tunnel0 transit-vpc-tunnel1 on-premises-tunnel1   --region=us-central1 --quiet

gcloud compute vpn-tunnels delete on-premises-tunnel0 on-premises-tunnel1 --region=us-central1 --quiet

gcloud compute vpn-gateways delete on-premises-vpc-vpngw transit-vpc-vpngw --region=us-central1 --quiet

gcloud compute routers delete transit-vpc-cr-us-central1  on-premises-vpc-cr-us-central1 on-premises-cr-us-central1-nat --region=us-central1 --quiet

gcloud compute instances delete on-premises-testbox --zone=us-central1-a --quiet

gcloud compute networks subnets delete on-premises-subnet1-us-central1 --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap-on-premises-vpc --quiet

gcloud compute networks delete on-premises-vpc --quiet


gcloud compute networks delete transit-vpc --quiet

gsutil rb gs://bucket_name

gcloud dns record-sets delete *.googleapis.com. \
    --type=CNAME \
    --zone=v6-googleapis
        
gcloud dns record-sets delete private.googleapis.com. \
        --type=AAAA \
        --zone=v6-googleapis
        
gcloud dns managed-zones delete v6-googleapis

10. Tebrikler

Tebrikler, IPv6 ile Özel Google Erişimi'ni başarıyla yapılandırdınız ve doğruladınız.

Geçiş ve şirket içi altyapıyı oluşturup Google API alanları için IPv6 kullanarak çözümlemeyi etkinleştiren özel bir DNS bölgesi oluşturdunuz. dig ve Cloud Storage'ı kullanarak IPv6 erişimini nasıl test edip doğrulayacağınızı öğrendiniz.

Cosmopup, codelab'lerin harika olduğunu düşünüyor.

8c2a10eb841f7b01.jpeg

Yapabilecekleriniz

Şu codelab'lere göz atın:

Daha fazla bilgi ve videolar

Referans belgeler