1. परिचय
ऑन-प्रिमाइसेस होस्ट के लिए Private Google Access की सुविधा, ऑन-प्रिमाइसेस सिस्टम को Google के एपीआई और सेवाओं से कनेक्ट करने का तरीका उपलब्ध कराती है. इसके लिए, Cloud वीपीएन टनल या Cloud Interconnect के लिए वीएलएएन अटैचमेंट के ज़रिए ट्रैफ़िक को रूट किया जाता है. ऑन-प्रिमाइसेस होस्ट के लिए Private Google Access, इंटरनेट के ज़रिए Google API और सेवाओं से कनेक्ट करने का एक विकल्प है.
ऑन-प्रिमाइसेस होस्ट के लिए Private Google Access की सुविधा का इस्तेमाल करने के लिए, आपको Google API के अनुरोधों को वर्चुअल आईपी पतों (वीआईपी) पर भेजना होगा. IPv6 के लिए, इन आईपी पतों का इस्तेमाल किया जाता है:
- private.googleapis.com के लिए: 2600:2d00:0002:2000::/64
- restricted.googleapis.com के लिए: 2600:2d00:0002:1000::/64
चुने गए वीआईपी के आधार पर, यह तय होता है कि आपको किन सेवाओं का ऐक्सेस मिलेगा. इस कोडलैब में, हम private.googleapis.com का इस्तेमाल करेंगे. ज़्यादा जानकारी के लिए, डोमेन के विकल्प देखें.
इस कोडलैब में, IPv6 पते का इस्तेमाल करने वाले ऑन-प्रिमाइसेस होस्ट के लिए, Private Google Access को चालू करने का तरीका बताया गया है. आपको on-premises-vpc नाम का वीपीसी नेटवर्क सेट अप करना होगा, ताकि ऑन-प्रिमाइसेस एनवायरमेंट को दिखाया जा सके. आपके डिप्लॉयमेंट के लिए, ऑन-प्रिमाइसेस-वीपीसी मौजूद नहीं होगा. इसके बजाय, आपके ऑन-प्रिमाइसेस डेटा सेंटर या क्लाउड सेवा देने वाली कंपनी के लिए हाइब्रिड नेटवर्किंग का इस्तेमाल किया जाएगा.
आपको क्या बनाना है
इस कोडलैब में, आपको एक एंड-टू-एंड IPv6 नेटवर्क बनाना है. इसमें, CNAME *.googleapis.com का इस्तेमाल करके, क्लाउड स्टोरेज एपीआई को निजी.googleapis.com IPv6 पते 2600:2d00:0002:2000::/64 पर ऑन-प्रिमाइसेस ऐक्सेस करने का तरीका दिखाया गया है. इसे इमेज 1 में दिखाया गया है.
इमेज 1

आपको क्या सीखने को मिलेगा
- डुअल स्टैक वीपीसी नेटवर्क बनाने का तरीका
- IPv6 के साथ HA VPN बनाने का तरीका
- Private Google Access को ऐक्सेस करने के लिए, डीएनएस को अपडेट करने का तरीका
- Private Google Access कनेक्टिविटी को कैसे सेट अप और उसकी पुष्टि करें
आपको किन चीज़ों की ज़रूरत होगी
- Google Cloud प्रोजेक्ट
2. शुरू करने से पहले
कोड लैब के साथ काम करने के लिए प्रोजेक्ट को अपडेट करना
इस कोडलैब में, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए, $variables का इस्तेमाल किया गया है.
Cloud Shell में, यह तरीका अपनाएं:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
3. ट्रांज़िट वीपीसी बनाना

ट्रांज़िट वीपीसी नेटवर्क बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
4. ऑन-प्रिमाइसेस नेटवर्क बनाना

यह वीपीसी नेटवर्क, ऑन-प्रिमाइसेस एनवायरमेंट को दिखाता है.
ऑन-प्रिमाइसेस वीपीसी नेटवर्क बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
सबनेट बनाना
Cloud Shell में, यह तरीका अपनाएं:
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. ट्रांज़िट-वीपीसी और ऑन-प्रिमाइसेस-वीपीसी के लिए एचए वीपीएन बनाना
ट्रांज़िट वीपीसी के लिए HA VPN GW बनाएं

हर गेटवे बनाने पर, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इनमें से एक पता हर गेटवे इंटरफ़ेस के लिए होता है. इन आईपी पतों को नोट कर लें, ताकि कॉन्फ़िगरेशन के चरणों में इनका इस्तेमाल किया जा सके.
Cloud Shell में, IPV4_IPV6 स्टैक टाइप वाला HA VPN GW बनाएं.
gcloud compute vpn-gateways create transit-vpc-vpngw \
--network=transit-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
ऑन-प्रिमाइसेस-वीपीसी के लिए HA VPN GW बनाएं
Cloud Shell में, स्टैक टाइप IPV4_IPV6 के साथ HA VPN GW बनाएं
gcloud compute vpn-gateways create on-premises-vpc-vpngw \
--network=on-premises-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
एचए वीपीएन गेटवे बनाने की पुष्टि करना
कंसोल का इस्तेमाल करके, हाइब्रिड कनेक्टिविटी → वीपीएन → क्लाउड वीपीएन गेटवे पर जाएं.

ट्रांज़िट वीपीसी के लिए Cloud Router बनाना
Cloud Shell में, us-central1 में मौजूद Cloud Router बनाएं
gcloud compute routers create transit-vpc-cr-us-central1 \
--region=us-central1 \
--network=transit-vpc\
--asn=65001
ऑन-प्रिमाइसेस-वीपीसी के लिए Cloud Router बनाएं
Cloud Shell में, us-central1 में मौजूद Cloud Router बनाएं
gcloud compute routers create on-premises-vpc-cr-us-central1 \
--region=us-central1 \
--network=on-premises-vpc \
--asn=65002
ट्रांज़िट-वीपीएन के लिए वीपीएन टनल बनाना
आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.
वीपीएन टनल बनाएं0
Cloud Shell में, tunnel0 बनाएं:
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
वीपीएन टनल1 बनाएं
Cloud Shell में, tunnel1 बनाएं:
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
ऑन-प्रिमाइसेस-वीपीसी के लिए वीपीएन टनल बनाएं
आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.
वीपीएन टनल बनाएं0
Cloud Shell में, tunnel0 बनाएं:
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
वीपीएन टनल1 बनाएं
Cloud Shell में, tunnel1 बनाएं:
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
वीपीएन टनल बनाने की पुष्टि करना
कंसोल का इस्तेमाल करके, हाइब्रिड कनेक्टिविटी → वीपीएन → क्लाउड वीपीएन टनल पर जाएं.

BGP सेशन बनाना
इस सेक्शन में, Cloud Router इंटरफ़ेस और बीजीपी पियर कॉन्फ़िगर किए जाते हैं.
IPv6 ट्रैफ़िक की अनुमति देने वाले वीपीएन टनल बनाते समय, --enable-ipv6 कमांड चलाते समय --enable-ipv6 तय करें.add-bgp-peer
ट्रांज़िट वीपीसी के लिए बीजीपी इंटरफ़ेस और पीयरिंग बनाना
Cloud Shell में, BGP इंटरफ़ेस बनाएं:
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 में, BGP पीयर बनाएं:
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 में, BGP इंटरफ़ेस बनाएं:
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 में, BGP पीयर बनाएं:
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
ऑन-प्रिमाइसेस-वीपीसी के लिए बीजीपी इंटरफ़ेस और पियरिंग बनाना
Cloud Shell में, BGP इंटरफ़ेस बनाएं:
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 में, BGP पीयर बनाएं:
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 में, BGP इंटरफ़ेस बनाएं:
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 में, BGP पीयर बनाएं:
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
वीपीएन टनल की जानकारी देखने के लिए, हाइब्रिड कनेक्टिविटी → वीपीएन पर जाएं.

पुष्टि करें कि ट्रांज़िट-वीपीसी, एचए वीपीएन पर IPv4 और IPv6 रास्तों के बारे में जान रहा है
एचए वीपीएन टनल और बीजीपी सेशन सेट अप होने की वजह से, ऑन-प्रिमाइसेस-वीपीसी के रूट, ट्रांज़िट-वीपीसी से मिलते हैं. कंसोल का इस्तेमाल करके, वीपीसी नेटवर्क → वीपीसी नेटवर्क → ट्रांज़िट-वीपीएन → राउट पर जाएं.
यहां दिए गए IPv4 और IPv6 के डाइनैमिक राउट देखें:

पुष्टि करें कि ऑन-प्रिमाइसेस-वीपीसी, एचए वीपीएन पर राउट नहीं सीख रहा है
ट्रांज़िट वीपीसी में कोई सबनेट नहीं है. इसलिए, क्लाउड राउटर, ऑन-प्रिमाइसेस वीपीसी को किसी भी सबनेट का विज्ञापन नहीं दिखाएगा. कंसोल का इस्तेमाल करके, VPC नेटवर्क → वीपीसी नेटवर्क → on-premises-vpc → राउट पर जाएं.
6. IPv6 private.googleapis.com वीआईपी का विज्ञापन दिखाएं
ऑन-प्रिमाइसेस से Private Google Access को ऐक्सेस करने के लिए, आपको ट्रांज़िट-वीपीसी से कस्टम रूट का विज्ञापन बनाना होगा. लोकल डीएनएस अपडेट होने के बाद, IPv6 पते 2600:2d00:0002:2000:: का विज्ञापन ऑन-प्रिमाइसेस एनवायरमेंट में दिखाया जाएगा. साथ ही, इसका इस्तेमाल वर्कलोड, Google API को ऐक्सेस करने के लिए करेंगे. जैसे, Cloud Storage, Cloud BigQuery, और Cloud Bigtable.
इस कोडलैब में, आपको Google के ज़्यादातर एपीआई और सेवाओं के लिए एपीआई ऐक्सेस चालू करना होगा. भले ही, वे वीपीसी सेवा कंट्रोल के साथ काम करते हों या नहीं.
कंसोल में, हाइब्रिड कनेक्टिविटी → क्लाउड राउटर → transit-vpc-cr-us-central1 पर जाएं. इसके बाद, बदलाव करें को चुनें.

विज्ञापन दिखाए गए रास्ते सेक्शन में, कस्टम रास्ते बनाएं विकल्प चुनें. इसके बाद, नीचे दिए गए उदाहरण के आधार पर फ़ील्ड अपडेट करें. हो गया चुनें. इसके बाद, सेव करें पर क्लिक करें.

पुष्टि करें कि ऑन-प्रिमाइसेस वीपीसी, आईपीवी6 रास्तों के बारे में जान रहा है
अब जब ट्रांज़िट-वीपीसी से IPv6 private.googleapis.com वीआईपी का विज्ञापन दिखाया जाता है, तो ऑन-प्रिमाइसेस-वीपीसी को वीआईपी के लिए IPv6 डाइनैमिक राउट के बारे में पता चल जाएगा. कंसोल का इस्तेमाल करके, VPC नेटवर्क → वीपीसी नेटवर्क → on-premises-vpc → राउट पर जाएं.
ट्रांज़िट-वीपीसी से दिखाए गए IPv6 रास्तों की जानकारी देखें:

7. Private Google Access का इस्तेमाल करके, Google API से कम्यूनिकेट करना
इस सेक्शन में, हम IPv6 private.googleapis.com वीआईपी का इस्तेमाल करके, Cloud Storage से कनेक्टिविटी को ऐक्सेस और पुष्टि करेंगे. इसके लिए, हमें ऑन-प्रिमाइसेस-वीपीसी में ये कार्रवाइयां करनी होंगी.
- एसएसएच ऐक्सेस के लिए, Identity Aware Proxy (IAP) को ऐक्सेस करने की अनुमति देने वाला इन्ग्रेस फ़ायरवॉल नियम बनाएं.
- tcpdump और dnsutils को डाउनलोड करने के लिए, Cloud Router और Cloud NAT बनाएं.
- googleapis.com के लिए, एक निजी Cloud DNS ज़ोन बनाएं.
- Cloud Storage बकेट बनाएं.
IAP फ़ायरवॉल का नियम बनाना
आईएपी को अपने वीएम इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, फ़ायरवॉल का ऐसा नियम बनाएं जो:
- यह उन सभी वीएम इंस्टेंस पर लागू होता है जिन्हें आपको आईएपी का इस्तेमाल करके ऐक्सेस करना है.
- इसकी मदद से, 35.235.240.0/20 आईपी रेंज से इन्ग्रेस ट्रैफ़िक को आने की अनुमति मिलती है. इस रेंज में वे सभी आईपी पते शामिल हैं जिनका इस्तेमाल IAP, टीसीपी फ़ॉरवर्डिंग के लिए करता है.
Cloud Shell में, IAP फ़ायरवॉल नियम बनाएं.
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 और NAT कॉन्फ़िगरेशन
सॉफ़्टवेयर पैकेज इंस्टॉल करने के लिए, कोडलैब में Cloud NAT का इस्तेमाल किया जाता है. ऐसा इसलिए, क्योंकि वीएम इंस्टेंस के पास कोई बाहरी आईपी पता नहीं होता है.
Cloud Shell में, Cloud Router बनाएं.
gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1
Cloud Shell में, NAT गेटवे बनाएं.
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
टेस्ट इंस्टेंस बनाएं, on-premises-testbox
एक टेस्ट इंस्टेंस बनाएं. इसका इस्तेमाल, IPv6 private.googleapis.com वीआईपी से कनेक्टिविटी की जांच करने और पुष्टि करने के लिए किया जाएगा.
Cloud Shell में जाकर, इंस्टेंस बनाएं.
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 प्राइवेट ज़ोन बनाना
हम Cloud DNS का इस्तेमाल करके, *.googleapis.com के लिए एक निजी ज़ोन और रिकॉर्ड बनाएंगे. इसके लिए, यहां दिए गए चरणों का पालन करें.
Cloud Shell में, v6-googleapis.com नाम का एक निजी डीएनएस ज़ोन बनाएं.
gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"
Cloud Shell में, private.googleapis.com के लिए AAAA रिकॉर्ड बनाएं. यह IPv6 पते 2600:2d00:0002:2000:: पर पॉइंट करता है.
gcloud dns --project=$projectname record-sets create private.googleapis.com. --zone="v6-googleapis" --type="AAAA" --ttl="300" --rrdatas="2600:2d00:0002:2000::"
Cloud Shell में, *.googleapis.com के लिए एक CNAME बनाएं, ताकि वह private.googleapis.com पर रीडायरेक्ट हो सके.
gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."
क्लाउड डीएनएस के प्राइवेट ज़ोन की पुष्टि करना
नेटवर्क सेवाएं → Cloud DNS → v6-googleapis पर जाएं.

Cloud Storage बकेट बनाना
Cloud Shell में, Cloud Storage बकेट बनाएं. साथ ही, bucket_name को अपनी पसंद के किसी ऐसे नाम से बदलें जो दुनिया भर में यूनीक हो. अगर वह नाम पहले से इस्तेमाल किया जा रहा है, तो कोई दूसरा नाम आज़माएं.
gsutil mb -l us-central1 -b on gs://bucket_name
8. IPv6 पतों का इस्तेमाल करके, Google API को ऐक्सेस करना और उनकी पुष्टि करना
यहां दिए गए सेक्शन में, आपको दो Cloud Shell टर्मिनल में एसएसएच करना होगा. पहले टर्मिनल का इस्तेमाल, tcpdump का इस्तेमाल करके IPv6 लुकअप की पुष्टि करने के लिए किया जाता है. वहीं, दूसरे टर्मिनल का इस्तेमाल, क्लाउड स्टोरेज बकेट को ऐक्सेस करने के लिए किया जाता है.
Cloud Shell में, on-premises-testbox टेस्ट इंस्टेंस से ssh करें.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
Cloud Shell टर्मिनल में, tcpdump शुरू करें और डीएनएस ट्रैफ़िक के लिए पोर्ट 53 की निगरानी करें.
sudo tcpdump -nn -i ens4 port 53
नीचे उदाहरण दिया गया है.
user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
"+" को चुनकर, नया Cloud Shell टर्मिनल खोलें. नया टैब खुलने के बाद, प्रोजेक्ट के नाम वाले वैरिएबल को अपडेट करें.
Cloud Shell में, प्रोजेक्ट के नाम वाले वैरिएबल को अपडेट करें.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Cloud Shell 2 में, on-premises-testbox पर ssh करें.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
डीएनएस लुकअप की पुष्टि करने के लिए, dig कमांड का इस्तेमाल करना
Cloud Shell के दूसरे टर्मिनल में, storage.googleapis.com के लिए dig कमांड चलाएं.
dig AAAA storage.googleapis.com
जवाब वाले सेक्शन में, private DNS ज़ोन storage.googleapis.com CNAME से private.googleapis.com AAAA 2600:2d00:2:2000:: की जांच करें. उदाहरण यहां दिया गया है:
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 टर्मिनल में, tcpdump की जांच करें. इससे यह पुष्टि होती है कि डीएनएस रिज़ॉल्यूशन, AAAA 2600:2d00:2:2000:: पर सेट है.
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 और tcpdump के आधार पर, हम यह नतीजा निकाल सकते हैं कि storage.googleapis.com के लिए डीएनएस रिज़ॉल्यूशन, private.googleapis.com के IPv6 पते 2600:2d00:2:2000:: के ज़रिए किया जाता है.
क्लाउड स्टोरेज का ऐक्सेस पाने की पुष्टि करने के लिए, gsutil list कमांड चलाएं
Cloud Shell टर्मिनल दो में, gsutil का इस्तेमाल करके पहले से बनाए गए स्टोरेज बकेट की सूची देखें. bucket_name को उस बकेट में बदलें जिसे आपने पहले बनाया था.
gsutil -d ls gs://bucket_name
क्लाउड स्टोरेज बकेट codelab-ipv6 का इस्तेमाल करने का उदाहरण. डीबग आउटपुट की जांच करें. इसमें storage.googleapis.com और HTTP/1.1 200 OK दिख रहा है.
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 टर्मिनल में, tcpdump की जांच करें. इससे यह पुष्टि होती है कि डीएनएस रिज़ॉल्यूशन, AAAA 2600:2d00:2:2000:: पर सेट है.
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)
ऑन-प्रिमाइसेस-टेस्टबॉक्स इंस्टेंस के ऑपरेटिंग सिस्टम से बाहर निकलें और Cloud Shell प्रॉम्प्ट पर वापस जाएं.
9. साफ़-सफ़ाई सेवा
Cloud Shell में, यह तरीका अपनाएं:
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. बधाई हो
बधाई हो, आपने IPv6 के साथ Private Google Access को कॉन्फ़िगर और पुष्टि कर लिया है.
आपने ट्रांज़िट और ऑन-प्रिमाइसेस इन्फ़्रास्ट्रक्चर बनाया है. साथ ही, एक प्राइवेट डीएनएस ज़ोन बनाया है. इससे IPv6 का इस्तेमाल करके, Google API डोमेन के लिए रिज़ॉल्यूशन चालू किया जा सकता है. आपने dig और Cloud Storage का इस्तेमाल करके, IPv6 ऐक्सेस की जांच करने और उसकी पुष्टि करने का तरीका सीखा.
Cosmopup को कोडलैब बहुत पसंद हैं!!

आगे क्या करना है?
यहां दिए गए कुछ कोडलैब आज़माएं...