1. מבוא
'גישה פרטית ל-Google' למארחים מקומיים מאפשרת למערכות מקומיות להתחבר לממשקי API ולשירותים של Google על ידי ניתוב תעבורת הנתונים דרך מנהרת Cloud VPN או קובץ VLAN מצורף עבור Cloud Interconnect. 'גישה פרטית ל-Google' למארחים מקומיים היא חלופה להתחברות לממשקי ה-API ולשירותים של Google באינטרנט.
'גישה פרטית ל-Google' למארחים מקומיים מחייבת להפנות את הבקשות של Google APIs לכתובות IP וירטואליות (VIP). עבור IPv6, נעשה שימוש בכתובות ה-IP הבאות:
- עבור private.googleapis.com: 2600:2d00:0002:2000::/64
- עבור Restricted.googleapis.com: 2600:2d00:0002:1000::/64
כתובת ה-VIP שתבחרו תקבע לאילו שירותים תוכלו לגשת. ב-Codelab הזה, נשתמש private.googleapis.com. למידע נוסף, ראו אפשרויות דומיין.
ב-Codelab הזה מוסבר איך להפעיל 'גישה פרטית ל-Google' למארחים מקומיים שמשתמשים בכתובות IPv6. מגדירים רשת VPC בשם on-premises-vpc
כדי לייצג סביבה מקומית. בפריסה שלכם, ה-vpc לא קיים, ובמקום זאת ייעשה שימוש ברשת היברידית למרכז הנתונים בארגון או לספק שירותי הענן.
מה תפַתחו
ב-Codelab הזה, אתם תבינו רשת IPv6 מקצה לקצה שמדגימה גישה מקומית ל-API של אחסון בענן באמצעות CNAME *.googleapis.com לכתובת private.googleapis.com IPv6 2600:2d00:0002:2000::/64
, כפי שמוצג באיור 1.
איור 1
מה תלמדו
- איך יוצרים רשת VPC כפולה בסטאק
- איך יוצרים HA VPN עם IPv6
- איך מעדכנים את ה-DNS כדי לגשת לגישה פרטית ל-Google
- איך ליצור ולאמת קישוריות 'גישה פרטית' ל-Google
למה תזדקק?
- פרויקט ב-Google Cloud
2. לפני שמתחילים
צריך לעדכן את הפרויקט כדי שיתמוך ב-Codelab
ב-Codelab הזה נעשה שימוש ב-$variables כדי לעזור בהטמעת ההגדרות של gcloud ב-Cloud Shell.
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
3. יוצרים את תחבורה ציבורית-vpc
יצירת רשת ה-VPC לתחבורה ציבורית
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
4. יצירת הרשת המקומית
רשת ה-VPC הזו מייצגת סביבה מקומית.
יצירת רשת ה-VPC המקומית
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
יצירת רשת המשנה
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute networks subnets create on-premises-subnet1-us-central1 --project=$projectname --range=172.16.10.0/27 --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL --network=on-premises-vpc --region=us-central1
5. יצירת HA VPN ל-transit-vpc ול-vpc בארגון
יוצרים HA VPN GW עבור Transport vpc
כשיוצרים כל שער, מוקצות באופן אוטומטי שתי כתובות IPv4 חיצוניות, אחת לכל ממשק של שער. רושמים בצד את כתובות ה-IP האלה כדי להשתמש בהן בהמשך בשלבי ההגדרה.
Inside Cloud Shell, יוצרים את רשת HA VPN GW עם סטאק מסוג IPV4_IPV6.
gcloud compute vpn-gateways create transit-vpc-vpngw \
--network=transit-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
יצירת HA VPN GW עבור vpc בארגון
Inside Cloud Shell, יוצרים את רשת HA VPN GW עם סטאק מסוג IPV4_IPV6
gcloud compute vpn-gateways create on-premises-vpc-vpngw \
--network=on-premises-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
אימות היצירה של רשת HA VPN GW
באמצעות המסוף, עוברים אל 'קישוריות היברידית' ← 'VPN' ← CLOUD VPN GATEWAYS.
יצירת Cloud Router ל-transit-vpc,
Inside Cloud Shell, יוצרים את Cloud Router שממוקם ב-us-central1
gcloud compute routers create transit-vpc-cr-us-central1 \
--region=us-central1 \
--network=transit-vpc\
--asn=65001
יצירת Cloud Router ל-vpc בארגון
Inside Cloud Shell, יוצרים את Cloud Router שממוקם ב-us-central1
gcloud compute routers create on-premises-vpc-cr-us-central1 \
--region=us-central1 \
--network=on-premises-vpc \
--asn=65002
יצירת מנהרות ה-VPN ל-transit-vpc
כך יוצרים שתי מנהרות VPN בכל שער HA VPN.
יצירת מנהרת VPN0
בתוך Cloud Shell, יוצרים מנהרה0:
gcloud compute vpn-tunnels create transit-vpc-tunnel0 \
--peer-gcp-gateway on-premises-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router transit-vpc-cr-us-central1 \
--vpn-gateway transit-vpc-vpngw \
--interface 0
יצירת מנהרת VPN1
בתוך Cloud Shell, יוצרים tunnel1:
gcloud compute vpn-tunnels create transit-vpc-tunnel1 \
--peer-gcp-gateway on-premises-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router transit-vpc-cr-us-central1 \
--vpn-gateway transit-vpc-vpngw \
--interface 1
יצירת מנהרות VPN ל-vpc בארגון
כך יוצרים שתי מנהרות VPN בכל שער HA VPN.
יצירת מנהרת VPN0
בתוך Cloud Shell, יוצרים מנהרה0:
gcloud compute vpn-tunnels create on-premises-tunnel0 \
--peer-gcp-gateway transit-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-premises-vpc-cr-us-central1 \
--vpn-gateway on-premises-vpc-vpngw \
--interface 0
יצירת מנהרת VPN1
בתוך Cloud Shell, יוצרים tunnel1:
gcloud compute vpn-tunnels create on-premises-tunnel1 \
--peer-gcp-gateway transit-vpc-vpngw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-premises-vpc-cr-us-central1 \
--vpn-gateway on-premises-vpc-vpngw \
--interface 1
אימות היצירה של מנהרת VPN
באמצעות המסוף, עוברים אל 'קישוריות היברידית' ← 'VPN' ← CLOUD VPN TUNNELS.
יצירת פעילויות באמצעות BGP
בקטע הזה תגדירו ממשקי Cloud Router ועמיתים של BGP.
כשיוצרים מנהרות VPN שמאפשרות תעבורת IPv6, צריך לציין --enable-ipv6
כשמריצים את הפקודה add-bgp-peer
.
יצירת ממשק BGP וקישור בין רשתות שכנות (peering) ב-transit-vpc
בתוך Cloud Shell, יוצרים את ממשק BGP:
gcloud compute routers add-interface transit-vpc-cr-us-central1 \
--interface-name if-tunnel1-to-onpremise \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel transit-vpc-tunnel0 \
--region us-central1
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-BGP:
gcloud compute routers add-bgp-peer transit-vpc-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onpremise \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:1 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:2
בתוך Cloud Shell, יוצרים את ממשק BGP:
gcloud compute routers add-interface transit-vpc-cr-us-central1 \
--interface-name if-tunnel2-to-onpremise \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel transit-vpc-tunnel1 \
--region us-central1
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-BGP:
gcloud compute routers add-bgp-peer transit-vpc-cr-us-central1 \
--peer-name bgp-on-premises-tunnel2 \
--interface if-tunnel2-to-onpremise \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:11 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:12
יצירת ממשק BGP וקישור בין רשתות שכנות (peering) בממשק מקומי של vpc
בתוך Cloud Shell, יוצרים את ממשק BGP:
gcloud compute routers add-interface on-premises-vpc-cr-us-central1\
--interface-name if-tunnel1-to-hub-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-premises-tunnel0 \
--region us-central1
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-BGP:
gcloud compute routers add-bgp-peer on-premises-vpc-cr-us-central1 \
--peer-name bgp-transit-vpc-tunnel0 \
--interface if-tunnel1-to-hub-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:2 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:1
בתוך Cloud Shell, יוצרים את ממשק BGP:
gcloud compute routers add-interface on-premises-vpc-cr-us-central1\
--interface-name if-tunnel2-to-hub-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-premises-tunnel1 \
--region us-central1
Inside Cloud Shell, יוצרים את האפליקציה להשוואה ב-BGP:
gcloud compute routers add-bgp-peer on-premises-vpc-cr-us-central1\
--peer-name bgp-transit-vpc-tunnel1\
--interface if-tunnel2-to-hub-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1 \
--enable-ipv6 \
--ipv6-nexthop-address 2600:2d00:0:3:0:0:0:12 \
--peer-ipv6-nexthop-address 2600:2d00:0:3:0:0:0:11
עוברים אל קישוריות היברידית ← VPN כדי להציג את הפרטים של מנהרת ה-VPN.
בודקים ש-transit-vpc לומד נתיבי IPv4 ו-IPv6 דרך HA VPN
מכיוון שקיימות מנהרות HA VPN וסשנים של BGP, מסלולים מ-vpc בארגון לומדים מ-transit-vpc. באמצעות המסוף, עוברים אל רשת VPC ← רשתות VPC ← transit-vpc ← ROUTES.
חשוב לשים לב למסלולים הדינמיים של IPv4 ו-IPv6 שנלמדו, כפי שמתואר בהמשך:
בדיקה שמערכת vpc בארגון לא לומדת מסלולים דרך HA VPN
ל-Transit-vpc אין רשת משנה, לכן Cloud Router לא יפרסם רשתות משנה של הרשת המקומית של vpc. באמצעות המסוף, עוברים לרשת VPC ← רשתות VPC ← ROUTES ← ROUTES.
6. פרסום של IPv6 private.googleapis.com VIP
כדי לגשת לגישה פרטית ל-Google מקומית, עליך ליצור מודעה למסלול בהתאמה אישית מ-transit-vpc. כתובת ה-IPv6 2600:2d00:0002:2000::
תפורסם בסביבה המקומית ותשמש את עומסי העבודה כדי לגשת לממשקי API של Google כמו Cloud Storage, Cloud BigQuery ו-Cloud Bigtable אחרי עדכון ה-DNS המקומי.
ב-Codelab הזה תוכלו לאפשר גישת API לרוב ממשקי ה-API והשירותים של Google, גם אם הם לא נתמכים על ידי VPC Service Controls.
במסוף, עוברים אל 'קישוריות היברידית' ← 'Cloud Routers' ← 'transit-vpc-cr-us-central1', ואז בוחרים באפשרות 'עריכה'.
בקטע 'מסלולים שפורסמו', בוחרים באפשרות יצירת מסלולים מותאמים אישית, מעדכנים את השדות על סמך הדוגמה שלמטה, בוחרים באפשרות סיום ולוחצים על שמירה.
בדיקה שה-vpc בארגון לומד נתיבי IPv6
עכשיו, לאחר פרסום ה-VIP של IPv6 private.googleapis.com מ-transit-vpc, ה-vpc בארגון ילמד מסלולים דינמיים של IPv6 עבור ה-VIP. באמצעות המסוף, עוברים לרשת VPC ← רשתות VPC ← vpc ← ROUTES.
חשוב לבדוק את מסלולי IPv6 שמתפרסמים מ-transit-vpc:
7. יצירת תקשורת ל-Google APIs באמצעות גישה פרטית ל-Google
בקטע הבא ניגש ל-Cloud Storage ונאמת את הקישוריות באמצעות ה-IPv6 private.googleapis.com VIP. לשם כך עלינו לבצע את הפעולות הבאות בדומיין vpc.
- יצירת כלל של חומת אש לתעבורת נתונים נכנסת (ingress) כדי לאפשר גישה לשרת proxy לאימות זהויות (IAP) עבור גישת SSH.
- תיצרו Cloud Router ו-Cloud NAT כדי להוריד את tcpdump ו-dnsutils.
- יצירת תחום פרטי של Cloud DNS ל-googleapis.com.
- יצירת קטגוריה של Cloud Storage.
יצירת כלל חומת האש של IAP
כדי לאפשר ל-IAP להתחבר למכונות הווירטואליות, יוצרים כלל של חומת אש:
- המדיניות חלה על כל מכונות וירטואליות שרוצים לגשת אליהן באמצעות IAP.
- תעבורת נתונים נכנסת (ingress) מטווח ה-IP 35.235.240.0/20. הטווח הזה מכיל את כל כתובות ה-IP שמשמשות להעברת TCP באמצעות IAP.
בתוך Cloud Shell, יוצרים את כלל חומת האש IAP.
gcloud compute firewall-rules create ssh-iap-on-premises-vpc \
--network on-premises-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
הגדרת Cloud Router ו-NAT
נעשה שימוש ב-Cloud NAT ב-Codelab להתקנת חבילת תוכנה כי למכונה הווירטואלית אין כתובת IP חיצונית.
בתוך Cloud Shell, יוצרים את Cloud Router.
gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1
יוצרים את שער NAT בתוך Cloud Shell.
gcloud compute routers nats create on-premises-nat-us-central1 --router=on-premises-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
יצירת מופע בדיקה מקומי
יוצרים מכונה לבדיקה שתשמש לבדיקה ולאימות של הקישוריות ל-IPv6 private.googleapis.com VIP.
Inside Cloud Shell, יוצרים את המכונה.
gcloud compute instances create on-premises-testbox \
--project=$projectname \
--machine-type=e2-micro \
--stack-type=IPV4_IPV6 \
--image-family debian-10 \
--no-address \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=on-premises-subnet1-us-central1 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
יצירת התחום הפרטי של Cloud DNS
נשתמש ב-Cloud DNS כדי ליצור תחום פרטי ורשומות של *.googleapis.com. בהמשך מפורטים השלבים הנדרשים.
ב-Inside Cloud Shell, יוצרים תחום DNS פרטי v6-googleapis.com.
gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"
בתוך Cloud Shell, יוצרים את רשומת AAAA עבור private.googleapis.com. שמצביעות על כתובת ה-IPv6 2600:2d00:0002:2000::
.
gcloud dns --project=$projectname record-sets create private.googleapis.com. --zone="v6-googleapis" --type="AAAA" --ttl="300" --rrdatas="2600:2d00:0002:2000::"
בתוך Cloud Shell, יוצרים CNAME עבור *.googleapis.com כדי להפנות אל private.googleapis.com.
gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."
אימות התחום הפרטי של Cloud DNS
עוברים אל שירותי רשת ← Cloud DNS ← v6-googleapis.
יצירת הקטגוריה של Cloud Storage
ב-Inside Cloud Shell, יוצרים קטגוריה של אחסון בענן ומחליפים את bucket_name בשם ייחודי גלובלי שאתם מעדיפים. אם אתם כבר משתמשים בשם אחר, אתם יכולים לנסות שם אחר.
gsutil mb -l us-central1 -b on gs://bucket_name
8. גישה ואימות של Google APIs באמצעות כתובות IPv6
בקטע הבא מבצעים SSH בשני מסופים של Cloud Shell. הטרמינל הראשון משמש לאימות חיפוש IPv6 באמצעות tcpdump, והטרמינל השני משמש לגישה לקטגוריית האחסון בענן.
Inside Cloud Shell, מבצעים SSH כדי לבדוק את המכונה on-Organizations-testbox.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
בטרמינל הראשון של Cloud Shell, מפעילים את tcpdump ועוקבים אחר יציאה 53 כדי לאתר תעבורת DNS.
sudo tcpdump -nn -i ens4 port 53
דוגמה בהמשך.
user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
לוחצים על הסמל '+' כדי לפתוח טרמינל חדש ב-Cloud Shell. אחרי שפותחים את הכרטיסייה החדשה, מעדכנים את המשתנה של שם הפרויקט.
מעדכנים את המשתנה של שם הפרויקט ב-Inside Cloud Shell.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Inside Cloud Shell 2, מבצעים קובץ SSH כדי לבדוק את המכונה on-Organizations-testbox.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
ביצוע חקירה כדי לאמת חיפוש DNS
בטרמינל השני של Cloud Shell, מבצעים בדיקה מול storage.googleapis.com.
dig AAAA storage.googleapis.com
בודקים את קטע המענה, storage.googleapis.com CNAME פרטי של DNS אל private.googleapis.com AAAA 2600:2d00:2:2000::
, לדוגמה:
user@on-premises-testbox:~$ dig AAAA storage.googleapis.com
; <<>> DiG 9.11.5-P4-5.1+deb10u8-Debian <<>> AAAA storage.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2782
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;storage.googleapis.com. IN AAAA
;; ANSWER SECTION:
storage.googleapis.com. 300 IN CNAME private.googleapis.com.
private.googleapis.com. 300 IN AAAA 2600:2d00:2:2000::
;; Query time: 9 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Mon Feb 20 01:56:33 UTC 2023
;; MSG SIZE rcvd: 101
בטרמינל הראשון של Cloud Shell, בודקים את ה-tcpdump שמאמת עוד את רזולוציית ה-DNS ל-AAAA 2600:2d00:2:2000::
.
user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
01:56:33.473208 IP 172.16.10.3.41476 > 169.254.169.254.53: 2782+ [1au] AAAA? storage.googleapis.com. (63)
01:56:33.482580 IP 169.254.169.254.53 > 172.16.10.3.41476: 2782 2/0/1 CNAME private.googleapis.com., AAAA 2600:2d00:2:2000:: (101)
על סמך החיפוש וה-tcpdump, אנחנו יכולים להסיק שרזולוציית ה-DNS של storage.googleapis.com הושגה דרך 2600:2d00:2:2000::
, כתובת ה-IPv6 של private.googleapis.com.
ביצוע רשימת gsutil כדי לאמת את הגישה לאחסון בענן
בטרמינל השני של Cloud Shell, יוצרים רשימה מול קטגוריית האחסון שיצרתם קודם באמצעות gsutil. משנים את bucket_name לקטגוריה שיצרתם קודם.
gsutil -d ls gs://bucket_name
דוגמה לשימוש בקטגוריה codelab-ipv6 בקטגוריה של אחסון בענן, ובודקים את פלט ניפוי הבאגים שמציין storage.googleapis.com ו-HTTP/1.1 200 OK.
user@on-premises-testbox:~$ gsutil -d ls gs://codelab-ipv6
***************************** WARNING *****************************
*** You are running gsutil with debug output enabled.
*** Be aware that debug output includes authentication credentials.
*** Make sure to remove the value of the Authorization header for
*** each HTTP request printed to the console prior to posting to
*** a public medium such as a forum post or Stack Overflow.
***************************** WARNING *****************************
gsutil version: 5.19
checksum: 49a18b9e15560adbc187bab09c51b5fd (OK)
boto version: 2.49.0
python version: 3.9.16 (main, Jan 10 2023, 02:29:25) [Clang 12.0.1 ]
OS: Linux 4.19.0-23-cloud-amd64
multiprocessing available: True
using cloud sdk: True
pass cloud sdk credentials to gsutil: True
config path(s): /etc/boto.cfg
gsutil path: /usr/lib/google-cloud-sdk/bin/gsutil
compiled crcmod: True
installed via package manager: False
editable install: False
shim enabled: False
Command being run: /usr/lib/google-cloud-sdk/platform/gsutil/gsutil -o GSUtil:default_project_id=myprojectid -o GoogleCompute:service_account=default -d ls gs://codelab-ipv6
config_file_list: ['/etc/boto.cfg']
config: [('working_dir', '/mnt/pyami'), ('debug', '0'), ('https_validate_certificates', 'true'), ('working_dir', '/mnt/pyami'), ('debug', '0'), ('default_project_id', 'myproject'), ('default_api_version', '2')]
DEBUG 0220 02:01:14.713012 multiprocess_file_storage.py] Read credential file
INFO 0220 02:01:14.714742 base_api.py] Calling method storage.objects.list with StorageObjectsListRequest: <StorageObjectsListRequest
bucket: 'codelab-ipv6'
delimiter: '/'
maxResults: 1000
projection: ProjectionValueValuesEnum(noAcl, 1)
versions: False>
INFO 0220 02:01:14.715939 base_api.py] Making http GET to https://storage.googleapis.com/storage/v1/b/codelab-ipv6/o?alt=json&fields=prefixes%2Citems%2Fname%2CnextPageToken&delimiter=%2F&maxResults=1000&projection=noAcl&versions=False
INFO 0220 02:01:14.716369 base_api.py] Headers: {'accept': 'application/json',
'accept-encoding': 'gzip, deflate',
'content-length': '0',
'user-agent': 'apitools Python/3.9.16 gsutil/5.19 (linux) analytics/disabled '
'interactive/True command/ls google-cloud-sdk/416.0.0'}
INFO 0220 02:01:14.716875 base_api.py] Body: (none)
connect: (storage.googleapis.com, 443)
send: b'GET /storage/v1/b/codelab-ipv6/o?alt=json&fields=prefixes%2Citems%2Fname%2CnextPageToken&delimiter=%2F&maxResults=1000&projection=noAcl&versions=False HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nuser-agent: apitools Python/3.9.16 gsutil/5.19 (linux) analytics/disabled
<SNIP>
reply: 'HTTP/1.1 200 OK\r\n'
header: X-GUploader-UploadID: ADPycdvunHlbN1WQBxDr_LefzLaH_HY1bBH22X7IxX9sF1G2Yo_7-nhYwjxUf6N7AF9Zg_JDwPxYtuNJiFutfd6qauEfohYPs7mE
header: Content-Type: application/json; charset=UTF-8
header: Date: Mon, 20 Feb 2023 02:01:14 GMT
header: Vary: Origin
header: Vary: X-Origin
header: Cache-Control: private, max-age=0, must-revalidate, no-transform
header: Expires: Mon, 20 Feb 2023 02:01:14 GMT
header: Content-Length: 3
header: Server: UploadServer
INFO 0220 02:01:14.803286 base_api.py] Response of type Objects: <Objects
items: []
prefixes: []>
user@on-premises-testbox:~$
בטרמינל הראשון של Cloud Shell, בודקים את ה-tcpdump שמאמת עוד את רזולוציית ה-DNS ל-AAAA 2600:2d00:2:2000::
.
eepakmichael@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
02:01:14.725000 IP 172.16.10.3.48792 > 169.254.169.254.53: 7056+ A? storage.googleapis.com. (40)
02:01:14.725106 IP 172.16.10.3.48792 > 169.254.169.254.53: 50841+ AAAA? storage.googleapis.com. (40)
02:01:14.732516 IP 169.254.169.254.53 > 172.16.10.3.48792: 50841 2/0/0 CNAME private.googleapis.com., AAAA 2600:2d00:2:2000:: (90)
יוצאים ממערכת ההפעלה המקומית של המכונה של Cloud Shell, וחוזרים להנחיה של Cloud Shell.
9. הסרת המשאבים
Inside Cloud Shell מבצעים את הפעולות הבאות:
gcloud compute vpn-tunnels delete transit-vpc-tunnel0 transit-vpc-tunnel1 on-premises-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-tunnels delete on-premises-tunnel0 on-premises-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete on-premises-vpc-vpngw transit-vpc-vpngw --region=us-central1 --quiet
gcloud compute routers delete transit-vpc-cr-us-central1 on-premises-vpc-cr-us-central1 on-premises-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete on-premises-testbox --zone=us-central1-a --quiet
gcloud compute networks subnets delete on-premises-subnet1-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap-on-premises-vpc --quiet
gcloud compute networks delete on-premises-vpc --quiet
gcloud compute networks delete transit-vpc --quiet
gsutil rb gs://bucket_name
gcloud dns record-sets delete *.googleapis.com. \
--type=CNAME \
--zone=v6-googleapis
gcloud dns record-sets delete private.googleapis.com. \
--type=AAAA \
--zone=v6-googleapis
gcloud dns managed-zones delete v6-googleapis
10. מזל טוב
מזל טוב, הגדרת בהצלחה ואימתת גישה פרטית ל-Google באמצעות IPv6.
יצרתם את תשתית התחבורה הציבורית והמקומית, ויצרתם אזור DNS פרטי שמאפשר רזולוציה לדומיינים של Google API באמצעות IPv6. למדנו איך לבדוק ולאמת את הגישה ל-IPv6 באמצעות דיג ואחסון בענן.
Cosmopup אומר ש-Codelabs מדהימים!
מה השלב הבא?
כדאי לנסות כמה מ-Codelabs האלה...