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 an Google APIs an virtuelle IP-Adressen (VIPs) 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 ausgewählte VIP-Adresse 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 gibt es kein lokales VPC. Stattdessen wird ein Hybridnetzwerk zu Ihrem lokalen Rechenzentrum oder Cloud-Anbieter verwendet.

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 zur IPv6-Adresse 2600:2d00:0002:2000::/64 von private.googleapis.com demonstriert, wie in Abbildung 1 dargestellt.

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
  • Privaten Google-Zugriffsverbindung herstellen und prüfen

Voraussetzungen

  • Google Cloud-Projekt

2. Hinweis

Projekt für das Codelab aktualisieren

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

Führen Sie in Cloud Shell folgende 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 steht für eine lokale Umgebung.

Lokales VPC-Netzwerk erstellen

Führen Sie in Cloud Shell folgende 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 das Transit-VPC und das On-Premises-VPC erstellen

HA VPN-Gateway für das Transit-VPC erstellen

a0fc56abf24f3535.png

Beim Erstellen der 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-Gateway mit dem Stack-Typ 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 das 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 das on-premises-vpc 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-Tunnel1 erstellen

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 on-premises-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 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-Tunnel1 erstellen

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

Rufen Sie Hybridkonnektivität → VPN auf, um die VPN-Tunneldetails aufzurufen.

e100e31ea22c8124.png

Prüfen, ob 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

Das Transit-VPC hat kein Subnetz. Daher bewirbt der Cloud Router keine Subnetze für das On-Premises-VPC. Gehen Sie in der Console zu „VPC-Netzwerk“ → „VPC-Netzwerke“ → „Lokaler VPC“ → ROUTES.

6. IPv6-VIP für private.googleapis.com angeben

Wenn Sie von lokalen Standorten auf den privaten Google-Zugriff zugreifen möchten, müssen Sie ein benutzerdefiniertes Route Advertisement aus dem Transit-VPC erstellen. Die IPv6-Adresse 2600:2d00:0002:2000:: wird an die lokale Umgebung gesendet und von Arbeitslasten verwendet, um nach der Aktualisierung des lokalen DNS auf Google APIs wie Cloud Storage, Cloud BigQuery und Cloud Bigtable zuzugreifen.

In diesem Codelab aktivieren Sie den API-Zugriff auf die meisten Google APIs und ‑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, aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG und dann SPEICHERN aus.

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.

Beobachten Sie die IPv6-Routen, die vom Transit-VPC beworben werden:

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 den Eingang, um Identity-Aware Proxy (IAP)-Zugriff für den 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

Im Codelab für die Installation von Softwarepaketen wird Cloud NAT 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 in Cloud Shell das NAT-Gateway.

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, der auf die IPv6-Adresse 2600:2d00:0002:2000:: verweist.

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-Eintrag für *.googleapis.com, der auf private.googleapis.com verweist.

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 beliebigen, global eindeutigen Namen. Versuchen Sie es mit einem anderen Namen, falls der gewünschte 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 in 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

Wählen Sie „+“ aus, um ein neues Cloud Shell-Terminal zu öffnen. Aktualisieren Sie nach dem Öffnen des neuen Tabs 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 2 eine SSH-Verbindung zur Testinstanz on-premises-testbox aus.

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

DNS-Suche mit dig validieren

Führen Sie in Cloud Shell-Terminal 2 einen Dig-Befehl für storage.googleapis.com aus.

dig AAAA storage.googleapis.com

Prüfen Sie den ANSWER SECTION, den CNAME der privaten DNS-Zone storage.googleapis.com zu private.googleapis.com AAAA 2600:2d00:2:2000:: (Beispiel unten):

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:: 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 in Cloud Shell-Terminal 2 mit gsutil eine Liste für den zuvor erstellten Storage-Bucket 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

Sie haben einen privaten Google-Zugriff mit IPv6 erfolgreich konfiguriert und validiert.

Sie haben die Transit- und die On-Premise-Infrastruktur erstellt und 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 mit 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 Lesematerialien und Videos

Referenzdokumente