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)")
البنية العامة للميزة الاختبارية
لعرض كلا النوعَين من نقاط القفزة التالية للمسارات المخصّصة، عليك إنشاء 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 من خلال هذه المسارات.
ما هي الخطوات التالية؟
اطّلِع على بعض هذه الدروس التطبيقية حول الترميز...