1. ভূমিকা
স্ট্যাটিক কাস্টম রুট একটি VPC-তে ডিফল্ট রাউটিং আচরণকে প্রভাবিত করে। IPv6 কাস্টম রুট এখন নতুন নেক্সট-হপ অ্যাট্রিবিউট সমর্থন করে: নেক্সট-হপ-গেটওয়ে, নেক্সট-হপ-ইনস্ট্যান্স এবং নেক্সট-হপ-ঠিকানা। এই কোডল্যাবটি বর্ণনা করে যে কিভাবে একটি মাল্টি-এনআইসি ভিএম ইনস্ট্যান্স দ্বারা সংযুক্ত দুটি ভিপিসি ব্যবহার করে এই নতুন নেক্সট-হপ বিকল্পগুলির সাথে IPv6 কাস্টম রুটগুলি ব্যবহার করতে হয়। এছাড়াও আপনি ULA এবং GUA অ্যাড্রেসিং মিশ্রিত করা এবং নতুন কাস্টম রুট ক্ষমতা ব্যবহার করে সর্বজনীন ইন্টারনেটে ULA VPC-কে নাগালের সুবিধা প্রদান করবেন।
আপনি কি শিখবেন
- ILB-এর নাম উল্লেখ করে নেক্সট-হপ-আইএলবি নেক্সট-হপ দিয়ে কীভাবে একটি IPv6 কাস্টম রুট তৈরি করবেন
- ILB-এর IPv6 ঠিকানা উল্লেখ করে নেক্সট-হপ-আইএলবি নেক্সট-হপের সাথে কীভাবে একটি IPv6 কাস্টম রুট তৈরি করবেন
আপনি কি প্রয়োজন হবে
- গুগল ক্লাউড প্রকল্প
2. আপনি শুরু করার আগে
কোডল্যাবকে সমর্থন করার জন্য প্রকল্পটি আপডেট করুন
এই কোডল্যাব ক্লাউড শেল-এ gcloud কনফিগারেশন বাস্তবায়নে সাহায্য করার জন্য $ভেরিয়েবল ব্যবহার করে।
ক্লাউড শেলের ভিতরে, নিম্নলিখিতটি সম্পাদন করুন
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export projectname=$(gcloud config list --format="value(core.project)")
সামগ্রিক ল্যাব আর্কিটেকচার
উভয় ধরনের কাস্টম রুট নেক্সট-হপস প্রদর্শন করতে, আপনি 2টি ভিপিসি তৈরি করবেন: একটি ক্লায়েন্ট এবং সার্ভার ভিপিসি যা ULA অ্যাড্রেসিং ব্যবহার করে।
ক্লায়েন্ট VPC সার্ভারে অ্যাক্সেস করার জন্য, আপনি একটি কাস্টম রুট ব্যবহার করবেন নেক্সট-হপ-আইএলবি ব্যবহার করে একটি ILB-এর দিকে নির্দেশ করে (ILB-এর নাম ব্যবহার করে) একটি মাল্টি-NIC গেটওয়ে দৃষ্টান্তগুলির সামনে যা দুটি ILB-এর মধ্যে স্যান্ডউইচ করা হয়েছে৷ ক্লায়েন্ট ইন্সট্যান্সে (ডিফল্ট ::/0 রুট মুছে ফেলার পরে), আপনি ILB-এর দিকে নির্দেশ করে নেক্সট-হপ-আইএলবি (ILB-এর ঠিকানা ব্যবহার করে) সহ একটি কাস্টম রুট ব্যবহার করবেন।
3. ক্লায়েন্ট VPC সেটআপ
ক্লায়েন্ট ভিপিসি তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks create client-vpc \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional \
--enable-ula-internal-ipv6
ক্লায়েন্ট সাবনেট তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks subnets create client-subnet \
--network=client-vpc \
--project=$projectname \
--range=192.168.1.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=internal \
--region=us-central1
এই কমান্ড ব্যবহার করে একটি পরিবেশ ভেরিয়েবলে নির্ধারিত IPv6 সাবনেট রেকর্ড করুন
export client_subnet=$(gcloud compute networks subnets \
describe client-subnet \
--project $projectname \
--format="value(internalIpv6Prefix)" \
--region us-central1)
ক্লায়েন্ট উদাহরণ চালু করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute instances create client-instance \
--subnet client-subnet \
--stack-type IPV4_IPV6 \
--zone us-central1-a \
--project=$projectname
ক্লায়েন্ট ভিপিসি ট্রাফিকের জন্য ফায়ারওয়াল নিয়ম যোগ করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute firewall-rules create allow-gateway-client \
--direction=INGRESS --priority=1000 \
--network=client-vpc --action=ALLOW \
--rules=tcp --source-ranges=$client_subnet \
--project=$projectname
ক্লায়েন্ট উদাহরণের জন্য IAP অনুমতি দিতে ফায়ারওয়াল নিয়ম যোগ করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute firewall-rules create allow-iap-client \
--direction=INGRESS --priority=1000 \
--network=client-vpc --action=ALLOW \
--rules=tcp:22 --source-ranges=35.235.240.0/20 \
--project=$projectname
ক্লায়েন্ট ইনস্ট্যান্সে SSH অ্যাক্সেস নিশ্চিত করুন
ক্লাউড শেলের ভিতরে, ক্লায়েন্ট-ইনস্ট্যান্সে লগ ইন করুন:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
সফল হলে, আপনি ক্লায়েন্ট উদাহরণ থেকে একটি টার্মিনাল উইন্ডো দেখতে পাবেন। কোডল্যাব চালিয়ে যেতে SSH সেশন থেকে প্রস্থান করুন।
4. সার্ভার VPC সেটআপ
সার্ভার VPC তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks create server-vpc \
--project=$projectname \
--subnet-mode=custom --mtu=1500 \
--bgp-routing-mode=regional \
--enable-ula-internal-ipv6
সার্ভার সাবনেট তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks subnets create server-subnet \
--network=server-vpc \
--project=$projectname \
--range=192.168.0.0/24 \
--stack-type=IPV4_IPV6 \
--ipv6-access-type=internal \
--region=us-central1
এই কমান্ড ব্যবহার করে একটি পরিবেশ ভেরিয়েবলে বরাদ্দ করা সাবনেট রেকর্ড করুন
export server_subnet=$(gcloud compute networks subnets \
describe server-subnet \
--project $projectname \
--format="value(internalIpv6Prefix)" \
--region us-central1)
সার্ভার VM চালু করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute instances create server-instance \
--subnet server-subnet \
--stack-type IPV4_IPV6 \
--zone us-central1-a \
--project=$projectname
ক্লায়েন্ট থেকে সার্ভারে অ্যাক্সেসের অনুমতি দিতে ফায়ারওয়াল নিয়ম যোগ করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute firewall-rules create allow-client-server \
--direction=INGRESS --priority=1000 \
--network=server-vpc --action=ALLOW \
--rules=tcp --source-ranges=$client_subnet \
--project=$projectname
IAP অনুমতি দিতে ফায়ারওয়াল নিয়ম যোগ করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute firewall-rules create allow-iap-server \
--direction=INGRESS --priority=1000 \
--network=server-vpc --action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20 \
--project=$projectname
ULA সার্ভার উদাহরণে Apache ইনস্টল করুন
ক্লাউড শেলের ভিতরে, ক্লায়েন্ট-ইনস্ট্যান্সে লগ ইন করুন:
gcloud compute ssh server-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
সার্ভার VM শেলের ভিতরে, নিম্নলিখিত কমান্ডটি চালান
sudo apt update && sudo apt -y install apache2
যাচাই করুন যে Apache চলছে
sudo systemctl status apache2
ডিফল্ট ওয়েব পৃষ্ঠা ওভাররাইট করুন
echo '<!doctype html><html><body><h1>Hello World! From Server Instance!</h1></body></html>' | sudo tee /var/www/html/index.html
কোডল্যাব চালিয়ে যেতে SSH সেশন থেকে প্রস্থান করুন।
5. গেটওয়ে ইনস্ট্যান্স তৈরি করুন
মাল্টি-এনআইসি গেটওয়ে ইনস্ট্যান্স টেমপ্লেট তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute instance-templates create gateway-instance-template \
--project=$projectname \
--instance-template-region=us-central1 \
--region=us-central1 \
--network-interface=stack-type=IPV4_IPV6,subnet=client-subnet,no-address \
--network-interface=stack-type=IPV4_IPV6,subnet=server-subnet,no-address \
--can-ip-forward \
--metadata=startup-script='#! /bin/bash
sudo sysctl -w net.ipv6.conf.ens4.accept_ra=2
sudo sysctl -w net.ipv6.conf.ens5.accept_ra=2
sudo sysctl -w net.ipv6.conf.ens4.accept_ra_defrtr=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1'
মাল্টি-এনআইসি গেটওয়ে ইনস্ট্যান্স গ্রুপ তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute instance-groups managed create gateway-instance-group \
--project=$projectname \
--base-instance-name=gateway-instance \
--template=projects/$projectname/regions/us-central1/instanceTemplates/gateway-instance-template \
--size=2 \
--zone=us-central1-a
গেটওয়ে দৃষ্টান্ত যাচাই করুন
আমাদের স্টার্টআপ স্ক্রিপ্ট সঠিকভাবে পাস করা হয়েছে এবং v6 রাউটিং টেবিলটি সঠিক তা নিশ্চিত করতে। গেটওয়ে উদাহরণগুলির একটিতে SSH
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি চালিয়ে গেটওয়ে উদাহরণগুলি তালিকাভুক্ত করুন:
gcloud compute instances list \
--project=$projectname \
--zones=us-central1-a \
--filter name~gateway \
--format 'csv(name)'
একটি দৃষ্টান্তের নাম নোট করুন এবং পরবর্তী কমান্ডে SSH-এর উদাহরণে ব্যবহার করুন।
ক্লাউড শেলের ভিতরে, গেটওয়ে উদাহরণগুলির একটিতে লগ ইন করুন
gcloud compute ssh gateway-instance-<suffix> \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
গেটওয়ে VM শেলের ভিতরে, IPv6 ফরওয়ার্ডিং চেক করতে নিম্নলিখিত কমান্ডটি চালান
sudo sysctl net.ipv6.conf.all.forwarding
আইপিভি6 ফরওয়ার্ডিং সক্ষম করা হয়েছে তা নির্দেশ করে কমান্ডটি "1" এর মান প্রদান করবে।
উদাহরণে IPv6 রাউটিং টেবিল যাচাই করুন
ip -6 route show
GUA ইন্টারফেসে নির্দেশিত ডিফল্ট রুট সহ ULA এবং GUA সাবনেট রুট উভয়ই দেখানো নমুনা আউটপুট।
::1 dev lo proto kernel metric 256 pref medium
2600:1900:4000:7a7f:0:1:: dev ens4 proto kernel metric 256 expires 83903sec pref medium
2600:1900:4000:7a7f::/65 via fe80::4001:c0ff:fea8:101 dev ens4 proto ra metric 1024 expires 88sec pref medium
fd20:3df:8d5c::1:0:0 dev ens5 proto kernel metric 256 expires 83904sec pref medium
fd20:3df:8d5c::/64 via fe80::4001:c0ff:fea8:1 dev ens5 proto ra metric 1024 expires 84sec pref medium
fe80::/64 dev ens5 proto kernel metric 256 pref medium
fe80::/64 dev ens4 proto kernel metric 256 pref medium
default via fe80::4001:c0ff:fea8:101 dev ens4 proto ra metric 1024 expires 88sec pref medium
কোডল্যাব চালিয়ে যেতে SSH সেশন থেকে প্রস্থান করুন।
6. লোড ব্যালেন্সার উপাদান তৈরি করুন
আমরা উভয় ভিপিসি-তে রুট তৈরি করতে পারার আগে, ট্র্যাফিক ফরোয়ার্ড করার জন্য আমাদের গেটওয়ে ইনস্ট্যান্সের উভয় পাশে অভ্যন্তরীণ পাসথ্রু লোড ব্যালেন্সার তৈরি করতে হবে।
এই কোডল্যাবে তৈরি লোড ব্যালেন্সারগুলি নিয়ে গঠিত
- স্বাস্থ্য পরীক্ষা: এই কোডল্যাবে, আমরা সাধারণ স্বাস্থ্য পরীক্ষা তৈরি করব যা পোর্ট 22 কে লক্ষ্য করে। মনে রাখবেন যে স্বাস্থ্য পরীক্ষাগুলি মোতায়েন হিসাবে কাজ করবে না (এর মধ্যে স্বাস্থ্য পরীক্ষা করার অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়ম যুক্ত করা এবং গেটওয়ে দৃষ্টান্তগুলিতে বিশেষ রুট তৈরি করা অন্তর্ভুক্ত)। যেহেতু এই কোডল্যাবটি আইপিভি 6 ফরোয়ার্ডিংয়ের উপর দৃষ্টি নিবদ্ধ করা হয়েছে আমরা অভ্যন্তরীণ পাস-থ্রু লোড ব্যালেন্সারের ডিফল্ট ট্র্যাফিক বন্টন আচরণের উপর নির্ভর করব যখন সমস্ত ব্যাকএন্ড অস্বাস্থ্যকর হয়, যথা, শেষ অবলম্বন হিসাবে সমস্ত ব্যাকএন্ডে ফরোয়ার্ড করার জন্য।
- ব্যাকএন্ড পরিষেবা: আমরা ব্যাকএন্ড পরিষেবার জন্য প্রোটোকল টিসিপি ব্যবহার করব। কিন্তু যেহেতু লোড ব্যালেন্সারগুলি রাউটিং উদ্দেশ্যে তৈরি করা হয়েছে ব্যাকএন্ড পরিষেবা প্রোটোকল নির্বিশেষে সমস্ত প্রোটোকল ফরোয়ার্ড করা হয়।
- ফরওয়ার্ড করার নিয়ম: আমরা প্রতি ভিপিসিতে একটি ফরোয়ার্ডিং নিয়ম তৈরি করি।
- অভ্যন্তরীণ IPv6 ঠিকানা: এই কোডল্যাবে, আমরা ফরওয়ার্ডিং নিয়মকে সাবনেট থেকে স্বয়ংক্রিয়ভাবে IPv6 ঠিকানা বরাদ্দ করতে দেব
স্বাস্থ্য পরীক্ষা তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute health-checks create tcp tcp-hc-22 \
--project=$projectname \
--region=us-central1 \
--port=22
ব্যাকএন্ড পরিষেবা তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute backend-services create bes-ilb-clientvpc \
--project=$projectname \
--load-balancing-scheme=internal \
--protocol=tcp \
--network=client-vpc \
--region=us-central1 \
--health-checks=tcp-hc-22 \
--health-checks-region=us-central1
gcloud compute backend-services create bes-ilb-servervpc \
--project=$projectname \
--load-balancing-scheme=internal \
--protocol=tcp \
--network=server-vpc \
--region=us-central1 \
--health-checks=tcp-hc-22 \
--health-checks-region=us-central1
ব্যাকএন্ড সার্ভিসে ইনস্ট্যান্স গ্রুপ যোগ করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute backend-services add-backend bes-ilb-clientvpc \
--project=$projectname \
--region=us-central1 \
--instance-group=gateway-instance-group \
--instance-group-zone=us-central1-a
gcloud compute backend-services add-backend bes-ilb-servervpc \
--project=$projectname \
--region=us-central1 \
--instance-group=gateway-instance-group \
--instance-group-zone=us-central1-a
ফরোয়ার্ড করার নিয়ম তৈরি করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute forwarding-rules create fr-ilb-clientvpc \
--project=$projectname \
--region=us-central1 \
--load-balancing-scheme=internal \
--network=client-vpc \
--subnet=client-subnet \
--ip-protocol=TCP \
--ip-version=IPV6 \
--ports=ALL \
--backend-service=bes-ilb-clientvpc \
--backend-service-region=us-central1
gcloud compute forwarding-rules create fr-ilb-servervpc \
--project=$projectname \
--region=us-central1 \
--load-balancing-scheme=internal \
--network=server-vpc \
--subnet=server-subnet \
--ip-protocol=TCP \
--ip-version=IPV6 \
--ports=ALL \
--backend-service=bes-ilb-servervpc \
--backend-service-region=us-central1
ক্লাউডশেলে নিম্নলিখিত কমান্ডগুলি জারি করে উভয় ফরওয়ার্ডিং নিয়মের IPv6 ঠিকানাগুলি রেকর্ড করুন:
export fraddress_client=$(gcloud compute forwarding-rules \
describe fr-ilb-clientvpc \
--project $projectname \
--format="value(IPAddress)" \
--region us-central1)
export fraddress_server=$(gcloud compute forwarding-rules \
describe fr-ilb-servervpc \
--project $projectname \
--format="value(IPAddress)" \
--region us-central1)
7. ব্যালেন্সার লোড করার রুট তৈরি করুন এবং পরীক্ষা করুন (লোড ব্যালেন্সার ঠিকানা ব্যবহার করে)
এই বিভাগে, আপনি পরবর্তী-হপস হিসাবে লোড ব্যালেন্সারের IPv6 ঠিকানাগুলি ব্যবহার করে উভয় ক্লায়েন্ট এবং সার্ভার VPC-তে রুট যোগ করবেন।
সার্ভার ঠিকানা নোট করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute instances list \
--project $projectname \
--zones us-central1-a \
--filter="name~server-instance" \
--format='value[separator=","](name,networkInterfaces[0].ipv6Address)'
এটি সার্ভার ইনস্ট্যান্স নাম এবং তাদের IPv6 উপসর্গ উভয় আউটপুট করা উচিত। নমুনা আউটপুট
server-instance,fd20:3df:8d5c:0:0:0:0:0
সার্ভারের ঠিকানাটি নোট করুন কারণ আপনি এটি পরে ক্লায়েন্ট উদাহরণ থেকে কার্ল কমান্ডে ব্যবহার করবেন। দুর্ভাগ্যবশত এনভায়রনমেন্ট ভেরিয়েবল এগুলিকে সঞ্চয় করতে সহজে ব্যবহার করা যায় না কারণ সেগুলি SSH সেশনে স্থানান্তরিত হয় না।
ক্লায়েন্ট থেকে ULA সার্ভার ইনস্ট্যান্সে কার্ল কমান্ড চালান
কোনো নতুন রুট যোগ করার আগে আচরণ দেখতে. ক্লায়েন্ট ইনস্ট্যান্স থেকে সার্ভার-ইনস্ট্যান্স1 এর দিকে একটি কার্ল কমান্ড চালান।
ক্লাউড শেলের ভিতরে, ক্লায়েন্ট-ইনস্ট্যান্সে লগ ইন করুন:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
ক্লায়েন্ট ইন্সট্যান্সের ভিতরে, সার্ভার 1 ইন্সট্যান্সের ULA IPV6 ঠিকানা ব্যবহার করে একটি কার্ল সম্পাদন করুন (কমান্ডটি 5 সেকেন্ডের একটি সংক্ষিপ্ত টাইমআউট সেট করে যাতে কার্ল খুব দীর্ঘ অপেক্ষা না করে)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
এই কার্ল কমান্ডটি টাইম আউট হওয়া উচিত কারণ ক্লায়েন্ট VPC এর এখনও সার্ভার VPC এর দিকে কোনো রুট নেই৷
এর ঠিক করার চেষ্টা করা যাক! আপাতত SSH সেশন থেকে প্রস্থান করুন।
ক্লায়েন্ট ভিপিসিতে কাস্টম রুট যোগ করুন
যেহেতু ক্লায়েন্ট VPC ULA উপসর্গের দিকে একটি রুট অনুপস্থিত। ঠিকানার মাধ্যমে ক্লায়েন্ট-সাইড আইএলবি-এর দিকে নির্দেশ করে এমন একটি রুট তৈরি করে এখন এটি যোগ করা যাক।
দ্রষ্টব্য: IPv6 অভ্যন্তরীণ পাসথ্রু লোড ব্যালেন্সার বরাদ্দ করা হয়েছে /96 ঠিকানা। পরবর্তী কমান্ডে পাঠানোর আগে ঠিকানা থেকে /96 মাস্কটি ছিনিয়ে নেওয়া প্রয়োজন। (নীচে ব্যাশ ইন-প্লেস প্রতিস্থাপন ব্যবহার করা হয়)
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute routes create client-to-server-route \
--project=$projectname \
--destination-range=$server_subnet \
--network=client-vpc \
--next-hop-ilb=${fraddress_client//\/96}
SSH ক্লায়েন্ট উদাহরণে ফিরে যান:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
ক্লায়েন্ট ইনস্ট্যান্সের ভিতরে, সার্ভার ইনস্ট্যান্সে কার্লটি আবার চেষ্টা করুন। (কমান্ডটি 5 সেকেন্ডের একটি সংক্ষিপ্ত টাইমআউট সেট করে যাতে দীর্ঘ সময়ের জন্য কার্ল অপেক্ষা না করা যায়)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
এই কার্ল কমান্ডটি এখনও টাইম আউট কারণ সার্ভার VPC, গেটওয়ে উদাহরণের মাধ্যমে ক্লায়েন্ট VPC এর দিকে ফিরে যাওয়ার রুট নেই।
কোডল্যাব চালিয়ে যেতে SSH সেশন থেকে প্রস্থান করুন।
সার্ভার ভিপিসিতে কাস্টম রুট যোগ করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute routes create server-to-client-route \
--project=$projectname \
--destination-range=$client_subnet \
--network=server-vpc \
--next-hop-ilb=${fraddress_server//\/96}
SSH ক্লায়েন্ট উদাহরণে ফিরে যান:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
ক্লায়েন্ট ইনস্ট্যান্সের ভিতরে, সার্ভার ইনস্ট্যান্সে কার্লটি আরও একবার চেষ্টা করুন।
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
এই কার্ল কমান্ডটি এখন ক্লায়েন্ট ইন্সট্যান্স থেকে ইউএলএ সার্ভার ইনস্ট্যান্সের দিকে এন্ড-টু-এন্ড পৌঁছানোর ক্ষমতা দেখিয়েছে। এই কানেক্টিভিটি এখন শুধুমাত্র পরবর্তী-হপ হিসেবে নেক্সট-হপ-ইলবি সহ IPv6 কাস্টম রুট ব্যবহারের মাধ্যমে সম্ভব।
নমুনা আউটপুট
<user id>@client-instance:~$ curl -m 5.0 -g -6 'http://[fd20:3df:8d5c:0:0:0:0:0]:80/'
<!doctype html><html><body><h1>Hello World! From Server Instance!</h1></body></html>
কোডল্যাব চালিয়ে যেতে SSH সেশন থেকে প্রস্থান করুন।
8. ব্যালেন্সার লোড করার রুট তৈরি করুন এবং পরীক্ষা করুন (লোড ব্যালেন্সার নাম ব্যবহার করে)
বিকল্পভাবে, নেক্সট-হপ-আইএলবি তার IPv6 ঠিকানার পরিবর্তে লোড ব্যালেন্সারের নাম উল্লেখ করতে পারে। এই বিভাগে আমরা এটি করার পদ্ধতিটি বিবেচনা করি এবং পরীক্ষা করি যে সংযোগটি এখনও ক্লায়েন্ট এবং সার্ভারের মধ্যে প্রতিষ্ঠিত রয়েছে।
আগের রুট মুছুন
ইনস্ট্যান্স নাম ব্যবহার করে এমন কাস্টম রুটগুলি মুছে দিয়ে কোনো কাস্টম রুট যোগ করার আগে পরিবেশ পুনরুদ্ধার করি।
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute routes delete client-to-server-route --quiet --project=$projectname
gcloud compute routes delete server-to-client-route --quiet --project=$projectname
ক্লায়েন্ট থেকে ULA সার্ভার ইনস্ট্যান্সে কার্ল কমান্ড চালান
পূর্ববর্তী রুটগুলি সফলভাবে মুছে ফেলা হয়েছে তা নিশ্চিত করতে ক্লায়েন্ট ইনস্ট্যান্স থেকে সার্ভার-ইনস্ট্যান্স1 এর দিকে একটি কার্ল কমান্ড চালান।
ক্লাউড শেলের ভিতরে, ক্লায়েন্ট-ইনস্ট্যান্সে লগ ইন করুন:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
ক্লায়েন্ট ইন্সট্যান্সের ভিতরে, সার্ভার 1 ইন্সট্যান্সের ULA IPV6 ঠিকানা ব্যবহার করে একটি কার্ল সম্পাদন করুন (কমান্ডটি 5 সেকেন্ডের একটি সংক্ষিপ্ত টাইমআউট সেট করে যাতে কার্ল খুব দীর্ঘ অপেক্ষা না করে)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
এই কার্ল কমান্ডের সময়সীমা শেষ হওয়া উচিত কারণ ক্লায়েন্ট ভিপিসির সার্ভার ভিপিসির দিকে আর কোনও রুট নেই।
ক্লায়েন্ট এবং সার্ভার ভিপিসিতে কাস্টম রুট যোগ করুন
আসুন ক্লায়েন্ট এবং সার্ভার VPC উভয় ক্ষেত্রেই কাস্টম রুটগুলি পুনরায় যোগ করি তবে ILB এর ঠিকানা ব্যবহার করার পরিবর্তে আমরা কমান্ডে ILB এর নাম এবং অঞ্চল ব্যবহার করব।
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute routes create client-to-server-route \
--project=$projectname \
--destination-range=$server_subnet \
--network=client-vpc \
--next-hop-ilb=fr-ilb-clientvpc \
--next-hop-ilb-region=us-central1
gcloud compute routes create server-to-client-route \
--project=$projectname \
--destination-range=$client_subnet \
--network=server-vpc \
--next-hop-ilb=fr-ilb-servervpc \
--next-hop-ilb-region=us-central1
SSH ক্লায়েন্ট উদাহরণে ফিরে যান:
gcloud compute ssh client-instance \
--project=$projectname \
--zone=us-central1-a \
--tunnel-through-iap
ক্লায়েন্ট ইনস্ট্যান্সের ভিতরে, সার্ভার ইনস্ট্যান্সে কার্লটি আবার চেষ্টা করুন। (কমান্ডটি 5 সেকেন্ডের একটি সংক্ষিপ্ত টাইমআউট সেট করে যাতে দীর্ঘ সময়ের জন্য কার্ল অপেক্ষা না করা যায়)
curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'
এই কার্ল কমান্ডটি এখন ক্লায়েন্ট ইন্সট্যান্স থেকে ইউএলএ সার্ভার ইনস্ট্যান্সের দিকে এন্ড-টু-এন্ড পৌঁছানোর ক্ষমতা দেখিয়েছে।
9. পরিষ্কার করুন
কাস্টম রুট পরিষ্কার করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute routes delete client-to-server-route --quiet --project=$projectname
gcloud compute routes delete server-to-client-route --quiet --project=$projectname
এলবি উপাদানগুলি পরিষ্কার করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute forwarding-rules delete fr-ilb-clientvpc --region us-central1 --quiet --project=$projectname
gcloud compute forwarding-rules delete fr-ilb-servervpc --region us-central1 --quiet --project=$projectname
gcloud compute backend-services delete bes-ilb-clientvpc --region us-central1 --quiet --project=$projectname
gcloud compute backend-services delete bes-ilb-servervpc --region us-central1 --quiet --project=$projectname
gcloud compute health-checks delete tcp-hc-22 --region us-central1 --quiet --project=$projectname
ইনস্ট্যান্স এবং ইনস্ট্যান্স টেমপ্লেট পরিষ্কার করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute instances delete client-instance --zone us-central1-a --quiet --project=$projectname
gcloud compute instances delete server-instance --zone us-central1-a --quiet --project=$projectname
gcloud compute instance-groups managed delete gateway-instance-group --zone us-central1-a --quiet --project=$projectname
gcloud compute instance-templates delete gateway-instance-template --region us-central1 --quiet --project=$projectname
সাবনেট পরিষ্কার করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks subnets delete client-subnet --region=us-central1 --quiet --project=$projectname
gcloud compute networks subnets delete server-subnet --region=us-central1 --quiet --project=$projectname
ফায়ারওয়াল নিয়ম পরিষ্কার করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute firewall-rules delete allow-iap-client --quiet --project=$projectname
gcloud compute firewall-rules delete allow-iap-server --quiet --project=$projectname
gcloud compute firewall-rules delete allow-gateway-client --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server --quiet --project=$projectname
ভিপিসি পরিষ্কার করুন
ক্লাউড শেলের ভিতরে, নিম্নলিখিতগুলি সম্পাদন করুন:
gcloud compute networks delete client-vpc --quiet --project=$projectname
gcloud compute networks delete server-vpc --quiet --project=$projectname
10. অভিনন্দন
আপনি সফলভাবে স্থির কাস্টম আইপিভি 6 রুট ব্যবহার করেছেন পরবর্তী-হপস পরবর্তী-হপ-ইলবি-তে সেট করে। আপনি সেই রুটগুলি ব্যবহার করে এন্ড-টু-এন্ড IPv6 যোগাযোগকেও যাচাই করেছেন।
এরপর কি?
এই কোডল্যাবগুলির কিছু পরীক্ষা করে দেখুন...
- IPv6 ঠিকানা ব্যবহার করে অন-প্রিমিসেস হোস্ট থেকে Google API অ্যাক্সেস করুন
- IP ঠিকানা বিকল্প IPv4 এবং IPv6
- IPv6 স্ট্যাটিক রুট ব্যবহার করে পরবর্তী হপ উদাহরণ, পরবর্তী হপ ঠিকানা এবং পরবর্তী হপ গেটওয়ে