ল্যাব: স্পোক হিসাবে এনসিসি ভিপিসি

১. ভূমিকা

সংক্ষিপ্ত বিবরণ

এই ল্যাবে, ব্যবহারকারীরা জানবেন কিভাবে VPC স্পোকের সমর্থনের মাধ্যমে নেটওয়ার্ক কানেক্টিভিটি সেন্টার (NCC) ব্যবহার করে বৃহৎ পরিসরে আন্তঃ-VPC সংযোগ স্থাপন করা যায়। যখন ব্যবহারকারীরা একটি VPC-কে VPC স্পোক হিসেবে সংজ্ঞায়িত করেন, তখন এটি তাদেরকে NCC হাবের মাধ্যমে সেটিকে একাধিক VPC নেটওয়ার্কের সাথে সংযুক্ত করতে সক্ষম করে। VPC স্পোক কনফিগারেশন সহ NCC, VPC পিয়ারিংয়ের মাধ্যমে জোড়ায় জোড়ায় আন্তঃ-VPC সংযোগ পরিচালনার জটিলতা হ্রাস করে এবং এর পরিবর্তে একটি কেন্দ্রীভূত সংযোগ ব্যবস্থাপনা মডেল ব্যবহার করে।

স্মরণ করুন যে নেটওয়ার্ক কানেক্টিভিটি সেন্টার (NCC) হলো গুগল ক্লাউডে নেটওয়ার্ক কানেক্টিভিটি ব্যবস্থাপনার জন্য একটি হাব-অ্যান্ড-স্পোক কন্ট্রোল প্লেন মডেল। হাব রিসোর্সটি স্পোকগুলোকে আন্তঃসংযুক্ত করার জন্য একটি কেন্দ্রীভূত কানেক্টিভিটি ব্যবস্থাপনা মডেল প্রদান করে।

আপনি যা তৈরি করবেন

এই কোডল্যাবে, আপনি NCC হাব ব্যবহার করে একটি লজিক্যাল হাব ও স্পোক টপোলজি তৈরি করবেন, যা তিনটি স্বতন্ত্র VPC জুড়ে একটি সম্পূর্ণ মেশড VPC কানেক্টিভিটি ফ্যাব্রিক বাস্তবায়ন করবে।

আপনি যা শিখবেন

  • এনসিসি সহ সম্পূর্ণ মেশ ভিপিসি সংযোগ
  • VPC জুড়ে ব্যক্তিগত NAT

আপনার যা যা লাগবে

  • GCP VPC নেটওয়ার্ক সম্পর্কে জ্ঞান
  • ক্লাউড রাউটার এবং বিজিপি রাউটিং সম্পর্কে জ্ঞান
  • দুটি পৃথক GCP প্রকল্প
  • এই কোডল্যাবের জন্য ৫টি ভিপিসি (VPC) প্রয়োজন। এই ভিপিসিগুলোর মধ্যে একটি অবশ্যই এনসিসি হাব (NCC hub) থেকে আলাদা একটি প্রজেক্টে থাকতে হবে।
  • আপনার কোটা:নেটওয়ার্কস যাচাই করুন এবং প্রয়োজনে অতিরিক্ত নেটওয়ার্কের জন্য অনুরোধ করুন , নিচে স্ক্রিনশট দেওয়া হলো:

6bc606cb34bce7e8.png

উদ্দেশ্য

  • GCP পরিবেশ সেটআপ করুন
  • VPC-কে স্পোক হিসেবে ব্যবহার করে নেটওয়ার্ক কানেক্টিভিটি সেন্টার কনফিগার করুন
  • ডেটা পাথ যাচাই করুন
  • এনসিসি পরিষেবাযোগ্যতার বৈশিষ্ট্যগুলি অন্বেষণ করুন
  • ব্যবহৃত সম্পদ পরিষ্কার করুন

শুরু করার আগে

গুগল ক্লাউড কনসোল এবং ক্লাউড শেল

এই ল্যাব জুড়ে GCP-এর সাথে যোগাযোগের জন্য আমরা গুগল ক্লাউড কনসোল এবং ক্লাউড শেল উভয়ই ব্যবহার করব।

এনসিসি হাব প্রজেক্ট গুগল ক্লাউড কনসোল

ক্লাউড কনসোলটি https://console.cloud.google.com ঠিকানায় পাওয়া যাবে।

নেটওয়ার্ক কানেক্টিভিটি সেন্টার কনফিগার করা সহজ করতে গুগল ক্লাউডে নিম্নলিখিত আইটেমগুলি সেট আপ করুন:

গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।

ক্লাউড শেল চালু করুন। এই কোডল্যাবটি ক্লাউড শেলে 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

আইএএম ভূমিকা

নির্দিষ্ট এপিআই অ্যাক্সেস করার জন্য এনসিসি-এর আইএএম রোলের প্রয়োজন হয়। প্রয়োজন অনুযায়ী এনসিসি আইএএম রোলগুলো দিয়ে আপনার ইউজারকে কনফিগার করে নিন।

ভূমিকা/বিবরণ

অনুমতি

networkconnectivity.networkAdmin - নেটওয়ার্ক অ্যাডমিনিস্ট্রেটরদের হাব ও স্পোক পরিচালনা করার সুযোগ দেয়।

নেটওয়ার্ককানেক্টিভিটি.হাবস. নেটওয়ার্ককানেক্টিভিটি.স্পোকস।

networkconnectivity.networkSpokeManager - একটি হাবে স্পোক যোগ এবং পরিচালনা করার সুবিধা দেয়। এটি শেয়ার্ড ভিপিসি-তে ব্যবহার করতে হবে, যেখানে হোস্ট-প্রজেক্টটি হাবটির মালিক, কিন্তু অন্যান্য প্রজেক্টের অ্যাডমিনরা তাদের অ্যাটাচমেন্টের জন্য হাবে স্পোক যোগ করতে পারেন।

নেটওয়ার্ক সংযোগ.স্পোকস.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer - নেটওয়ার্ক ব্যবহারকারীদের হাব এবং স্পোকের বিভিন্ন বৈশিষ্ট্য দেখার সুযোগ দেয়।

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

২. নেটওয়ার্ক পরিবেশ স্থাপন করুন

সংক্ষিপ্ত বিবরণ

এই অংশে, আমরা একটি একক প্রোজেক্টে ভিপিসি নেটওয়ার্ক এবং ফায়ারওয়াল নিয়মগুলো স্থাপন করব। লজিক্যাল ডায়াগ্রামটি সেই নেটওয়ার্ক পরিবেশটি চিত্রিত করে যা এই ধাপে সেটআপ করা হবে।

ক্রস-প্রজেক্ট স্পোক সাপোর্ট দেখানোর জন্য, পরবর্তী ধাপে আমরা একটি ভিন্ন প্রজেক্টে একটি VPC এবং ফায়ারওয়াল রুলস ডেপ্লয় করব।

dc4ed09dae1a0056.png

VPC এবং সাবনেট তৈরি করুন

VPC নেটওয়ার্কটিতে সাবনেট রয়েছে, যেগুলিতে আপনি ডেটা পাথ ভ্যালিডেশনের জন্য GCE VM ইনস্টল করবেন।

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

VPC সমর্থিত সাবনেট রেঞ্জ

ব্যক্তিগতভাবে ব্যবহৃত পাবলিক আইপি অ্যাড্রেস ছাড়া, NCC সকল বৈধ 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

ওভারল্যাপিং সাবনেট রেঞ্জ তৈরি করুন

NCC হাব রাউট টেবিলে ওভারল্যাপিং আইপি রেঞ্জ ইম্পোর্ট করবে না। ব্যবহারকারীরা পরবর্তী ধাপে এই সীমাবদ্ধতাটি কাটিয়ে উঠবেন। আপাতত, 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

VPC ফায়ারওয়াল নিয়ম কনফিগার করুন

প্রতিটি VPC-তে ফায়ারওয়াল নিয়ম কনফিগার করুন যাতে অনুমতি দেওয়া হয়

  • এসএসএইচ
  • অভ্যন্তরীণ আইএপি
  • ১০.০.০.০/৮ পরিসর
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 VM কনফিগার করুন

"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

৩. নেটওয়ার্ক কানেক্টিভিটি সেন্টার হাব

সংক্ষিপ্ত বিবরণ

এই অংশে, আমরা gcloud কমান্ড ব্যবহার করে একটি NCC হাব কনফিগার করব। এই NCC হাবটি কন্ট্রোল প্লেন হিসেবে কাজ করবে, যা প্রতিটি VPC স্পোকের মধ্যে রাউটিং কনফিগারেশন তৈরির জন্য দায়ী থাকবে।

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]

নবনির্মিত এনসিসি হাবটির বর্ণনা দিন। এর নাম এবং সংশ্লিষ্ট পথটি উল্লেখ করুন।

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

এনসিসি হাবের রুট টেবিলটি খালি থাকা উচিত।

৪. ভিপিসি স্পোকস সহ এনসিসি

সংক্ষিপ্ত বিবরণ

এই অংশে, আপনি gCloud কমান্ড ব্যবহার করে তিনটি VPC-কে একটি NCC স্পোক হিসেবে কনফিগার করবেন।

b367b1659d2df694.png

VPC(গুলি)কে NCC স্পোক হিসাবে কনফিগার করুন

নিম্নলিখিত VPC(গুলি)কে এই ক্রমে NCC Spoke হিসাবে কনফিগার করুন।

  • VPC4
  • ভিপিসি১
  • VPC2
  • VPC3

VPC4-কে একটি NCC স্পোক হিসেবে কনফিগার করুন এবং এটিকে পূর্বে তৈরি করা NCC হাবটিতে বরাদ্দ করুন। NCC স্পোক API কল করার জন্য একটি অবস্থান নির্দিষ্ট করতে হয়। "–global" ফ্ল্যাগটি gcloud সিনট্যাক্সকে সরল করে, যার ফলে নতুন NCC স্পোক কনফিগার করার সময় ব্যবহারকারীকে সম্পূর্ণ URI পাথ উল্লেখ করা থেকে বিরত রাখা যায়।

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

VPC1-কে একটি NCC স্পোক হিসেবে কনফিগার করুন।

অ্যাডমিনিস্ট্রেটররা একটি VPC স্পোক থেকে 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' কীওয়ার্ড ব্যবহার করে /24 সামারি রুটটিকে ঐ নির্দিষ্ট রেঞ্জ থেকে ফিল্টার করার মাধ্যমে হাব রাউটিং টেবিলে /25 সাবনেটের জোড়াটিকে ইম্পোর্ট হওয়া থেকে বাদ দিন।

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 

দ্রষ্টব্য* ব্যবহারকারীরা প্রতিটি এনসিসি স্পোকের জন্য সর্বোচ্চ ১৬টি স্বতন্ত্র আইপি রেঞ্জ ফিল্টার করতে পারবেন।

এনসিসি হাবের ডিফল্ট রাউটিং টেবিলের বিষয়বস্তু তালিকাভুক্ত করুন। এনসিসি হাবের রাউটিং টেবিলে থাকা /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)

এনসিসি হাব ভিপিসি২-এর সাথে ওভারল্যাপিং আইপি রেঞ্জ শনাক্ত করেছে। উল্লেখ্য যে, ভিপিসি২ এবং ভিপিসি৩ উভয়ই একই ১০.৩.৩.০/২৪ আইপি সাবনেট দিয়ে সেটআপ করা হয়েছিল।

এক্সক্লুড এক্সপোর্ট ব্যবহার করে ওভারল্যাপিং আইপি রেঞ্জ ফিল্টার করা

এই কোডল্যাবটি লেখার সময়, এটি একটি জ্ঞাত সমস্যা যে, এক্সপোর্ট ফিল্টারের কনফিগারেশন পরিবর্তন করার জন্য ব্যবহারকারীদের অবশ্যই এনসিসি স্পোকগুলি ডিলিট করে পুনরায় তৈরি করতে হয়।

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

দ্রষ্টব্য: একটি নির্দিষ্ট VPC-এর সাথে যুক্ত একটি VPC স্পোক মুছে ফেলার পর, সেই একই VPC-কে রেফারেন্স করে একটি নতুন স্পোক পুনরায় তৈরি করার জন্য ১০ মিনিটের একটি কুলডাউন পিরিয়ড শেষ হতে হয়।

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

VPC3-কে একটি NCC স্পোক হিসেবে কনফিগার করুন এবং এটিকে পূর্বে তৈরি করা NCC হাবটিতে অ্যাসাইন করুন। NCC-তে 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 থেকে ওভারল্যাপিং আইপি রেঞ্জগুলো বাদ দেওয়া হয়েছে। NCC হাব রাউটিং টেবিল ব্যক্তিগতভাবে ব্যবহৃত পাবলিক আইপি অ্যাড্রেস (PUPI) ব্যতীত সকল বৈধ IPv4 রেঞ্জ টাইপ সমর্থন করে।

৫. ক্রস প্রজেক্ট স্পোকস সহ এনসিসি

সংক্ষিপ্ত বিবরণ

এখন পর্যন্ত, আপনি হাবের মতো একই প্রজেক্টের অন্তর্ভুক্ত এনসিসি স্পোকগুলো কনফিগার করেছেন। এই অংশে, আপনি gCloud কমান্ড ব্যবহার করে এনসিসি হাব ছাড়া অন্য একটি পৃথক প্রজেক্ট থেকে ভিপিসি-কে একটি এনসিসি স্পোক হিসেবে কনফিগার করবেন।

এর ফলে, যেসব প্রকল্প মালিক তাদের নিজস্ব ভিপিসি (VPC) পরিচালনা করছেন, তারা এনসিসি হাব (NCC Hub)-এর সাথে নেটওয়ার্ক সংযোগে অংশগ্রহণ করতে পারবেন।

a90b3185e30832e8.png

ক্রস প্রজেক্ট: গুগল ক্লাউড কনসোল এবং ক্লাউড শেল

এই ল্যাব জুড়ে GCP-এর সাথে যোগাযোগের জন্য আমরা গুগল ক্লাউড কনসোল এবং ক্লাউড শেল উভয়ই ব্যবহার করব।

ক্রস প্রজেক্ট স্পোক গুগল ক্লাউড কনসোল

ক্লাউড কনসোলটি https://console.cloud.google.com ঠিকানায় পাওয়া যাবে।

নেটওয়ার্ক কানেক্টিভিটি সেন্টার কনফিগার করা সহজ করতে গুগল ক্লাউডে নিম্নলিখিত আইটেমগুলি সেট আপ করুন:

গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।

ক্লাউড শেল চালু করুন। এই কোডল্যাবটি ক্লাউড শেলে 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

আইএএম ভূমিকা

নির্দিষ্ট এপিআই অ্যাক্সেস করার জন্য এনসিসি-এর আইএএম রোলের প্রয়োজন হয়। প্রয়োজন অনুযায়ী এনসিসি আইএএম রোলগুলো দিয়ে আপনার ইউজারকে কনফিগার করে নিন।

ন্যূনতমপক্ষে, ক্রস প্রজেক্ট স্পোক অ্যাডমিনিস্ট্রেটরকে অবশ্যই 'networkconnectivity.networkSpokeManager' নামক IAM রোলটি প্রদান করতে হবে।

আপনার অবগতির জন্য, নিচের সারণিতে এনসিসি হাব অ্যান্ড স্পোক অ্যাডমিনের জন্য প্রয়োজনীয় আইএএম (IAM) রোলগুলো তালিকাভুক্ত করা হলো।

ভূমিকা/বিবরণ

অনুমতি

networkconnectivity.networkAdmin - নেটওয়ার্ক অ্যাডমিনিস্ট্রেটরদের হাব ও স্পোক পরিচালনা করার সুযোগ দেয়।

নেটওয়ার্ককানেক্টিভিটি.হাবস. নেটওয়ার্ককানেক্টিভিটি.স্পোকস।

networkconnectivity.networkSpokeManager - একটি হাবে স্পোক যোগ এবং পরিচালনা করার সুবিধা দেয়। এটি শেয়ার্ড ভিপিসি-তে ব্যবহার করতে হবে, যেখানে হোস্ট-প্রজেক্টটি হাবটির মালিক, কিন্তু অন্যান্য প্রজেক্টের অ্যাডমিনরা তাদের অ্যাটাচমেন্টের জন্য হাবে স্পোক যোগ করতে পারেন।

নেটওয়ার্ক সংযোগ.স্পোকস.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer - নেটওয়ার্ক ব্যবহারকারীদের হাব এবং স্পোকের বিভিন্ন বৈশিষ্ট্য দেখার সুযোগ দেয়।

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

ক্রস প্রজেক্টে ভিপিসি এবং সাবনেটগুলো তৈরি করুন।

VPC নেটওয়ার্কটিতে সাবনেট রয়েছে, যেগুলিতে আপনি ডেটা পাথ ভ্যালিডেশনের জন্য GCE VM ইনস্টল করবেন।

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 হাব URI খুঁজে বের করতে এই gcloud কমান্ডটি ব্যবহার করুন। পরবর্তী ধাপে ক্রস-প্রজেক্ট NCC স্পোক কনফিগার করার জন্য আপনার URI পাথটির প্রয়োজন হবে।

gcloud network-connectivity hubs describe ncc-hub

ক্রস প্রজেক্ট স্পোক ভিপিসি

অন্য প্রজেক্টটিতে লগইন করুন যেখানে VPC-টি NCC Hub প্রজেক্টের অংশ নয়। ক্লাউডশেলে, একটি VPC-কে NCC স্পোক হিসেবে কনফিগার করতে এই কমান্ডটি ব্যবহার করুন।

  • HUB_URI হবে অন্য কোনো প্রজেক্টের একটি হাবের URI।
  • VPC_URI অবশ্যই স্পোকের মতো একই প্রজেক্টে থাকতে হবে।
  • VPC-নেটওয়ার্ক নির্দিষ্ট করে যে এই ক্রস-প্রকল্পের VPC অন্য একটি প্রকল্পে NCC Hub-এর সাথে যুক্ত হবে।
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'

আন্তঃপ্রকল্প এনসিসি আলোচনার অবস্থা কী? কেন?

৬. ক্রস প্রজেক্ট স্পোক প্রত্যাখ্যান বা গ্রহণ

সংক্ষিপ্ত বিবরণ

হাবে যোগদানের জন্য এনসিসি হাব অ্যাডমিনদের অবশ্যই একটি ক্রস-প্রজেক্ট স্পোককে স্পষ্টভাবে অনুমোদন করতে হবে। এটি প্রজেক্ট মালিকদের এনসিসি গ্লোবাল রাউটিং টেবিলে অননুমোদিত এনসিসি স্পোক সংযুক্ত করা থেকে বিরত রাখে। একবার কোনো স্পোক গৃহীত বা প্রত্যাখ্যাত হলে, উপরের কমান্ডগুলো চালিয়ে পরবর্তীতে যতবার ইচ্ছা ততবার সেটিকে প্রত্যাখ্যাত বা গৃহীত করা যেতে পারে।

ক্লাউড শেলে লগ ইন করে সেই প্রজেক্টে ফিরে যান যেখানে এনসিসি হাবটি অবস্থিত।

পর্যালোচনার জন্য ক্রস প্রজেক্ট স্পোকগুলি শনাক্ত করুন।

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"

হাবে সক্রিয় স্পোকগুলির তালিকা

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

ইনক্লুড-এক্সপোর্ট ফিল্টার ব্যবহার করে ক্রস প্রজেক্ট স্পোক ভিপিসি আপডেট করুন

সেই প্রজেক্টে লগইন করুন যেখানে VPC-টি NCC Hub প্রজেক্টের অংশ নয়। ক্লাউডশেলে, একটি VPC-কে NCC স্পোক হিসেবে কনফিগার করতে এই কমান্ডটি ব্যবহার করুন।

  • HUB_URI হবে অন্য কোনো প্রজেক্টের একটি হাবের URI।
  • VPC_URI অবশ্যই স্পোকের মতো একই প্রজেক্টে থাকতে হবে।
  • VPC-নেটওয়ার্ক নির্দিষ্ট করে যে এই ক্রস-প্রকল্পের VPC অন্য একটি প্রকল্পে NCC Hub-এর সাথে যুক্ত হবে।
  • এনসিসি হাব রাউট টেবিলে শুধুমাত্র 10.100.2.0/24 সাবনেট রেঞ্জটি ইম্পোর্ট করুন।
  • আউটপুট থেকে 'ETAG' মানটি নোট করুন। এই মানটি NCC দ্বারা তৈরি করা হয় এবং আপনাকে এটি 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'

পর্যালোচনার জন্য হালনাগাদকৃত ক্রস প্রজেক্ট স্পোকগুলি শনাক্ত করুন।

যে প্রজেক্টটি এনসিসি হাব হোস্ট করছে, সেটিতে লগইন করুন। ক্লাউডশেলে, ক্রস প্রজেক্ট ভিপিসি স্পোক আপডেটের স্ট্যাটাস চেক করতে এই কমান্ডটি ব্যবহার করুন।

  • ETAG মানটি কী? এই মানটি vpc স্পোক আপডেটের আউটপুটের সাথে মিলতে হবে।
gcloud network-connectivity hubs list-spokes ncc-hub \ 
--filter="reasons:UPDATE_PENDING_REVIEW" \
--format=yaml

ক্রস প্রজেক্ট স্পোক থেকে আপডেট করা পরিবর্তনগুলি গ্রহণ করুন

ক্রস প্রজেক্ট স্পোকের এনসিসি হাবে যোগদানের অনুরোধ গ্রহণ করতে কমান্ডটি ব্যবহার করুন।

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}

ঐচ্ছিকভাবে, ক্রস প্রজেক্ট স্পোক থেকে আপডেট করা পরিবর্তনগুলি প্রত্যাখ্যান করুন।

ক্রস প্রজেক্ট স্পোকের এনসিসি হাবে যোগদানের অনুরোধ প্রত্যাখ্যান করতে কমান্ডটি ব্যবহার করুন।

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} 

যাচাই করুন যে ক্রস প্রজেক্ট স্পোকটি এনসিসি হাবে যোগদান করেছে।

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

৭. VPC(গুলি)র মধ্যে ব্যক্তিগত NAT

সংক্ষিপ্ত বিবরণ

এই অংশে, আপনি দুটি VPC-এর মধ্যে ওভারল্যাপিং সাবনেট রেঞ্জের জন্য প্রাইভেট NAT কনফিগার করবেন। মনে রাখবেন যে, VPC(গুলি)-র মধ্যে প্রাইভেট NAT-এর জন্য NCC প্রয়োজন।

পূর্ববর্তী বিভাগে VPC2 এবং VPC3-কে "10.3.3.0/24" এর একটি ওভারল্যাপিং সাবনেট রেঞ্জ দিয়ে কনফিগার করা হয়েছে। উভয় VPC-কেই একটি NCC স্পোক হিসাবে কনফিগার করা হয়েছে, যাতে ওভারল্যাপিং সাবনেটটি NCC হাব রাউট টেবিলে অন্তর্ভুক্ত না হয়। এর মানে হলো, ঐ সাবনেটে অবস্থিত হোস্টগুলিতে পৌঁছানোর জন্য কোনো লেয়ার ৩ ডেটা পাথ নেই।

এনসিসি হাব প্রজেক্টে ওভারল্যাপিং সাবনেট রেঞ্জ(গুলি) খুঁজে বের করতে এই কমান্ডগুলি ব্যবহার করুন।

gcloud compute networks subnets list --network vpc2-ncc

gcloud compute networks subnets list --network vpc3-ncc

vpc2-ncc-তে, ওভারল্যাপিং আইপি রেঞ্জ ধারণকারী সাবনেটটির নাম কী?

সাবনেটের নামটি লিখে রাখুন এবং কোথাও সংরক্ষণ করুন। আপনি এই রেঞ্জের জন্য সোর্স NAT কনফিগার করবেন।

প্রাইভেট 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 IP রেঞ্জের একটি পুল এবং যে নির্দিষ্ট সাবনেটটি অনুবাদ করা হবে, তা তৈরি করা হয়েছে। এই ধাপে, 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

ঐচ্ছিকভাবে,

  • ওয়েব কনসোলে যান
  • "Network Services > Cloud NAT > ncc2-nat "-এ যান

যাচাই করুন যে ডাইনামিক পোর্ট অ্যালোকেশন ডিফল্টরূপে সক্রিয় আছে।

7317d3cfb7e9468b.png

এরপরে, আপনি VPC2-এর জন্য কনফিগার করা প্রাইভেট NAT পাথ ব্যবহারকারী ডেটা পাথটি যাচাই করবেন।

444d45616f1d0cae.png

'vm1-vpc1-ncc'- তে একটি SSH সেশন খুলুন এবং '10.10.10.0/29' NAT পুল রেঞ্জ থেকে আসা প্যাকেট ক্যাপচার করতে নিচের tcpdump কমান্ডটি ব্যবহার করুন।

vm1-vpc1-ncc

sudo tcpdump -i any net 10.10.10.0/29 -n

এই কোডল্যাবটি লেখার সময়, প্রাইভেট NAT ICMP প্যাকেট সমর্থন করে না। " pNat-vm-vpc2"- এ একটি SSH সেশন খুলুন এবং নিচে দেখানো curl কমান্ডটি ব্যবহার করে TCP 80 পোর্টে " vm1-vpc1-ncc"- এর সাথে সংযোগ করুন।

pnat-vm-vpc2

curl 10.1.1.2 -v 

"vm1-vpc1-ncc"-তে tcpdump-এর আউটপুট পরীক্ষা করুন। "vm1-vpc1-ncc"-তে আমাদের ওয়েব সার্ভারে TCP সেশনটি কোন সোর্স আইপি অ্যাড্রেস থেকে শুরু হয়েছিল?

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>

৮. আইপিভি৬ সাবনেটের জন্য এনসিসি-র সমর্থন

নেটওয়ার্ক কানেক্টিভিটি সেন্টার (Network Connectivity Center) এনসিসি ভিপিসি স্পোক (NCC VPC Spokes) এবং হাইব্রিড স্পোক (Hybrid Spokes)-এর মধ্যে আইপিভি৬ (IPv6) সাবনেট এক্সচেঞ্জ এবং ডাইনামিক রুট এক্সচেঞ্জ সমর্থন করে। এই অংশে, শুধুমাত্র আইপিভি৬ (IPv6-only) এবং ডুয়াল-স্ট্যাক আইপিভি৪ (IPv4) ও আইপিভি৬ (IPv6) সাবনেট রুট এক্সচেঞ্জ মোড সমর্থন করার জন্য এনসিসি কনফিগার করুন।

57282c3276d50671.png

IPv6-এর জন্য একটি নতুন VPC তৈরি করুন যা NCC-Hub-এ একটি VPC স্পোক হিসেবে যুক্ত হবে।

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

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

VPC5-কে একটি NCC স্পোক হিসেবে কনফিগার করতে এবং হাব রাউট টেবিলে IPv4 সাবনেট রাউট এক্সপোর্ট হওয়া থেকে বাদ দিতে এই কমান্ডটি ব্যবহার করুন। IPv6 ULA নেটওয়ার্কটি NCC হাব রাউট টেবিলে এক্সপোর্ট করুন।

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

প্রাইভেট IPv6 ইউনিক লোকাল অ্যাড্রেস (ULA)-এর জন্য VPC1 এবং VPC4 সক্রিয় করুন। GCP স্বয়ংক্রিয়ভাবে fd20::/20 রেঞ্জ থেকে সমস্ত ULA অ্যাড্রেস বরাদ্দ করবে।

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-এ, IPv6 ULA রেঞ্জ থেকে আসা ট্র্যাফিকের অনুমতি দেওয়ার জন্য একটি IPv6 VPC ফায়ারওয়াল নিয়ম তৈরি করুন।

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

VPC4-এ, IPv6 ULA রেঞ্জ থেকে আসা ট্র্যাফিকের অনুমতি দেওয়ার জন্য একটি IPv6 VPC ফায়ারওয়াল নিয়ম তৈরি করুন।

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

পরবর্তী বিভাগে ডেটা পাথ সংযোগ যাচাই করার জন্য তিনটি GCE IPv6 ইনস্ট্যান্স তৈরি করুন।

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 হাব চেক করুন

IPv6 ULA সাবনেটগুলির জন্য NCC হাব রাউট টেবিলটি পরীক্ষা করুন।

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

লক্ষ্য করুন, উপরের কমান্ডের আউটপুটে IPv6 সাবনেটগুলো তালিকাভুক্ত করা হয়নি। ডিফল্টরূপে, VPC স্পোক থেকে আসা IPv6 সাবনেটগুলো NCC হাব রাউট টেবিলে এক্সপোর্ট করার জন্য অন্তর্ভুক্ত করা হয় না।

Listed 0 items.

NCC হাব রাউট টেবিলে IPv6 সাবনেটগুলো এক্সপোর্ট করার জন্য VPC1 এবং VPC4 স্পোকগুলো আপডেট করতে নিচের gcloud কমান্ডগুলো ব্যবহার করুন।

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

IPv6 ULA সাবনেটগুলোর জন্য NCC হাব রাউট টেবিলটি পুনরায় যাচাই করুন।

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:1:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub        default
fd20:90:6768:1000:0:0:0:0/64             us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc1  ncc-hub        default
fd20:c95:95d2:1000:0:0:0:0/64            us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub        default
fd20:90:6768:0:0:0:0:0/64                us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc1  ncc-hub        default

৯. ডেটা পাথের সংযোগ যাচাই করুন

IPv4 ডেটা পাথ সংযোগ

ডায়াগ্রামটি দেখে প্রতিটি ভার্চুয়াল মেশিনের মধ্যেকার IPv4 ডেটা পাথটি যাচাই করুন।

27c61b09f2bf2d02.png

" vm1-vpc1-ncc"- তে SSH করুন এবং "vm2-vpc2-ncc" থেকে আসা ICMP প্যাকেট ট্রেস করার জন্য TCP ডাম্প চালু করুন। মনে রাখবেন, এই VM-টি 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 "-এর আইপি অ্যাড্রেসে "পিং" করুন।

vm1-vpc2-ncc

ping 240.0.0.2

IPv6 ডেটা পাথ সংযোগ

ডায়াগ্রামটি দেখে প্রতিটি ভার্চুয়াল মেশিনের মধ্যেকার IP64 ডেটা পাথ যাচাই করুন।

3afe67968317a16d.png

প্রতিটি IPv6 সক্ষম ইনস্ট্যান্সের আইপি ঠিকানা তালিকাভুক্ত করতে 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' করুন।

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

একটি NCC সংযোগের মাধ্যমে IPv6 সংযোগ যাচাই করার জন্য, " vpc1-dualstack-vm"- এ একটি SSH সেশন স্থাপন করুন এবং " vpc4-ipv6-vm "-এর IPv6 অ্যাড্রেসে "পিং" করুন।

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

১০. পরিষ্কার করা

ক্লাউড শেলে লগইন করুন এবং হাব ও ব্রাঞ্চ সাইট নেটওয়ার্কগুলো থেকে ভিএম ইনস্ট্যান্সগুলো ডিলিট করুন।

ব্যক্তিগত VPC Nat কনফিগারেশনগুলি মুছুন

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

এনসিসি হাব মুছে ফেলুন

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

VPC সাবনেটগুলি মুছুন

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

VPC(গুলি) মুছে ফেলুন

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

১১. অভিনন্দন!

আপনি নেটওয়ার্ক কানেক্টিভিটি সেন্টার ল্যাবটি সম্পন্ন করেছেন!

আপনি যা কভার করেছেন

  • এনসিসি হাব সহ সম্পূর্ণ মেশ ভিপিসি পিয়ারিং নেটওয়ার্ক কনফিগার করা হয়েছে।
  • এনসিসি স্পোক এক্সক্লুড ফিল্টার
  • ক্রস প্রজেক্ট স্পোক সাপোর্ট
  • VPC-এর মধ্যে ব্যক্তিগত NAT

পরবর্তী পদক্ষেপ

© গুগল, এলএলসি অথবা এর অধিভুক্ত সংস্থাসমূহ। সর্বস্বত্ব সংরক্ষিত। বিতরণ করবেন না।