1. परिचय
स्टैटिक कस्टम रूट, वीपीसी में डिफ़ॉल्ट रूटिंग के तरीके पर असर डालते हैं. IPv6 कस्टम रूट अब नए नेक्स्ट-हॉप एट्रिब्यूट के साथ काम करते हैं: next-hop-gateway, next-hop-instance, और next-hop-address. इस कोडलैब में, मल्टी-एनआईसी वीएम इंस्टेंस से कनेक्ट किए गए दो वीपीसी का इस्तेमाल करके, इन नए नेक्स्ट-हॉप विकल्पों के साथ IPv6 कस्टम राउट इस्तेमाल करने का तरीका बताया गया है. इसके अलावा, आपको यूएलए और जीयूए पतों को मिलाकर इस्तेमाल करने का तरीका भी दिखाना होगा. साथ ही, कस्टम रूट की नई सुविधा का इस्तेमाल करके, यूएलए वीपीसी को सार्वजनिक इंटरनेट से कनेक्ट करने का तरीका भी दिखाना होगा.
आपको क्या सीखने को मिलेगा
- नेक्स्ट-हॉप-इंस्टेंस next-hop के साथ IPv6 कस्टम रूट कैसे बनाएं.
- नेक्स्ट-हॉप-गेटवे नेक्स्ट-हॉप की मदद से, IPv6 का कस्टम रूट कैसे बनाएं.
- नेक्स्ट-हॉप-ऐड्रेस next-hop के साथ 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)")
लैब का पूरा आर्किटेक्चर

कस्टम रूट के दोनों तरह के नेक्स्ट-हॉप दिखाने के लिए, आपको तीन वीपीसी बनाने होंगे: क्लाइंट वीपीसी, जो GUA पते का इस्तेमाल करता है; सर्वर वीपीसी, जो ULA पते का इस्तेमाल करता है; और दूसरा सर्वर वीपीसी, जो GUA पते का इस्तेमाल करता है.
क्लाइंट वीपीसी को यूएलए सर्वर ऐक्सेस करने के लिए, आपको कस्टम रूट का इस्तेमाल करना होगा. इसमें मल्टी-एनआईसी गेटवे इंस्टेंस की ओर इशारा करने वाले, नेक्स्ट-हॉप-इंस्टेंस और नेक्स्ट-हॉप-ऐड्रेस, दोनों का इस्तेमाल किया जाएगा. डिफ़ॉल्ट ::/0 रूट को मिटाने के बाद, GUA सर्वर को ऐक्सेस देने के लिए, आपको कस्टम रूट का इस्तेमाल करना होगा. इसमें नेक्स्ट-हॉप-गेटवे, डिफ़ॉल्ट इंटरनेट गेटवे पर पॉइंट करेगा, ताकि इंटरनेट पर राउटिंग की जा सके.
3. क्लाइंट वीपीसी सेटअप करना
क्लाइंट वीपीसी बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks create client-vpc \
--project=$projectname \
--subnet-mode=custom \
--mtu=1500 --bgp-routing-mode=regional
क्लाइंट सबनेट बनाना
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=external \
--region=us-central1
इस कमांड का इस्तेमाल करके, असाइन किए गए GUA सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
export client_subnet=$(gcloud compute networks subnets \
describe client-subnet \
--project $projectname \
--format="value(externalIpv6Prefix)" \
--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. ULA सर्वर वीपीसी सेटअप
यूएलए सर्वर वीपीसी बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks create server-vpc1 \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional \
--enable-ula-internal-ipv6
यूएलए सर्वर के सबनेट बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks subnets create server-subnet1 \
--network=server-vpc1 \
--project=$projectname \
--range=192.168.0.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=internal \
--region=us-central1
इस निर्देश का इस्तेमाल करके, असाइन किए गए यूएलए सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
export server_subnet1=$(gcloud compute networks subnets \
describe server-subnet1 \
--project $projectname \
--format="value(internalIpv6Prefix)" \
--region us-central1)
यूएलए इंटरनल आईपीवी6 पते के साथ सर्वर वीएम लॉन्च करना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances create server-instance1 \
--subnet server-subnet1 \
--stack-type IPV4_IPV6 \
--zone us-central1-a \
--project=$projectname
क्लाइंट से सर्वर को ऐक्सेस करने की अनुमति देने के लिए, फ़ायरवॉल का नियम जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-client-server1 \
--direction=INGRESS --priority=1000 \
--network=server-vpc1 --action=ALLOW \
--rules=tcp --source-ranges=$client_subnet \
--project=$projectname
IAP की अनुमति देने के लिए फ़ायरवॉल का नियम जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-iap-server1 \
--direction=INGRESS --priority=1000 \
--network=server-vpc1 --action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20 \
--project=$projectname
ULA सर्वर इंस्टेंस में Apache इंस्टॉल करना
Cloud Shell में, क्लाइंट-इंस्टेंस में लॉग इन करें:
gcloud compute ssh server-instance1 \
--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 Server1!</h1></body></html>' | sudo tee /var/www/html/index.html
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
5. GUA सर्वर वीपीसी सेटअप
GUA सर्वर वीपीसी बनाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks create server-vpc2 \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional
GUA सर्वर के सबनेट बनाएं
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks subnets create server-subnet2 \
--network=server-vpc2 \
--project=$projectname \
--range=192.168.0.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=external \
--region=us-central1
इस कमांड का इस्तेमाल करके, असाइन किए गए GUA सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
export server_subnet2=$(gcloud compute networks subnets \
describe server-subnet2 \
--project $projectname \
--format="value(externalIpv6Prefix)" \
--region us-central1)
GUA IPV6 पते के साथ सर्वर वीएम लॉन्च करना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances create server-instance2 \
--subnet server-subnet2 \
--stack-type IPV4_IPV6 \
--zone us-central1-a \
--project=$projectname
सबनेट में ऐक्सेस की अनुमति देने के लिए, फ़ायरवॉल का नियम जोड़ें
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-client-server2 \
--direction=INGRESS \
--priority=1000 \
--network=server-vpc2 \
--action=ALLOW \
--rules=tcp --source-ranges=$client_subnet \
--project=$projectname
IAP की अनुमति देने के लिए फ़ायरवॉल का नियम जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute firewall-rules create allow-iap-server2 \
--direction=INGRESS \
--priority=1000 \
--network=server-vpc2 \
--action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20 \
--project=$projectname
GUA सर्वर इंस्टेंस में एसएसएच ऐक्सेस की पुष्टि करें और Apache इंस्टॉल करें
Cloud Shell में, क्लाइंट-इंस्टेंस में लॉग इन करें:
gcloud compute ssh server-instance2 \
--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 Server2!</h1></body></html>' | sudo tee /var/www/html/index.html
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
6. गेटवे इंस्टेंस बनाना
क्लाइंट वीपीसी का डिफ़ॉल्ट रूट मिटाएं
ULA v6 ट्रैफ़िक को मल्टी-एनआईसी इंस्टेंस पर रीडायरेक्ट करने और इंटरनेट इग्रेस राउटिंग को बंद करने की तैयारी के लिए. डिफ़ॉल्ट इंटरनेट गेटवे की ओर ले जाने वाले डिफ़ॉल्ट ::/0 रूट को मिटाएं.
Cloud Shell में, यह तरीका अपनाएं:
export client_defroutename=$(gcloud compute routes list \
--project $projectname \
--format='value(name)' \
--filter="network:client-vpc AND destRange~'::/0'")
gcloud compute routes delete $client_defroutename \
--project $projectname \
--quiet
मल्टी-एनआईसी वीएम वाला गेटवे लॉन्च करें
Cloud Shell में, यह कार्रवाई करें:Cloud Shell में, यह कार्रवाई करें:
gcloud compute instances create gateway-instance \
--project=$projectname \
--zone=us-central1-a \
--network-interface=stack-type=IPV4_IPV6,subnet=client-subnet,no-address \
--network-interface=stack-type=IPV4_IPV6,subnet=server-subnet1,no-address \
--can-ip-forward
गेटवे इंस्टेंस कॉन्फ़िगर करना
Cloud Shell में, गेटवे इंस्टेंस में लॉग इन करें. इंस्टेंस बूट अप होने के दौरान, SSH से कनेक्ट होने में कुछ मिनट लग सकते हैं:
gcloud compute ssh gateway-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
गेटवे वीएम शेल में, आईपीवी6 फ़ॉरवर्डिंग चालू करने के लिए यह कमांड चलाएं. साथ ही, फ़ॉरवर्डिंग की सुविधा चालू होने पर आरए स्वीकार करना जारी रखें (accept_ra = 2)
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
इंस्टेंस पर आईपीवी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
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
7. गेटवे इंस्टेंस के लिए रूट बनाएं और उनकी जांच करें (इंस्टेंस के नाम का इस्तेमाल करके)
इस सेक्शन में, आपको क्लाइंट और सर्वर, दोनों वीपीसी में रूट जोड़ने होंगे. इसके लिए, गेटवे इंस्टेंस के नाम को अगले हॉप के तौर पर इस्तेमाल करें.
सर्वर के पतों को नोट करें
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances list \
--project $projectname \
--filter="name~server-instance" \
--format='value[separator=","](name,networkInterfaces[0].ipv6Address,networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)'
इससे सर्वर इंस्टेंस के नाम और उनके IPv6 प्रीफ़िक्स, दोनों आउटपुट होने चाहिए. आउटपुट का सैंपल
server-instance1,fd20:3df:8d5c:0:0:0:0:0,
server-instance2,,2600:1900:4000:71fd: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 सेशन से बाहर निकलें.
क्लाइंट के वीपीसी में कस्टम रूट जोड़ना
क्लाइंट वीपीसी में यूएलए प्रीफ़िक्स के लिए कोई रूट मौजूद नहीं है. आइए, इसे अभी जोड़ें.
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create client-to-server1-route \
--project=$projectname \
--destination-range=$server_subnet1 \
--network=client-vpc \
--next-hop-instance=gateway-instance \
--next-hop-instance-zone=us-central1-a
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
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/'
यह कर्ल कमांड अब भी टाइम आउट हो जाती है. इसकी वजह यह है कि server1 वीपीसी में, क्लाइंट वीपीसी की ओर वापस जाने का कोई रास्ता नहीं है. ऐसा इसलिए, क्योंकि अभी तक गेटवे इंस्टेंस के ज़रिए कोई रास्ता नहीं बनाया गया है.
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
ULA सर्वर वीपीसी में कस्टम रूट जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create server1-to-client-route \
--project=$projectname \
--destination-range=$client_subnet \
--network=server-vpc1 \
--next-hop-instance=gateway-instance \
--next-hop-instance-zone=us-central1-a
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
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/'
अब यह कर्ल कमांड काम करती है. इससे पता चलता है कि क्लाइंट इंस्टेंस से यूएलए सर्वर इंस्टेंस तक एंड-टू-एंड पहुंच है. अब यह कनेक्टिविटी सिर्फ़ IPv6 के कस्टम रास्तों का इस्तेमाल करके की जा सकती है. इसमें नेक्स्ट-हॉप-इंस्टेंस को नेक्स्ट-हॉप के तौर पर इस्तेमाल किया जाता है.
आउटपुट का उदाहरण
<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 Server1!</h1></body></html>
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
8. गेटवे इंस्टेंस के लिए रूट बनाएं और उनकी जांच करें. इसके लिए, इंस्टेंस के पते का इस्तेमाल करें
इस सेक्शन में, आपको क्लाइंट और सर्वर, दोनों वीपीसी में रास्तों को जोड़ना होगा. इसके लिए, गेटवे इंस्टेंस के ipv6 पते को अगले हॉप के तौर पर इस्तेमाल करें.
पिछले रास्ते मिटाना
आइए, इंस्टेंस के नाम का इस्तेमाल करने वाले कस्टम रूट को मिटाकर, एनवायरमेंट को कस्टम रूट जोड़ने से पहले की स्थिति में वापस लाते हैं.
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes delete client-to-server1-route --quiet --project=$projectname
gcloud compute routes delete server1-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/'
यह कर्ल कमांड टाइम आउट हो जानी चाहिए, क्योंकि क्लाइंट वीपीसी के पास अब सर्वर वीपीसी का कोई रूट नहीं है.
गेटवे इंस्टेंस के IPv6 पते पाना
नेक्स्ट-हॉप-ऐड्रेस का इस्तेमाल करने वाले रास्तों को लिखने से पहले, हमें गेटवे इंस्टेंस के आईपीवी6 पते पाने होंगे.
Cloud Shell में, यह तरीका अपनाएं:
export gateway_ula_address=$(gcloud compute instances \
describe gateway-instance \
--project $projectname \
--format='value(networkInterfaces[1].ipv6Address)')
export gateway_gua_address=$(gcloud compute instances \
describe gateway-instance \
--project $projectname \
--format='value(networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)')
क्लाइंट के वीपीसी में कस्टम रूट जोड़ना
अब हम क्लाइंट वीपीसी में यूएलए प्रीफ़िक्स के साथ रूट को फिर से जोड़ सकते हैं. हालांकि, इसके लिए हम अगले हॉप के तौर पर गेटवे के जीयूए पते का इस्तेमाल करेंगे.
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create client-to-server1-route \
--project=$projectname \
--destination-range=$server_subnet1 \
--network=client-vpc \
--next-hop-address=$gateway_gua_address
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
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/'
उम्मीद के मुताबिक, यह कर्ल कमांड अब भी टाइम आउट हो जाती है. ऐसा इसलिए होता है, क्योंकि server1 वीपीसी के पास अब तक गेटवे इंस्टेंस के ज़रिए क्लाइंट वीपीसी पर वापस जाने का कोई रास्ता नहीं है.
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
ULA सर्वर वीपीसी में कस्टम रूट जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create server1-to-client-route \
--project=$projectname \
--destination-range=$client_subnet \
--network=server-vpc1 \
--next-hop-address=$gateway_ula_address
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
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 Server1!</h1></body></html>
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
9. इंटरनेट गेटवे तक पहुंचने का रास्ता बनाना और उसे टेस्ट करना
इस लैब को सेटअप करने के दौरान, हम अगली हॉप की नई प्रॉपर्टी: next-hop-gateway की सुविधा भी टेस्ट करेंगे.
क्लाइंट से GUA सर्वर इंस्टेंस तक कर्ल कमांड चलाएं
नए रूट जोड़ने से पहले, उपयोगकर्ताओं के व्यवहार को समझने के लिए. क्लाइंट इंस्टेंस से, server2 के आईपी पते पर कर्ल कमांड चलाएं.
Cloud Shell में, क्लाइंट इंस्टेंस में लॉग इन करें:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
क्लाइंट इंस्टेंस में, IPv6 एंडपॉइंट की ओर कर्ल करें
curl -m 5.0 -g -6 'http://[GUA-ipv6-address-of-server2]:80/'
यह कर्ल कमांड टाइम आउट हो जानी चाहिए, क्योंकि क्लाइंट वीपीसी के पास सिर्फ़ अपना सबनेट रूट और server1 के वीपीसी का रूट है. server2 वीपीसी की GUA रेंज तक पहुंचने के लिए, आपको कस्टम रूट के ज़रिए डिफ़ॉल्ट इंटरनेट गेटवे का इस्तेमाल करना होगा.
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
क्लाइंट वीपीसी में कस्टम गेटवे रूट जोड़ना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes create client-to-server2-route \
--project=$projectname \
--destination-range=$server_subnet2 \
--network=client-vpc \
--next-hop-gateway=default-internet-gateway
एसएसएच का इस्तेमाल करके, क्लाइंट इंस्टेंस पर वापस जाएं:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
क्लाइंट इंस्टेंस में, उसी कर्ल को दोहराएं
curl -m 5.0 -g -6 'http://[GUA-ipv6-address-of-server2]:80/'
अब यह कर्ल कमांड, कस्टम हैलो मैसेज दिखा पाएगी. इससे पता चलता है कि डिफ़ॉल्ट इंटरनेट गेटवे के ज़रिए, दूसरे सर्वर के IPv6 पते तक पहुंचा जा सकता है.
आउटपुट का उदाहरण:
<user id>@client-instance:~$ curl -m 5.0 -g -6 'http://[2600:1900:4000:71fd:0:0:0:0]:80/'
<!doctype html><html><body><h1>Hello World! From Server2!</h1></body></html>
लैब के क्लीन अप सेक्शन पर जाने के लिए, एसएसएच सेशन से बाहर निकलें.
10. व्यवस्थित करें
इंस्टेंस मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute instances delete client-instance --zone us-central1-a --quiet --project=$projectname
gcloud compute instances delete server-instance1 --zone us-central1-a --quiet --project=$projectname
gcloud compute instances delete server-instance2 --zone us-central1-a --quiet --project=$projectname
gcloud compute instances delete gateway-instance --zone us-central1-a --quiet --project=$projectname
सबनेट मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks subnets delete client-subnet --region=us-central1 --quiet --project=$projectname
gcloud compute networks subnets delete server-subnet1 --region=us-central1 --quiet --project=$projectname
gcloud compute networks subnets delete server-subnet2 --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-server1 --quiet --project=$projectname
gcloud compute firewall-rules delete allow-iap-server2 --quiet --project=$projectname
gcloud compute firewall-rules delete allow-gateway-client --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server1 --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server2 --quiet --project=$projectname
कस्टम रूट मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute routes delete client-to-server1-route --quiet --project=$projectname
gcloud compute routes delete client-to-server2-route --quiet --project=$projectname
gcloud compute routes delete server1-to-client-route --quiet --project=$projectname
वीपीसीसी मिटाना
Cloud Shell में, यह तरीका अपनाएं:
gcloud compute networks delete client-vpc --quiet --project=$projectname
gcloud compute networks delete server-vpc1 --quiet --project=$projectname
gcloud compute networks delete server-vpc2 --quiet --project=$projectname
11. बधाई हो
आपने स्टैटिक कस्टम आईपीवी6 रास्तों का इस्तेमाल किया है. साथ ही, नेक्स्ट-हॉप को next-hop-gateway , next-hop-instance, और next-hop-address पर सेट किया है. आपने उन रास्तों का इस्तेमाल करके, एंड-टू-एंड IPv6 कम्यूनिकेशन की पुष्टि भी की है.
आगे क्या करना है?
यहां दिए गए कुछ कोडलैब आज़माएं...
- IPv6 पतों का इस्तेमाल करके, ऑन-प्रिमाइसेस होस्ट से Google API ऐक्सेस करना
- आईपी पते के विकल्प IPv4 और IPv6