প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস

১. ভূমিকা

একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস হলো এমন একটি রিসোর্স যা একটি প্রডিউসার ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্ককে কনজিউমার VPC নেটওয়ার্কের বিভিন্ন গন্তব্যে সংযোগ স্থাপন করতে দেয়। প্রডিউসার এবং কনজিউমার নেটওয়ার্কগুলো ভিন্ন ভিন্ন প্রজেক্ট এবং প্রতিষ্ঠানে থাকতে পারে।

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

একটি নেটওয়ার্ক অ্যাটাচমেন্ট এবং একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসের মধ্যেকার সংযোগ, একটি প্রাইভেট সার্ভিস কানেক্ট এন্ডপয়েন্ট এবং একটি সার্ভিস অ্যাটাচমেন্টের মধ্যেকার সংযোগের অনুরূপ, কিন্তু এর দুটি প্রধান পার্থক্য রয়েছে:

  • একটি নেটওয়ার্ক অ্যাটাচমেন্ট একটি প্রডিউসার নেটওয়ার্ককে কনজিউমার নেটওয়ার্কের সাথে সংযোগ স্থাপন করতে দেয় (ম্যানেজড সার্ভিস ইগ্রেস), অন্যদিকে একটি এন্ডপয়েন্ট একটি কনজিউমার নেটওয়ার্ককে প্রডিউসার নেটওয়ার্কের সাথে সংযোগ স্থাপন করতে দেয় (ম্যানেজড সার্ভিস ইনগ্রেস)।
  • একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস সংযোগ ট্রানজিটিভ। এর মানে হলো, একটি প্রডিউসার নেটওয়ার্ক কনজিউমার নেটওয়ার্কের সাথে সংযুক্ত অন্যান্য নেটওয়ার্কের সাথে যোগাযোগ করতে পারে।

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

এই টিউটোরিয়ালে, আপনি একটি বিশদ প্রাইভেট সার্ভিস কানেক্ট (PSC) ইন্টারফেস আর্কিটেকচার তৈরি করবেন যা চিত্র ১-এ দেখানো অনুযায়ী প্রডিউসার থেকে কনজিউসারের কম্পিউটে কানেক্টিভিটি অনুমোদন ও প্রত্যাখ্যান করার জন্য ক্লাউড ফায়ারওয়াল নিয়ম ব্যবহার করে।

চিত্র ১

d39bf35e55bdf9e6.png

আপনি কনজিউমার VPC-তে একটিমাত্র psc-network-attachment তৈরি করবেন, যার ফলে নিম্নলিখিত ব্যবহারের ক্ষেত্রগুলো তৈরি হবে:

  1. bear থেকে lion-এ অ্যাক্সেসের অনুমতি দিতে একটি ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করুন।
  2. একটি ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করে bear থেকে Tiger-এ অ্যাক্সেস অস্বীকার করুন।
  3. cosmo থেকে bear-এ অ্যাক্সেসের অনুমতি দিতে একটি ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করুন।

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

  • কীভাবে একটি নেটওয়ার্ক সংযুক্তি তৈরি করবেন
  • একজন প্রযোজক কীভাবে নেটওয়ার্ক অ্যাটাচমেন্ট ব্যবহার করে একটি PSC ইন্টারফেস তৈরি করতে পারেন
  • উৎপাদক থেকে ভোক্তার কাছে কীভাবে যোগাযোগ স্থাপন করা যায়
  • প্রডিউসার ভিএম (bear) থেকে কনজিউমার ভিএম (lion)-এ কীভাবে অ্যাক্সেস দেওয়া যায়
  • প্রডিউসার ভিএম (bear) থেকে কনজিউমার ভিএম (tiger)-এ অ্যাক্সেস কীভাবে ব্লক করবেন
  • কনজিউমার ভিএম (কসমো) থেকে প্রডিউসার ভিএম (বেয়ার)-এ কীভাবে অ্যাক্সেস দেওয়া যায়

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

২. শুরু করার আগে

টিউটোরিয়ালটি সমর্থন করার জন্য প্রজেক্টটি আপডেট করুন।

এই টিউটোরিয়ালটিতে ক্লাউড শেলে gcloud কনফিগারেশন বাস্তবায়নে সাহায্য করার জন্য $variables ব্যবহার করা হয়েছে।

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

৩. গ্রাহক সেটআপ

কনজিউমার ভিপিসি তৈরি করুন

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

কনজিউমার সাবনেট তৈরি করুন

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks subnets create lion-subnet-1 --project=$projectid --range=192.168.20.0/28 --network=consumer-vpc --region=us-central1

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks subnets create tiger-subnet-1 --project=$projectid --range=192.168.30.0/28 --network=consumer-vpc --region=us-central1

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks subnets create cosmo-subnet-1 --project=$projectid --range=192.168.40.0/28 --network=consumer-vpc --region=us-central1

প্রাইভেট সার্ভিস কানেক্ট নেটওয়ার্ক অ্যাটাচমেন্ট সাবনেট তৈরি করুন

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1

ক্লাউড রাউটার এবং NAT কনফিগারেশন

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

ক্লাউড শেলের ভিতরে ক্লাউড রাউটারটি তৈরি করুন।

gcloud compute routers create cloud-router-for-nat --network consumer-vpc --region us-central1

ক্লাউড শেলের ভিতরে NAT গেটওয়ে তৈরি করুন।

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-for-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

৪. আইএপি সক্রিয় করুন

আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

  • এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
  • 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।

ক্লাউড শেলের ভিতরে IAP ফায়ারওয়াল নিয়মটি তৈরি করুন।

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

৫. কনজিউমার ভিএম ইনস্ট্যান্স তৈরি করুন

ক্লাউড শেলের ভিতরে, লায়ন (lion) কনজিউমার ভিএম ইনস্ট্যান্সটি তৈরি করুন।

gcloud compute instances create lion \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=lion-subnet-1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to the lion app server !!' | tee /var/www/html/index.html
      EOF"

ক্লাউড শেলের ভিতরে, টাইগার নামে কনজিউমার ভিএম ইনস্ট্যান্সটি তৈরি করুন।

gcloud compute instances create tiger \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=tiger-subnet-1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to the tiger app server !!' | tee /var/www/html/index.html
      EOF"

ক্লাউড শেলের ভিতরে, cosmo নামের কনজিউমার ভিএম ইনস্ট্যান্সটি তৈরি করুন।

gcloud compute instances create cosmo \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=cosmo-subnet-1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to the cosmo app server !!' | tee /var/www/html/index.html
      EOF"

ইনস্ট্যান্সগুলোর আইপি অ্যাড্রেসগুলো সংগ্রহ ও সংরক্ষণ করুন:

ক্লাউড শেলের ভিতরে, লায়ন এবং টাইগার ভিএম ইনস্ট্যান্সগুলোর ডেসক্রাইব অপারেশন চালান।

gcloud compute instances describe lion --zone=us-central1-a | grep  networkIP:

gcloud compute instances describe tiger --zone=us-central1-a | grep  networkIP:

gcloud compute instances describe cosmo --zone=us-central1-a | grep  networkIP:

৬. ব্যক্তিগত সার্ভিস কানেক্ট নেটওয়ার্ক সংযুক্তি

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

নেটওয়ার্ক সংযুক্তি তৈরি করুন

ক্লাউড শেলের ভিতরে নেটওয়ার্ক অ্যাটাচমেন্টটি তৈরি করুন।

gcloud compute network-attachments create psc-network-attachment \
    --region=us-central1 \
    --connection-preference=ACCEPT_MANUAL \
    --producer-accept-list=$projectid \
    --subnets=intf-subnet

নেটওয়ার্ক সংযুক্তিগুলির তালিকা করুন

ক্লাউড শেলের ভিতরে নেটওয়ার্ক অ্যাটাচমেন্টটি তালিকাভুক্ত করুন।

gcloud compute network-attachments list

নেটওয়ার্ক সংযুক্তিগুলি বর্ণনা করুন

ক্লাউড শেলের ভিতরে নেটওয়ার্ক সংযুক্তিটি বর্ণনা করুন।

gcloud compute network-attachments describe psc-network-attachment --region=us-central1

psc-network-attachment URI-টি নোট করে রাখুন, যা প্রডিউসার প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস তৈরি করার সময় ব্যবহার করবে। নিচে উদাহরণ দেওয়া হলো:

user@cloudshell$ gcloud compute network-attachments describe psc-network-attachment --region=us-central1 
connectionPreference: ACCEPT_MANUAL
creationTimestamp: '2023-06-06T20:57:12.623-07:00'
fingerprint: 4Yq6xAfaRO0=
id: '3235195049527328503'
kind: compute#networkAttachment
name: psc-network-attachment
network: https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/consumer-vpc
producerAcceptLists:
- $projectid
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/networkAttachments/psc-network-attachment
subnetworks:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/intf-subnet

৭. প্রযোজক সেটআপ

প্রযোজক VPC নেটওয়ার্ক তৈরি করুন

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud compute networks create producer-vpc --project=$projectid --subnet-mode=custom

প্রযোজক সাবনেটগুলি তৈরি করুন

ক্লাউড শেলের ভিতরে, psc ইন্টারফেসের vNIC0-এর জন্য ব্যবহৃত সাবনেটটি তৈরি করুন।

gcloud compute networks subnets create prod-subnet --project=$projectid --range=10.20.1.0/28 --network=producer-vpc --region=us-central1

৮. আইএপি সক্রিয় করুন

আপনার VM ইনস্ট্যান্সগুলিতে IAP-কে সংযোগ করার অনুমতি দিতে, এমন একটি ফায়ারওয়াল নিয়ম তৈরি করুন যা:

  • এটি সেই সমস্ত VM ইনস্ট্যান্সের ক্ষেত্রে প্রযোজ্য, যেগুলোকে আপনি IAP ব্যবহার করে অ্যাক্সেসযোগ্য করতে চান।
  • 35.235.240.0/20 আইপি রেঞ্জ থেকে ইনগ্রেস ট্র্যাফিকের অনুমতি দেয়। এই রেঞ্জে সেই সমস্ত আইপি অ্যাড্রেস রয়েছে যা IAP টিসিপি ফরওয়ার্ডিংয়ের জন্য ব্যবহার করে।

ক্লাউড শেলের ভিতরে IAP ফায়ারওয়াল নিয়মটি তৈরি করুন।

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

৯. প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস তৈরি করুন

একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস হলো এমন একটি রিসোর্স যা একটি প্রডিউসার ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্ককে কনজিউমার VPC নেটওয়ার্কের বিভিন্ন গন্তব্যে সংযোগ স্থাপন করতে দেয়। প্রডিউসার এবং কনজিউমার নেটওয়ার্কগুলো ভিন্ন ভিন্ন প্রজেক্ট এবং প্রতিষ্ঠানে থাকতে পারে।

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

ক্লাউড শেলের ভিতরে, প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস (bear) তৈরি করুন এবং নেটওয়ার্ক অ্যাটাচমেন্ট ডেসক্রাইব আউটপুট থেকে পূর্বে চিহ্নিত psc-network-attachment URL-টি প্রবেশ করান।

gcloud compute instances create bear --zone us-central1-a --machine-type=f1-micro --can-ip-forward --network-interface subnet=prod-subnet,network=producer-vpc,no-address --network-interface network-attachment=https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/networkAttachments/psc-network-attachment

মাল্টি-নিক বৈধতা

PSC ইন্টারফেসটি যথাযথ IP Address দিয়ে কনফিগার করা আছে কিনা তা যাচাই করুন। vNIC0 প্রডিউসার prod-subnet (10.20.1.0/28) এবং vNIC1 কনজিউমার intf-subnet (192.168.10.0/28) ব্যবহার করবে।

gcloud compute instances describe bear --zone=us-central1-a | grep networkIP:

উদাহরণ:

user$ gcloud compute instances describe bear --zone=us-central1-a | grep networkIP:
  networkIP: 10.20.1.2
  networkIP: 192.168.10.2

১০. গ্রাহকের ফায়ারওয়াল নিয়ম আপডেট করুন

bear থেকে lion-এ অ্যাক্সেসের অনুমতি দিতে একটি ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করুন।

ক্লাউড শেলে, একটি উচ্চ অগ্রাধিকারের নিয়ম তৈরি করুন যা অ্যাটাচমেন্ট-সাবনেট (intf-subnet)-এর আইপি অ্যাড্রেস রেঞ্জ থেকে লায়ন-সাবনেট-১ (lion-subnet-1)-এর অ্যাড্রেস রেঞ্জের গন্তব্যগুলিতে বহির্গমনের অনুমতি দেয়।

gcloud compute firewall-rules create allow-limited-egress-to-lion \
    --network=consumer-vpc \
    --action=ALLOW \
    --rules=ALL \
    --direction=EGRESS \
    --priority=1000 \
    --source-ranges="192.168.10.0/28" \
    --destination-ranges="192.168.20.0/28" \
    --enable-logging

ক্লাউড শেলে, একটি ইনগ্রেস অ্যালাউ রুল তৈরি করুন যা psc-network-attachment সাবনেট থেকে আসা ট্র্যাফিকের জন্য অন্তর্নিহিত ডিনাই ইনগ্রেস রুলটিকে ওভাররাইড করবে।

gcloud compute firewall-rules create allow-ingress \
--network=consumer-vpc \
--action=ALLOW \
--rules=ALL \
--direction=INGRESS \
--priority=1000 \
--source-ranges="192.168.10.0/28" \
--enable-logging

একটি ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করুন যা 'bear' থেকে সমস্ত রেঞ্জে ('tiger' সহ) অ্যাক্সেস অস্বীকার করবে।

ক্লাউড শেলে, একটি নিম্ন-অগ্রাধিকারের নিয়ম তৈরি করুন যা নেটওয়ার্ক অ্যাটাচমেন্টের সাবনেট, intf-subnet-এর আইপি অ্যাড্রেস পরিসর থেকে সমস্ত বহির্গামী ট্র্যাফিককে বাধা দেবে।

gcloud compute firewall-rules create deny-all-egress \
    --network=consumer-vpc \
    --action=DENY \
    --rules=ALL \
    --direction=EGRESS \
    --priority=65534 \
    --source-ranges="192.168.10.0/28" \
    --destination-ranges="0.0.0.0/0" \
    --enable-logging

cosmo থেকে bear-এ অ্যাক্সেসের অনুমতি দিতে একটি ক্লাউড ফায়ারওয়াল নিয়ম তৈরি করুন।

ক্লাউড শেলে, একটি ইনগ্রেস অ্যালাউ রুল তৈরি করুন যা psc-network-attachment সাবনেট থেকে আসা ট্র্যাফিকের জন্য অন্তর্নিহিত ডিনাই ইনগ্রেস রুলটিকে ওভাররাইড করবে।

gcloud compute firewall-rules create vm-subnet-allow-ingress \
    --network=consumer-vpc \
    --action=ALLOW \
    --rules=ALL \
    --direction=INGRESS \
    --priority=1000 \
    --source-ranges="192.168.40.0/28" \
    --destination-ranges="192.168.10.0/28" \
    --enable-logging

১১. PSC ইন্টারফেসের জন্য লিনাক্স রাউট তৈরি করুন

PSC ইন্টারফেস ইনস্ট্যান্স থেকে, প্রডিউসারকে কনজিউমার সাবনেটগুলোর সাথে যোগাযোগের অনুমতি দেওয়ার জন্য লিনাক্স রাউট কনফিগার করুন।

আপনার প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসের গেস্ট ওএস-এর নামটি খুঁজুন।

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

ক্লাউড শেলের ভিতরে একটি নতুন ট্যাব খুলুন এবং নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

ক্লাউড শেলে IAP ব্যবহার করে psc-interface vm, bear-এ লগ ইন করুন।

gcloud compute ssh bear --project=$projectid --zone=us-central1-a --tunnel-through-iap

ক্লাউড শেলে psc-interface ইনস্ট্যান্সটির আইপি অ্যাড্রেস সংগ্রহ করুন।

ip a

উদাহরণ:

user@bear:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:0a:14:01:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 10.20.1.2/32 brd 10.20.1.2 scope global dynamic ens4
       valid_lft 85991sec preferred_lft 85991sec
    inet6 fe80::4001:aff:fe14:102/64 scope link 
       valid_lft forever preferred_lft forever
3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    inet 192.168.10.2/32 brd 192.168.10.2 scope global dynamic ens5
       valid_lft 85991sec preferred_lft 85991sec
    inet6 fe80::4001:c0ff:fea8:a02/64 scope link 
       valid_lft forever preferred_lft forever

আপনার PSC ইন্টারফেসের গেটওয়ে আইপি খুঁজুন।

নেটওয়ার্ক ইন্টারফেসের তালিকায়, আপনার প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসের আইপি অ্যাড্রেসের সাথে যুক্ত ইন্টারফেসের নামটি খুঁজুন এবং সংরক্ষণ করুন—উদাহরণস্বরূপ, ens5 (vNIC1)।

রাউটিং কনফিগার করার জন্য, আপনার প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেসের ডিফল্ট গেটওয়ের আইপি অ্যাড্রেসটি জানা প্রয়োজন।

ক্লাউড শেলে আমরা 1 ব্যবহার করব, কারণ PSC ইন্টারফেসটি vNIC1-এর সাথে যুক্ত।

curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo

উদাহরণটি ডিফল্ট গেটওয়ে 192.168.10.1 তৈরি করে।

user@bear:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
192.168.10.1

কনজিউমার সাবনেটের জন্য রুট যোগ করুন

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

বেয়ার ইনস্ট্যান্সে কনজিউমার সাবনেটগুলোতে রাউটগুলো যোগ করুন।

sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5
sudo ip route add 192.168.30.0/28 via 192.168.10.1 dev ens5
sudo ip route add 192.168.40.0/28 via 192.168.10.1 dev ens5

রুট টেবিল যাচাই করুন

ক্লাউড শেলে নতুন যোগ করা রুটগুলো যাচাই করুন।

ip route show

উদাহরণ।

user@bear:~$ ip route show
default via 10.20.1.1 dev ens4 
10.20.1.0/28 via 10.20.1.1 dev ens4 
10.20.1.1 dev ens4 scope link 
192.168.10.0/28 via 192.168.10.1 dev ens5 
192.168.10.1 dev ens5 scope link 
192.168.20.0/28 via 192.168.10.1 dev ens5 
192.168.30.0/28 via 192.168.10.1 dev ens5 
192.168.40.0/28 via 192.168.10.1 dev ens5 

১২. ভালুক ও সিংহের সফল সংযোগ যাচাই করুন

একটি `curl` কমান্ড চালিয়ে নিশ্চিত হওয়া যাক যে প্রডিউসার ভিএম ইনস্ট্যান্স `bear`, কনজিউমার ইনস্ট্যান্স `lion`-এর সাথে যোগাযোগ করতে পারছে।

বেয়ার ইনস্ট্যান্স থেকে, টিউটোরিয়ালের শুরুতে চিহ্নিত করা লায়নের আইপি অ্যাড্রেসে একটি কার্ল (curl) কমান্ড চালান।

curl -v <lions IP Address>

উদাহরণ:

user@bear:~$ curl -v 192.168.20.2
*   Trying 192.168.20.2:80...
* Connected to 192.168.20.2 (192.168.20.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 192.168.20.2
> User-Agent: curl/7.74.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Tue, 06 Jun 2023 03:53:08 GMT
< Server: Apache/2.4.56 (Debian)
< Last-Modified: Mon, 05 Jun 2023 19:41:26 GMT
< ETag: "1e-5fd6716a1e11b"
< Accept-Ranges: bytes
< Content-Length: 30
< Content-Type: text/html
< 
Welcome to lion app server !!
* Connection #0 to host 192.168.20.2 left intact

১৩. ভালুক থেকে বাঘের সংযোগ অবরুদ্ধ কিনা তা যাচাই করুন।

ফায়ারওয়াল লগ দেখে নিশ্চিত হওয়া যাক যে, ইগ্রেস ফায়ারওয়াল রুলটি bear থেকে tiger-এ প্রবেশে বাধা দিচ্ছে কিনা।

একটি নতুন ক্লাউড কনসোল সেশন থেকে Logging → Logs Explorer-এ যান এবং Show query নির্বাচন করুন।

2ae597e6d970cddf.png

নিচের কোয়েরি স্ট্রিংটি সার্চ ফিল্ডে পেস্ট করুন, তারপর স্ট্রিম নির্বাচন করুন।

jsonPayload.rule_details.reference="network:consumer-vpc/firewall:deny-all-egress"

30d7bfae315f2ee3.png

bear ইনস্ট্যান্স থেকে, টিউটোরিয়ালের শুরুতে চিহ্নিত করা Tiger-এর IP Address-এ একটি curl কমান্ড চালান। curl কমান্ডটি এক পর্যায়ে টাইম আউট হয়ে যাবে।

curl -v <tiger's IP Address>

উদাহরণ:

user@bear:~$ curl -v 192.168.30.2 
*   Trying 192.168.30.2:80...
* connect to 192.168.30.2 port 80 failed: Connection timed out
* Failed to connect to 192.168.30.2 port 80: Connection timed out
* Closing connection 0
curl: (28) Failed to connect to 192.168.30.2 port 80: Connection timed out

লগ এক্সপ্লোরার প্রত্যাখ্যাত ফায়ারওয়াল লগগুলো সংগ্রহ করেছে কিনা তা যাচাই করুন। একটি লগ এন্ট্রি নির্বাচন করুন এবং মেটাডেটা দেখতে এর ভেতরের ফিল্ডগুলো প্রসারিত করুন।

5c42a6587300be55.png

১৪. কসমো এবং বেয়ার-এর সংযোগ সফল হয়েছে কিনা তা যাচাই করুন।

একটি নতুন ক্লাউড শেল ট্যাব খুলুন এবং আপনার প্রোজেক্ট সেটিংস আপডেট করুন।

ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

ক্লাউড শেলে IAP ব্যবহার করে কসমো ইনস্ট্যান্সে লগ ইন করুন।

gcloud compute ssh cosmo --project=$projectid --zone=us-central1-a --tunnel-through-iap

ক্লাউড শেলে, টিউটোরিয়ালের শুরুতে চিহ্নিত bear-এর IP vNIV1 IP Address-টিতে একটি পিং করুন।

ping <bears vNIC1 IP Address>

উদাহরণ:

user@cosmo:~$ ping 192.168.10.2 -c 5
PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=0.277 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=0.288 ms
64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=0.265 ms
64 bytes from 192.168.10.2: icmp_seq=4 ttl=64 time=0.264 ms
64 bytes from 192.168.10.2: icmp_seq=5 ttl=64 time=0.366 ms

১৫. পরিষ্কার করুন

ক্লাউড শেল থেকে টিউটোরিয়াল উপাদানগুলো মুছে ফেলুন।

gcloud compute instances delete bear --zone=us-central1-a --quiet

gcloud compute instances delete lion --zone=us-central1-a --quiet

gcloud compute instances delete tiger --zone=us-central1-a --quiet

gcloud compute instances delete cosmo --zone=us-central1-a --quiet

gcloud compute network-attachments delete psc-network-attachment --region=us-central1 --quiet

gcloud compute firewall-rules delete allow-ingress allow-limited-egress-to-lion deny-all-egress ssh-iap-consumer ssh-iap-producer vm-subnet-allow-ingress --quiet

gcloud compute networks subnets delete cosmo-subnet-1 intf-subnet lion-subnet-1 prod-subnet tiger-subnet-1 --region=us-central1 --quiet

gcloud compute routers delete cloud-router-for-nat --region=us-central1 --quiet 

gcloud compute networks delete consumer-vpc --quiet

gcloud compute networks delete producer-vpc --quiet

১৬. অভিনন্দন

অভিনন্দন, আপনি ফায়ারওয়াল নিয়মাবলী প্রয়োগের মাধ্যমে একটি প্রাইভেট সার্ভিস কানেক্ট ইন্টারফেস এবং কনজিউমার ও প্রডিউসার কানেক্টিভিটি সফলভাবে কনফিগার ও যাচাই করেছেন।

আপনি কনজিউমার ইনফ্রাস্ট্রাকচার তৈরি করেছেন এবং একটি নেটওয়ার্ক অ্যাটাচমেন্ট যুক্ত করেছেন, যা প্রডিউসারকে কনজিউমার ও প্রডিউসারের মধ্যে যোগাযোগ স্থাপন করার জন্য একটি মাল্টি-নিক ভিএম (multi-NIC VM) তৈরি করার সুযোগ দিয়েছে। আপনি শিখেছেন কীভাবে কনজিউমার ভিপিসি (VPC) নেটওয়ার্কে ফায়ারওয়াল রুল তৈরি করতে হয়, যা কনজিউমার এবং প্রডিউসার ভিপিসি-তে থাকা ইনস্ট্যান্সগুলোর সাথে সংযোগ স্থাপন করতে দেয়।

কসমোপাপ মনে করে টিউটোরিয়ালগুলো অসাধারণ!!

e6d3675ca7c6911f.jpeg

এরপর কী?

এই টিউটোরিয়ালগুলো দেখে নিন...

আরও পড়ুন ও ভিডিও

রেফারেন্স নথি