1. Giới thiệu
Quyền truy cập riêng tư của Google dành cho các máy chủ lưu trữ tại cơ sở cung cấp cách thức để các hệ thống tại cơ sở kết nối với các API và dịch vụ của Google bằng cách định tuyến lưu lượng truy cập thông qua một đường hầm Cloud VPN hoặc tệp đính kèm VLAN cho giải pháp Cloud Interconnect. Quyền truy cập riêng tư vào Google dành cho máy chủ lưu trữ tại chỗ là một giải pháp thay thế cho việc kết nối với các API và dịch vụ của Google qua Internet.
Tính năng Quyền truy cập riêng của Google dành cho máy chủ cục bộ yêu cầu bạn chuyển hướng các yêu cầu về API Google đến địa chỉ IP ảo (VIP). Đối với IPv6, các địa chỉ IP sau đây được sử dụng:
- Đối với private.googleapis.com: 2600:2d00:0002:2000::/64
- Đối với restricted.googleapis.com: 2600:2d00:0002:1000::/64
VIP mà bạn chọn sẽ quyết định dịch vụ bạn có thể sử dụng. Trong lớp học lập trình này, chúng ta sẽ sử dụng private.googleapis.com. Để biết thêm thông tin, hãy xem phần Các lựa chọn về miền.
Lớp học lập trình này mô tả cách bật Quyền truy cập riêng tư của Google cho các máy chủ lưu trữ tại cơ sở sử dụng địa chỉ IPv6. Bạn sẽ thiết lập một mạng lưới VPC có tên là on-premises-vpc
để đại diện cho một môi trường tại cơ sở hạ tầng riêng. Để triển khai, hệ thống sẽ không sử dụng vpc tại chỗ mà thay vào đó, hệ thống sẽ sử dụng kết nối mạng kết hợp với trung tâm dữ liệu tại cơ sở hạ tầng riêng hoặc nhà cung cấp dịch vụ đám mây.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ xây dựng một mạng IPv6 hai đầu minh hoạ quyền truy cập tại chỗ vào API bộ nhớ trên đám mây bằng CNAME *.googleapis.com đến private.googleapis.com Địa chỉ IPv6 2600:2d00:0002:2000::/64
như minh hoạ trong Hình 1.
Hình 1
Kiến thức bạn sẽ học được
- Cách tạo mạng VPC ngăn xếp kép
- Cách tạo VPN HA bằng IPv6
- Cách cập nhật DNS để truy cập vào tính năng Truy cập riêng tư của Google
- Cách thiết lập và xác thực kết nối với tính năng Truy cập riêng tư của Google
Bạn cần có
- Dự án trên Google Cloud
2. Trước khi bắt đầu
Cập nhật dự án để hỗ trợ lớp học lập trình
Lớp học lập trình này sử dụng $variables để hỗ trợ triển khai cấu hình gcloud trong Cloud Shell.
Trong Cloud Shell, hãy thực hiện như sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
3. Tạo phương tiện công cộng-vpc
Tạo mạng lưới VPC cho phương tiện công cộng
Trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks create transit-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
4. Tạo mạng cục bộ
Mạng lưới VPC này đại diện cho một môi trường tại cơ sở hạ tầng riêng.
Tạo mạng VPC tại chỗ
Trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks create on-premises-vpc --project=$projectname --subnet-mode=custom --mtu=1460 --enable-ula-internal-ipv6 --bgp-routing-mode=regional
Tạo mạng con
Bên trong Cloud Shell, hãy thực hiện như sau:
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. Tạo VPN HA (mạng riêng ảo) cho phương tiện vận chuyển-vpc và tại cơ sở-vpc
Tạo HA VPN GW cho transit-vpc
Khi mỗi cổng được tạo, hai địa chỉ IPv4 bên ngoài sẽ tự động được phân bổ, mỗi địa chỉ cho một giao diện cổng. Ghi lại các địa chỉ IP này để sử dụng sau này trong các bước định cấu hình.
Bên trong Cloud Shell, hãy tạo HA VPN GW với loại ngăn xếp IPV4_IPV6.
gcloud compute vpn-gateways create transit-vpc-vpngw \
--network=transit-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
Tạo HA VPN GW cho tại chỗ-vpc
Bên trong Cloud Shell, tạo HA VPN GW với loại ngăn xếp IPV4_IPV6
gcloud compute vpn-gateways create on-premises-vpc-vpngw \
--network=on-premises-vpc\
--region=us-central1 \
--stack-type=IPV4_IPV6
Xác thực việc tạo HA VPN GW
Sử dụng bảng điều khiển, hãy chuyển đến Khả năng kết nối kết hợp → VPN → CLOUD VPN GATEWAYS.
Tạo Cloud Router cho Transit-vpc
Bên trong Cloud Shell, hãy tạo Cloud Router (Trình định tuyến trên đám mây) ở us-central1
gcloud compute routers create transit-vpc-cr-us-central1 \
--region=us-central1 \
--network=transit-vpc\
--asn=65001
Tạo Cloud Router cho cơ sở hạ tầng-vpc
Bên trong Cloud Shell, hãy tạo Cloud Router (Trình định tuyến trên đám mây) ở us-central1
gcloud compute routers create on-premises-vpc-cr-us-central1 \
--region=us-central1 \
--network=on-premises-vpc \
--asn=65002
Tạo đường hầm VPN cho phương thức chuyển tiếp-vpc
Bạn sẽ tạo 2 đường hầm VPN trên mỗi cổng VPN HA.
Tạo đường hầm VPN0
Bên trong Cloud Shell, hãy tạo 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
Tạo đường hầm VPN1
Bên trong Cloud Shell, hãy tạo đường hầm 1:
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
Tạo đường hầm VPN cho on-premises-vpc
Bạn sẽ tạo hai đường hầm VPN trên mỗi cổng VPN HA.
Tạo đường hầm VPN0
Bên trong Cloud Shell, hãy tạo 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
Tạo đường hầm VPN1
Bên trong Cloud Shell, hãy tạo đường hầm 1:
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
Xác thực việc tạo đường hầm VPN
Bằng cách sử dụng bảng điều khiển, hãy chuyển đến Khả năng kết nối kết hợp → VPN → CLOUD VPN TROUNDS.
Tạo phiên BGP
Trong phần này, bạn sẽ định cấu hình giao diện Cloud Router và BGP ngang hàng.
Khi tạo các đường hầm VPN cho phép lưu lượng truy cập IPv6, hãy chỉ định --enable-ipv6
khi bạn chạy lệnh add-bgp-peer
.
Tạo giao diện BGP và liên kết ngang cho transit-vpc
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo máy ngang hàng 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
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo ứng dụng ngang hàng 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
Tạo giao diện BGP và kết nối ngang hàng cho-vpc tại chỗ
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo máy ngang hàng 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
Bên trong Cloud Shell, hãy tạo giao diện 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
Bên trong Cloud Shell, hãy tạo máy ngang hàng 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
Chuyển đến phần Kết nối kết hợp → VPN để xem thông tin chi tiết về đường hầm VPN.
Xác thực rằng Transit-vpc đang học các tuyến IPv4 và IPv6 qua VPN HA
Vì các đường hầm VPN HA và phiên BGP đã được thiết lập, nên các tuyến từ on-premises-vpc được tìm hiểu từ transit-vpc. Sử dụng bảng điều khiển, hãy chuyển đến mạng VPC → mạng VPC → Transit-vpc → ROUTES.
Quan sát các tuyến đường động IPv4 và IPv6 đã học được như minh hoạ dưới đây:
Xác thực rằng tại cơ sở-vpc không học các tuyến đường qua VPN HA (mạng riêng ảo)
Transit-vpc không có mạng con, do đó, Bộ định tuyến trên đám mây sẽ không quảng cáo bất kỳ mạng con nào cho on-premises-vpc. Trên bảng điều khiển, hãy chuyển đến Mạng VPC → Mạng VPC → on-premises-vpc → ROUTES (Mạng cục bộ – VPC – Tuyến).
6. Quảng cáo IPv6 private.googleapis.com VIP
Để sử dụng tính năng Quyền truy cập riêng tư của Google từ tại chỗ, bạn cần phải tạo một quảng cáo tuyến đường tuỳ chỉnh từ phương tiện công cộng. Địa chỉ IPv6 2600:2d00:0002:2000::
sẽ được quảng cáo trong môi trường tại cơ sở hạ tầng riêng và được khối lượng công việc dùng để truy cập vào các API của Google, chẳng hạn như Cloud Storage, Cloud BigQuery và Cloud Bigtable sau khi cập nhật DNS cục bộ.
Trong lớp học lập trình này, bạn sẽ cấp quyền truy cập qua API vào hầu hết các API và dịch vụ của Google, bất kể các API và dịch vụ đó có được VPC Service Controls hỗ trợ hay không.
Trên bảng điều khiển, hãy chuyển đến mục Khả năng kết nối kết hợp → Bộ định tuyến đám mây → transit-vpc-cr-us-central1, rồi chọn CHỈNH SỬA.
Trong phần Tuyến đường được quảng cáo, hãy chọn mục Tạo tuyến đường tuỳ chỉnh, cập nhật các trường dựa trên ví dụ bên dưới, chọn XONG rồi nhấp vào LƯU.
Xác thực rằng on-premises-vpc đang tìm hiểu các tuyến IPv6
Hiện tại, IPv6 private.googleapis.com VIP được quảng cáo từ Transit-vpc, tại chỗ-vpc sẽ học được các tuyến động IPv6 dành cho VIP. Trên bảng điều khiển, hãy chuyển đến Mạng VPC → Mạng VPC → on-premises-vpc → ROUTES (Mạng cục bộ – VPC – Tuyến).
Quan sát các tuyến IPv6 được quảng cáo từ transit-vpc:
7. Thiết lập giao tiếp với các API của Google bằng Quyền truy cập riêng tư vào Google
Trong phần sau, chúng ta sẽ truy cập và xác thực khả năng kết nối với Cloud Storage bằng cách sử dụng VIP private.googleapis.com IPv6. Để làm như vậy, chúng ta cần thực hiện các thao tác sau trong on-premises-vpc.
- Tạo quy tắc tường lửa cho lưu lượng vào để cho phép truy cập Proxy nhận biết danh tính (IAP) để truy cập SSH.
- Tạo Cloud Router và Cloud NAT để tải tcpdump và dnsutils xuống.
- Tạo một vùng Cloud DNS riêng tư cho googleapis.com.
- Tạo một bộ chứa Cloud Storage.
Tạo quy tắc tường lửa IAP
Để cho phép IAP kết nối với các phiên bản máy ảo của bạn, hãy tạo một quy tắc tường lửa:
- Áp dụng cho tất cả các thực thể máy ảo mà bạn muốn truy cập được bằng cách sử dụng IAP.
- Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải ô này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.
Bên trong Cloud Shell, hãy tạo quy tắc tường lửa cho 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
Cấu hình Cloud Router và NAT
Cloud NAT được dùng trong lớp học lập trình để cài đặt gói phần mềm vì phiên bản VM không có địa chỉ IP bên ngoài.
Bên trong Cloud Shell, hãy tạo Cloud Router.
gcloud compute routers create on-premises-cr-us-central1-nat --network on-premises-vpc --region us-central1
Bên trong Cloud Shell, hãy tạo cổng NAT.
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
Tạo một thực thể kiểm thử, on-premises-testbox
Tạo một thực thể kiểm thử sẽ được dùng để kiểm thử và xác thực khả năng kết nối với VIP private.googleapis.com IPv6.
Bên trong Cloud Shell, hãy tạo một thực thể.
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"
Tạo vùng riêng tư Cloud DNS
Chúng tôi sẽ sử dụng Cloud DNS để tạo một vùng riêng tư và bản ghi cho *.googleapis.com, dưới đây là các bước bắt buộc.
Bên trong Cloud Shell, hãy tạo một vùng DNS riêng tư v6-googleapis.com.
gcloud dns --project=$projectname managed-zones create v6-googleapis --description="" --dns-name="googleapis.com." --visibility="private" --networks="on-premises-vpc"
Bên trong Cloud Shell, hãy tạo bản ghi AAAA cho private.googleapis.com trỏ đến địa chỉ 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::"
Trong Cloud Shell, hãy tạo một CNAME cho *.googleapis.com để trỏ đến private.googleapis.com.
gcloud dns --project=$projectname record-sets create *.googleapis.com. --zone="v6-googleapis" --type="CNAME" --ttl="300" --rrdatas="private.googleapis.com."
Xác thực vùng DNS riêng của Cloud DNS
Chuyển đến phần Dịch vụ mạng → Cloud DNS → v6-googleapis.
Tạo bộ chứa Cloud Storage
Trong Cloud Shell, hãy tạo một bộ chứa trên Google Cloud Storage và thay thế bucket_name bằng một tên duy nhất trên toàn cầu mà bạn muốn, thử một tên khác nếu tên đó đã được sử dụng.
gsutil mb -l us-central1 -b on gs://bucket_name
8. Truy cập và xác thực API của Google bằng địa chỉ IPv6
Trong phần tiếp theo, bạn sẽ thực hiện SSH trên hai thiết bị đầu cuối Cloud Shell. Thiết bị đầu tiên đầu tiên được dùng để xác thực hoạt động tra cứu IPv6 bằng tcpdump, còn thiết bị thứ hai được dùng để truy cập vào bộ chứa Cloud Storage.
Bên trong Cloud Shell, hãy thực hiện một Ssh để kiểm thử thực thể on-premises-testbox (hộp kiểm thử tại chỗ).
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
Bên trong cửa sổ dòng lệnh Cloud Shell 1, hãy khởi động tcpdump và theo dõi cổng 53 để biết lưu lượng truy cập DNS.
sudo tcpdump -nn -i ens4 port 53
Ví dụ bên dưới.
user@on-premises-testbox:~$ sudo tcpdump -nn -i ens4 port 53
Mở một thiết bị đầu cuối Cloud Shell mới bằng cách chọn dấu "+". Sau khi mở thẻ mới, hãy cập nhật biến tên dự án.
Bên trong Cloud Shell, hãy cập nhật biến tên dự án.
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Bên trong Cloud Shell 2, hãy thực hiện lệnh ssh để kiểm thử thực thể on-premises-testbox.
gcloud compute ssh --zone "us-central1-a" "on-premises-testbox" --project "$projectname"
Thực hiện lệnh dig để xác thực việc tra cứu DNS
Trong thiết bị đầu cuối Cloud Shell thứ hai, hãy thực hiện lệnh dig đối với storage.googleapis.com.
dig AAAA storage.googleapis.com
Kiểm tra PHẦN TRẢ LỜI, kho lưu trữ vùng DNS riêng tư.googleapis.com CNAME cho private.googleapis.com AAAA 2600:2d00:2:2000::
, ví dụ bên dưới:
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
Bên trong thiết bị đầu cuối Cloud Shell 1, hãy kiểm tra tcpdump để xác nhận thêm việc phân giải DNS thành 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)
Dựa trên dig và tcpdump, chúng ta có thể kết luận rằng việc phân giải DNS đến storage.googleapis.com được thực hiện thông qua 2600:2d00:2:2000::
, địa chỉ IPv6 cho private.googleapis.com.
Thực hiện lệnh gsutil list để xác thực quyền truy cập vào bộ nhớ trên đám mây
Bên trong thiết bị đầu cuối Cloud Shell thứ hai, hãy thực hiện danh sách đối với bộ nhớ đã tạo trước đó bằng gsutil. Thay đổi bucket_name thành bộ chứa mà bạn đã tạo trước đó.
gsutil -d ls gs://bucket_name
Ví dụ sử dụng bộ nhớ trên đám mây codelab-ipv6, kiểm tra kết quả gỡ lỗi cho biết storage.googleapis.com và 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:~$
Bên trong thiết bị đầu cuối số một của Cloud Shell, hãy kiểm tra tcpdump để xác nhận thêm độ phân giải DNS thành 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)
Thoát khỏi hệ điều hành thực thể của hộp kiểm thử tại chỗ và quay lại lời nhắc của Cloud Shell.
9. Dọn dẹp
Trong Cloud Shell, hãy thực hiện như sau:
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. Xin chúc mừng
Xin chúc mừng! Bạn đã định cấu hình và xác thực thành công quyền truy cập riêng của Google bằng IPv6.
Bạn đã tạo cơ sở hạ tầng cho phương tiện công cộng và cơ sở hạ tầng tại chỗ, đồng thời tạo một vùng DNS riêng tư cho phép phân giải các miền API của Google thông qua IPv6. Bạn đã tìm hiểu cách kiểm thử và xác thực quyền truy cập IPv6 bằng cách sử dụng lệnh dig và bộ nhớ trên đám mây.
Cosmopup cho rằng lớp học lập trình thật tuyệt vời!!
Tiếp theo là gì?
Hãy xem một số lớp học lập trình này...