Code Lab: स्पोक के तौर पर NCC VPC

1. परिचय

खास जानकारी

इस लैब में, उपयोगकर्ता यह जानेंगे कि वीपीसी स्पोक की मदद से, बड़े पैमाने पर इंटर-वीपीसी कनेक्टिविटी सेट अप करने के लिए, Network Connectivity Center(एनसीसी) का इस्तेमाल कैसे किया जा सकता है. जब उपयोगकर्ता किसी वीपीसी को वीपीसी स्पोक के तौर पर तय करते हैं, तो वे इसे NCC हब के ज़रिए एक साथ कई वीपीसी नेटवर्क से कनेक्ट कर सकते हैं. VPC स्पोक कॉन्फ़िगरेशन के साथ एनसीसी का इस्तेमाल करने से, वीपीसी पियरिंग के ज़रिए दो वीपीसी के बीच कनेक्टिविटी को मैनेज करने की जटिलता कम हो जाती है. इसके बजाय, कनेक्टिविटी को मैनेज करने के लिए एक सेंट्रल मॉडल का इस्तेमाल किया जाता है.

याद रखें कि Network Connectivity Center (NCC), Google Cloud में नेटवर्क कनेक्टिविटी को मैनेज करने के लिए, हब-एंड-स्पोक कंट्रोल प्लेन मॉडल है. हब रिसॉर्स, स्पोक को आपस में जोड़ने के लिए कनेक्टिविटी मैनेजमेंट का एक सेंट्रलाइज़्ड मॉडल उपलब्ध कराता है.

आपको क्या बनाने को मिलेगा

इस कोडलैब में, NCC हब की मदद से लॉजिकल हब और स्पोक टोपोलॉजी बनाई जाएगी. यह तीन अलग-अलग VPC में, पूरी तरह से मेश की गई वीपीसी कनेक्टिविटी फ़ैब्रिक को लागू करेगी.

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

  • एनसीसी की मदद से, वीपीसी के बीच फ़ुल मेश कनेक्टिविटी
  • सभी वीपीसी में प्राइवेट NAT

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

  • GCP वीपीसी नेटवर्क के बारे में जानकारी
  • क्लाउड राऊटर और बीजीपी राउटिंग की जानकारी
  • दो अलग-अलग GCP प्रोजेक्ट
  • इस कोडलैब के लिए पांच वीपीसी की ज़रूरत होती है. उनमें से एक वीपीसी, एनसीसी हब से अलग प्रोजेक्ट में होना चाहिए
  • अपने कोटा:नेटवर्क की जांच करें. अगर ज़रूरी हो, तो अतिरिक्त नेटवर्क का अनुरोध करें. स्क्रीनशॉट यहां दिया गया है:

6bc606cb34bce7e8.png

मकसद

  • GCP एनवायरमेंट सेट अप करना
  • वीपीसी को स्पोक के तौर पर इस्तेमाल करके, Network Connectivity Center को कॉन्फ़िगर करना
  • डेटा पाथ की पुष्टि करना
  • एनसीसी की सेवा से जुड़ी सुविधाओं के बारे में जानें
  • इस्तेमाल किए गए संसाधनों को हटाना

शुरू करने से पहले

Google Cloud Console और Cloud Shell

GCP के साथ इंटरैक्ट करने के लिए, हम इस लैब में Google Cloud Console और Cloud Shell, दोनों का इस्तेमाल करेंगे.

NCC Hub Project Google Cloud Console

Cloud Console को https://console.cloud.google.com पर जाकर ऐक्सेस किया जा सकता है.

Network Connectivity Center को आसानी से कॉन्फ़िगर करने के लिए, Google Cloud में ये आइटम सेट अप करें:

Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, कोई Google Cloud प्रोजेक्ट चुनें या बनाएं.

Cloud Shell लॉन्च करें. इस कोडलैब में, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए, $variables का इस्तेमाल किया गया है.

gcloud auth list
gcloud config list project
gcloud config set project [HUB-PROJECT-NAME]
projectname=[HUB-PROJECT-NAME]
echo $projectname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1

IAM भूमिकाएं

NCC को कुछ एपीआई ऐक्सेस करने के लिए, IAM की भूमिकाओं की ज़रूरत होती है. ज़रूरत के मुताबिक, उपयोगकर्ता को NCC IAM की भूमिकाएं असाइन करना न भूलें.

भूमिका/ब्यौरा

अनुमतियां

networkconnectivity.networkAdmin - इससे नेटवर्क एडमिन को हब और स्पोक मैनेज करने की अनुमति मिलती है.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager - इस भूमिका की मदद से, हब में स्पोक जोड़े और मैनेज किए जा सकते हैं. इसका इस्तेमाल शेयर किए गए वीपीसी में किया जाता है. इसमें होस्ट-प्रोजेक्ट के पास हब का मालिकाना हक होता है. हालांकि, अन्य प्रोजेक्ट के एडमिन, हब से अटैचमेंट के लिए स्पोक जोड़ सकते हैं.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer - इससे नेटवर्क के उपयोगकर्ता, हब और स्पोक के अलग-अलग एट्रिब्यूट देख सकते हैं.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

2. नेटवर्क एनवायरमेंट सेट अप करना

खास जानकारी

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

क्रॉस प्रोजेक्ट स्पोक की सुविधा दिखाने के लिए, हम बाद के चरण में किसी दूसरे प्रोजेक्ट में वीपीसी और फ़ायरवॉल के नियम डिप्लॉय करेंगे.

dc4ed09dae1a0056.png

वीपीसी और सबनेट बनाना

वीपीसी नेटवर्क में सबनेट होते हैं. आपको डेटा पाथ की पुष्टि करने के लिए, GCE वीएम इंस्टॉल करना होगा

gcloud compute networks create vpc1-ncc --subnet-mode custom
gcloud compute networks create vpc2-ncc --subnet-mode custom
gcloud compute networks create vpc3-ncc --subnet-mode custom
gcloud compute networks create vpc4-ncc --subnet-mode custom

gcloud compute networks subnets create vpc1-ncc-subnet1 \
--network vpc1-ncc --range 10.1.1.0/24 --region us-central1

gcloud compute networks subnets create vpc1-ncc-subnet2 \
--network vpc1-ncc --range 10.1.2.0/25 --region us-central1

gcloud compute networks subnets create vpc1-ncc-subnet3 \
--network vpc1-ncc --range 10.1.2.128/25 --region us-central1

gcloud compute networks subnets create vpc2-ncc-subnet1 \
--network vpc2-ncc --range 10.2.2.0/24 --region us-central1

वीपीसी के साथ काम करने वाली सबनेट रेंज

एनसीसी, सार्वजनिक आईपी पतों के निजी तौर पर इस्तेमाल किए जाने के अलावा, सभी मान्य IPv4 सबनेट रेंज के साथ काम करता है. इस चरण में, VPC4 में मान्य आईपी रेंज बनाएं. इन्हें हब रूट टेबल में इंपोर्ट किया जाएगा.

gcloud compute networks subnets create benchmark-testing-rfc2544 \
--network vpc4-ncc --range 198.18.0.0/15 --region us-east1

gcloud compute networks subnets create class-e-rfc5735 \
--network vpc4-ncc --range 240.0.0.0/4 --region us-east1

gcloud compute networks subnets create ietf-protcol-assignment-rfc6890 \
--network vpc4-ncc --range 192.0.0.0/24 --region us-east1

gcloud compute networks subnets create ipv6-4-relay-rfc7526 \
--network vpc4-ncc --range 192.88.99.0/24 --region us-east1

gcloud compute networks subnets create pupi \
--network vpc4-ncc --range 50.50.50.0/24 --region us-east1

gcloud compute networks subnets create test-net-1-rfc5737 \
--network vpc4-ncc --range 192.0.2.0/24 --region us-east1

gcloud compute networks subnets create test-net-2-rfc5737 \
--network vpc4-ncc --range 198.51.100.0/24 --region us-east1

gcloud compute networks subnets create test-net-3-rfc5737 \
--network vpc4-ncc --range 203.0.113.0/24 --region us-east1

ओवरलैप होने वाली सबनेट रेंज बनाना

एनसीसी, ओवरलैप होने वाली आईपी रेंज को हब रूट टेबल में इंपोर्ट नहीं करेगा. उपयोगकर्ता, बाद के चरण में इस पाबंदी को हटा देंगे. फ़िलहाल, VPC2 और VPC3 के लिए दो ऐसी आईपी रेंज बनाएं जो एक-दूसरे से ओवरलैप करती हों.

gcloud compute networks subnets create overlapping-vpc2 \
--network vpc3-ncc --range 10.3.3.0/24 --region us-central1

gcloud compute networks subnets create overlapping-vpc3 \
--network vpc2-ncc --range 10.3.3.0/24 --region us-central1

वीपीसी फ़ायरवॉल के नियम कॉन्फ़िगर करना

हर वीपीसी पर फ़ायरवॉल के नियमों को कॉन्फ़िगर करें, ताकि

  • एसएसएच
  • इंटरनल आईएपी
  • 10.0.0.0/8 रेंज
gcloud compute firewall-rules create ncc1-vpc-internal \
--network vpc1-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc2-vpc-internal \
--network vpc2-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc3-vpc-internal \
--network vpc3-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc4-vpc-internal \
--network vpc4-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc1-vpc-iap \
--network vpc1-ncc \
--allow all \
--source-ranges 35.235.240.0/20

gcloud compute firewall-rules create ncc2-vpc-iap \
--network vpc2-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20

gcloud compute firewall-rules create ncc3-vpc-iap \
--network vpc3-ncc \
--allow=tcp:22  \
--source-ranges 35.235.240.0/20

gcloud compute firewall-rules create ncc4-vpc-iap \
--network vpc4-ncc \
--allow=tcp:22  \
--source-ranges 35.235.240.0/20

हर VPC में GCE वीएम कॉन्फ़िगर करना

"vm1-vpc1-ncc" पर पैकेज इंस्टॉल करने के लिए, आपको कुछ समय के लिए इंटरनेट का ऐक्सेस चाहिए होगा.

चार वर्चुअल मशीनें बनाएं. हर वीएम को पहले से बनाए गए वीपीसी में से किसी एक को असाइन किया जाएगा

gcloud compute instances create vm1-vpc1-ncc \
--subnet vpc1-ncc-subnet1 \
--metadata=startup-script='#!/bin/bash
  apt-get update
  apt-get install apache2 -y
  apt-get install tcpdump -y
  service apache2 restart
  echo "
<h3>Web Server: www-vm1</h3>" | tee /var/www/html/index.html'


gcloud compute instances create vm2-vpc2-ncc \
--zone us-central1-a \
--subnet vpc2-ncc-subnet1 \
--no-address 

gcloud compute instances create pnat-vm-vpc2 \
--zone us-central1-a \
--subnet overlapping-vpc3 \
--no-address 


gcloud compute instances create vm1-vpc4-ncc \
--zone us-east1-b \
--subnet class-e-rfc5735 \
--no-address

3. Network Connectivity Center हब

खास जानकारी

इस सेक्शन में, हम gcloud कमांड का इस्तेमाल करके NCC हब को कॉन्फ़िगर करेंगे. एनसीसी हब, कंट्रोल प्लेन के तौर पर काम करेगा. यह हर वीपीसी स्पोक के बीच राउटिंग कॉन्फ़िगरेशन बनाने के लिए ज़िम्मेदार होगा.

860347511de47cea.png

एपीआई सेवाएं चालू करना

अगर नेटवर्क कनेक्टिविटी एपीआई चालू नहीं है, तो इसे चालू करें:

gcloud services enable networkconnectivity.googleapis.com

एनसीसी हब बनाना

gCloud कमांड का इस्तेमाल करके, NCC हब बनाना

gcloud network-connectivity hubs create ncc-hub

आउटपुट का उदाहरण

Create request issued for: [ncc-hub]
Waiting for operation [projects/user-3p-dev/locations/global/operations/operation-1668793629598-5edc24b7ee3ce-dd4c765b-5ca79556] to complete...done.     
Created hub [ncc-hub]

हाल ही में बनाए गए NCC Hub के बारे में जानकारी दें. नाम और उससे जुड़ा पाथ नोट करें.

gcloud network-connectivity hubs describe ncc-hub
gcloud network-connectivity hubs describe ncc-hub
createTime: '2023-11-02T02:28:34.890423230Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub
routeTables:
- projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uniqueId: de749c4c-0ef8-4888-8622-1ea2d67450f8
updateTime: '2023-11-02T02:28:48.613853463Z'

एनसीसी हब ने एक राउटिंग टेबल लॉन्च की है. यह डेटा कनेक्टिविटी बनाने के लिए कंट्रोल प्लेन तय करती है. एनसीसी हब की राउटिंग टेबल का नाम ढूंढना

 gcloud network-connectivity hubs route-tables list --hub=ncc-hub
NAME: default
HUB: ncc-hub
DESCRIPTION:

एनसीसी की डिफ़ॉल्ट रूट टेबल का यूआरआई ढूंढें.

gcloud network-connectivity hubs route-tables describe default --hub=ncc-hub
createTime: '2023-02-24T17:32:58.786269098Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uid: eb1fdc35-2209-46f3-a8d6-ad7245bfae0b
updateTime: '2023-02-24T17:33:01.852456186Z'

एनसीसी हब की डिफ़ॉल्ट राउटिंग टेबल में मौजूद कॉन्टेंट की सूची बनाएं. ध्यान दें* एनसीसी हब की रूट टेबल तब तक खाली रहेगी, जब तक स्पोक नहीं

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default

एनसीसी हब की रूट टेबल खाली होनी चाहिए.

4. वीपीसी स्पोक के साथ एनसीसी

खास जानकारी

इस सेक्शन में, gCloud कमांड का इस्तेमाल करके तीन वीपीसी को एनसीसी स्पोक के तौर पर कॉन्फ़िगर किया जाएगा.

b367b1659d2df694.png

वीपीएन को एनसीसी स्पोक के तौर पर कॉन्फ़िगर करना

इन वीपीसी को इस क्रम में एनसीसी स्पोक के तौर पर कॉन्फ़िगर करें

  • VPC4
  • VPC1
  • VPC2
  • VPC3

VPC4 को NCC स्पोक के तौर पर कॉन्फ़िगर करें और उसे पहले से बनाए गए NCC हब को असाइन करें. NCC spoke API कॉल के लिए, जगह की जानकारी देना ज़रूरी है. "–global" फ़्लैग, gcloud सिंटैक्स को आसान बनाता है. इससे उपयोगकर्ता को नया NCC स्पोक कॉन्फ़िगर करते समय, पूरे यूआरआई पाथ को तय करने की ज़रूरत नहीं पड़ती.

gcloud network-connectivity spokes linked-vpc-network create vpc4-spoke4 \
--hub=ncc-hub \
--vpc-network=vpc4-ncc \
--global

VPC1 को NCC स्पोक के तौर पर कॉन्फ़िगर करें.

एडमिन, सबनेट रूट को वीपीसी स्पोक से NCC हब की रूट टेबल में एक्सपोर्ट होने से रोक सकते हैं. इस कोडलैब के इस हिस्से में, खास जानकारी वाले प्रीफ़िक्स के आधार पर, एक्सपोर्ट से बाहर रखने का नियम बनाएं. इससे VPC1 के सबनेट को NCC हब रूट टेबल में एक्सपोर्ट होने से रोका जा सकेगा.

VPC1 से जुड़े सभी सबनेट की सूची बनाने के लिए, इस gcloud कमांड का इस्तेमाल करें.

gcloud config set accessibility/screen_reader false
gcloud compute networks subnets list --network=vpc1-ncc

सेटअप सेक्शन में पहले से बनाए गए /25 सबनेट के पेयर को नोट करें.

NAME              REGION       NETWORK   RANGE          STACK_TYPE  
vpc1-ncc-subnet1  us-central1  vpc1-ncc  10.1.1.0/24    IPV4_ONLY
vpc1-ncc-subnet2  us-central1  vpc1-ncc  10.1.2.0/25    IPV4_ONLY
vpc1-ncc-subnet3  us-central1  vpc1-ncc  10.1.2.128/25  IPV4_ONLY

VPC1 को NCC स्पोक के तौर पर कॉन्फ़िगर करें. साथ ही, "export-exclude-ranges" कीवर्ड का इस्तेमाल करके, /25 सबनेट के पेयर को हब राउटिंग टेबल में इंपोर्ट होने से रोकें. इससे उस खास रेंज से /24 समरी रूट को फ़िल्टर किया जा सकेगा..

gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global 

ध्यान दें* उपयोगकर्ता, हर एनसीसी स्पोक के लिए 16 यूनीक आईपी रेंज तक फ़िल्टर कर सकते हैं.

एनसीसी हब की डिफ़ॉल्ट राउटिंग टेबल में मौजूद कॉन्टेंट की सूची बनाएं. एनसीसी हब की राउटिंग टेबल पर मौजूद /25 सबनेट के पेयर का क्या हुआ?

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route-table=default --filter="NEXT_HOP:vpc1-ncc"
IP_CIDR_RANGE  STATE   TYPE                  NEXT_HOP  HUB      ROUTE_TABLE
10.1.1.0/24    ACTIVE  VPC_PRIMARY_SUBNET    vpc1-ncc  ncc-hub  default

VPC2 को NCC स्पोक के तौर पर कॉन्फ़िगर करना

gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--global

VPC3 को NCC स्पोक के तौर पर कॉन्फ़िगर करें और उसे पहले से बनाए गए NCC हब को असाइन करें.

gcloud  network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--global

क्या हुआ?

ERROR: (gcloud.network-connectivity.spokes.linked-vpc-network.create) Invalid resource state for "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/global/networks/vpc3-ncc": 10.3.3.0/24 (SUBNETWORK) overlaps with 10.3.3.0/24 (SUBNETWORK) from "projects/user-3p-dev/global/networks/vpc2-ncc" (peer)

NCC हब ने VPC2 के साथ आईपी रेंज के ओवरलैप होने का पता लगाया है. याद रखें कि VPC2 और VPC3, दोनों को एक ही 10.3.3.0/24 आईपी सबनेट के साथ सेट अप किया गया था.

एक्सक्लूड एक्सपोर्ट की मदद से, एक-दूसरे से मिलती-जुलती आईपी रेंज को फ़िल्टर करना

gcloud कमांड का इस्तेमाल करके, VPC2 स्पोक को अपडेट करें, ताकि ओवरलैप होने वाली आईपी रेंज को हटाया जा सके.

gcloud  network-connectivity spokes linked-vpc-network update vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global

gcloud कमांड का इस्तेमाल करके, VPC3 के लिए एनसीसी स्पोक को अपडेट करें, ताकि ओवरलैप होने वाली सबनेट रेंज को हटाया जा सके.

gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global

एनसीसी हब की डिफ़ॉल्ट राउटिंग टेबल में मौजूद कॉन्टेंट की सूची बनाएं और आउटपुट की जांच करें.

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default

VPC2 और VPC3 की ओवरलैप होने वाली आईपी रेंज को बाहर रखा गया है. एनसीसी हब की राउटिंग टेबल, IPv4 की सभी मान्य रेंज टाइप के साथ काम करती है. हालांकि, यह निजी तौर पर इस्तेमाल किए जाने वाले सार्वजनिक आईपी पतों (पीयूपीआई) के साथ काम नहीं करती.

5. क्रॉस प्रोजेक्ट स्पोक के साथ एनसीसी

खास जानकारी

अब तक, आपने ऐसे एनसीसी स्पोक कॉन्फ़िगर किए हैं जो हब के साथ एक ही प्रोजेक्ट में शामिल हैं. इस सेक्शन में, gcloud कमांड का इस्तेमाल करके, एनसीसी हब के अलावा किसी दूसरे प्रोजेक्ट से वीपीसी को एनसीसी स्पोक के तौर पर कॉन्फ़िगर किया जाएगा.

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

a90b3185e30832e8.png

क्रॉस प्रोजेक्ट: Google Cloud Console और Cloud Shell

GCP के साथ इंटरैक्ट करने के लिए, हम इस लैब में Google Cloud Console और Cloud Shell, दोनों का इस्तेमाल करेंगे.

क्रॉस प्रोजेक्ट स्पोक Google Cloud Console

Cloud Console को https://console.cloud.google.com पर जाकर ऐक्सेस किया जा सकता है.

Network Connectivity Center को आसानी से कॉन्फ़िगर करने के लिए, Google Cloud में ये आइटम सेट अप करें:

Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, कोई Google Cloud प्रोजेक्ट चुनें या बनाएं.

Cloud Shell लॉन्च करें. इस कोडलैब में, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए, $variables का इस्तेमाल किया गया है.

gcloud auth list
gcloud config list project
gcloud config set project [YOUR-CROSSPROJECT-NAME]
xprojname=[YOUR-CROSSPROJECT-NAME]
echo $xprojname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1

IAM भूमिकाएं

NCC को कुछ एपीआई ऐक्सेस करने के लिए, IAM की भूमिकाओं की ज़रूरत होती है. ज़रूरत के मुताबिक, उपयोगकर्ता को NCC IAM की भूमिकाएं असाइन करना न भूलें.

कम से कम, क्रॉस प्रोजेक्ट स्पोक एडमिन को यह आईएएम भूमिका दी जानी चाहिए: "networkconnectivity.networkSpokeManager. "

यहां दी गई टेबल में, एनसीसी हब और स्पोक एडमिन के लिए ज़रूरी आईएएम भूमिका की जानकारी दी गई है.

भूमिका/ब्यौरा

अनुमतियां

networkconnectivity.networkAdmin - इससे नेटवर्क एडमिन को हब और स्पोक मैनेज करने की अनुमति मिलती है.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager - इस भूमिका की मदद से, हब में स्पोक जोड़े और मैनेज किए जा सकते हैं. इसका इस्तेमाल शेयर किए गए वीपीसी में किया जाता है. इसमें होस्ट-प्रोजेक्ट के पास हब का मालिकाना हक होता है. हालांकि, अन्य प्रोजेक्ट के एडमिन, हब से अटैचमेंट के लिए स्पोक जोड़ सकते हैं.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer - इससे नेटवर्क के उपयोगकर्ता, हब और स्पोक के अलग-अलग एट्रिब्यूट देख सकते हैं.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

क्रॉस प्रोजेक्ट में वीपीसी और सबनेट बनाना

वीपीसी नेटवर्क में सबनेट होते हैं. आपको डेटा पाथ की पुष्टि करने के लिए, GCE वीएम इंस्टॉल करना होगा

gcloud compute networks create xproject-vpc \
--subnet-mode custom

gcloud compute networks subnets create xprj-net-1 \
--network xproject-vpc \
--range 10.100.1.0/24 \
--region us-central1

gcloud compute networks subnets create xprj-net-2 \
--network xproject-vpc \
--range 10.100.2.0/24 \
--region us-central1

NCC Hub Project URI

एनसीसी हब का यूआरआई ढूंढने के लिए, इस gcloud कमांड का इस्तेमाल करें. अगले चरण में, आपको क्रॉस प्रोजेक्ट NCC स्पोक को कॉन्फ़िगर करने के लिए यूआरआई पाथ की ज़रूरत होगी.

gcloud network-connectivity hubs describe ncc-hub

क्रॉस प्रोजेक्ट स्पोक वीपीसी

उस दूसरे प्रोजेक्ट में लॉगिन करें जहां वीपीसी, एनसीसी हब प्रोजेक्ट का हिस्सा नहीं है. किसी वीपीसी को NCC स्पोक के तौर पर कॉन्फ़िगर करने के लिए, Cloud Shell पर इस कमांड का इस्तेमाल करें.

  • HUB_URI, किसी दूसरे प्रोजेक्ट में मौजूद हब का यूआरआई होना चाहिए.
  • VPC_URI, स्पोक के तौर पर इस्तेमाल किए जा रहे प्रोजेक्ट में होना चाहिए
  • VPC-network से पता चलता है कि इस क्रॉस प्रोजेक्ट में मौजूद वीपीसी, दूसरे प्रोजेक्ट में मौजूद NCC हब से कनेक्ट होगा
gcloud network-connectivity spokes linked-vpc-network create xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--vpc-network=xproject-vpc

.

Create request issued for: [xproj-spoke]
Waiting for operation [projects/xproject/locations/global/operations/operation-1689790411247-600dafd351158-2b862329-19b747f1] to complete...done.                           
Created spoke [xproj-spoke].
createTime: '2023-07-19T18:13:31.388500663Z'
hub: projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub
linkedVpcNetwork:
  uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/xproject-vpc
name: projects/xproject/locations/global/spokes/xproj-spoke
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 46b4d091-89e2-4760-a15d-c244dcb7ad69
updateTime: '2023-07-19T18:13:38.652800902Z'

क्रॉस प्रोजेक्ट एनसीसी स्पोक की स्थिति क्या है? क्यों?

6. Reject or Accepting Cross Project Spoke

खास जानकारी

हब में शामिल होने के लिए, NCC हब के एडमिन को क्रॉस प्रोजेक्ट स्पोक को साफ़ तौर पर स्वीकार करना होगा. इससे प्रोजेक्ट के मालिक, एनसीसी की ग्लोबल राउटिंग टेबल में गलत एनसीसी स्पोक अटैच नहीं कर पाते. किसी स्पोक को स्वीकार या अस्वीकार करने के बाद, ऊपर दिए गए निर्देशों का पालन करके उसे जितनी बार चाहें उतनी बार स्वीकार या अस्वीकार किया जा सकता है.

क्लाउड शेल में लॉग इन करके, उस प्रोजेक्ट पर वापस जाएं जहां एनसीसी हब मौजूद है.

समीक्षा के लिए, क्रॉस प्रोजेक्ट स्पोक की पहचान करना

gcloud network-connectivity hubs list-spokes ncc-hub \
 --filter="reason:PENDING_REVIEW"

स्पोक स्वीकार करना

gcloud network-connectivity hubs accept-spoke ncc-hub --spoke=xproj-spoke

ज़रूरी नहीं: स्पोक को अस्वीकार करना

gcloud network-connectivity spokes reject-spoke ncc-hub --spoke=xproj-spoke 
--details="some reason to reject"

Hub पर ऐक्टिव स्पोक की सूची बनाना

gcloud network-connectivity hubs list-spokes ncc-hub \
 --filter="state:ACTIVE"
NAME            PROJECT          LOCATION  TYPE         STATE   STATE REASON
Xproj-spoke     xproj            global    VPC_NETWORK  ACTIVE
vpc4-spoke4     user-3p-dev      global    VPC_NETWORK  ACTIVE
vpc1-spoke1     user-3p-dev      global    VPC_NETWORK  ACTIVE
vpc2-spoke2     user-3p-dev      global    VPC_NETWORK  ACTIVE
vpc3-spoke3     user-3p-dev      global    VPC_NETWORK  ACTIVE

हब पर सबनेट रूट की सूची बनाना

क्या आपको आउटपुट में, क्रॉस वीपीसी स्पोक से सबनेट रूट दिख रहे हैं?

gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:xprj-vpc"
IP_CIDR_RANGE  STATE   TYPE                NEXT_HOP  HUB      ROUTE_TABLE
10.100.1.0/24  ACTIVE  VPC_PRIMARY_SUBNET  xprj-vpc  ncc-hub  default

Include-Export फ़िल्टर की मदद से, क्रॉस प्रोजेक्ट स्पोक वीपीसी को अपडेट करना

उस प्रोजेक्ट में लॉगिन करें जिसमें वीपीसी, एनसीसी हब प्रोजेक्ट का हिस्सा नहीं है. किसी वीपीसी को NCC स्पोक के तौर पर कॉन्फ़िगर करने के लिए, Cloud Shell पर इस कमांड का इस्तेमाल करें.

  • HUB_URI, किसी दूसरे प्रोजेक्ट में मौजूद हब का यूआरआई होना चाहिए.
  • VPC_URI, स्पोक के तौर पर इस्तेमाल किए जा रहे प्रोजेक्ट में होना चाहिए
  • VPC-network से पता चलता है कि इस क्रॉस प्रोजेक्ट में मौजूद वीपीसी, दूसरे प्रोजेक्ट में मौजूद NCC हब से कनेक्ट होगा
  • सिर्फ़ सबनेट रेंज 10.100.2.0/24 को NCC हब रूट टेबल में इंपोर्ट करें
  • आउटपुट में "ETAG" वैल्यू नोट करें. यह वैल्यू, NCC जनरेट करता है. आपको यह वैल्यू, NCC हब के एडमिन को देनी होगी. जब कोई स्पोक नेटवर्क, हब नेटवर्क से जुड़ने का अनुरोध करेगा, तब एनसीसी हब एडमिन को इस वैल्यू का रेफ़रंस देना होगा.
gcloud network-connectivity spokes linked-vpc-network update xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--include-export-ranges=10.100.2.0/24
Update request issued for: [xprj-vpc]
Waiting for operation [projects]/xproject/locations/global/operations/operation-1742936388803-6313100521cae-020ac5d2-58
52fbba] to complete...done.                                                                                                 
Updated spoke [xprj-vpc].
createTime: '2025-02-14T14:25:41.996129250Z'
etag: '4'
fieldPathsPendingUpdate:
- linked_vpc_network.include_export_ranges
group: projects/xxxxxxxx/locations/global/hubs/ncc-hub/groups/default
hub: projects/xxxxxxxx/locations/global/hubs/ncc-hub
linkedVpcNetwork:
  includeExportRanges:
  - 10.100.2.0/24
  uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/vpc1-spoke
name: projects/xproject/locations/global/spokes/xprj-vpc
reasons:
- code: UPDATE_PENDING_REVIEW
  message: Spoke update is Pending Review
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 182e0f8f-91cf-481c-a081-ea6f7e40fb0a
updateTime: '2025-03-25T20:59:51.995734879Z'

अपडेट किए गए उन क्रॉस प्रोजेक्ट स्पोक की पहचान करना जिन्हें आपको देखना है

उस प्रोजेक्ट में लॉग इन करें जो NCC हब को होस्ट कर रहा है. Cloud Shell पर, इस कमांड का इस्तेमाल करके, अलग-अलग प्रोजेक्ट के वीपीसी स्पोक के अपडेट की स्थिति देखें.

  • ईटैग वैल्यू क्या है? यह वैल्यू, वीपीसी स्पोक अपडेट के आउटपुट से मेल खानी चाहिए.
gcloud network-connectivity hubs list-spokes ncc-hub \ 
--filter="reasons:UPDATE_PENDING_REVIEW" \
--format=yaml

क्रॉस प्रोजेक्ट स्पोक से किए गए अपडेट स्वीकार करना

इस कमांड का इस्तेमाल करके, क्रॉस प्रोजेक्ट स्पोक के NCC हब में शामिल होने के अनुरोध को स्वीकार करें

gcloud network-connectivity hubs accept-spoke-update ncc-hub \
 --spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke \
 --spoke-etag={etag value}

अगर चाहें, तो क्रॉस प्रोजेक्ट स्पोक से मिले अपडेट किए गए बदलावों को अस्वीकार करें

इस कमांड का इस्तेमाल करके, क्रॉस प्रोजेक्ट स्पोक के NCC हब में शामिल होने के अनुरोध को अस्वीकार करें

gcloud network-connectivity hubs reject-spoke-update ncc-hub  \
--spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke  \
--details="not today" \
--spoke-etag={etag value} 

पुष्टि करें कि क्रॉस प्रोजेक्ट स्पोक, NCC हब से जुड़ गया है

gcloud network-connectivity hubs list-spokes ncc-hub \ --filter="name:xproj-spoke"

7. वीपीसी के बीच प्राइवेट NAT

खास जानकारी

इस सेक्शन में, दो वीपीसी के बीच ओवरलैप होने वाली सबनेट रेंज के लिए, प्राइवेट NAT को कॉन्फ़िगर किया जाएगा. ध्यान दें कि वीपीसी के बीच निजी NAT के लिए, एनसीसी की ज़रूरत होती है.

पिछले सेक्शन में, VPC2 और VPC3 को "10.3.3.0/24" की ओवरलैपिंग सबनेट रेंज के साथ कॉन्फ़िगर किया गया है. दोनों वीपीसी को NCC स्पोक के तौर पर कॉन्फ़िगर किया गया है, ताकि ओवरलैप करने वाले सबनेट को NCC हब रूट टेबल में शामिल न किया जा सके. इसका मतलब है कि उस सबनेट पर मौजूद होस्ट तक पहुंचने के लिए, कोई लेयर 3 डेटा पाथ नहीं है.

ओवरलैप होने वाली सबनेट रेंज ढूंढने के लिए, NCC हब प्रोजेक्ट में इन कमांड का इस्तेमाल करें.

gcloud compute networks subnets list --network vpc2-ncc

gcloud compute networks subnets list --network vpc3-ncc

vpc2-ncc पर, उस सबनेट का नाम क्या है जिसमें ओवरलैपिंग आईपी रेंज शामिल है?

*सबनेट का नाम कहीं नोट करें और उसे सेव करें. इस रेंज के लिए, सोर्स NAT को कॉन्फ़िगर करें.

प्राइवेट एनएटी कॉन्फ़िगर करना

VPC2 के ओवरलैपिंग सबनेट से सोर्स NAT ट्रैफ़िक के लिए, रूट की जा सकने वाली सबनेट रेंज असाइन करें. "–purpose=PRIVATE_NAT" फ़्लैग का इस्तेमाल करके, एक ऐसी सबनेट रेंज कॉन्फ़िगर करें जो ओवरलैप न हो.

gcloud beta compute networks subnets create ncc2-spoke-nat \
--network=vpc2-ncc \
--region=us-central1 \
--range=10.10.10.0/29 \
--purpose=PRIVATE_NAT

प्राइवेट NAT करने के लिए, एक डेडीकेटेड क्लाउड राउटर बनाना

gcloud compute routers create private-nat-cr \
--network vpc2-ncc \
--region us-central1

vpc2-ncc से 10.3.3.0/24 की ओवरलैपिंग रेंज को सोर्स NAT करने के लिए, क्लाउड राउटर को कॉन्फ़िगर करें. यहां दिए गए कॉन्फ़िगरेशन के उदाहरण में, "overlapping-vpc3" ओवरलैप होने वाले सबनेट का नाम है. "ALL" कीवर्ड से पता चलता है कि सबनेट में मौजूद सभी आईपी पतों को सोर्स NAT किया जाएगा.

gcloud beta compute routers nats create ncc2-nat \
--router=private-nat-cr \
--type=PRIVATE \
--nat-custom-subnet-ip-ranges=overlapping-vpc3:ALL \
--router-region=us-central1

पिछले चरणों में, NAT आईपी पतों की रेंज और उस खास सबनेट का पूल बनाया गया था जिसका अनुवाद किया जाएगा. इस चरण में, NAT नियम "1" बनाएं. यह नियम, ओवरलैप होने वाली सबनेट रेंज से मिले ट्रैफ़िक से मेल खाने वाले नेटवर्क पैकेट का अनुवाद करता है. ऐसा तब होता है, जब डेस्टिनेशन नेटवर्क, NCC हब की रूटिंग टेबल से पाथ लेता है.

gcloud beta compute routers nats rules create 1 \
--router=private-nat-cr \
--region=us-central1 \
--match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/$projectname/locations/global/hubs/ncc-hub"' \
--source-nat-active-ranges=ncc2-spoke-nat \
--nat=ncc2-nat

प्राइवेट NAT के लिए डेटा पाथ की पुष्टि करना

gcloud beta compute routers nats describe ncc2-nat --router=private-nat-cr

आउटपुट का उदाहरण

enableDynamicPortAllocation: true
enableEndpointIndependentMapping: false
endpointTypes:
- ENDPOINT_TYPE_VM
name: ncc2-nat
rules:
- action:
    sourceNatActiveRanges:
    - https://www.googleapis.com/compute/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/ncc2-spoke-nat
  match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/xxxxxxxx/locations/global/hubs/ncc-hub"
  ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/overlapping-vpc3
  sourceIpRangesToNat:
  - ALL_IP_RANGES
type: PRIVATE

इसके अलावा,

  • वेब कंसोल पर स्विच करना
  • "नेटवर्क सेवाएं > Cloud NAT > ncc2-nat" पर जाएं

पुष्टि करें कि डाइनैमिक पोर्ट असाइन करने की सुविधा डिफ़ॉल्ट रूप से चालू है.

7317d3cfb7e9468b.png

इसके बाद, आपको उस डेटा पाथ की पुष्टि करनी होगी जो VPC2 के लिए कॉन्फ़िगर किए गए प्राइवेट NAT पाथ का इस्तेमाल करता है.

444d45616f1d0cae.png

"vm1-vpc1-ncc" के लिए एक एसएसएच सेशन खोलें. इसके बाद, नीचे दिए गए tcpdump कमांड का इस्तेमाल करके, NAT पूल की रेंज "10.10.10.0/29" से सोर्स किए गए पैकेट कैप्चर करें.

vm1-vpc1-ncc

sudo tcpdump -i any net 10.10.10.0/29 -n

इस कोडलैब को लिखते समय, प्राइवेट NAT में ICMP पैकेट काम नहीं करते हैं. "pNat-vm-vpc2" के लिए एसएसएच सेशन शुरू करें. इसके बाद, टीसीपी 80 पोर्ट पर "vm1-vpc1-ncc" से कनेक्ट करने के लिए, यहां दिखाई गई curl कमांड का इस्तेमाल करें.

pnat-vm-vpc2

curl 10.1.1.2 -v 

"vm1-vpc1-ncc." पर tcpdump के आउटपुट की जांच करें हमारे वेब सर्वर "vm1-vpc1-ncc." पर टीसीपी सेशन शुरू करने वाला सोर्स आईपी पता क्या है?

tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
19:05:27.504761 ens4  In  IP 10.10.10.2.1024 > 10.1.1.2:80: Flags [S], seq 2386228656, win 65320, options [mss 1420,sackOK,TS val 3955849029 ecr 0,nop,wscale 7], length 0
19:05:27.504805 ens4  Out IP 10.1.1.2:80 > 10.10.10.2.1024: Flags [S.], seq 48316785, ack 2386228657, win 64768, options [mss 1420,sackOK,TS val 1815983704 ecr 3955849029,nop,wscale 7], length 0
<output snipped>

8. आईपीवी6 सबनेट के लिए एनसीसी की सुविधा

Network Connectivity Center, NCC वीपीसी स्पोक और हाइब्रिड स्पोक के बीच IPv6 सबनेट और डाइनैमिक राउट के आदान-प्रदान की सुविधा देता है. इस सेक्शन में, NCC को कॉन्फ़िगर करें, ताकि वह IPv6-ओनली और डुअल-स्टैक IPv4-और-IPv6 सबनेट रूट एक्सचेंज मोड के साथ काम कर सके.

57282c3276d50671.png

IPv6 के लिए एक नया वीपीसी बनाएं, जो वीपीसी स्पोक के तौर पर NCC-Hub से जुड़ेगा. GCP, fd20::/20 रेंज से सभी यूएलए पते अपने-आप असाइन कर देगा.

gcloud compute networks create vpc5-ncc \
--subnet-mode custom \
--enable-ula-internal-ipv6 

gcloud compute networks subnets create vpc5-ext-ipv6 \ --network=vpc5-ncc \ 
--stack-type=IPV6 \ 
--ipv6-access-type=EXTERNAL \ 
--region=us-central1

gcloud compute networks subnets create vpc5-ipv4-subnet1 \
--network vpc5-ncc \
--range 10.5.5.0/24 \
--region us-central1

इस कमांड का इस्तेमाल करके, VPC5 को NCC स्पोक के तौर पर कॉन्फ़िगर करें. साथ ही, आईपीवी4 सबनेट रूट को हब रूट टेबल में एक्सपोर्ट होने से रोकें. IPv6 ULA नेटवर्क को NCC हब रूट टेबल में एक्सपोर्ट करें.

gcloud network-connectivity spokes linked-vpc-network create vpc5-spoke5 \
--hub=ncc-hub \
--vpc-network=vpc5-ncc \
--exclude-export-ranges=10.5.5.0/24
--global

निजी आईपीवी6 यूनीक लोकल पतों (यूएलए) के लिए, वीपीसी1 और वीपीसी4 चालू करें. GCP, fd20::/20 रेंज से सभी यूएलए पते अपने-आप असाइन कर देगा.

gcloud compute networks update vpc-ncc4 \
    --enable-ula-internal-ipv6

gcloud compute networks update vpc-ncc1 \
    --enable-ula-internal-ipv6

VPC1 में नेटिव ipv6 और ड्यूअल-स्टैक ipv4_v6 सबनेट बनाएं

gcloud compute networks subnets create vpc1-ipv6-sn1 \
    --network=vpc-ncc1 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=INTERNAL \
    --region=us-central1

gcloud compute networks subnets create vpc1-ipv64-sn2 \
    --network=vpc-ncc1 \
    --range=10.10.10.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=us-east1

VPC4 में नेटिव ipv6 और ड्यूअल-स्टैक ipv4_v6 सबनेट बनाएं

gcloud compute networks subnets create vpc4-ipv6-sn1 \
    --network=vpc-ncc4 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=INTERNAL \
    --region=us-central1

gcloud compute networks subnets create vpc4-ipv64-sn2 \
    --network=vpc-ncc4 \
    --range=10.40.40.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=us-east1

VPC1 पर, आईपीवी6 वीपीसी फ़ायरवॉल का नियम बनाएं, ताकि आईपीवी6 यूएलए रेंज से आने वाले ट्रैफ़िक को अनुमति दी जा सके.

gcloud compute firewall-rules create allow-icmpv6-ula-ncc1 \
    --network=vpc-ncc1 \
    --action=allow \
    --direction=ingress \
    --rules=all \
    --source-ranges=fd20::/20

VPC4 पर, आईपीवी6 यूएलए रेंज से मिले ट्रैफ़िक को अनुमति देने के लिए, आईपीवी6 वीपीसी फ़ायरवॉल का नियम बनाएं.

gcloud compute firewall-rules create allow-icmpv6-ula-ncc4 \
    --network=vpc-ncc4 \
    --action=allow \
    --direction=ingress \
    --rules=all \
    --source-ranges=fd20::/20

अगले सेक्शन में डेटा पाथ कनेक्टिविटी की पुष्टि करने के लिए, तीन GCE IPv6 इंस्टेंस बनाएं. ध्यान दें: "vpc1-dualstack-vm" का इस्तेमाल बैशन होस्ट के तौर पर किया जाएगा, ताकि नेटिव IPv6 GCE वीएम को आउट ऑफ़ बैंड ऐक्सेस किया जा सके.

gcloud compute instances create vpc4-ipv6-vm \
    --zone us-central1-a \
    --subnet=vpc4-ipv6-sn1 \
    --stack-type=IPV6_ONLY

gcloud compute instances create vpc1-ipv6-vm \
    --zone us-central1-a \
    --subnet=vpc1-ipv6-sn1 \
    --stack-type=IPV6_ONLY

gcloud compute instances create vpc1-dual-stack-vm \
    --zone us-east1-b \
    --network=vpc-ncc1 \
    --subnet=vpc2-ipv64-sn2 \
    --stack-type=IPV4_IPV6

IPv6 सबनेट के लिए, NCC Hub देखें

आईपीवी6 यूएलए सबनेट के लिए, एनसीसी हब की रूट टेबल देखें.

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"

ध्यान दें कि ऊपर दिए गए निर्देश के आउटपुट में, IPv6 सबनेट की सूची नहीं दी गई है. डिफ़ॉल्ट रूप से, वीपीसी स्पोक से IPv6 सबनेट को NCC हब रूट टेबल में एक्सपोर्ट करने के लिए शामिल नहीं किया जाता है.

Listed 0 items.

नीचे दिए गए gcloud कमांड का इस्तेमाल करके, VPC1 और VPC4 स्पोक को अपडेट करें, ताकि IPv6 सबनेट को NCC हब रूट टेबल में एक्सपोर्ट किया जा सके.

gcloud network-connectivity spokes linked-vpc-network update vpc1-spoke1 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

gcloud network-connectivity spokes linked-vpc-network update vpc4-spoke4 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

एक बार फिर, आईपीवी6 यूएलए सबनेट के लिए, एनसीसी हब की राऊटिंग टेबल देखें.

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"

आउटपुट का उदाहरण

IP_CIDR_RANGE                  PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
fd20:c95:95d2:1000:0:0:0:0/64            us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub  default
fd20:c95:95d2:1:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub  default
fd20:670:3823:0:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
fd20:90:6768:1000:0:0:0:0/64             us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc2  ncc-hub  default
fd20:90:6768:0:0:0:0:0/64                us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc2  ncc-hub  default

एनसीसी वीपीसी स्पोक की मदद से IPv6 सबनेट फ़िल्टर करना

बाहरी आईपीवी6 सबनेट रूट के लिए, NCC हब रूट टेबल देखें

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:vpc-ncc5"

उदाहरण के तौर पर दिया गया आउटपुट. इसमें दिखाया गया है कि एनसीसी हब रूट टेबल ने बाहरी IPv6 रेंज के बारे में जानकारी हासिल कर ली है.

IP_CIDR_RANGE                  PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
10.5.5.0/24                              us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
2600:1900:4001:ce6:0:0:0:0/64            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
fd20:670:3823:0:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
10.50.10.0/24                            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default

नीचे दिए गए gcloud कमांड का इस्तेमाल करके, VPC5 स्पोक अपडेट करें. इससे, दो खास इंटरनल IPv6 सबनेट और एक बाहरी IPv6 सबनेट को NCC हब रूट टेबल में इंजेक्ट होने से रोका जा सकेगा.

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
 --global \
 --include-export-ranges=fd20:670:3823:0:0:0:0:0/48 \
 --exclude-export-ranges=fd20:670:3823:1::/64,fd20:670:3823:2::/64  

gcloud कमांड का इस्तेमाल करके, VPC5 स्पोक के एक्सपोर्ट फ़िल्टर की पुष्टि करना

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
 --global \
 --include-export-ranges=fd20:670:3823:0:0:0:0:0/48 \
 --exclude-export-ranges=fd20:670:3823:1::/64,fd20:670:3823:2::/64  

बाहरी आईपीवी6 सबनेट रूट के लिए, NCC हब रूट टेबल देखें

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:vpc-ncc5"

उदाहरण के तौर पर दिया गया आउटपुट. इसमें दिखाया गया है कि एनसीसी हब रूट टेबल ने बाहरी IPv6 रेंज के बारे में जानकारी हासिल कर ली है.

IP_CIDR_RANGE               PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
fd20:670:3823:0:0:0:0:0/64            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  demo-mesh-hub  default

9. डेटा पाथ कनेक्टिविटी की पुष्टि करना

IPv4 डेटा पाथ कनेक्टिविटी

डायग्राम देखें और हर वर्चुअल मशीन के बीच IPv4 डेटा पाथ की पुष्टि करें.

27c61b09f2bf2d02.png

vm1-vpc1-ncc" से SSH करें और " vm2-vpc2-ncc" से ICMP पैकेट को ट्रेस करने के लिए, टीसीपी डंप शुरू करें. आपको याद दिला दें कि यह वीएम, VPC2 पर मौजूद है.

vm1-vpc1-ncc

sudo tcpdump -i any icmp -v -e -n

"vm1-vpc2-ncc" से SSH सेशन शुरू करें और "vm1-vpc1-ncc" के आईपी पते को "पिंग" करें.

vm1-vpc2-ncc

ping 10.1.1.2

"vm1-vpc2-ncc" से SSH कनेक्शन बनाएं और "vm1-vpc4-ncc" के आईपी पते को "ping" करें.

vm1-vpc2-ncc

ping 240.0.0.2

IPv6 डेटा पाथ कनेक्टिविटी

डायग्राम देखें और पुष्टि करें कि हर वर्चुअल मशीन के बीच IP64 डेटा पाथ मौजूद है.

3afe67968317a16d.png

आईपीवी6 की सुविधा वाले हर इंस्टेंस के लिए आईपी पते की सूची बनाने के लिए, gcloud कमांड का इस्तेमाल करें.

 gcloud compute instances list --filter="INTERNAL_IP:fd20"

आउटपुट का सैंपल

NAME                ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP                   EXTERNAL_IP      STATUS
vpc1-ipv6-vm        us-central1-a  n1-standard-1               fd20:90:6768:0:0:1:0:0/96                      RUNNING
vpc4-ipv6-vm        us-central1-a  n1-standard-1               fd20:c95:95d2:1:0:1:0:0/96                     RUNNING
vpc1-dual-stack-vm  us-east1-b     n1-standard-1               10.10.10.3                    XXX.196.137.107  RUNNING
                                                               fd20:90:6768:1000:0:1:0:0/96

ग्लोबल वीपीसी में IPv6 कनेक्टिविटी की पुष्टि करने के लिए, "vpc1-dualstack-vm" से SSH सेशन शुरू करें और "vpc1-ipv6-vm" के IPv6 पते को "पिंग" करें

ping fd20:90:6768:1000:0:1::

एनसीसी कनेक्शन के ज़रिए आईपीवी6 कनेक्टिविटी की पुष्टि करने के लिए, "vpc1-dualstack-vm" से एसएसएच सेशन शुरू करें. इसके बाद, "vpc4-ipv6-vm" के आईपीवी6 पते को "पिंग" करें.

ping fd20:c95:95d2:1:0:1::

10. क्लीन अप करें

क्लाउड शेल में लॉग इन करें और हब और ब्रांच साइट नेटवर्क में मौजूद वीएम इंस्टेंस मिटाएं

प्राइवेट वीपीसी नेट कॉन्फ़िगरेशन मिटाना

gcloud beta compute routers nats rules delete 1 \
--nat=ncc2-nat \
--router=private-nat-cr \
--region=us-central1 \
--quiet

gcloud beta compute routers nats delete ncc2-nat \
--router=private-nat-cr \
--router-region=us-central1 \
--quiet

gcloud compute routers delete private-nat-cr \
--region=us-central1 \
--quiet

एनसीसी स्पोक मिटाएं

gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet

gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet

gcloud network-connectivity spokes delete vpc3-spoke3 --global --quiet

gcloud network-connectivity spokes delete vpc4-spoke4 --global --quiet

दूसरे प्रोजेक्ट के स्पोक को अस्वीकार करें

एनसीसी हब से, क्रॉस प्रोजेक्ट वीपीसी स्पोक को अस्वीकार करें.

gcloud network-connectivity spokes reject projects/$xprojname/locations/global/spokes/xproj-spoke \--details="cleanup" \
--global

NCC Hub को मिटाना

gcloud network-connectivity hubs delete ncc-hub --quiet

फ़ायरवॉल के नियम मिटाना

gcloud compute firewall-rules delete ncc1-vpc-internal --quiet
gcloud compute firewall-rules delete ncc2-vpc-internal --quiet
gcloud compute firewall-rules delete ncc3-vpc-internal --quiet
gcloud compute firewall-rules delete ncc4-vpc-internal --quiet
gcloud compute firewall-rules delete ncc1-vpc-iap --quiet
gcloud compute firewall-rules delete ncc2-vpc-iap --quiet
gcloud compute firewall-rules delete ncc3-vpc-iap --quiet
gcloud compute firewall-rules delete ncc4-vpc-iap --quiet
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc1 
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc4 

GCE इंस्टेंस मिटाना

gcloud compute instances delete vm1-vpc1-ncc --zone=us-central1-a --quiet
gcloud compute instances delete vm2-vpc2-ncc --zone=us-central1-a --quiet
gcloud compute instances delete pnat-vm-vpc2 --zone=us-central1-a --quiet
gcloud compute instances delete vm1-vpc4-ncc --zone=us-east1-b --quiet
gcloud compute instances delete vpc4-ipv6-vm  --zone us-central1-a --quiet
gcloud compute instances delete vpc2-dual-stack-vm --zone us-east1-b --quiet
gcloud compute instances delete vpc2-ipv6-vm --zone us-central1-a --quiet

वीपीसी सबनेट मिटाना

gcloud compute networks subnets delete ncc2-spoke-nat --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet2 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet3 --region us-central1 --quiet
gcloud compute networks subnets delete vpc2-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc2 --region us-central1 --quiet 
gcloud compute networks subnets delete overlapping-vpc3 --region us-central1 --quiet

gcloud compute networks subnets delete benchmark-testing-rfc2544 --region us-east1 --quiet
gcloud compute networks subnets delete class-e-rfc5735 --region us-east1 --quiet
gcloud compute networks subnets delete ietf-protcol-assignment-rfc6890 --region us-east1 --quiet
gcloud compute networks subnets delete ipv6-4-relay-rfc7526 --region us-east1 --quiet
gcloud compute networks subnets delete pupi --region us-east1 --quiet
gcloud compute networks subnets delete test-net-1-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-2-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-3-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete vpc1-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc1-ipv6-sn1 --region=us-central1 --quiet
gcloud compute networks subnets delete vpc4-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc4-ipv6-sn1 --region=us-central1 --quiet
gcloud compute networks subnets delete vpc5-ext-ipv6 --region=us-central1 --quiet

VPC मिटाएं

gcloud compute networks delete vpc1-ncc vpc2-ncc vpc3-ncc vpc4-ncc, vpc5-ncc --quiet 

11. बधाई हो!

आपने Network Connectivity Center Lab पूरा कर लिया है!

आपने क्या कवर किया

  • एनसीसी हब के साथ फ़ुल मेश वीपीसी पीयरिंग नेटवर्क कॉन्फ़िगर किया गया हो
  • NCC स्पोक एक्सक्लूड फ़िल्टर
  • क्रॉस प्रोजेक्ट स्पोक की सुविधा
  • वीपीसी के बीच प्राइवेट NAT

अगले चरण

©Google, LLC या उसकी सहयोगी कंपनियां. सभी अधिकार सुरक्षित हैं. इसे डिस्ट्रिब्यूट न करें.