आईपीवी6 पतों का इस्तेमाल करके, कंपनी की इमारत में मौजूद होस्ट से Google API को ऐक्सेस करें

1. परिचय

ऑन-प्राइमिस होस्ट के लिए Google का निजी ऐक्सेस, ऑन-प्राइमिस सिस्टम को Google के एपीआई और सेवाओं से कनेक्ट करने का एक तरीका उपलब्ध कराता है. इसके लिए, ट्रैफ़िक को Cloud वीपीएन टनल या Cloud इंटरकनेक्ट के लिए वीएलएएन अटैचमेंट के ज़रिए रूट किया जाता है. ऑन-प्राइमिस होस्ट के लिए निजी Google ऐक्सेस, इंटरनेट पर Google के एपीआई और सेवाओं से कनेक्ट करने का एक विकल्प है.

ऑन-प्राइमिस होस्ट के लिए निजी Google ऐक्सेस पाने के लिए, आपको Google API के अनुरोधों को वर्चुअल आईपी पतों (वीआईपी) पर भेजना होगा. आईपीवी6 के लिए, इन आईपी पतों का इस्तेमाल किया जाता है:

  • private.googleapis.com के लिए: 2600:2d00:0002:2000::/64
  • restricted.googleapis.com के लिए: 2600:2d00:0002:1000::/64

आपने जो VIP प्लान चुना है उसके हिसाब से यह तय होता है कि आपको कौनसी सेवाएं मिल सकती हैं. इस कोडलैब में, हम private.googleapis.com का इस्तेमाल करेंगे. ज़्यादा जानकारी के लिए, डोमेन के विकल्प देखें.

इस कोडलैब में, IPv6 पतों का इस्तेमाल करने वाले ऑन-प्राइमिस होस्ट के लिए, निजी Google ऐक्सेस को चालू करने का तरीका बताया गया है. आपको कंपनी की इमारत में एनवायरमेंट दिखाने के लिए, on-premises-vpc नाम का VPC नेटवर्क सेट अप करना होगा. डिप्लॉयमेंट के लिए, ऑन-प्राइमिस वीपीसी मौजूद नहीं होगा. इसके बजाय, आपके ऑन-प्राइमिस डेटा सेंटर या क्लाउड सेवा देने वाली कंपनी के लिए हाइब्रिड नेटवर्किंग का इस्तेमाल किया जाएगा.

आपको क्या बनाना होगा

इस कोडलैब में, एंड-टू-एंड IPv6 नेटवर्क बनाया जा रहा है. यह नेटवर्क कंपनी में, क्लाउड स्टोरेज एपीआई का ऐक्सेस दिखाता है. ऐसा करने के लिए, CNAME *.googleapis.com से private.googleapis.com आईपीवी6 पते 2600:2d00:0002:2000::/64 का इस्तेमाल करें, जैसा कि पहली इमेज में दिखाया गया है.

इमेज 1

a0fc56abf24f3535.png

आपको क्या सीखने को मिलेगा

  • ड्यूअल स्टैक VPC नेटवर्क बनाने का तरीका
  • आईपीवी6 के साथ एचए वीपीएन बनाने का तरीका
  • निजी Google ऐक्सेस को ऐक्सेस करने के लिए, डीएनएस को अपडेट करने का तरीका
  • निजी Google ऐक्सेस कनेक्शन को सेट अप और उसकी पुष्टि करने का तरीका

आपको किन चीज़ों की ज़रूरत होगी

  • 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. ट्रांज़िट-vpc बनाना

f6932f551b5acac0.png

ट्रांज़िट VPC नेटवर्क बनाना

Cloud Shell में, ये काम करें:

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

4. कंपनी की इमारत में नेटवर्क बनाना

58d75cbc9cb20a51.png

यह VPC नेटवर्क, ऑन-प्राइमिस एनवायरमेंट को दिखाता है.

ऑन-प्राइमिस वीपीएन नेटवर्क बनाना

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. ट्रांज़िट-वीपीसी और ऑन-प्राइमिस-वीपीसी के लिए एचए वीपीएन बनाना

ट्रांज़िट-वीपीसी के लिए एचए वीपीएन जीडब्ल्यू बनाना

a0fc56abf24f3535.png

हर गेटवे बन जाने पर, दो बाहरी 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

ऑन-प्राइमिस वीपीसी के लिए, एचए वीपीएन जीडब्ल्यू बनाना

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

एचए वीपीएन GW बनाने की पुष्टि करें

कंसोल का इस्तेमाल करके, हाइब्रिड कनेक्टिविटी → वीपीएन → cloud VPN GATEWAYS पर जाएं.

c8eed6ca929935bc.png

ट्रांज़िट-वीपीसी के लिए क्लाउड राऊटर बनाएं

Cloud Shell में, us-central1 में मौजूद क्लाउड राऊटर बनाएं

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

ऑन-प्राइमिस वीपीसी के लिए क्लाउड राउटर बनाना

Cloud Shell के अंदर, us-central1 में मौजूद Cloud राऊटर बनाएं

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

ट्रांज़िट-vpc के लिए वीपीएन टनल बनाना

आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.

VPN टनल0 बनाएं

Cloud Shell के अंदर, टनल बनाएं0:

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 के अंदर, टनल बनाएं1:

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

ऑन-प्राइमिस वीपीसी के लिए वीपीएन टनल बनाना

आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.

VPN टनल0 बनाएं

Cloud Shell के अंदर, टनल बनाएं0:

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 के अंदर, टनल बनाएं1:

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

वीपीएन टनल बनाने की पुष्टि करना

कंसोल का इस्तेमाल करके, हाइब्रिड कनेक्टिविटी → वीपीएन → क्लाउड वीपीएन टनल पर जाएं.

85fd5aef4b2c4010.png

BGP सेशन बनाना

इस सेक्शन में, Cloud Router इंटरफ़ेस और बीजीपी पीयर को कॉन्फ़िगर किया जाता है.

IPv6 ट्रैफ़िक की अनुमति देने वाले वीपीएन टनल बनाते समय, add-bgp-peer कमांड चलाते समय --enable-ipv6 बताएं.

ट्रांज़िट-वीपीसी के लिए बीजीपी इंटरफ़ेस और पीयरिंग बनाना

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

वीपीएन टनल की जानकारी देखने के लिए, हाइब्रिड कनेक्टिविटी → वीपीएन पर जाएं.

e100e31ea22c8124.png

पुष्टि करें कि ट्रांज़िट-वीपीसी, एचए वीपीएन के ज़रिए आईपीवी4 और आईपीवी6 रूट सीख रहा है

एचए वीपीएन टनल और बीजीपी सेशन सेट अप होने की वजह से, ऑन-प्राइमिस-वीपीसी के रूट, ट्रांज़िट-वीपीसी से सीख लिए जाते हैं. कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → ट्रांज़िट-vpc → ROUTES पर जाएं.

नीचे बताए गए तरीके से बताए गए IPv4 और IPv6 डायनैमिक रूट को देखें:

216bde7d08d75ec4.png

पुष्टि करना कि एचए वीपीएन के बजाय, on-प्रिमाइसेस-vpc को लर्निंग रूट नहीं दिया जा रहा

Transit-vpc में सबनेट नहीं है, इसलिए क्लाउड राऊटर, कंपनी की इमारत में किसी सबनेट का विज्ञापन नहीं करेगा. कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → ऑन-प्राइमिस-vpc → रूट पर जाएं.

6. IPv6 private.googleapis.com VIP का विज्ञापन करें

कंपनी की इमारत से निजी Google ऐक्सेस ऐक्सेस करने के लिए, आपको ट्रांज़िट-वीपीसी से पसंद के मुताबिक रास्ते का विज्ञापन बनाना होगा. आईपीवी6 पते 2600:2d00:0002:2000:: का विज्ञापन, ऑन-प्राइमिस एनवायरमेंट में किया जाएगा. साथ ही, स्थानीय डीएनएस अपडेट होने के बाद, Google के एपीआई को ऐक्सेस करने के लिए, वर्कलोड इसका इस्तेमाल करेंगे. जैसे, Cloud Storage, Cloud BigQuery, और Cloud Bigtable.

इस कोडलैब में, ज़्यादातर Google API और सेवाओं के लिए एपीआई का ऐक्सेस चालू किया जा सकता है. भले ही, वे VPC सर्विस कंट्रोल के साथ काम करती हों या नहीं.

कंसोल में, हाइब्रिड कनेक्टिविटी → क्लाउड राउटर → transit-vpc-cr-us-central1 पर जाएं. इसके बाद, 'बदलाव करें' को चुनें.

3e36e3b5ea741ec5.png

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

9283AB7b214f70d.png

पुष्टि करना कि कंपनी की इमारत, आईपीवी6 रूट सीख रही है

अब IPv6 private.googleapis.com VIP का विज्ञापन ट्रांज़िट-vpc से किया जाता है, इसलिए ऑन-प्रिमाइसेस-vpc ने वीआईपी के लिए IPv6 डायनामिक रूट सीख लिए. कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → ऑन-प्राइमिस-vpc → रूट पर जाएं.

ट्रांज़िट-vpc से विज्ञापन किए गए IPv6 रास्तों को देखें:

caf3b79b035b2a20.png

7. निजी Google ऐक्सेस का इस्तेमाल करके, Google API के साथ कम्यूनिकेशन सेट अप करना

नीचे दिए गए सेक्शन में, हम IPv6 private.googleapis.com VIP का इस्तेमाल करके Cloud Storage की कनेक्टिविटी को ऐक्सेस और उसकी पुष्टि करेंगे. इसके लिए, हमें ऑन-प्राइमिस वीपीसी में ये कार्रवाइयां करनी होंगी.

  • एसएसएच ऐक्सेस के लिए, आइडेंटिटी अवेयर प्रॉक्सी (आईएपी) को ऐक्सेस करने की अनुमति देने के लिए, इन्ग्रेस फ़ायरवॉल नियम बनाएं.
  • tcpdump और dnsutils डाउनलोड करने के लिए, Cloud राउटर और Cloud NAT बनाएं.
  • googleapis.com के लिए निजी Cloud DNS ज़ोन बनाएं.
  • Cloud Storage बकेट बनाएं.

आईएपी फ़ायरवॉल नियम बनाएं

आईएपी को अपने वीएम इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं:

  • यह उन सभी वीएम इंस्टेंस पर लागू होता है जिन्हें आपको आईएपी का इस्तेमाल करके ऐक्सेस करना है.
  • 35.235.240.0/20 आईपी रेंज से आने वाले ट्रैफ़िक को अनुमति देता है. इस रेंज में वे सभी आईपी पते शामिल होते हैं जिनका इस्तेमाल आईएपी, टीसीपी फ़ॉरवर्ड करने के लिए करता है.

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 राऊटर और NAT का कॉन्फ़िगरेशन

Cloud NAT का इस्तेमाल सॉफ़्टवेयर पैकेज इंस्टॉल करने के लिए, कोडलैब में किया जाता है, क्योंकि वीएम इंस्टेंस में कोई बाहरी आईपी पता नहीं होता है.

Cloud Shell में, क्लाउड राउटर बनाएं.

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

ऑन-प्रिमाइसेस-टेस्टबॉक्स के लिए, टेस्ट इंस्टेंस बनाना

एक टेस्ट इंस्टेंस बनाएं. इसका इस्तेमाल, 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 निजी ज़ोन बनाना

हम *.googleapis.com के लिए निजी ज़ोन और रिकॉर्ड बनाने के लिए, Cloud DNS का इस्तेमाल करेंगे. इसके लिए, यहां दिया गया तरीका अपनाएं.

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 में, IPv6 पते 2600:2d00:0002:2000:: पर ले जाने वाला private.googleapis.com के लिए AAAA रिकॉर्ड बनाएं.

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

Cloud शेल के अंदर, private.googleapis.com पर जाने के लिए *.googleapis.com के लिए एक CNAME बनाएं.

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

क्लाउड डीएनएस के प्राइवेट ज़ोन की पुष्टि करें

नेटवर्क की सेवाओं पर जाएं → Cloud DNS → v6-googleapis.

455e355195a2a48f.png

Cloud Storage बकेट बनाना

Cloud Shell में, Cloud Storage बकेट बनाएं और bucket_name को दुनिया भर में यूनीक नाम से बदलें. अगर यह नाम पहले से इस्तेमाल में है, तो कोई दूसरा नाम आज़माएं.

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

8. आईपीवी6 पतों का इस्तेमाल करके Google API को ऐक्सेस करें और उनकी पुष्टि करें

नीचे दिए गए सेक्शन में, आपको दो Cloud Shell टर्मिनल में एसएसएच की प्रोसेस करनी होगी. पहले टर्मिनल का इस्तेमाल tcpdump की मदद से, आईपीवी6 लुकअप की पुष्टि करने के लिए किया जाता है. वहीं, दूसरे टर्मिनल का इस्तेमाल, क्लाउड स्टोरेज बकेट को ऐक्सेस करने के लिए किया जाता है.

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 दो में, on-premises-testbox इंस्टेंस की जांच करने के लिए, ssh का इस्तेमाल करें.

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

डीएनएस लुकअप की पुष्टि करने के लिए, dig का इस्तेमाल करना

Cloud Shell टर्मिनल दो के अंदर, Storage.googleapis.com की जांच करें.

dig AAAA storage.googleapis.com

ANSWER SECTION, निजी डीएनएस ज़ोन 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)

खुदाई और tcpdump के आधार पर हम इस नतीजे पर पहुंच सकते हैं कि Storage.googleapis.com के लिए डीएनएस रिज़ॉल्यूशन 2600:2d00:2:2000:: से लिया जाता है, जो कि private.googleapis.com का आईपीवी6 पता है.

क्लाउड स्टोरेज के ऐक्सेस की पुष्टि करने के लिए, gsutil सूची इस्तेमाल करें

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 के साथ निजी Google ऐक्सेस को कॉन्फ़िगर कर लिया है और उसकी पुष्टि कर ली है.

आपने ट्रांज़िट और ऑन-प्राइमिस इन्फ़्रास्ट्रक्चर बनाया है. साथ ही, आईपीवी6 का इस्तेमाल करके Google API डोमेन के लिए रिज़ॉल्यूशन की सुविधा देने वाला निजी डीएनएस ज़ोन बनाया है. आपने डिक और क्लाउड स्टोरेज का इस्तेमाल करके आईपीवी6 ऐक्सेस की जांच और पुष्टि करने का तरीका जाना.

Cosmopup को लगता है कि कोडलैब शानदार हैं!!

8c2a10eb841f7b01.jpeg

आगे क्या करना है?

इनमें से कुछ कोडलैब देखें...

आगे पढ़ना और वीडियो

पहचान फ़ाइलें