استخدام مثيل القفزة التالية (غير المُصنَّف والمُصنَّف) في المسارات الثابتة لبروتوكول IPv6 وعنوان القفزة التالية وبوابة القفزة التالية

1. مقدمة

تؤثّر المسارات المخصّصة الثابتة في سلوك التوجيه التلقائي في شبكة VPC. تتيح المسارات المخصّصة لبروتوكول IPv6 الآن سمات جديدة للقفزة التالية: next-hop-gateway وnext-hop-instance وnext-hop-address. يوضّح هذا الدرس التطبيقي حول الترميز كيفية استخدام مسارات IPv6 المخصّصة مع خيارات القفزة التالية الجديدة هذه باستخدام شبكتَي VPC مرتبطتَين بمثيل جهاز افتراضي متعدد واجهات الشبكة. ستوضّح أيضًا كيفية دمج عناوين ULA وGUA وتوفير إمكانية الوصول إلى شبكة سحابة VPC التي تستخدم عناوين ULA من الإنترنت العام باستخدام إمكانية التوجيه المخصّص الجديدة.

أهداف الدورة التعليمية

  • كيفية إنشاء مسار مخصّص لبروتوكول IPv6 مع قفزة تالية من خلال موازنة التحميل الداخلي (ILB) عن طريق تحديد اسم موازنة التحميل الداخلي
  • كيفية إنشاء مسار مخصّص لبروتوكول IPv6 مع قفزة تالية من خلال موازنة التحميل الداخلي (ILB) عن طريق تحديد عنوان IPv6 الخاص بموازنة التحميل الداخلي

المتطلبات

  • مشروع Google Cloud

2. قبل البدء

تعديل المشروع ليتوافق مع الدرس العملي

يستخدِم هذا الدرس التطبيقي حول الترميز $variables للمساعدة في تنفيذ عملية إعداد gcloud في Cloud Shell.

داخل Cloud Shell، نفِّذ ما يلي

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export projectname=$(gcloud config list --format="value(core.project)")

البنية العامة للمختبر

5fc56288b4f8ae05.png

لتوضيح كلا النوعين من القفزات التالية للمسار المخصّص، عليك إنشاء شبكتَي VPC: شبكة VPC للعميل وشبكة VPC للخادم تستخدمان عناوين ULA.

لكي تتمكّن شبكة VPC الخاصة بالعميل من الوصول إلى الخادم، عليك استخدام مسار مخصّص يستعين بخدمة next-hop-ilb التي تشير إلى موازن تحميل داخلي (باستخدام اسم موازن التحميل الداخلي) أمام مجموعة من مثيلات البوابة المتعددة بطاقات NIC التي تتوسّط بين موازني تحميل داخليَين. لتوفير التوجيه مرة أخرى إلى الآلة الافتراضية للعميل (بعد حذف المسار التلقائي ::/0)، ستستخدم مسارًا مخصّصًا مع next-hop-ilb (باستخدام عنوان موازن التحميل الداخلي) الذي يشير إلى موازن التحميل الداخلي.

3- إعداد شبكة VPC للعميل

إنشاء شبكة VPC للعميل

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute networks create client-vpc \
    --project=$projectname \
    --subnet-mode=custom --mtu=1500 \
    --bgp-routing-mode=regional \
    --enable-ula-internal-ipv6

إنشاء الشبكة الفرعية للعميل

داخل Cloud Shell، اتّبِع الخطوات التالية:

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)

تشغيل نسخة العميل

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute instances create client-instance \
    --subnet client-subnet \
    --stack-type IPV4_IPV6 \
    --zone us-central1-a \
    --project=$projectname

إضافة قاعدة جدار الحماية لعدد الزيارات إلى شبكة VPC الخاصة بالعميل

داخل Cloud Shell، اتّبِع الخطوات التالية:

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 لمثيل العميل

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

داخل Cloud Shell، سجِّل الدخول إلى الجهاز الظاهري للعميل:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

في حال نجاح العملية، ستظهر لك نافذة طرفية من مثيل العميل. اخرج من جلسة SSH لمواصلة استخدام الدرس البرمجي.

4. إعداد شبكة VPC للخادم

إنشاء شبكة VPC للخادم

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute networks create server-vpc \
    --project=$projectname \
    --subnet-mode=custom --mtu=1500 \
    --bgp-routing-mode=regional \
    --enable-ula-internal-ipv6

إنشاء الشبكات الفرعية للخادم

داخل Cloud Shell، اتّبِع الخطوات التالية:

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)

تشغيل الجهاز الافتراضي للخادم

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute instances create server-instance \
    --subnet server-subnet \
    --stack-type IPV4_IPV6 \
    --zone us-central1-a \
    --project=$projectname

إضافة قاعدة جدار الحماية للسماح بالوصول إلى الخادم من العميل

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

داخل Cloud Shell، اتّبِع الخطوات التالية:

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 

تثبيت Apache في مثيل خادم ULA

داخل Cloud Shell، سجِّل الدخول إلى الجهاز الظاهري للعميل:

gcloud compute ssh server-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

داخل واجهة الجهاز الظاهري للخادم، نفِّذ الأمر التالي

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- إنشاء مثيلات البوابة

إنشاء نموذج مثيل بوابة متعددة واجهات بطاقة شبكة

داخل Cloud Shell، اتّبِع الخطوات التالية:

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'

إنشاء مجموعة مثيلات لبوابة ذات بطاقات شبكة متعددة

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

التحقّق من مثيلات البوابة

للتأكّد من أنّ النص البرمجي للتشغيل تم تمريره بشكل صحيح وأنّ جدول توجيه الإصدار 6 صحيح. تسجيل الدخول إلى إحدى مثيلات البوابة باستخدام بروتوكول SSH

داخل Cloud Shell، أدرِج مثيلات البوابة من خلال تنفيذ ما يلي:

gcloud compute instances list \
    --project=$projectname \
    --zones=us-central1-a \
    --filter name~gateway \
    --format 'csv(name)'

دوِّن أحد أسماء المثيلات واستخدِمه في الأمر التالي لتنفيذ SSH إلى المثيل.

داخل Cloud Shell، سجِّل الدخول إلى إحدى مثيلات البوابة

gcloud compute ssh gateway-instance-<suffix> \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

داخل واجهة سطر الأوامر لجهاز VM الخاص بالبوابة، نفِّذ الأمر التالي للتحقّق من إعادة توجيه IPv6

sudo sysctl net.ipv6.conf.all.forwarding

يجب أن يعرض الأمر القيمة "1" التي تشير إلى أنّ إعادة توجيه IPv6 مفعّلة.

التحقّق من جدول توجيه الإصدار السادس من بروتوكول الإنترنت (IPv6) على الجهاز الظاهري

ip -6 route show

نموذج للناتج يعرض مسارات الشبكة الفرعية لكلّ من ULA وGUA، مع توجيه المسار التلقائي إلى واجهة 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. إنشاء مكوّنات موازنة الحمل

قبل أن نتمكّن من إنشاء مسارات في كلتا سحابتَي VPC، علينا إنشاء أجهزة موازنة حمل داخلية ذات نقل مباشر على كلا جانبي آلات البوابة الافتراضية لتوجيه الزيارات.

تتألف أجهزة موازنة الحمل التي تم إنشاؤها في هذا الدرس العملي من

  • التحقّق من الصحة: في هذا الدرس التطبيقي حول الترميز، سننشئ عمليات تحقّق بسيطة من الصحة تستهدف المنفذ 22. يُرجى العِلم أنّ عمليات التحقّق من السلامة لن تعمل كما تم نشرها (سيتطلّب ذلك إضافة قواعد جدار الحماية للسماح بعمليات التحقّق من السلامة وإنشاء مسارات خاصة على مثيلات البوابة). بما أنّ هذا الدرس التطبيقي حول الترميز يركّز على إعادة توجيه الإصدار السادس من بروتوكول الإنترنت (IPv6)، سنعتمد على سلوك توزيع الزيارات التلقائي لأجهزة موازنة الحمل الداخلية ذات النقل المباشر عندما تكون جميع الخلفيات غير سليمة، أي إعادة التوجيه إلى جميع الخلفيات كحلّ أخير.
  • خدمة الخلفية: سنستخدم بروتوكول TCP لخدمة الخلفية. ولكن بما أنّ برامج موازنة الحمل يتم إنشاؤها لأغراض التوجيه، يتم إعادة توجيه جميع البروتوكولات بغض النظر عن بروتوكول الخدمة الخلفية.
  • قاعدة إعادة التوجيه: ننشئ قاعدة إعادة توجيه لكل شبكة VPC .
  • عنوان IPv6 الداخلي: في هذا الدرس التطبيقي حول الترميز، سنسمح لقاعدة إعادة التوجيه بتخصيص عناوين IPv6 تلقائيًا من الشبكة الفرعية.

إنشاء عملية التحقّق من الصحة

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute health-checks create tcp tcp-hc-22 \
    --project=$projectname \
    --region=us-central1 \
    --port=22

إنشاء خدمات الخلفية

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

إضافة مجموعة مثيلات إلى خدمة الخلفية

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

إنشاء قواعد إعادة التوجيه

داخل Cloud Shell، اتّبِع الخطوات التالية:

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 لكلتا قاعدتَي إعادة التوجيه من خلال تنفيذ الأوامر التالية في Cloudshell:

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. إنشاء مسارات إلى أجهزة موازنة الحمل واختبارها (باستخدام عنوان جهاز موازنة الحمل)

في هذا القسم، ستضيف مسارات إلى كلّ من شبكتَي VPC للعميل والخادم باستخدام عناوين IPv6 لموازنات التحميل كقفزات تالية.

تدوين عناوين الخادم

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

دوِّن عنوان الخادم لأنّك ستستخدمه لاحقًا في أوامر curl من مثيل العميل. لسوء الحظ، لا يمكن استخدام متغيّرات البيئة بسهولة لتخزين هذه المتغيّرات لأنّها لا تنتقل عبر جلسات SSH.

تشغيل أمر curl من العميل إلى مثيل خادم ULA

للاطّلاع على السلوك قبل إضافة أي مسارات جديدة نفِّذ أمر curl من مثيل العميل إلى مثيل الخادم 1.

داخل Cloud Shell، سجِّل الدخول إلى الجهاز الظاهري للعميل:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

داخل مثيل العميل، نفِّذ عملية curl باستخدام عنوان ULA IPV6 الخاص بمثيل server1 (يضبط الأمر مهلة قصيرة تبلغ 5 ثوانٍ لتجنُّب انتظار curl لفترة طويلة جدًا).

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

من المفترض أن تنتهي مهلة أمر curl هذا لأنّ شبكة VPC الخاصة بالعميل لا تتضمّن مسارًا يؤدي إلى شبكة VPC الخاصة بالخادم بعد.

لنحاول حلّ هذه المشكلة. اخرج من جلسة SSH في الوقت الحالي.

إضافة مسار مخصّص في شبكة VPC الخاصة بالعميل

بما أنّ شبكة VPC الخاصة بالعميل لا تتضمّن مسارًا يؤدي إلى بادئة ULA. لنضِفها الآن من خلال إنشاء مسار يشير إلى موازن التحميل الداخلي من جهة العميل حسب العنوان.

ملاحظة: يتم تخصيص عناوين /96 لأجهزة موازنة الحمل الداخلية التي تنقل البيانات عبر الإصدار السادس من بروتوكول الإنترنت (IPv6). من الضروري إزالة القناع /96 من العنوان قبل تمريره إلى الأمر التالي. (يتم استخدام الاستبدال الموضعي أدناه في Bash)

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

داخل مثيل العميل، حاوِل إرسال طلب curl إلى مثيل الخادم مرة أخرى. (يضبط الأمر مهلة قصيرة تبلغ 5 ثوانٍ لتجنُّب انتظار curl لفترة طويلة جدًا)

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

سيظلّ أمر curl هذا يتجاوز المهلة لأنّ شبكة VPC للخادم لا تتضمّن مسارًا للعودة إلى شبكة VPC للعميل من خلال مثيل البوابة حتى الآن.

اخرج من جلسة SSH لمواصلة استخدام الدرس البرمجي.

إضافة مسار مخصّص في شبكة VPC للخادم

داخل Cloud Shell، اتّبِع الخطوات التالية:

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 إلى مثيل الخادم مرة أخرى.

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

سينجح أمر curl هذا الآن، ما يوضّح أنّه يمكنك الوصول إلى الخادم من مثيل العميل إلى مثيل خادم ULA. لا يمكن تحقيق إمكانية الاتصال هذه الآن إلا من خلال استخدام مسارات IPv6 المخصّصة مع next-hop-ilb كقفزات تالية.

مثال على الناتج

<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. إنشاء مسارات إلى أجهزة موازنة الحمل واختبارها (باستخدام اسم جهاز موازنة الحمل)

بدلاً من ذلك، يمكن أن يشير next-hop-ilb أيضًا إلى اسم جهاز موازنة الحمل بدلاً من عنوان الإصدار السادس من بروتوكول الإنترنت (IPv6). في هذا القسم، سنتناول الإجراءات اللازمة لذلك وسنتأكّد من استمرار الاتصال بين العميل والخادم.

حذف المسارات السابقة

لنستعيد البيئة إلى حالتها قبل إضافة أي مسارات مخصّصة عن طريق حذف المسارات المخصّصة التي تستخدم اسم المثيل.

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute routes delete client-to-server-route  --quiet --project=$projectname
gcloud compute routes delete server-to-client-route  --quiet --project=$projectname

تشغيل أمر curl من العميل إلى مثيل خادم ULA

للتأكّد من أنّه تم حذف المسارات السابقة بنجاح، نفِّذ أمر curl من مثيل العميل إلى server-instance1.

داخل Cloud Shell، سجِّل الدخول إلى الجهاز الظاهري للعميل:

gcloud compute ssh client-instance \
    --project=$projectname \
    --zone=us-central1-a \
    --tunnel-through-iap

داخل مثيل العميل، نفِّذ عملية curl باستخدام عنوان ULA IPV6 الخاص بمثيل server1 (يضبط الأمر مهلة قصيرة تبلغ 5 ثوانٍ لتجنُّب انتظار curl لفترة طويلة جدًا).

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

من المفترض أن تنتهي مهلة أمر curl هذا لأنّ شبكة VPC الخاصة بالعميل لم تعُد تتضمّن مسارًا يؤدي إلى شبكة VPC الخاصة بالخادم.

إضافة مسارات مخصّصة في شبكات VPC للعميل والخادم

لنُضِف المسارات المخصّصة مرة أخرى في كل من شبكتَي VPC للعميل والخادم، ولكن بدلاً من استخدام عنوان موازن التحميل الداخلي، سنستخدم اسم موازن التحميل الداخلي والمنطقة في الأمر.

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

داخل مثيل العميل، حاوِل إرسال طلب curl إلى مثيل الخادم مرة أخرى. (يضبط الأمر مهلة قصيرة تبلغ 5 ثوانٍ لتجنُّب انتظار curl لفترة طويلة جدًا)

curl -m 5.0 -g -6 'http://[ULA-ipv6-address-of-server1]:80/'

سينجح أمر curl هذا الآن، ما يوضّح أنّه يمكنك الوصول إلى الخادم من مثيل العميل إلى مثيل خادم ULA.

9- تَنظيم

تنظيف المسارات المخصّصة

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute routes delete client-to-server-route  --quiet --project=$projectname
gcloud compute routes delete server-to-client-route  --quiet --project=$projectname

تنظيف مكوّنات موازنة التحميل

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

تنظيف الآلات الافتراضية ونموذج الآلة الافتراضية

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

تنظيف الشبكات الفرعية

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

تنظيف قواعد جدار الحماية

داخل Cloud Shell، اتّبِع الخطوات التالية:

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

تنظيف السحب الخاصة الافتراضية (VPC)

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute networks delete client-vpc --quiet --project=$projectname
gcloud compute networks delete server-vpc --quiet --project=$projectname

10. تهانينا

لقد استخدمت بنجاح مسارات IPv6 ثابتة مخصّصة مع ضبط القفزات التالية على next-hop-ilb. وقد تحقّقت أيضًا من صحة الاتصال الكامل عبر بروتوكول IPv6 باستخدام هذه المسارات.

ما هي الخطوات التالية؟

اطّلِع على بعض دروس الترميز التطبيقية هذه...

محتوى إضافي للقراءة والفيديوهات

المستندات المرجعية