Mit IPv6-Adressen über lokale Hosts auf Google APIs zugreifen

1. Einführung

Mit dem privaten Google-Zugriff für lokale Hosts können lokale Systeme eine Verbindung zu Google APIs und Google-Diensten herstellen, indem Traffic über einen Cloud VPN-Tunnel oder einen VLAN-Anhang für Cloud Interconnect weitergeleitet wird. Der private Google-Zugriff für lokale Hosts ist eine Alternative zum Herstellen einer Verbindung zu Google APIs und Google-Diensten über das Internet.

Für den privaten Google-Zugriff für lokale Hosts müssen Sie Anfragen für Google APIs an virtuelle IP-Adressen (VIP) weiterleiten. Für IPv6 werden die folgenden IP-Adressen verwendet:

  • Für private.googleapis.com: 2600:2d00:0002:2000::/64
  • Für Limited.googleapis.com: 2600:2d00:0002:1000::/64

Die von Ihnen ausgewählte VIP bestimmt, auf welche Dienste Sie zugreifen können. In diesem Codelab verwenden wir private.googleapis.com. Weitere Informationen finden Sie unter Domainoptionen.

In diesem Codelab wird beschrieben, wie Sie den privaten Google-Zugriff für lokale Hosts aktivieren, die IPv6-Adressen verwenden. Sie richten ein VPC-Netzwerk mit dem Namen on-premises-vpc ein, das eine lokale Umgebung darstellt. Für Ihre Bereitstellung würde der lokale VPC-Netzwerk-PC nicht vorhanden sein, sondern ein hybrides Netzwerk mit Ihrem lokalen Rechenzentrum oder Ihrem Cloud-Anbieter.

Aufgaben

In diesem Codelab erstellen Sie ein End-to-End-IPv6-Netzwerk, das den lokalen Zugriff auf die Cloud Storage API mithilfe des CNAME *.googleapis.com für die private.googleapis.com-IPv6-Adresse 2600:2d00:0002:2000::/64 veranschaulicht (siehe Abbildung 1).

Abbildung 1

a0fc56abf24f3535.png

Lerninhalte

  • So erstellen Sie ein Dual-Stack-VPC-Netzwerk
  • HA VPN mit IPv6 erstellen
  • DNS für den Zugriff auf den privaten Google-Zugriff aktualisieren
  • Verbindung über den privaten Google-Zugriff einrichten und validieren

Voraussetzungen

  • Google Cloud-Projekt

2. Hinweis

Projekt aktualisieren, um das Codelab zu unterstützen

In diesem Codelab wird $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu unterstützen.

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

3. transit-vpc erstellen

f6932f551b5acac0.png

Transit-VPC-Netzwerk erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional

4. Lokales Netzwerk erstellen

58d75cbc9cb20a51.png

Dieses VPC-Netzwerk stellt eine lokale Umgebung dar.

Lokales VPC-Netzwerk erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional

Subnetz erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

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 für „transit-vpc“ und „on-prem-vpc“ erstellen

HA VPN-GW für „transit-vpc“ erstellen

a0fc56abf24f3535.png

Beim Erstellen eines Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle. Notieren Sie sich diese IP-Adressen, um sie später in den Konfigurationsschritten zu verwenden.

Erstellen Sie in Cloud Shell das HA VPN-GW mit Stacktyp IPV4_IPV6.

gcloud compute vpn-gateways create transit-vpc-vpngw \
   --network=transit-vpc\
   --region=us-central1 \
   --stack-type=IPV4_IPV6

HA VPN-GW für den lokalen VPC-Server erstellen

Erstellen Sie in Cloud Shell das HA VPN GW mit dem Stacktyp 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-Erstellung validieren

Gehen Sie in der Console zu Hybridkonnektivität → VPN → CLOUD VPN GATEWAYS.

c8eed6ca929935bc.png

Cloud Router für „transit-vpc“ erstellen

Erstellen Sie in Cloud Shell den Cloud Router in us-central1.

gcloud compute routers create transit-vpc-cr-us-central1 \
   --region=us-central1 \
   --network=transit-vpc\
   --asn=65001

Cloud Router für den lokalen VPC-Server erstellen

Erstellen Sie in Cloud Shell den Cloud Router in us-central1.

gcloud compute routers create on-premises-vpc-cr-us-central1 \
   --region=us-central1 \
   --network=on-premises-vpc \
   --asn=65002

VPN-Tunnel für transit-vpc erstellen

Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.

VPN-Tunnel erstellen0

Erstellen Sie in Cloud Shell "tunnel0":

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

VPN-Tunnel erstellen1

Erstellen Sie in 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-Tunnel für den lokalen VPC-Server erstellen

Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.

VPN-Tunnel erstellen0

Erstellen Sie in Cloud Shell "tunnel0":

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

VPN-Tunnel erstellen1

Erstellen Sie in 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-Tunnelerstellung validieren

Gehen Sie in der Console zu „Hybridkonnektivität“ → „VPN“ → „CLOUD VPN-TUNNELS“.

85fd5aef4b2c4010.png

BGP-Sitzungen erstellen

In diesem Abschnitt konfigurieren Sie Cloud Router-Schnittstellen und BGP-Peers.

Geben Sie beim Erstellen von VPN-Tunneln, die IPv6-Traffic zulassen, --enable-ipv6 an, wenn Sie den Befehl add-bgp-peer ausführen.

BGP-Schnittstelle und Peering für transit-vpc erstellen

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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-Schnittstelle und Peering für On-Premises-vpc erstellen

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

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

Erstellen Sie in Cloud Shell den BGP-Peer:

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

Gehen Sie zu Hybridkonnektivität → VPN, um die Details zum VPN-Tunnel anzusehen.

e100e31ea22c8124.png

Validieren, dass transit-vpc IPv4- und IPv6-Routen über HA VPN lernt

Da die HA VPN-Tunnel und BGP-Sitzungen eingerichtet sind, werden Routen aus "lokal-vpc" vom "transit-vpc" erkannt. Gehen Sie in der Console zu „VPC-Netzwerk“ → „VPC-Netzwerke“ → „transit-vpc“ → ROUTES.

Sehen Sie sich die erlernten dynamischen IPv4- und IPv6-Routen an, die unten dargestellt sind:

216bde7d08d75ec4.png

Prüfen, ob der lokale VPC-Server Routen über HA VPN lernt

Transit-vpc hat kein Subnetz. Daher bewirbt der Cloud Router dem lokalen VPC-Netzwerk keine Subnetze. Gehen Sie in der Console zu „VPC-Netzwerk“ → „VPC-Netzwerke“ → „Lokaler VPC“ → ROUTES.

6. Die IPv6-VIP „private.googleapis.com“ anbieten

Wenn Sie lokal auf den privaten Google-Zugriff zugreifen möchten, müssen Sie ein benutzerdefiniertes Routen-Advertising aus dem Transit-VPC-Netzwerk erstellen. Die IPv6-Adresse 2600:2d00:0002:2000:: wird in der lokalen Umgebung beworben und von Arbeitslasten für den Zugriff auf Google APIs wie Cloud Storage, Cloud BigQuery und Cloud Bigtable verwendet, nachdem das lokale DNS aktualisiert wurde.

In diesem Codelab aktivieren Sie den API-Zugriff auf die meisten Google APIs und Google-Dienste, unabhängig davon, ob sie von VPC Service Controls unterstützt werden.

Gehen Sie in der Console zu „Hybridkonnektivität“ → „Cloud Router“ → „transit-vpc-cr-us-central1“ und wählen Sie dann BEARBEITEN aus.

71e11bp1c5a741ec5.png

Wählen Sie im Abschnitt „Beworbene Routen“ die Option Benutzerdefinierte Routen erstellen aus und aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG aus und klicken Sie dann auf SPEICHERN.

9283aba7b214f70d.png

Prüfen, ob der lokale VPC-Server IPv6-Routen lernt

Nachdem die IPv6-VIP "private.googleapis.com" jetzt über den "transit-vpc" angeboten wird, hat der lokale VPC-PC dynamische IPv6-Routen für die VIP erkannt. Gehen Sie in der Console zu „VPC-Netzwerk“ → „VPC-Netzwerke“ → „Lokaler VPC“ → ROUTES.

Sehen Sie sich die vom Transit-vpc beworbenen IPv6-Routen an:

caf3b79b035b2a20.png

7. Kommunikation mit Google APIs über den privaten Google-Zugriff einrichten

Im folgenden Abschnitt greifen wir über die IPv6-VIP „private.googleapis.com“ auf die Verbindung zu Cloud Storage zu und prüfen diese. Dazu müssen Sie die folgenden Aktionen im lokalen VPC-Netzwerk ausführen.

  • Erstellen Sie eine Firewallregel für eingehenden Traffic, um den IAP-Zugriff (Identity Aware Proxy) für SSH-Zugriff zuzulassen.
  • Erstellen Sie einen Cloud Router und Cloud NAT, um „tcpdump“ und „dnsutils“ herunterzuladen.
  • Erstellen Sie eine private Cloud DNS-Zone für googleapis.com.
  • Cloud Storage-Bucket erstellen

IAP-Firewallregel erstellen

Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, müssen Sie eine Firewallregel erstellen, die:

  • Gilt für alle VM-Instanzen, die mit IAP zugänglich sein sollen.
  • Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.

Erstellen Sie in Cloud Shell die IAP-Firewallregel.

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 und NAT-Konfiguration

Cloud NAT wird im Codelab für die Installation von Softwarepaketen verwendet, da die VM-Instanz keine externe IP-Adresse hat.

Erstellen Sie den Cloud Router in Cloud Shell.

gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1

Erstellen Sie das NAT-Gateway in 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

Testinstanz erstellen, lokal-testbox

Erstellen Sie eine Testinstanz, mit der die Verbindung zur IPv6-VIP „private.googleapis.com“ getestet und validiert wird.

Erstellen Sie die Instanz in 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"

Private Cloud DNS-Zone erstellen

Wir verwenden Cloud DNS, um eine private Zone und Einträge für *.googleapis.com zu erstellen. Unten sehen Sie die erforderlichen Schritte.

Erstellen Sie in Cloud Shell eine private DNS-Zone v6-googleapis.com.

gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"

Erstellen Sie in Cloud Shell den AAAA-Eintrag für private.googleapis.com. Verweist auf die IPv6-Adresse 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::"

Erstellen Sie in Cloud Shell einen CNAME für *.googleapis.com, um auf private.googleapis.com zu verweisen.

gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."

Private Cloud DNS-Zone validieren

Gehen Sie zu „Netzwerkdienste“ → „Cloud DNS“ → „v6-googleapis“.

455e355195a2a48f.png

Cloud Storage-Bucket erstellen

Erstellen Sie in Cloud Shell einen Cloud Storage-Bucket und ersetzen Sie „bucket_name“ durch einen global eindeutigen Namen, den Sie bevorzugen. Versuchen Sie es mit einem anderen Namen, falls dieser bereits verwendet wird.

gsutil mb  -l us-central1 -b on gs://bucket_name

8. Mit IPv6-Adressen auf Google APIs zugreifen und sie validieren

Im folgenden Abschnitt führen Sie eine SSH-Verbindung zu zwei Cloud Shell-Terminals aus. Das erste Terminal wird verwendet, um den IPv6-Lookup mit tcpdump zu validieren, das zweite Terminal für den Zugriff auf den Cloud Storage-Bucket.

Führen Sie in Cloud Shell eine SSH-Verbindung zum Testen der Instanz on-Premises-testbox aus.

 gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"

Starten Sie im Cloud Shell-Terminal 1 „tcpdump“ und überwachen Sie Port 53 auf DNS-Traffic.

sudo tcpdump -nn -i ens4 port 53

Ein Beispiel hierfür sehen Sie unten.

user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53

Öffnen Sie ein neues Cloud Shell-Terminal, indem Sie auf „+“ klicken. Sobald der neue Tab geöffnet ist, aktualisieren Sie die Variable für den Projektnamen.

Aktualisieren Sie in Cloud Shell die Variable für den Projektnamen.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

Führen Sie in Cloud Shell zwei eine SSH-Verbindung aus, um die Instanz on-Premises-testbox zu testen.

gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"

Dig zur Validierung des DNS-Lookups ausführen

Führen Sie im Cloud Shell-Terminal 2 eine Dig-Anweisung für „storage.googleapis.com“ aus.

dig AAAA storage.googleapis.com

Prüfen Sie den ANSWER SECTION, private DNS Zone storage.googleapis.com CNAME auf private.googleapis.com AAAA 2600:2d00:2:2000::, z. B.:

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

Prüfen Sie im Cloud Shell-Terminal 1 den „tcpdump“, der die DNS-Auflösung in AAAA 2600:2d00:2:2000:: zusätzlich bestätigt.

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)

Aus „dig“ und „tcpdump“ können wir schließen, dass die DNS-Auflösung für „storage.googleapis.com“ über 2600:2d00:2:2000::, der IPv6-Adresse für „private.googleapis.com“, erfolgt.

gsutil-Liste ausführen, um Zugriff auf Cloud Storage zu validieren

Führen Sie im Cloud Shell-Terminal 2 mit gsutil eine Liste des zuvor erstellten Storage-Buckets aus. Ändern Sie „bucket_name“ in den zuvor erstellten Bucket.

gsutil -d ls gs://bucket_name

Beispiel für die Verwendung des Cloud Storage-Buckets codelab-ipv6: Prüfen Sie die Debug-Ausgabe, die storage.googleapis.com und HTTP/1.1 200 OK angibt.

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:~$ 

Prüfen Sie im Cloud Shell-Terminal 1 den „tcpdump“, der die DNS-Auflösung in AAAA 2600:2d00:2:2000:: zusätzlich bestätigt.

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)

Beenden Sie das Betriebssystem der lokalen Testbox-Instanz und kehren Sie zur Cloud Shell-Eingabeaufforderung zurück.

9. Bereinigen

Führen Sie in Cloud Shell die folgenden Schritte aus:

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. Glückwunsch

Herzlichen Glückwunsch! Sie haben einen privaten Google-Zugriff mit IPv6 konfiguriert und validiert.

Sie haben die Transit- und die lokale Infrastruktur sowie eine private DNS-Zone erstellt, die die Auflösung für Google API-Domains mit IPv6 ermöglicht. Sie haben gelernt, wie Sie den IPv6-Zugriff mithilfe von Dig und Cloud Storage testen und validieren.

Cosmopup findet Codelabs super!!

8c2a10eb841f7b01.jpeg

Was liegt als Nächstes an?

Sehen Sie sich einige dieser Codelabs an...

Weitere Informationen und Videos

Referenzdokumente