1. מבוא
נתיבים מותאמים אישית סטטיים משפיעים על התנהגות ברירת המחדל של הניתוב ב-VPC. מסלולים מותאמים אישית של IPv6 תומכים עכשיו במאפייני צעד נוסף חדשים: next-hop-gateway, next-hop-instance ו-next-hop-address. ב-codelab הזה מוסבר איך להשתמש בנתיבים מותאמים אישית של IPv6 עם אפשרויות ה-next-hop החדשות האלה באמצעות שתי רשתות VPC שמחוברות באמצעות מכונה וירטואלית עם כמה כרטיסי NIC. בנוסף, תראו איך לשלב כתובות ULA ו-GUA, ואיך לספק גישה ל-VPC של ULA לאינטרנט הציבורי באמצעות היכולת החדשה של נתיב מותאם אישית.
מה תלמדו
- איך יוצרים נתיב IPv6 בהתאמה אישית עם צעד נוסף (next-hop) של מכונה.
- איך יוצרים נתיב IPv6 בהתאמה אישית עם צעד נוסף (next-hop) מסוג שער (gateway).
- איך יוצרים נתיב IPv6 בהתאמה אישית עם next-hop של כתובת next-hop.
מה נדרש
- פרויקט ב-Google Cloud
2. לפני שמתחילים
עדכון הפרויקט כך שיתמוך ב-codelab
ב-Codelab הזה נעשה שימוש במשתני $כדי לעזור בהטמעת הגדרות 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)")
הארכיטקטורה הכללית של Lab
כדי להדגים את שני הסוגים של צמתים קרובים בהתאמה אישית של נתיב, נוצרים 3 רשתות VPC: רשת VPC של לקוח שמשתמשת בכתובות GUA, רשת VPC של שרת שמשתמשת בכתובות ULA ורשת VPC שנייה של שרת שמשתמשת בכתובות GUA.
כדי לאפשר ל-VPC של הלקוח לגשת לשרת ה-ULA, צריך להשתמש במסלול מותאם אישית שמשתמש גם ב-next-hop-instance וגם ב-next-hop-address שמפנים למכונה של שער עם כמה כרטיסי NIC. כדי לספק גישה לשרת ה-GUA (אחרי מחיקת המסלול ::/0 שמוגדר כברירת מחדל), תשתמשו במסלול מותאם אישית עם next-hop-gateway שמצביע על Default Internet Gateway כדי לספק ניתוב באינטרנט.
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
מוסיפים כלל לחומת האש שמאפשר 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 לשרת עם 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
מריצים את הפקודה הבאה במעטפת של שרת ה-VM:
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)
הפעלת שרת VM עם כתובת IPv6 של GUA
ב-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 והתקנת Apache
ב-Cloud Shell, מתחברים למכונה של הלקוח:
gcloud compute ssh server-instance2 \
--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 Server2!</h1></body></html>' | sudo tee /var/www/html/index.html
יוצאים מסשן ה-SSH כדי להמשיך בקודלאב.
6. יצירת מכונה של שער
מחיקת מסלול ברירת המחדל של VPC של הלקוח
כדי להתכונן להפניה מחדש של תעבורת ULA v6 למכונה עם כמה כרטיסי NIC ולהשבית את ניתוב תעבורת הנתונים היוצאת (egress) באינטרנט. מוחקים את המסלול ::/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
בתוך המעטפת של ה-VM של השער, מריצים את הפקודה הבאה כדי להפעיל את העברת ה-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. יצירת מסלולים לבדיקת מכונה של שער (באמצעות שם המכונה)
בקטע הזה תוסיפו מסלולים גם ל-VPC של הלקוח וגם ל-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 ממכונת הלקוח אל 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 של השרת.
ננסה לפתור את זה. יוצאים בינתיים מסשן ה-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 של server1 נתיב חזרה ל-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 של הלקוח וגם ל-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 ממכונת הלקוח לעבר 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 של השרת.
אחזור כתובות 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 של הלקוח דרך מכונה של שער.
יוצאים מסשן ה-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 עם next-hop-address בתור צמתים הבאים.
פלט לדוגמה
<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. יצירת נתיב לשער האינטרנט ובדיקה שלו
בזמן שהסביבת ה-Lab מוגדרת, נבדוק גם את הפונקציונליות של המאפיין החדש של צעד הבא: next-hop-gateway.
הרצת פקודת curl מהלקוח למכונה של שרת GUA
כדי לראות את ההתנהגות לפני שמוסיפים מסלולים חדשים. מריצים את הפקודה curl ממכונת הלקוח לכתובת ה-IP של server2.
ב-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 הזו אמורה לפוג זמן קצוב, כי ל-VPC של הלקוח יש רק נתיב משלו לתת-רשת ונתיב ל-VPC של server1. כדי להגיע לטווח ה-GUA של VPC של server2, צריך להשתמש בשער האינטרנט שמוגדר כברירת מחדל דרך מסלול מותאם אישית.
יוצאים מסשן ה-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 כדי לעבור לקטע הניקוי של הסדנה.
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 שהוגדרו כ-next-hop-gateway , next-hop-instance ו-next-hop-address. בנוסף, אימתתם תקשורת IPv6 מקצה לקצה באמצעות המסלולים האלה.
מה השלב הבא?
כדאי לעיין בחלק מהקורסים האלה ב-Codelab…