استفاده از IPv6 Static Routes hop بعدی (بدون برچسب و برچسب)، آدرس hop بعدی و دروازه hop بعدی

۱. مقدمه

مسیرهای سفارشی استاتیک بر رفتار مسیریابی پیش‌فرض در یک VPC تأثیر می‌گذارند. مسیرهای سفارشی IPv6 اکنون از ویژگی‌های جدید next-hop پشتیبانی می‌کنند: next-hop-gateway، next-hop-instance و next-hop-address. این آزمایشگاه کد نحوه استفاده از مسیرهای سفارشی IPv6 را با این گزینه‌های جدید next-hop با استفاده از دو VPC متصل به یک نمونه ماشین مجازی چند کارت شبکه‌ای شرح می‌دهد. همچنین نحوه ترکیب آدرس‌دهی ULA و GUA و فراهم کردن دسترسی به ULA VPC به اینترنت عمومی با استفاده از قابلیت جدید custom route را نشان خواهید داد.

آنچه یاد خواهید گرفت

  • نحوه ایجاد یک مسیر سفارشی IPv6 با نمونه گام بعدی گام بعدی.
  • نحوه ایجاد یک مسیر سفارشی IPv6 با یک next-hop-gateway next-hop.
  • نحوه ایجاد یک مسیر سفارشی IPv6 با آدرس گام بعدی گام بعدی.

آنچه نیاز دارید

  • پروژه ابری گوگل

۲. قبل از شروع

پروژه را برای پشتیبانی از codelab به‌روزرسانی کنید

این Codelab از $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 که به یک نمونه دروازه چند کارت شبکه‌ای اشاره می‌کنند، استفاده خواهید کرد. برای دسترسی به سرور GUA (پس از حذف مسیر پیش‌فرض ::/0)، از یک مسیر سفارشی با next-hop-gateway که به Default Internet Gateway اشاره می‌کند، استفاده خواهید کرد تا مسیریابی از طریق اینترنت فراهم شود.

۳. تنظیمات 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 

اضافه کردن قانون فایروال برای اجازه دادن به 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

در صورت موفقیت، یک پنجره ترمینال از نمونه کلاینت مشاهده خواهید کرد. برای ادامه کار با codelab از جلسه SSH خارج شوید.

۴. تنظیمات 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 

نصب آپاچی در سرور ULA

درون Cloud Shell، به نمونه کلاینت وارد شوید:

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

داخل پوسته ماشین مجازی سرور، دستور زیر را اجرا کنید

sudo apt update && sudo apt -y install apache2

تأیید کنید که آپاچی در حال اجرا است

sudo systemctl status apache2

صفحه وب پیش‌فرض را بازنویسی کنید

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

برای ادامه کار با codelab از جلسه SSH خارج شوید.

۵. راه‌اندازی 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 

دسترسی SSH به نمونه سرور GUA را تأیید کنید و آپاچی را نصب کنید

درون Cloud Shell، به نمونه کلاینت وارد شوید:

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

داخل پوسته ماشین مجازی سرور، دستور زیر را اجرا کنید

sudo apt update && sudo apt -y install apache2

تأیید کنید که آپاچی در حال اجرا است

sudo systemctl status apache2

صفحه وب پیش‌فرض را بازنویسی کنید

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

برای ادامه کار با codelab از جلسه SSH خارج شوید.

۶. ایجاد نمونه‌ی Gateway

مسیر پیش‌فرض کلاینت VPC را حذف کنید

برای آماده‌سازی جهت هدایت ترافیک ULA نسخه ۶ به نمونه چند کارت شبکه‌ای و غیرفعال کردن مسیریابی خروجی اینترنت، مسیر پیش‌فرض ::/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

راه اندازی ماشین مجازی چند کارت شبکه ای با درگاه ورودی

درون Cloud Shell، موارد زیر را انجام دهید: درون 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، به نمونه‌ی gateway وارد شوید (ممکن است چند دقیقه طول بکشد تا 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

برای ادامه کار با codelab از جلسه SSH خارج شوید.

۷. ایجاد و آزمایش مسیرها به نمونه دروازه (با استفاده از نام نمونه)

در این بخش، با استفاده از نام نمونه دروازه به عنوان گام بعدی، مسیرها را به هر دو VPC کلاینت و سرور اضافه خواهید کرد.

آدرس‌های سرور را یادداشت کنید

درون 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 را از نمونه‌ی کلاینت به سمت نمونه‌ی سرور ۱ اجرا کنید.

درون Cloud Shell، به نمونه کلاینت وارد شوید:

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

درون نمونه کلاینت، با استفاده از آدرس ULA IPV6 نمونه server1، یک curl انجام دهید (این دستور یک timeout کوتاه ۵ ثانیه‌ای تنظیم می‌کند تا از انتظار طولانی curl جلوگیری شود)

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

این دستور curl باید دچار وقفه زمانی شود زیرا VPC کلاینت هنوز مسیری به سمت VPC سرور ندارد.

بیایید سعی کنیم آن را درست کنیم! فعلاً از جلسه 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 را روی نمونه سرور امتحان کنید. (این دستور یک زمان انتظار کوتاه ۵ ثانیه‌ای تنظیم می‌کند تا از انتظار طولانی curl جلوگیری شود.)

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

این دستور curl هنوز timeout دارد زیرا VPC سرور1 هنوز مسیری برای برگشت به VPC کلاینت از طریق نمونه gateway ندارد.

برای ادامه کار با codelab از جلسه SSH خارج شوید.

اضافه کردن مسیر سفارشی در ULA Server VPC

درون 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 به عنوان next-hops امکان‌پذیر است.

خروجی نمونه

<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>

برای ادامه کار با codelab از جلسه SSH خارج شوید.

۸. ایجاد و آزمایش مسیرها به نمونه دروازه (با استفاده از آدرس نمونه)

در این بخش، با استفاده از آدرس ipv6 نمونه‌ی گیت‌وی به عنوان گام بعدی، مسیرها را به هر دو VPC کلاینت و سرور اضافه خواهید کرد.

حذف مسیرهای قبلی

بیایید با حذف مسیرهای سفارشی که از نام نمونه استفاده می‌کنند، محیط را به قبل از اضافه کردن هرگونه مسیر سفارشی بازگردانیم.

درون 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

درون نمونه کلاینت، با استفاده از آدرس ULA IPV6 نمونه server1، یک curl انجام دهید (این دستور یک timeout کوتاه ۵ ثانیه‌ای تنظیم می‌کند تا از انتظار طولانی curl جلوگیری شود)

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

این دستور curl باید دچار وقفه زمانی شود زیرا VPC کلاینت دیگر مسیری به سمت VPC سرور ندارد.

دریافت آدرس‌های IPv6 نمونه دروازه

قبل از اینکه بتوانیم مسیرهایی بنویسیم که از next-hop-address استفاده می‌کنند، باید آدرس‌های IPv6 نمونه‌ی گیت‌وی را دریافت کنیم.

درون 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 مربوط به server1 هنوز مسیری برای بازگشت به VPC کلاینت از طریق نمونه gateway ندارد.

برای ادامه کار با codelab از جلسه SSH خارج شوید.

اضافه کردن مسیر سفارشی در ULA Server VPC

درون 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 با next-hop-address به عنوان next-hops امکان‌پذیر است.

خروجی نمونه

<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>

برای ادامه کار با codelab از جلسه SSH خارج شوید.

۹. ایجاد و آزمایش مسیر به دروازه اینترنت

در حالی که این تنظیمات آزمایشگاهی را دارید، بیایید عملکرد ویژگی جدید next-hop یعنی next-hop-gateway را نیز آزمایش کنیم.

اجرای دستور curl از کلاینت به نمونه سرور GUA

برای مشاهده‌ی رفتار قبل از اضافه کردن هرگونه مسیر جدید، یک دستور curl را از نمونه‌ی کلاینت به سمت آدرس IP سرور ۲ اجرا کنید.

درون 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 باید دچار timeout شود زیرا VPC کلاینت فقط مسیر زیرشبکه خود و یک مسیر به VPC سرور ۱ دارد. برای اینکه بتوانید به محدوده GUA سرور ۲ VPC دسترسی پیدا کنید، باید از طریق یک مسیر سفارشی از دروازه اینترنت پیش‌فرض استفاده کنید.

برای ادامه کار با codelab از جلسه 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 اکنون باید پیام hello سفارشی را برگرداند، که نشان می‌دهد شما با موفقیت توانستید از طریق دروازه اینترنتی پیش‌فرض به آدرس 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 خارج شوید.

۱۰. تمیز کردن

موارد را پاک کنید

درون 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

۱۱. تبریک

شما با موفقیت از مسیرهای IPv6 سفارشی استاتیک با next-hops تنظیم شده روی next-hop-gateway، next-hop-instance و next-hop-address استفاده کردید. همچنین ارتباط IPv6 انتها به انتها را با استفاده از این مسیرها اعتبارسنجی کردید.

بعدش چی؟

به برخی از این آزمایشگاه‌های کد نگاهی بیندازید...

مطالعه بیشتر و ویدیوها

اسناد مرجع