1. परिचय
स्टैटिक कस्टम रूट, वीपीसी में डिफ़ॉल्ट रूटिंग के तरीके पर असर डालते हैं. IPv6 कस्टम रूट अब नए नेक्स्ट-हॉप एट्रिब्यूट के साथ काम करते हैं: next-hop-gateway, next-hop-instance, और next-hop-address. इस कोडलैब में, मल्टी-एनआईसी वीएम इंस्टेंस से कनेक्ट किए गए दो वीपीसी का इस्तेमाल करके, इन नए नेक्स्ट-हॉप विकल्पों के साथ IPv6 कस्टम राउट इस्तेमाल करने का तरीका बताया गया है. आपको यह भी दिखाना होगा कि यूएलए और जीयूए पतों को कैसे मिलाया जाता है. साथ ही, कस्टम रूट की नई सुविधा का इस्तेमाल करके, यूएलए वीपीसी को सार्वजनिक इंटरनेट से कैसे कनेक्ट किया जाता है.
आपको क्या सीखने को मिलेगा
- आईएलबी का नाम तय करके, नेक्स्ट-हॉप-आईएलबी नेक्स्ट-हॉप के साथ IPv6 का कस्टम रूट कैसे बनाएं
- आईएलबी के IPv6 पते की जानकारी देकर, नेक्स्ट-हॉप-आईएलबी नेक्स्ट-हॉप के साथ IPv6 कस्टम रूट बनाने का तरीका
आपको किन चीज़ों की ज़रूरत होगी
- Google Cloud प्रोजेक्ट
2. शुरू करने से पहले
कोड लैब के साथ काम करने के लिए प्रोजेक्ट को अपडेट करना
इस कोडलैब में, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए, $variables का इस्तेमाल किया गया है.
Cloud Shell में, यह कार्रवाई करें
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export projectname=$(gcloud config list --format="value(core.project)")
कुल लैब आर्किटेक्चर

दोनों तरह के कस्टम रूट के नेक्स्ट-हॉप दिखाने के लिए, आपको दो वीपीसी बनाने होंगे: क्लाइंट और सर्वर वीपीसी. ये दोनों वीपीसी, यूएलए पते का इस्तेमाल करते हैं.
क्लाइंट वीपीसी को सर्वर ऐक्सेस करने के लिए, आपको कस्टम रूट का इस्तेमाल करना होगा. इसमें नेक्स्ट-हॉप-आईएलबी, मल्टी-एनआईसी गेटवे इंस्टेंस के ग्रुप के सामने मौजूद आईएलबी (आईएलबी के नाम का इस्तेमाल करके) की ओर इशारा करता है. यह ग्रुप, दो आईएलबी के बीच में होता है. डिफ़ॉल्ट ::/0 रूट मिटाने के बाद, क्लाइंट इंस्टेंस पर वापस राउटिंग करने के लिए, आपको ILB की ओर इशारा करने वाले, next-hop-ilb (ILB के पते का इस्तेमाल करके) के साथ कस्टम रूट का इस्तेमाल करना होगा.
3. क्लाइंट वीपीसी सेटअप करना
क्लाइंट वीपीसी बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks create client-vpc \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional \
--enable-ula-internal-ipv6
क्लाइंट सबनेट बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks subnets create client-subnet \
--network=client-vpc \
--project=$projectname \
--range=192.168.1.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=internal \
--region=us-central1
इस निर्देश का इस्तेमाल करके, असाइन किए गए IPv6 सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
export client_subnet=$(gcloud compute networks subnets \
describe client-subnet \
--project $projectname \
--format="value(internalIpv6Prefix)" \
--region us-central1)
क्लाइंट इंस्टेंस लॉन्च करना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances create client-instance \
--subnet client-subnet \
--stack-type IPV4_IPV6 \
--zone us-central1-a \
--project=$projectname
क्लाइंट वीपीसी ट्रैफ़िक के लिए फ़ायरवॉल का नियम जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-gateway-client \
--direction=INGRESS --priority=1000 \
--network=client-vpc --action=ALLOW \
--rules=tcp --source-ranges=$client_subnet \
--project=$projectname
क्लाइंट इंस्टेंस के लिए IAP की अनुमति देने वाला फ़ायरवॉल नियम जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-iap-client \
--direction=INGRESS --priority=1000 \
--network=client-vpc --action=ALLOW \
--rules=tcp:22 --source-ranges=35.235.240.0/20 \
--project=$projectname
क्लाइंट इंस्टेंस में एसएसएच ऐक्सेस की पुष्टि करें
Cloud Shell में, क्लाइंट-इंस्टेंस में लॉग इन करें:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
अगर यह प्रोसेस पूरी हो जाती है, तो आपको क्लाइंट इंस्टेंस से एक टर्मिनल विंडो दिखेगी. कोड लैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
4. सर्वर वीपीसी सेटअप
सर्वर वीपीसी बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks create server-vpc \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional \
--enable-ula-internal-ipv6
सर्वर के सबनेट बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks subnets create server-subnet \
--network=server-vpc \
--project=$projectname \
--range=192.168.0.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=internal \
--region=us-central1
इस निर्देश का इस्तेमाल करके, असाइन किए गए सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
export server_subnet=$(gcloud compute networks subnets \
describe server-subnet \
--project $projectname \
--format="value(internalIpv6Prefix)" \
--region us-central1)
सर्वर वीएम लॉन्च करना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances create server-instance \
--subnet server-subnet \
--stack-type IPV4_IPV6 \
--zone us-central1-a \
--project=$projectname
क्लाइंट से सर्वर को ऐक्सेस करने की अनुमति देने के लिए, फ़ायरवॉल का नियम जोड़ें
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-client-server \
--direction=INGRESS --priority=1000 \
--network=server-vpc --action=ALLOW \
--rules=tcp --source-ranges=$client_subnet \
--project=$projectname
IAP की अनुमति देने के लिए फ़ायरवॉल का नियम जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-iap-server \
--direction=INGRESS --priority=1000 \
--network=server-vpc --action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20 \
--project=$projectname
ULA सर्वर इंस्टेंस में Apache इंस्टॉल करना
Cloud Shell में, क्लाइंट-इंस्टेंस में लॉग इन करें:
gcloud compute ssh server-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
सर्वर वीएम शेल में, यह कमांड चलाएं
sudo apt update && sudo apt -y install apache2
पुष्टि करना कि Apache चल रहा है
sudo systemctl status apache2
डिफ़ॉल्ट वेब पेज को बदलना
echo '<!doctype html><html><body><h1>Hello World! From Server Instance!</h1></body></html>' | sudo tee /var/www/html/index.html
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
5. गेटवे इंस्टेंस बनाना
कई एनआईसी वाला गेटवे इंस्टेंस टेंप्लेट बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instance-templates create gateway-instance-template \
--project=$projectname \
--instance-template-region=us-central1 \
--region=us-central1 \
--network-interface=stack-type=IPV4_IPV6,subnet=client-subnet,no-address \
--network-interface=stack-type=IPV4_IPV6,subnet=server-subnet,no-address \
--can-ip-forward \
--metadata=startup-script='#! /bin/bash
sudo sysctl -w net.ipv6.conf.ens4.accept_ra=2
sudo sysctl -w net.ipv6.conf.ens5.accept_ra=2
sudo sysctl -w net.ipv6.conf.ens4.accept_ra_defrtr=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1'
कई एनआईसी वाला गेटवे इंस्टेंस ग्रुप बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instance-groups managed create gateway-instance-group \
--project=$projectname \
--base-instance-name=gateway-instance \
--template=projects/$projectname/regions/us-central1/instanceTemplates/gateway-instance-template \
--size=2 \
--zone=us-central1-a
गेटवे इंस्टेंस की पुष्टि करना
यह पक्का करने के लिए कि हमारी स्टार्टअप स्क्रिप्ट को सही तरीके से पास किया गया हो और v6 राउटिंग टेबल सही हो. किसी गेटवे इंस्टेंस से एसएसएच करें
Cloud Shell में, गेटवे इंस्टेंस की सूची बनाने के लिए, यह कमांड चलाएं:
gcloud compute instances list \
--project=$projectname \
--zones=us-central1-a \
--filter name~gateway \
--format 'csv(name)'
किसी इंस्टेंस का नाम नोट करें और इंस्टेंस में एसएसएच करने के लिए, अगले निर्देश में उसका इस्तेमाल करें.
Cloud Shell में, किसी एक गेटवे इंस्टेंस में लॉग इन करें
gcloud compute ssh gateway-instance-<suffix> \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
गेटवे वीएम शेल में, आईपीवी6 फ़ॉरवर्डिंग की जांच करने के लिए यह निर्देश चलाएं
sudo sysctl net.ipv6.conf.all.forwarding
कमांड को "1" वैल्यू दिखानी चाहिए. इससे पता चलता है कि IPv6 फ़ॉरवर्डिंग चालू है.
इंस्टेंस पर आईपीवी6 राउटिंग टेबल की पुष्टि करना
ip -6 route show
इस सैंपल आउटपुट में, ULA और GUA, दोनों के सबनेट रूट दिखाए गए हैं. साथ ही, डिफ़ॉल्ट रूट को GUA इंटरफ़ेस पर पॉइंट करते हुए दिखाया गया है.
::1 dev lo proto kernel metric 256 pref medium
2600:1900:4000:7a7f:0:1:: dev ens4 proto kernel metric 256 expires 83903sec pref medium
2600:1900:4000:7a7f::/65 via fe80::4001:c0ff:fea8:101 dev ens4 proto ra metric 1024 expires 88sec pref medium
fd20:3df:8d5c::1:0:0 dev ens5 proto kernel metric 256 expires 83904sec pref medium
fd20:3df:8d5c::/64 via fe80::4001:c0ff:fea8:1 dev ens5 proto ra metric 1024 expires 84sec pref medium
fe80::/64 dev ens5 proto kernel metric 256 pref medium
fe80::/64 dev ens4 proto kernel metric 256 pref medium
default via fe80::4001:c0ff:fea8:101 dev ens4 proto ra metric 1024 expires 88sec pref medium
कोड लैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
6. लोड बैलेंसर कॉम्पोनेंट बनाना
दोनों वीपीसी में राउट बनाने से पहले, हमें गेटवे इंस्टेंस के दोनों ओर इंटरनल पासथ्रू लोड बैलेंसर बनाने होंगे, ताकि ट्रैफ़िक को आगे बढ़ाया जा सके.
इस कोडलैब में बनाए गए लोड बैलेंसर में ये शामिल हैं
- हेल्थ चेक: इस कोडलैब में, हम पोर्ट 22 को टारगेट करने वाले सामान्य हेल्थ चेक बनाएंगे. ध्यान दें कि हेल्थ चेक, डिप्लॉय किए गए तरीके से काम नहीं करेंगे. इसके लिए, आपको फ़ायरवॉल के नियम जोड़ने होंगे, ताकि हेल्थ चेक की अनुमति दी जा सके. साथ ही, गेटवे इंस्टेंस पर खास रास्तों को बनाया जा सके. यह कोडलैब, IPv6 फ़ॉरवर्डिंग पर फ़ोकस करता है. इसलिए, जब सभी बैकएंड अस्वस्थ होते हैं, तो हम इंटरनल पास-थ्रू लोड बैलेंसर के ट्रैफ़िक डिस्ट्रिब्यूशन के डिफ़ॉल्ट तरीके पर भरोसा करेंगे. इसका मतलब है कि आखिरी विकल्प के तौर पर, सभी बैकएंड पर ट्रैफ़िक फ़ॉरवर्ड किया जाएगा.
- बैकएंड सेवा: हम बैकएंड सेवा के लिए टीसीपी प्रोटोकॉल का इस्तेमाल करेंगे. हालांकि, लोड बैलेंसर को राउटिंग के मकसद से बनाया जाता है. इसलिए, बैकएंड सेवा के प्रोटोकॉल के बावजूद सभी प्रोटोकॉल फ़ॉरवर्ड किए जाते हैं.
- फ़ॉरवर्ड करने का नियम: हम हर वीपीसी के लिए, फ़ॉरवर्ड करने का एक नियम बनाते हैं .
- इंटरनल IPv6 पता: इस कोडलैब में, हम फ़ॉरवर्डिंग के नियम को सबनेट से IPv6 पते अपने-आप असाइन करने देंगे
परफ़ॉर्मेंस की जांच करने वाली सुविधा बनाएं
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute health-checks create tcp tcp-hc-22 \
--project=$projectname \
--region=us-central1 \
--port=22
बैकएंड सेवाएं बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute backend-services create bes-ilb-clientvpc \
--project=$projectname \
--load-balancing-scheme=internal \
--protocol=tcp \
--network=client-vpc \
--region=us-central1 \
--health-checks=tcp-hc-22 \
--health-checks-region=us-central1
gcloud compute backend-services create bes-ilb-servervpc \
--project=$projectname \
--load-balancing-scheme=internal \
--protocol=tcp \
--network=server-vpc \
--region=us-central1 \
--health-checks=tcp-hc-22 \
--health-checks-region=us-central1
बैकएंड सेवा में इंस्टेंस ग्रुप जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute backend-services add-backend bes-ilb-clientvpc \
--project=$projectname \
--region=us-central1 \
--instance-group=gateway-instance-group \
--instance-group-zone=us-central1-a
gcloud compute backend-services add-backend bes-ilb-servervpc \
--project=$projectname \
--region=us-central1 \
--instance-group=gateway-instance-group \
--instance-group-zone=us-central1-a
कॉल फ़ॉरवर्ड करने के नियम बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute forwarding-rules create fr-ilb-clientvpc \
--project=$projectname \
--region=us-central1 \
--load-balancing-scheme=internal \
--network=client-vpc \
--subnet=client-subnet \
--ip-protocol=TCP \
--ip-version=IPV6 \
--ports=ALL \
--backend-service=bes-ilb-clientvpc \
--backend-service-region=us-central1
gcloud compute forwarding-rules create fr-ilb-servervpc \
--project=$projectname \
--region=us-central1 \
--load-balancing-scheme=internal \
--network=server-vpc \
--subnet=server-subnet \
--ip-protocol=TCP \
--ip-version=IPV6 \
--ports=ALL \
--backend-service=bes-ilb-servervpc \
--backend-service-region=us-central1
Cloudshell में यहां दी गई कमांड डालकर, फ़ॉरवर्ड करने के दोनों नियमों के IPv6 पते रिकॉर्ड करें:
export fraddress_client=$(gcloud compute forwarding-rules \
describe fr-ilb-clientvpc \
--project $projectname \
--format="value(IPAddress)" \
--region us-central1)
export fraddress_server=$(gcloud compute forwarding-rules \
describe fr-ilb-servervpc \
--project $projectname \
--format="value(IPAddress)" \
--region us-central1)
7. लोड बैलेंसर के पते का इस्तेमाल करके, लोड बैलेंसर के लिए रूट बनाएं और उनकी जांच करें
इस सेक्शन में, क्लाइंट और सर्वर, दोनों वीपीसी में रास्तों को जोड़ा जाएगा. इसके लिए, लोड बैलेंसर के आईपीवी6 पतों को अगले हॉप के तौर पर इस्तेमाल किया जाएगा.
सर्वर के पतों को नोट करें
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances list \
--project $projectname \
--zones us-central1-a \
--filter="name~server-instance" \
--format='value[separator=","](name,networkInterfaces[0].ipv6Address)'
इससे सर्वर इंस्टेंस के नाम और उनके IPv6 प्रीफ़िक्स, दोनों आउटपुट होने चाहिए. आउटपुट का सैंपल
server-instance,fd20:3df:8d5c:0:0:0:0:0
सर्वर का पता नोट कर लें, क्योंकि बाद में आपको क्लाइंट इंस्टेंस से कर्ल कमांड में इसका इस्तेमाल करना होगा. माफ़ करें, इन कुकी को सेव करने के लिए एनवायरमेंट वैरिएबल का आसानी से इस्तेमाल नहीं किया जा सकता, क्योंकि ये एसएसएच सेशन पर ट्रांसफ़र नहीं होती हैं.
क्लाइंट से ULA सर्वर इंस्टेंस तक कर्ल कमांड चलाएं
नए रूट जोड़ने से पहले, उपयोगकर्ताओं के व्यवहार को समझने के लिए. क्लाइंट इंस्टेंस से server-instance1 की ओर कर्ल कमांड चलाएं.
Cloud Shell में, क्लाइंट-इंस्टेंस में लॉग इन करें:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
क्लाइंट इंस्टेंस में, server1 इंस्टेंस के ULA IPV6 पते का इस्तेमाल करके कर्ल करें (यह कमांड, कर्ल के लिए 5 सेकंड का छोटा टाइमआउट सेट करती है, ताकि कर्ल को ज़्यादा देर तक इंतज़ार न करना पड़े)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
यह कर्ल कमांड टाइम आउट हो जानी चाहिए, क्योंकि क्लाइंट वीपीसी के पास अब तक सर्वर वीपीसी का कोई रूट नहीं है.
आइए, इसे ठीक करने की कोशिश करते हैं! फ़िलहाल, SSH सेशन से बाहर निकलें.
क्लाइंट के वीपीसी में कस्टम रूट जोड़ना
क्लाइंट वीपीसी में यूएलए प्रीफ़िक्स के लिए कोई रूट मौजूद नहीं है. चलिए, अब इसे जोड़ते हैं. इसके लिए, हम एक ऐसा रूट बनाएंगे जो पते के हिसाब से क्लाइंट-साइड आईएलबी की ओर इशारा करता हो.
ध्यान दें: IPv6 इंटरनल पासथ्रू लोड बैलेंसर को /96 पते असाइन किए जाते हैं. अगले कमांड को पता देने से पहले, /96 मास्क को पते से हटाना ज़रूरी है. (यहां बैश में मौजूद इन-प्लेस सब्स्टिट्यूशन का इस्तेमाल किया गया है)
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create client-to-server-route \
--project=$projectname \
--destination-range=$server_subnet \
--network=client-vpc \
--next-hop-ilb=${fraddress_client//\/96}
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
क्लाइंट इंस्टेंस में, सर्वर इंस्टेंस से कनेक्ट करने के लिए फिर से कर्ल कमांड का इस्तेमाल करें. (इस कमांड में, कर्ल के लिए 5 सेकंड का छोटा टाइमआउट सेट किया गया है, ताकि कर्ल को ज़्यादा देर तक इंतज़ार न करना पड़े)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
यह कर्ल कमांड अब भी टाइम आउट हो जाती है. इसकी वजह यह है कि सर्वर वीपीसी के पास, गेटवे इंस्टेंस के ज़रिए क्लाइंट वीपीसी पर वापस जाने का कोई रास्ता नहीं है.
कोड लैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
सर्वर वीपीसी में कस्टम रूट जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create server-to-client-route \
--project=$projectname \
--destination-range=$client_subnet \
--network=server-vpc \
--next-hop-ilb=${fraddress_server//\/96}
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
क्लाइंट इंस्टेंस में, सर्वर इंस्टेंस के लिए कर्ल को एक बार फिर से आज़माएं.
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
अब यह कर्ल कमांड काम करती है. इससे पता चलता है कि क्लाइंट इंस्टेंस से यूएलए सर्वर इंस्टेंस तक एंड-टू-एंड पहुंच है. अब यह कनेक्टिविटी सिर्फ़ आईपीवी6 कस्टम राउट का इस्तेमाल करके की जा सकती है. इसमें नेक्स्ट-हॉप के तौर पर नेक्स्ट-हॉप-आईएलबी का इस्तेमाल किया जाता है.
आउटपुट का उदाहरण
<user id>@client-instance:~$ curl -m 5.0 -g -6 'http://[fd20:3df:8d5c:0:0:0:0:0]:80/'
<!doctype html><html><body><h1>Hello World! From Server Instance!</h1></body></html>
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
8. लोड बैलेंसर के लिए रूट बनाएं और उनकी जांच करें. इसके लिए, लोड बैलेंसर के नाम का इस्तेमाल करें
इसके अलावा, नेक्स्ट-हॉप-आईएलबी, लोड बैलेंसर के IPv6 पते के बजाय उसके नाम का भी रेफ़रंस दे सकता है. इस सेक्शन में, हम ऐसा करने का तरीका बताते हैं. साथ ही, यह जांच करते हैं कि क्लाइंट और सर्वर के बीच कनेक्टिविटी अब भी बनी हुई है या नहीं.
पिछले रास्ते मिटाना
आइए, इंस्टेंस के नाम का इस्तेमाल करने वाले कस्टम रूट को मिटाकर, एनवायरमेंट को कस्टम रूट जोड़ने से पहले की स्थिति में वापस लाएं.
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes delete client-to-server-route --quiet --project=$projectname
gcloud compute routes delete server-to-client-route --quiet --project=$projectname
क्लाइंट से ULA सर्वर इंस्टेंस तक कर्ल कमांड चलाएं
यह पुष्टि करने के लिए कि पिछले रूट मिटा दिए गए हैं, क्लाइंट इंस्टेंस से server-instance1 पर curl कमांड चलाएं.
Cloud Shell में, क्लाइंट-इंस्टेंस में लॉग इन करें:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
क्लाइंट इंस्टेंस में, server1 इंस्टेंस के ULA IPV6 पते का इस्तेमाल करके कर्ल करें (यह कमांड, कर्ल के लिए 5 सेकंड का छोटा टाइमआउट सेट करती है, ताकि कर्ल को ज़्यादा देर तक इंतज़ार न करना पड़े)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
यह कर्ल कमांड टाइम आउट हो जानी चाहिए, क्योंकि क्लाइंट वीपीसी के पास अब सर्वर वीपीसी का कोई रूट नहीं है.
क्लाइंट और सर्वर वीपीसी में कस्टम रूट जोड़ना
आइए, क्लाइंट और सर्वर, दोनों वीपीसी में कस्टम रूट फिर से जोड़ते हैं. हालांकि, ILB के पते का इस्तेमाल करने के बजाय, हम कमांड में ILB के नाम और क्षेत्र का इस्तेमाल करेंगे.
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create client-to-server-route \
--project=$projectname \
--destination-range=$server_subnet \
--network=client-vpc \
--next-hop-ilb=fr-ilb-clientvpc \
--next-hop-ilb-region=us-central1
gcloud compute routes create server-to-client-route \
--project=$projectname \
--destination-range=$client_subnet \
--network=server-vpc \
--next-hop-ilb=fr-ilb-servervpc \
--next-hop-ilb-region=us-central1
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
क्लाइंट इंस्टेंस में, सर्वर इंस्टेंस से कनेक्ट करने के लिए फिर से कर्ल कमांड का इस्तेमाल करें. (इस कमांड में, कर्ल के लिए 5 सेकंड का छोटा टाइमआउट सेट किया गया है, ताकि कर्ल को ज़्यादा देर तक इंतज़ार न करना पड़े)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
अब यह कर्ल कमांड काम करती है. इससे पता चलता है कि क्लाइंट इंस्टेंस से यूएलए सर्वर इंस्टेंस तक एंड-टू-एंड पहुंच है.
9. व्यवस्थित करें
कस्टम रूट मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes delete client-to-server-route --quiet --project=$projectname
gcloud compute routes delete server-to-client-route --quiet --project=$projectname
एलबी कॉम्पोनेंट को हटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute forwarding-rules delete fr-ilb-clientvpc --region us-central1 --quiet --project=$projectname
gcloud compute forwarding-rules delete fr-ilb-servervpc --region us-central1 --quiet --project=$projectname
gcloud compute backend-services delete bes-ilb-clientvpc --region us-central1 --quiet --project=$projectname
gcloud compute backend-services delete bes-ilb-servervpc --region us-central1 --quiet --project=$projectname
gcloud compute health-checks delete tcp-hc-22 --region us-central1 --quiet --project=$projectname
इंस्टेंस और इंस्टेंस टेंप्लेट मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances delete client-instance --zone us-central1-a --quiet --project=$projectname
gcloud compute instances delete server-instance --zone us-central1-a --quiet --project=$projectname
gcloud compute instance-groups managed delete gateway-instance-group --zone us-central1-a --quiet --project=$projectname
gcloud compute instance-templates delete gateway-instance-template --region us-central1 --quiet --project=$projectname
सबनेट मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks subnets delete client-subnet --region=us-central1 --quiet --project=$projectname
gcloud compute networks subnets delete server-subnet --region=us-central1 --quiet --project=$projectname
फ़ायरवॉल के नियमों को हटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules delete allow-iap-client --quiet --project=$projectname
gcloud compute firewall-rules delete allow-iap-server --quiet --project=$projectname
gcloud compute firewall-rules delete allow-gateway-client --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server --quiet --project=$projectname
वीपीसीसी मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks delete client-vpc --quiet --project=$projectname
gcloud compute networks delete server-vpc --quiet --project=$projectname
10. बधाई हो
आपने स्टैटिक कस्टम आईपीवी6 राउट का इस्तेमाल कर लिया है. साथ ही, नेक्स्ट-हॉप को next-hop-ilb पर सेट कर दिया है. आपने उन रास्तों का इस्तेमाल करके, एंड-टू-एंड IPv6 कम्यूनिकेशन की पुष्टि भी की है.
आगे क्या करना है?
यहां दिए गए कुछ कोडलैब आज़माएं...
- IPv6 पतों का इस्तेमाल करके, ऑन-प्रिमाइसेस होस्ट से Google API ऐक्सेस करना
- आईपी पते के विकल्प IPv4 और IPv6
- आईपीवी6 स्टैटिक राउट के लिए, अगले हॉप इंस्टेंस, अगले हॉप पते, और अगले हॉप गेटवे का इस्तेमाल करना