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

1. مقدمة

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

المُعطيات

  • كيفية إنشاء مسار مخصّص لبروتوكول IPv6 باستخدام مثيل مسار لاحق
  • كيفية إنشاء مسار مخصّص لبروتوكول IPv6 باستخدام مسار بوابة تالية
  • كيفية إنشاء مسار مخصّص لبروتوكول 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)")

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

eae86f3e371e74b8.png

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

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

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

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

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

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

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

في 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=external \
    --region=us-central1

سجِّل شبكة GUA الفرعية المحدّدة في متغيّر بيئة باستخدام هذا الأمر:

export client_subnet=$(gcloud compute networks subnets \
    describe client-subnet \
    --project $projectname \
    --format="value(externalIpv6Prefix)" \
    --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 

إضافة قاعدة جدار حماية للسماح بتسجيل الدخول أثناء التنقل لمثيل العميل

في 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 لخادم ULA

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

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

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

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

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

gcloud compute networks subnets create server-subnet1 \
    --network=server-vpc1 \
    --project=$projectname \
    --range=192.168.0.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=internal \
    --region=us-central1

سجِّل شبكة ULA الفرعية المحدّدة في متغيّر بيئة باستخدام هذا الأمر:

export server_subnet1=$(gcloud compute networks subnets \
    describe server-subnet1 \
    --project $projectname \
    --format="value(internalIpv6Prefix)" \
    --region us-central1)

تشغيل جهاز افتراضي للخادم باستخدام عنوان IPV6 داخلي لعنوان ULA

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

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

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

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

gcloud compute firewall-rules create allow-client-server1 \
    --direction=INGRESS --priority=1000 \
    --network=server-vpc1 --action=ALLOW \
    --rules=tcp --source-ranges=$client_subnet \
    --project=$projectname 

إضافة قاعدة جدار حماية للسماح بتطبيق IAP

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

gcloud compute firewall-rules create allow-iap-server1 \
    --direction=INGRESS --priority=1000 \
    --network=server-vpc1 --action=ALLOW \
    --rules=tcp:22 \
    --source-ranges=35.235.240.0/20 \
    --project=$projectname 

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

داخل Cloud Shell، سجِّل الدخول إلى مثيل العميل:

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

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

sudo apt update && sudo apt -y install apache2

التأكّد من تشغيل Apache

sudo systemctl status apache2

استبدال صفحة الويب التلقائية

echo '<!doctype html><html><body><h1>Hello World! From Server1!</h1></body></html>' | sudo tee /var/www/html/index.html

يُرجى الخروج من جلسة SSH للمتابعة في ورشة رموز البرامج.

5- إعداد VPC لخادم GUA

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

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

gcloud compute networks create server-vpc2 \
    --project=$projectname \
    --subnet-mode=custom --mtu=1500 \
    --bgp-routing-mode=regional

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

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

gcloud compute networks subnets create server-subnet2 \
    --network=server-vpc2 \
    --project=$projectname \
    --range=192.168.0.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=external \
    --region=us-central1

سجِّل شبكة GUA الفرعية المحدَّدة في متغيّر بيئة باستخدام هذا الأمر:

export server_subnet2=$(gcloud compute networks subnets \
    describe server-subnet2 \
    --project $projectname \
    --format="value(externalIpv6Prefix)" \
    --region us-central1)

تشغيل جهاز افتراضي للخادم باستخدام عنوان GUA IPV6

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

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

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

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

gcloud compute firewall-rules create allow-client-server2 \
    --direction=INGRESS \
    --priority=1000 \
    --network=server-vpc2 \
    --action=ALLOW \
    --rules=tcp --source-ranges=$client_subnet \
    --project=$projectname 

إضافة قاعدة جدار حماية للسماح بتطبيق IAP

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

gcloud compute firewall-rules create allow-iap-server2 \
    --direction=INGRESS \
    --priority=1000 \
    --network=server-vpc2 \
    --action=ALLOW \
    --rules=tcp:22 \
    --source-ranges=35.235.240.0/20 \
    --project=$projectname 

تأكيد إمكانية الوصول إلى خادم GUA باستخدام بروتوكول النقل الآمن (SSH) وتثبيت Apache

داخل Cloud Shell، سجِّل الدخول إلى مثيل العميل:

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

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

sudo apt update && sudo apt -y install apache2

التأكّد من تشغيل Apache

sudo systemctl status apache2

استبدال صفحة الويب التلقائية

echo '<!doctype html><html><body><h1>Hello World! From Server2!</h1></body></html>' | sudo tee /var/www/html/index.html

يُرجى الخروج من جلسة SSH للمتابعة في ورشة رموز البرامج.

6- إنشاء مثيل بوابة

حذف المسار التلقائي لشبكة VPC الخاصة بالعميل

في إطار التحضير لإعادة توجيه حركة بيانات الإصدار 6 من عنوان ULA إلى الإصدار المتعدد من وحدة التحكّم في الشبكة (NIC) وإيقاف توجيه حركة البيانات الخارجة إلى الإنترنت احذف المسار التلقائي ::/0 الذي يشير إلى مدخل الإنترنت التلقائي.

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

export client_defroutename=$(gcloud compute routes list \
--project $projectname \
--format='value(name)' \
--filter="network:client-vpc AND destRange~'::/0'")

gcloud compute routes delete $client_defroutename \
--project $projectname \
--quiet

تشغيل جهاز افتراضي مزوّد ببطاقة NIC متعددة الشبكات في البوابة

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

gcloud compute instances create gateway-instance \
    --project=$projectname \
    --zone=us-central1-a \
--network-interface=stack-type=IPV4_IPV6,subnet=client-subnet,no-address \
--network-interface=stack-type=IPV4_IPV6,subnet=server-subnet1,no-address \
    --can-ip-forward

ضبط مثيل البوابة

داخل Cloud Shell، سجِّل الدخول إلى مثيل البوابة (قد يستغرق الاتصال بـ SSH بنجاح بضع دقائق أثناء تشغيل المثيل):

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

داخل وحدة تحكّم جهاز افتراضي البوابة، نفِّذ الأمر التالي لتفعيل إعادة توجيه IPv6 ومواصلة قبول رسائل RA مع تفعيل إعادة التوجيه (accept_ra = 2).

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

التحقّق من جدول توجيه 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 للمتابعة في ورشة رموز البرامج.

7- إنشاء واختبار مسارات إلى مثيل البوابة (باستخدام اسم المثيل)

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

دوِّن عناوين الخادم.

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

gcloud compute instances list \
   --project $projectname \
   --filter="name~server-instance" \
--format='value[separator=","](name,networkInterfaces[0].ipv6Address,networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)'

من المفترض أن يعرض هذا الأمر أسماء نُسخ الخادم وبادئات IPv6 الخاصة بها. مثال على الإخراج

server-instance1,fd20:3df:8d5c:0:0:0:0:0,
server-instance2,,2600:1900:4000:71fd: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 هذا لأنّ "شبكة العميل الافتراضية" لا تتضمّن مسارًا يؤدي إلى "شبكة الخادم الافتراضية" بعد.

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

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

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

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

gcloud compute routes create client-to-server1-route \
   --project=$projectname \
   --destination-range=$server_subnet1 \
   --network=client-vpc \
   --next-hop-instance=gateway-instance \
   --next-hop-instance-zone=us-central1-a

استخدام بروتوكول النقل الآمن (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 الخاصة بالخادم 1" لا تتضمّن مسارًا للعودة إلى "شبكة VPC الخاصة بالعميل" من خلال مثيل البوابة بعد.

يُرجى الخروج من جلسة SSH للمتابعة في ورشة رموز البرامج.

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

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

gcloud compute routes create server1-to-client-route \
   --project=$projectname \
   --destination-range=$client_subnet \
   --network=server-vpc1 \
   --next-hop-instance=gateway-instance \
   --next-hop-instance-zone=us-central1-a

استخدام بروتوكول النقل الآمن (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-instance كنقاط اتصال تالية.

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

<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 Server1!</h1></body></html>

يُرجى الخروج من جلسة SSH للمتابعة في ورشة رموز البرامج.

8. إنشاء مسارات واختبارها إلى مثيل البوابة (باستخدام عنوان المثيل)

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

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

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

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

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

تشغيل الأمر 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 الخاصة بالخادم.

الحصول على عناوين IPv6 لمثيل البوابة

سنحتاج إلى الحصول على عناوين IPv6 لمثيل البوابة قبل أن نتمكّن من كتابة مسارات تستخدِم next-hop-address.

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

export gateway_ula_address=$(gcloud compute instances \
   describe gateway-instance \
   --project $projectname  \
   --format='value(networkInterfaces[1].ipv6Address)')

export gateway_gua_address=$(gcloud compute instances \
   describe gateway-instance \
   --project $projectname  \
   --format='value(networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)')

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

يمكننا الآن إعادة إضافة المسار في "شبكة VPC" للعميل باستخدام بادئة ULA ولكن باستخدام عنوان GUA للبوابة كنقطة القفزة التالية.

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

gcloud compute routes create client-to-server1-route \
   --project=$projectname \
   --destination-range=$server_subnet1 \
   --network=client-vpc \
   --next-hop-address=$gateway_gua_address

استخدام بروتوكول النقل الآمن (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 هذا ينتهي بوقت الاستراحة لأنّ شبكة VPC الخاصة بالخادم1 لا تتضمّن مسارًا للعودة إلى شبكة VPC الخاصة بالعميل من خلال مثيل البوابة حتى الآن.

يُرجى الخروج من جلسة SSH للمتابعة في ورشة رموز البرامج.

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

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

gcloud compute routes create server1-to-client-route \
   --project=$projectname \
   --destination-range=$client_subnet \
   --network=server-vpc1 \
   --next-hop-address=$gateway_ula_address

استخدام بروتوكول النقل الآمن (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 المخصّصة مع عنوان القفزة التالية كقفزات تالية.

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

<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 Server1!</h1></body></html>

يُرجى الخروج من جلسة SSH للمتابعة في ورشة رموز البرامج.

9. إنشاء مسار إلى بوابة الإنترنت واختباره

أثناء إعداد هذا المختبر، لنختبر أيضًا وظيفة سمة القفزة التالية الجديدة: next-hop-gateway.

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

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

داخل Cloud Shell، سجِّل الدخول إلى مثيل العميل:

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

داخل مثيل العميل، يمكنك إجراء طلب curl نحو نقطة نهاية IPv6.

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

من المفترض أن تنتهي مهلة الأمر curl هذا لأنّ شبكة العميل الافتراضية الخاصة لا تحتوي إلا على مسار الشبكة الفرعية الخاص بها ومسار إلى شبكة server1 الافتراضية الخاصة. للوصول إلى نطاق GUA في "سحابة VPC الخاصة بالخادم2"، عليك استخدام بوابة الإنترنت التلقائية من خلال مسار مخصّص.

يُرجى الخروج من جلسة SSH للمتابعة في ورشة رموز البرامج.

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

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

gcloud compute routes create client-to-server2-route \
   --project=$projectname \
   --destination-range=$server_subnet2 \
   --network=client-vpc \
   --next-hop-gateway=default-internet-gateway

استخدام بروتوكول النقل الآمن (SSH) للعودة إلى نسخة العميل:

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

داخل مثيل العميل، كرِّر طلب curl نفسه.

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

من المفترض أن ينجح الآن أمر curl هذا في عرض رسالة الترحيب المخصّصة، ما يشير إلى أنّه يمكنك الوصول بنجاح إلى عنوان IPv6 للخادم الآخر من خلال بوابة الإنترنت التلقائية.

مثال على الإخراج:

<user id>@client-instance:~$ curl -m 5.0 -g -6 'http://[2600:1900:4000:71fd:0:0:0:0]:80/'
<!doctype html><html><body><h1>Hello World! From Server2!</h1></body></html>

يمكنك الخروج من جلسة SSH للانتقال إلى قسم التنظيف في المعمل.

10. تَنظيم

حذف النُسخ

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

gcloud compute instances delete client-instance --zone us-central1-a --quiet --project=$projectname

gcloud compute instances delete server-instance1 --zone us-central1-a --quiet --project=$projectname

gcloud compute instances delete server-instance2 --zone us-central1-a --quiet --project=$projectname

gcloud compute instances delete gateway-instance --zone us-central1-a --quiet --project=$projectname

إزالة الشبكات الفرعية

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

gcloud compute networks subnets delete client-subnet --region=us-central1 --quiet --project=$projectname

gcloud compute networks subnets delete server-subnet1 --region=us-central1 --quiet --project=$projectname

gcloud compute networks subnets delete server-subnet2 --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-server1  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-iap-server2  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-gateway-client  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server1  --quiet --project=$projectname
gcloud compute firewall-rules delete allow-client-server2  --quiet --project=$projectname

محو المسارات المخصّصة

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

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

تنظيف شبكات VPC

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

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

11. تهانينا

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

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

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

مزيد من الفيديوهات والمراجع

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