1. परिचय
स्टैटिक कस्टम रूट, VPC में डिफ़ॉल्ट रूटिंग के व्यवहार पर असर डालते हैं. IPv6 कस्टम रूट में अब नेक्स्ट-हॉप के नए एट्रिब्यूट काम करते हैं: next-hop-gateway, next-hop-instance, और next-hop-address. इस कोडलैब में, नेक्स्ट-हॉप के इन नए विकल्पों के साथ आईपीवी6 कस्टम रूट इस्तेमाल करने का तरीका बताया गया है. इसके लिए, मल्टी-एनआईसी वीएम इंस्टेंस से कनेक्ट किए गए दो वीपीसी का इस्तेमाल किया गया है. इसमें, यूएलए और जीयूए पते को मिलाने और कस्टम रूट की नई सुविधा का इस्तेमाल करके, यूएलए वीपीसी को सार्वजनिक इंटरनेट से कनेक्ट करने का तरीका भी दिखाया जाएगा.
आपको क्या सीखने को मिलेगा
- next-hop-instance next-hop के साथ 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)")
लैब का पूरा आर्किटेक्चर
कस्टम रूट के नेक्स्ट-हॉप के दोनों टाइप को दिखाने के लिए, आपको तीन वीपीसी बनाने होंगे: एक क्लाइंट वीपीसी, जो जीयूए पते का इस्तेमाल करता है, एक सर्वर वीपीसी, जो यूएलए पते का इस्तेमाल करता है, और दूसरा सर्वर वीपीसी, जो जीयूए पते का इस्तेमाल करता है.
क्लाइंट वीपीसी को यूएलए सर्वर को ऐक्सेस करने के लिए, आपको एक कस्टम रूट का इस्तेमाल करना होगा. इसमें, मल्टी-एनआईसी गेटवे इंस्टेंस पर पॉइंट करने वाले next-hop-instance और next-hop-address, दोनों का इस्तेमाल किया जाएगा. डिफ़ॉल्ट ::/0 रूट मिटाने के बाद, जीयूए सर्वर का ऐक्सेस देने के लिए, आपको इंटरनेट पर रूटिंग देने के लिए, नेक्स्ट-हॉप-गेटवे के साथ कस्टम रूट का इस्तेमाल करना होगा. यह नेक्स्ट-हॉप-गेटवे, डिफ़ॉल्ट इंटरनेट गेटवे पर पॉइंट करेगा.
3. क्लाइंट वीपीसी सेटअप
क्लाइंट VPC बनाना
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
इस कमांड का इस्तेमाल करके, असाइन किए गए जीयूए सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
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
क्लाइंट के VPC ट्रैफ़िक के लिए फ़ायरवॉल नियम जोड़ना
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 सर्वर का वीपीसी सेटअप
ULA सर्वर का VPC बनाना
Cloud Shell में, ये काम करें:
gcloud compute networks create server-vpc1 \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional \
--enable-ula-internal-ipv6
ULA सर्वर सबनेट बनाना
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
इस कमांड का इस्तेमाल करके, असाइन किए गए ULA सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
export server_subnet1=$(gcloud compute networks subnets \
describe server-subnet1 \
--project $projectname \
--format="value(internalIpv6Prefix)" \
--region us-central1)
यूएलए के इंटरनल IPV6 पते के साथ सर्वर वीएम लॉन्च करना
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
आईएपी को अनुमति देने के लिए फ़ायरवॉल नियम जोड़ना
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. जीयूए सर्वर का वीपीसी सेटअप
जीयूए सर्वर का वीपीएन बनाना
Cloud Shell में, ये काम करें:
gcloud compute networks create server-vpc2 \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional
जीयूए सर्वर सबनेट बनाना
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
इस कमांड का इस्तेमाल करके, असाइन किए गए जीयूए सबनेट को एनवायरमेंट वैरिएबल में रिकॉर्ड करें
export server_subnet2=$(gcloud compute networks subnets \
describe server-subnet2 \
--project $projectname \
--format="value(externalIpv6Prefix)" \
--region us-central1)
जीयूए आईपीवी6 पते के साथ सर्वर वीएम लॉन्च करना
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
आईएपी को अनुमति देने के लिए फ़ायरवॉल नियम जोड़ना
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
गेटवे मल्टी-एनआईसी VM लॉन्च करना
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 में, गेटवे इंस्टेंस में लॉग इन करें. इंस्टेंस के बूट होने के दौरान, एसएसएच करने में कुछ मिनट लग सकते हैं:
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. गेटवे इंस्टेंस के लिए रूट बनाएं और उनकी जांच करें (इंस्टेंस के नाम का इस्तेमाल करके)
इस सेक्शन में, आपको नेक्स्ट-हॉप के तौर पर गेटवे इंस्टेंस के नाम का इस्तेमाल करके, क्लाइंट और सर्वर, दोनों VPC में रास्ते जोड़ने होंगे.
सर्वर के पतों को नोट करें
Cloud Shell में, ये काम करें:
gcloud compute instances list \
--project $projectname \
--filter="name~server-instance" \
--format='value[separator=","](name,networkInterfaces[0].ipv6Address,networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)'
इससे, सर्वर इंस्टेंस के नाम और उनके आईपीवी6 प्रीफ़िक्स, दोनों का आउटपुट मिलना चाहिए. आउटपुट का सैंपल
server-instance1,fd20:3df:8d5c:0:0:0:0:0,
server-instance2,,2600:1900:4000:71fd:0:0:0:0
दोनों पतों को नोट कर लें, क्योंकि आपको बाद में क्लाइंट इंस्टेंस से curl निर्देशों में उनका इस्तेमाल करना होगा. माफ़ करें, एनवायरमेंट वैरिएबल का इस्तेमाल करके, इन वैल्यू को आसानी से सेव नहीं किया जा सकता. ऐसा इसलिए, क्योंकि ये वैल्यू एसएसएच सेशन पर ट्रांसफ़र नहीं होती हैं.
क्लाइंट से 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/'
इस curl कमांड को टाइम आउट होना चाहिए, क्योंकि क्लाइंट VPC में अब तक सर्वर VPC के लिए कोई रूट नहीं है.
चलिए, इसे ठीक करते हैं! फ़िलहाल, SSH सेशन से बाहर निकलें.
क्लाइंट VPC में कस्टम रूट जोड़ना
क्लाइंट VPC में, यूएलए प्रीफ़िक्स के लिए कोई रूट मौजूद नहीं है. आइए, इसे अभी जोड़ते हैं.
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
क्लाइंट इंस्टेंस में, सर्वर इंस्टेंस पर फिर से कर्ल करने की कोशिश करें. (कर्ल को बहुत देर तक इंतज़ार न करना पड़े, इसके लिए यह कमांड 5 सेकंड का टाइम आउट सेट करता है)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
इस curl कमांड में अब भी टाइम आउट होता है, क्योंकि server1 VPC के पास अब भी गेटवे इंस्टेंस के ज़रिए क्लाइंट VPC पर वापस जाने का कोई रास्ता नहीं है.
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
ULA सर्वर VPC में कस्टम रूट जोड़ना
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/'
यह कर्ल कमांड अब काम कर रहा है. इससे पता चलता है कि आपके पास क्लाइंट इंस्टेंस से ULA सर्वर इंस्टेंस तक एंड-टू-एंड रीच है. यह कनेक्टिविटी, अब सिर्फ़ आईपीवी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>
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
8. इंस्टेंस के पते का इस्तेमाल करके, गेटवे इंस्टेंस के लिए रूट बनाएं और उनकी जांच करें
इस सेक्शन में, आपको नेक्स्ट-हॉप के तौर पर गेटवे इंस्टेंस के IPv6 पते का इस्तेमाल करके, क्लाइंट और सर्वर, दोनों VPC में रास्ते जोड़ने होंगे.
पिछले रास्ते मिटाना
किसी भी कस्टम रूट को जोड़ने से पहले, इंस्टेंस के नाम का इस्तेमाल करने वाले कस्टम रूट मिटाकर, एनवायरमेंट को पहले जैसा कर दें.
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/'
इस curl कमांड को टाइम आउट होना चाहिए, क्योंकि क्लाइंट VPC के पास अब सर्वर VPC के लिए कोई रूट नहीं है.
गेटवे इंस्टेंस के 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)')
क्लाइंट VPC में कस्टम रूट जोड़ना
अब हम क्लाइंट VPC में ULA प्रीफ़िक्स के साथ रूट को फिर से जोड़ सकते हैं. हालांकि, इसके लिए नेक्स्ट-हॉप के तौर पर गेटवे GUA पते का इस्तेमाल किया जाएगा.
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/'
जैसा कि उम्मीद थी, इस curl कमांड का टाइम आउट अब भी हो रहा है. इसकी वजह यह है कि server1 VPC के पास, अब भी गेटवे इंस्टेंस के ज़रिए क्लाइंट VPC पर वापस जाने का कोई रास्ता नहीं है.
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
ULA सर्वर VPC में कस्टम रूट जोड़ना
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/'
यह कर्ल कमांड अब काम कर रहा है. इससे पता चलता है कि आपके पास क्लाइंट इंस्टेंस से ULA सर्वर इंस्टेंस तक एंड-टू-एंड रीच है. यह कनेक्टिविटी, अब सिर्फ़ आईपीवी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/'
इस curl कमांड को टाइम आउट होना चाहिए, क्योंकि क्लाइंट वीपीसी में सिर्फ़ उसका सबनेट रूट और server1 के वीपीसी का रूट होता है. server2 वीपीएन की जीयूए रेंज तक पहुंचने के लिए, आपको कस्टम रूट के ज़रिए डिफ़ॉल्ट इंटरनेट गेटवे का इस्तेमाल करना होगा.
कोडलैब जारी रखने के लिए, एसएसएच सेशन से बाहर निकलें.
क्लाइंट VPC में कस्टम गेटवे रूट जोड़ना
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/'
इस curl कमांड से अब कस्टम 'नमस्ते' मैसेज दिखेगा. इससे पता चलता है कि डिफ़ॉल्ट इंटरनेट गेटवे की मदद से, दूसरे सर्वर के 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