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

1. ভূমিকা

ওভারভিউ

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

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

আপনি কি নির্মাণ করবেন

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

আপনি কি শিখবেন

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

আপনি কি প্রয়োজন হবে

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

6d1b99c6da87fd84.png

উদ্দেশ্য

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

আপনি শুরু করার আগে

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

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

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

ক্লাউড কনসোলে https://console.cloud.google.com- এ পৌঁছানো যেতে পারে।

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

Google ক্লাউড কনসোলে, প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন৷

ক্লাউড শেল চালু করুন। এই কোডল্যাব ক্লাউড শেল-এ gcloud কনফিগারেশন বাস্তবায়নে সাহায্য করার জন্য $ভেরিয়েবল ব্যবহার করে।

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

আইএএম ভূমিকা

নির্দিষ্ট API অ্যাক্সেস করার জন্য 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. নেটওয়ার্ক এনভায়রনমেন্ট সেটআপ করুন

ওভারভিউ

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

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

245f1002db33ca98.png

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

ভিপিসি নেটওয়ার্কে এমন সাবনেট রয়েছে যা আপনি ডেটা পাথ যাচাইকরণের জন্য 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

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

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 এর জন্য দুটি ওভারল্যাপিং Ip রেঞ্জ তৈরি করুন৷

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

প্রতিটি ভিপিসিতে GCE VM কনফিগার করুন

"vm1-vpc1-ncc"-এ প্যাকেজগুলি ইনস্টল করার জন্য আপনার অস্থায়ী ইন্টারনেট অ্যাক্সেসের প্রয়োজন হবে৷

চারটি ভার্চুয়াল মেশিন তৈরি করুন, প্রতিটি VM পূর্বে তৈরি করা VPCগুলির একটিতে বরাদ্দ করা হবে

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. নেটওয়ার্ক কানেক্টিভিটি সেন্টার হাব

ওভারভিউ

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

8acc7651f52e251e.png

API পরিষেবাগুলি সক্ষম করুন৷

নেটওয়ার্ক সংযোগ API সক্ষম করুন যদি এটি এখনও সক্ষম না হয়:

gcloud services enable networkconnectivity.googleapis.com

NCC হাব তৈরি করুন

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 হাবের বর্ণনা দাও। নাম এবং সংশ্লিষ্ট পথ নোট করুন।

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'

এনসিসি হাব একটি রাউটিং টেবিল চালু করেছে যা ডেটা সংযোগ তৈরির জন্য নিয়ন্ত্রণ সমতলকে সংজ্ঞায়িত করে। NCC হাবের রাউটিং টেবিলের নাম খুঁজুন

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

NCC ডিফল্ট রুট টেবিলের URI খুঁজুন।

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'

NCC হাবের ডিফল্ট রাউটিং টেবিলের বিষয়বস্তু তালিকাভুক্ত করুন। দ্রষ্টব্য* NCC হাবের রুট টেবিল স্পোক না হওয়া পর্যন্ত খালি থাকবে

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

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

4. VPC স্পোক সহ NCC

ওভারভিউ

এই বিভাগে, আপনি gcloud কমান্ড ব্যবহার করে NCC স্পোক হিসাবে তিনটি VPC(গুলি) কনফিগার করবেন।

a70bc80037927bb0.png

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

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

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

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

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

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

অ্যাডমিনিস্ট্রেটররা এনসিসি হাবের রুট টেবিলে একটি ভিপিসি স্পোক থেকে রপ্তানি করা থেকে সাবনেট রুটগুলি বাদ দিতে পারে। কোডল্যাবের এই অংশে, 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

একটি NCC স্পোক হিসাবে VPC1 কনফিগার করুন এবং নির্দিষ্ট পরিসর থেকে /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 

নোট* ব্যবহারকারীরা NCC স্পোক প্রতি 16টি অনন্য আইপি রেঞ্জ পর্যন্ত ফিল্টার করতে পারেন।

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

NCC স্পোক হিসাবে VPC2 কনফিগার করুন

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

একটি NCC স্পোক হিসাবে VPC3 কনফিগার করুন এবং এটিকে পূর্বে তৈরি করা 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 এর সাথে ওভারল্যাপিং IP পরিসর সনাক্ত করেছে৷ মনে রাখবেন যে VPC2 এবং VPC3 উভয়ই একই 10.3.3.0/24 IP সাবনেটের সাথে সেটআপ ছিল।

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

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

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

দ্রষ্টব্য: একটি নির্দিষ্ট VPC এর সাথে যুক্ত একটি VPC স্পোক মুছে ফেলার জন্য 10 মিনিটের কুল ডাউন পিরিয়ডের মেয়াদ শেষ হতে একটি নতুন স্পোক তৈরি করতে হবে যা একই 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

একটি NCC স্পোক হিসাবে VPC3 কনফিগার করুন এবং এটিকে পূর্বে তৈরি করা 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

NCC হাবের ডিফল্ট রাউটিং টেবিলের বিষয়বস্তু তালিকাভুক্ত করুন এবং আউটপুট পরীক্ষা করুন।

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

VPC2 এবং VPC3 থেকে ওভারল্যাপিং IP রেঞ্জগুলি বাদ দেওয়া হয়েছে৷ NCC হাব রাউটিং টেবিল ব্যক্তিগতভাবে ব্যবহৃত পাবলিক আইপি ঠিকানাগুলি (PUPI) ব্যতীত সমস্ত বৈধ IPv4 বৈধ পরিসরের প্রকারগুলিকে সমর্থন করে৷

5. ক্রস প্রজেক্ট স্পোক সহ NCC

ওভারভিউ

এখন পর্যন্ত, আপনি NCC স্পোকগুলি কনফিগার করেছেন যা হাবের মতো একই প্রকল্পের অন্তর্গত। এই বিভাগে, আপনি জিক্লাউড কমান্ড ব্যবহার করে NCC হাব ব্যতীত একটি পৃথক প্রকল্প থেকে একটি NCC স্পোক হিসাবে VPC কনফিগার করবেন।

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

e1190fa898c5097d.png

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

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

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

ক্লাউড কনসোলে https://console.cloud.google.com- এ পৌঁছানো যেতে পারে।

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

Google ক্লাউড কনসোলে, প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন৷

ক্লাউড শেল চালু করুন। এই কোডল্যাব ক্লাউড শেল-এ gcloud কনফিগারেশন বাস্তবায়নে সাহায্য করার জন্য $ভেরিয়েবল ব্যবহার করে।

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

আইএএম ভূমিকা

নির্দিষ্ট API অ্যাক্সেস করার জন্য NCC-এর IAM ভূমিকা প্রয়োজন। প্রয়োজন অনুসারে আপনার ব্যবহারকারীকে NCC IAM ভূমিকার সাথে কনফিগার করতে ভুলবেন না।

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

নীচের সারণীটি রেফারেন্সের জন্য 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

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

ভিপিসি নেটওয়ার্কে এমন সাবনেট রয়েছে যা আপনি ডেটা পাথ যাচাইকরণের জন্য 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

NCC হাব প্রকল্প URI

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

gcloud network-connectivity hubs describe ncc-hub

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

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

  • HUB_URI একটি ভিন্ন প্রকল্পে একটি হাবের URI হওয়া উচিত।
  • VPC_URI স্পোকের মতো একই প্রকল্পে থাকা উচিত
  • ভিপিসি-নেটওয়ার্ক নির্দিষ্ট করে এই ক্রস প্রজেক্টে ভিপিসি অন্য প্রোজেক্টে 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. ক্রস প্রজেক্ট স্পোক প্রত্যাখ্যান বা গ্রহণ করা

ওভারভিউ

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

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

ক্রস প্রজেক্ট স্পোকস টু রিভিউ শনাক্ত করুন

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

একটি বক্তৃতা গ্রহণ

gcloud network-connectivity spokes accept xproj-spoke --global

ঐচ্ছিক: একটি স্পোক প্রত্যাখ্যান করা

gcloud network-connectivity spokes reject xproj-spoke \
--global \
--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

হাবের সাবনেট রুটের তালিকা করুন

আউটপুট থেকে, আপনি ক্রস VPC স্পোক থেকে সাবনেট রুট দেখতে পারেন?

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.0.0/16  ACTIVE  VPC_PRIMARY_SUBNET  xprj-vpc  ncc-hub  default

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

ওভারভিউ

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

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

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

gcloud compute networks subnets list --network vpc2-ncc

gcloud compute networks subnets list --network vpc3-ncc

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

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

ব্যক্তিগত NAT কনফিগার করুন

VPC2 এর ওভারল্যাপিং সাবনেট থেকে NAT ট্র্যাফিকের উৎসের জন্য একটি রাউটেবল সাবনেট পরিসর উৎসর্গ করুন। "–উদ্দেশ্য=PRIVATE_NAT" পতাকা ব্যবহার করে একটি নন-ওভারল্যাপিং সাবনেট পরিসর কনফিগার করে।

gcloud 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" হল ওভারল্যাপিং সাবনেটের নাম৷ "সমস্ত" কীওয়ার্ডটি নির্দিষ্ট করে যে সাবনেটের সমস্ত আইপি রেঞ্জের উৎস NAT'd হবে।

gcloud 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 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 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/projects/yueri-3p-dev/regions/us-central1/subnetworks/ncc2-spoke-nat
  match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/yueri-3p-dev/locations/global/hubs/ncc-hub"
  ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/projects/yueri-3p-dev/regions/us-central1/subnetworks/overlapping-vpc3
  sourceIpRangesToNat:
  - ALL_IP_RANGES
type: PRIVATE

ঐচ্ছিকভাবে,

  • ওয়েব কনসোলে স্যুইচ করুন
  • "নেটওয়ার্ক সার্ভিসেস > ক্লাউড NAT > ncc2-nat " এ নেভিগেট করুন

যাচাই করুন যে গতিশীল পোর্ট বরাদ্দ ডিফল্টরূপে সক্রিয় করা হয়েছে৷

114050bb65e0c4e2.png

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

5035b181aeaa30a8.png

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

vm1-vpc1-ncc

sudo tcpdump -i any net 10.10.10.0/29 -n

এই কোডল্যাব লেখার সময়, ব্যক্তিগত NAT ICMP প্যাকেট সমর্থন করে না। " pNat-vm-vpc2" -এ SSH সেশন করুন এবং 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>

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

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

424df0ebe4510ebb.png

SSH থেকে " vm1-vpc1-ncc" এবং " vm2-vpc2-ncc" থেকে ICMP প্যাকেটগুলি ট্রেস করতে TCP ডাম্প শুরু করুন। একটি অনুস্মারক হিসাবে এই VM VPC2 তে থাকে।

vm1-vpc1-ncc

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

" vm1-vpc2-ncc" এবং " vm1-vpc1-ncc " এর আইপি ঠিকানা "পিং" করতে একটি SSH সেশন স্থাপন করুন৷

vm1-vpc2-ncc

ping 10.1.1.2

" vm1-vpc2-ncc" এবং " vm1-vpc4-ncc " এর আইপি ঠিকানাকে "পিং" করতে একটি SSH স্থাপন করুন৷

vm1-vpc2-ncc

ping 240.0.0.2

9. পরিষ্কার করুন

ক্লাউড শেল-এ লগইন করুন এবং হাব এবং শাখা সাইট নেটওয়ার্কগুলিতে VM দৃষ্টান্তগুলি মুছুন৷

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

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

gcloud 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

ncc স্পোক মুছুন

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

প্রত্যাখ্যান ক্রস প্রকল্প বক্তৃতা

ক্রস প্রকল্প প্রত্যাখ্যান VPC NCC হাব থেকে কথা বলেছেন.

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

NCC হাব মুছুন

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

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 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

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

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

10. অভিনন্দন!

আপনি নেটওয়ার্ক সংযোগ কেন্দ্র ল্যাব সম্পূর্ণ করেছেন!

আপনি কি আচ্ছাদিত

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

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

©Google, LLC বা এর সহযোগী। সর্বস্বত্ব সংরক্ষিত বিতরণ করবেন না।