1. Giới thiệu
Với Private Service Connect, bạn có thể tạo các điểm cuối riêng tư bằng địa chỉ IP nội bộ toàn cầu trong mạng VPC để truy cập vào các API của Google. Bạn có thể chỉ định tên DNS cho các địa chỉ IP nội bộ này bằng những tên có ý nghĩa như storage-pscendpoint.p.googleapis.com và bigtable-adsteam.p.googleapis.com. Thay vì gửi các yêu cầu API đến các điểm cuối dịch vụ công khai như storage.googleapis.com, bạn có thể gửi các yêu cầu đến điểm cuối Private Service Connect. Điểm cuối này là riêng tư và nội bộ đối với mạng VPC của bạn.
Những tên và địa chỉ IP này nằm trong mạng VPC của bạn và mọi mạng tại cơ sở được kết nối với mạng VPC đó bằng đường hầm Cloud VPN hoặc tệp đính kèm Cloud Interconnect (VLAN).
Bạn có thể kiểm soát lưu lượng truy cập nào sẽ đi đến điểm cuối nào và có thể chứng minh rằng lưu lượng truy cập vẫn nằm trong Google Cloud.
Kiến thức bạn sẽ học được
- Các trường hợp sử dụng Private Service Connect
- Yêu cầu về mạng
- Các API được hỗ trợ
- Tạo một điểm cuối Private Service Connect
- Tạo một bộ chứa bộ nhớ trên đám mây
- Tạo và cập nhật các vùng riêng tư của Cloud DNS
- Tạo NAT GW để truy cập vào googleapis công khai
- Tạo và cập nhật tệp cấu hình BOTO
- Thực hiện lệnh gsutil list trên VM1 được phân giải dựa trên điểm cuối dịch vụ PSC của bạn
- Thực hiện lệnh gsutil list trên VM2 được phân giải dựa trên googleapis.com công khai
- Sử dụng Tcpdump để xác thực việc phân giải DNS
Bạn cần có
- Có kiến thức về DNS, trình chỉnh sửa nano hoặc vi
2. Các trường hợp sử dụng Private Service Connect
Bạn có thể tạo nhiều điểm cuối Private Service Connect trong cùng một mạng VPC. Không có giới hạn về băng thông đối với một điểm cuối cụ thể. Vì các điểm cuối Private Service Connect sử dụng địa chỉ IP nội bộ toàn cầu, nên mọi tài nguyên trong mạng VPC của bạn đều có thể sử dụng các điểm cuối này.
Với nhiều điểm cuối, bạn có thể chỉ định các đường dẫn mạng khác nhau bằng Cloud Router và các quy tắc tường lửa.
- Bạn có thể tạo các quy tắc tường lửa để ngăn một số VM truy cập vào các API của Google thông qua một điểm cuối Private Service Connect, đồng thời cho phép các VM khác có quyền truy cập.
- Bạn có thể có một quy tắc tường lửa trên một phiên bản máy ảo không cho phép tất cả lưu lượng truy cập vào Internet; lưu lượng truy cập được gửi đến các điểm cuối Private Service Connect vẫn đến được Google.
- Nếu có các máy chủ tại cơ sở hạ tầng riêng được kết nối với một VPC bằng đường hầm Cloud VPN hoặc một tệp đính kèm Cloud Interconnect (VLAN), bạn có thể gửi một số yêu cầu thông qua đường hầm hoặc VLAN trong khi gửi các yêu cầu khác qua Internet công cộng. Cấu hình này cho phép bạn bỏ qua đường hầm hoặc VLAN cho các dịch vụ như Google Sách không được Private Google Access hỗ trợ. Để tạo cấu hình này, hãy tạo một điểm cuối Kết nối dịch vụ riêng tư, quảng cáo địa chỉ IP của điểm cuối Kết nối dịch vụ riêng tư bằng cách sử dụng quảng cáo tuyến đường tuỳ chỉnh của Cloud Router và bật chính sách chuyển tiếp đến của Cloud DNS. Ứng dụng có thể gửi một số yêu cầu thông qua đường hầm Cloud VPN hoặc tệp đính kèm Cloud Interconnect (VLAN) bằng cách sử dụng tên của điểm cuối Private Service Connect và các yêu cầu khác qua Internet bằng cách sử dụng tên DNS mặc định.
- Nếu kết nối mạng tại chỗ với mạng VPC bằng nhiều tệp đính kèm Cloud Interconnect (VLAN), bạn có thể gửi một số lưu lượng truy cập từ mạng tại chỗ qua một VLAN và phần còn lại qua các VLAN khác, như minh hoạ trong hình 2. Điều này cho phép bạn sử dụng mạng diện rộng của riêng mình thay vì mạng của Google, đồng thời kiểm soát việc di chuyển dữ liệu để đáp ứng các yêu cầu về địa lý. Để tạo cấu hình này, hãy tạo 2 điểm cuối Private Service Connect. Tạo một thông báo tuyến tuỳ chỉnh cho điểm cuối đầu tiên trong phiên BGP của Cloud Router quản lý VLAN đầu tiên và tạo một thông báo tuyến tuỳ chỉnh khác cho điểm cuối thứ hai trong phiên BGP của Cloud Router quản lý VLAN thứ hai. Các máy chủ tại chỗ được định cấu hình để sử dụng tên điểm cuối Private Service Connect sẽ gửi lưu lượng truy cập qua tệp đính kèm Cloud Interconnect (VLAN) tương ứng.
- Bạn cũng có thể sử dụng nhiều tệp đính kèm Cloud Interconnect (VLAN) trong một cấu trúc liên kết đang hoạt động/đang hoạt động. Nếu bạn quảng cáo cùng một địa chỉ IP điểm cuối Kết nối dịch vụ riêng tư bằng cách sử dụng quảng cáo tuyến đường tuỳ chỉnh cho các phiên BGP trên Bộ định tuyến đám mây quản lý VLAN, thì các gói được gửi từ hệ thống tại chỗ đến các điểm cuối sẽ được định tuyến trên các VLAN bằng ECMP.

Hình 1. Bằng cách định cấu hình Private Service Connect, Cloud Router và máy chủ tại chỗ, bạn có thể kiểm soát việc sử dụng chế độ đính kèm Cloud Interconnect (VLAN) nào để gửi lưu lượng truy cập đến các API của Google.
3. Yêu cầu về mạng
Để sử dụng Private Service Connect, các phiên bản máy ảo (VM) không có địa chỉ IP ngoài phải có giao diện chính trong một mạng con đã bật tính năng Truy cập riêng tư vào Google.
VM có địa chỉ IP bên ngoài có thể truy cập vào các API và dịch vụ của Google bằng cách sử dụng các điểm cuối Private Service Connect, cho dù bạn có bật Quyền truy cập riêng tư vào Google cho mạng con của VM hay không. Khả năng kết nối với điểm cuối Private Service Connect vẫn nằm trong mạng của Google.
Bạn không thể truy cập các điểm cuối Private Service Connect từ các mạng VPC ngang hàng.
Các API được hỗ trợ
Khi tạo một điểm cuối Private Service Connect, bạn sẽ chọn gói API mà bạn cần truy cập: all-apis hoặc vpc-sc.
Các gói API này cho phép truy cập vào những API tương tự có trong các VIP của Private Google Access.
- Gói all-apis cung cấp quyền truy cập vào các API tương tự như private.googleapis.com.
- Gói vpc-sc cung cấp quyền truy cập vào các API tương tự như restricted.googleapis.com.
4. Cấu trúc liên kết và trường hợp sử dụng của Codelab

Hình 1 – Cấu trúc liên kết lớp học lập trình
Trường hợp sử dụng lớp học lập trình –
Khách hàng của chúng tôi yêu cầu kết hợp quyền truy cập googleapis riêng tư (kết nối) và công khai để chuyển dữ liệu bộ nhớ trên đám mây. Để đáp ứng các yêu cầu của khách hàng, chúng tôi sẽ triển khai Private Service Connect bao gồm một địa chỉ /32 duy nhất, cấu hình BOTO và các bản cập nhật bản ghi DNS. Máy ảo 1 sẽ sử dụng PSC để truy cập vào bộ nhớ trên đám mây; ngược lại, VM2 sẽ sử dụng dải IP googleapis.com công khai thông qua NAT GW.
Tất cả các khía cạnh của phòng thí nghiệm đều được triển khai trong Google Cloud Platform, nhưng vẫn có thể áp dụng trường hợp sử dụng tương tự cho việc triển khai Đám mây kết hợp yêu cầu tách biệt lưu lượng truy cập.
5. Thiết lập và yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
- Đăng nhập vào Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.



Hãy nhớ mã dự án, một tên duy nhất trên tất cả các dự án trên Google Cloud (tên ở trên đã được sử dụng và sẽ không hoạt động đối với bạn, xin lỗi!). Sau này trong lớp học lập trình này, chúng ta sẽ gọi nó là PROJECT_ID.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên của Google Cloud.
Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Hãy nhớ làm theo mọi hướng dẫn trong phần "Dọn dẹp" để biết cách tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi hướng dẫn này. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí trị giá 300 USD.
Khởi động Cloud Shell
Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.
Trên Bảng điều khiển GCP, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn chỉ cần một trình duyệt là có thể thực hiện mọi thao tác trong phòng thí nghiệm này.
6. Trước khi bắt đầu
Bật API
Trong Cloud Shell, hãy đảm bảo rằng bạn đã thiết lập mã dự án
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname
Bật tất cả các dịch vụ cần thiết
gcloud services enable compute.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable dns.googleapis.com
7. Tạo mạng VPC
Mạng VPC
Từ Cloud Shell
gcloud compute networks create psc-lab --subnet-mode custom
Tạo mạng con
Từ Cloud Shell
gcloud compute networks subnets create psclab-subnet \ --network psc-lab --range 10.0.0.0/24 --region us-central1 --enable-private-ip-google-access
Tạo quy tắc cho tường lửa
Để cho phép IAP kết nối với các phiên bản máy ảo, hãy tạo một quy tắc tường lửa có:
- Áp dụng cho tất cả các phiên bản máy ảo mà bạn muốn có thể truy cập bằ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.
Từ Cloud Shell
gcloud compute firewall-rules create psclab-ssh \
--network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20
Tạo phiên bản Cloud NAT
Tạo Cloud Router
Từ Cloud Shell
gcloud compute routers create crnat \
--network psc-lab \
--asn 65000 \
--region us-central1
Tạo Cloud NAT
Từ Cloud Shell
gcloud compute routers nats create cloudnat \
--router=crnat \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges \
--enable-logging \
--region us-central1
8. Tạo điểm cuối Kết nối dịch vụ riêng tư
Khi định cấu hình IP điểm cuối Private Service Connect <pscendpointip>, bạn sẽ cần cung cấp một địa chỉ IP duy nhất chưa được xác định trong VPC của mình.
Từ Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=192.168.255.250 \
--network=psc-lab
Lưu trữ "pscendpointip" trong thời gian diễn ra phòng thí nghiệm
pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)") echo $pscendpointip
Tạo một quy tắc chuyển tiếp để kết nối điểm cuối với các API và dịch vụ của Google.
Từ Cloud Shell
gcloud compute forwarding-rules create pscendpoint \
--global \
--network=psc-lab \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Liệt kê các điểm cuối Private Service Connect đã định cấu hình
Từ Cloud Shell
gcloud compute forwarding-rules list \ --filter target="(all-apis OR vpc-sc)" --global
Mô tả các điểm cuối Private Service Connect đã định cấu hình
Từ Cloud Shell
gcloud compute forwarding-rules describe \
pscendpoint --global
9. Tạo một nhóm
Tạo một bộ chứa Cloud Storage và thay thế BUCKET_NAME bằng tên duy nhất trên toàn cầu mà bạn muốn.
Từ Cloud Shell
gsutil mb -l us-central1 -b on gs://BUCKET_NAME
Lưu trữ "BUCKET_NAME" trong suốt thời gian của phòng thí nghiệm
BUCKET_NAME=YOUR BUCKET NAME echo $BUCKET_NAME
10. Cấu hình DNS
Khi bạn tạo một điểm cuối Private Service Connect, Service Directory sẽ tạo một bản ghi DNS cho các API và dịch vụ được cung cấp bằng điểm cuối đó.
Các bản ghi DNS trỏ đến địa chỉ IP điểm cuối Private Service Connect của bạn và có định dạng như sau: SERVICE-ENDPOINT.p.googleapis.com.
Bạn có thể sử dụng các tên DNS này trong yêu cầu API để chuyển yêu cầu đến điểm cuối Private Service Connect. Bạn cũng có thể sử dụng các tên DNS này trong tiêu đề Máy chủ lưu trữ của yêu cầu.
Nếu bạn muốn sử dụng một điểm cuối Private Service Connect với một ứng dụng hoặc ứng dụng truy cập vào các API và dịch vụ của Google, hãy cập nhật ứng dụng hoặc ứng dụng của bạn để sử dụng tên DNS p.googleapis.com.
Hãy xem tài liệu về ứng dụng hoặc thư viện ứng dụng của bạn để biết thông tin chi tiết. Ví dụ:
- Python: Bạn có thể định cấu hình api_endpoint trong lớp Tuỳ chọn của ứng dụng trong gói google-api-core.
- Go: Bạn có thể định cấu hình WithEndpoint trong Gói lựa chọn của ứng dụng trong gói api.
- gcloud: You can configure api_endpoint_overrides using this command. gcloud config set api_endpoint_overrides/SERVICE ENDPOINT_URL
Ví dụ: gcloud config set api_endpoint_overrides/storage https://storage-xyz.p.googleapis.com/storage/v1/
Nếu không thể định cấu hình máy khách hoặc ứng dụng để sử dụng một điểm cuối khác, hãy tạo bản ghi DNS để khớp với tên DNS mặc định. Ví dụ: storage.googleapis.com. Xem phần Tạo bản ghi DNS bằng tên DNS mặc định.
Xác thực bản ghi DNS
Từ Cloud Console, hãy xác thực mục nhập DNS đã tạo nằm trong mục Network Services (Dịch vụ mạng) → Cloud DNS. Ghi lại tên DNS đã tạo "p.googleapis.com".
11. Tạo máy ảo
Tạo Máy ảo (psc-instance-1) dùng để xác thực Private Service Connect
Từ Cloud Shell
gcloud compute instances create psc-instance-1 \
--subnet psclab-subnet \
--zone us-central1-a \
--image=centos-7-v20210122 \
--image-project=centos-cloud \
--no-address \
--metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y
Đăng nhập vào phiên bản máy ảo (psc-instance-1)
SSH vào máy ảo thông qua Cloud Shell
gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"
Tạo thêm 3 thiết bị đầu cuối Cloud Shell bằng cách nhấp vào biểu tượng + (ảnh chụp màn hình bên dưới) 3 lần.

Tạo Máy ảo (psc-instance-2) dùng để xác thực Google API công khai
Từ thẻ 2
gcloud compute instances create psc-instance-2 \
--subnet psclab-subnet \
--zone us-central1-a \
--image=centos-7-v20210122 \
--image-project=centos-cloud \
--no-address \
--metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y
Từ thẻ 2, hãy tạo kết nối SSH vào máy ảo thông qua Cloud Shell
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"
Từ thẻ 3, hãy SSH vào psc-instance-1 thông qua Cloud Shell
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"
Từ thẻ 4 Shell SSH vào psc-instance-2 thông qua Cloud Shell
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] projectname=YOUR-PROJECT-NAME echo $projectname gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"
12. Xác minh hành vi hiện tại của Gsutil
Từ thẻ 4 (psc-instance-2), hãy bắt đầu tcpdump và giám sát lưu lượng truy cập DNS
sudo tcpdump -vv -i eth0 port 53
Kiểm tra hoạt động tra cứu DNS của vùng lưu trữ từ thẻ 2 (psc-instance-2)
BUCKET_NAME=YOUR BUCKET NAME echo $BUCKET_NAME gsutil -D ls gs://$BUCKET_NAME
Kiểm tra chế độ gỡ lỗi gsutil, bộ nhớ HOST storage.googleapis.com được dùng để phân giải DNS
<snip> send: 'GET /storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nauthorization: Bearer ya29.c.KpkB7wfaMjfc_WXEKCeNF4Md0fEHnfDU7tqBf3cd0u43yEmYXqj8fX_X5wWdNdDVH6k1EkjeAeIJDzKGvyjPOkf1Io2kVeUqYX69sDv53huW1NslffjAHKchbZ0CP3Cg83TS3Pa55jLcuE0TLbYycVrgSbD3H90LaapUGbWD3kj4IsJLf9J8R98Bqobu8HZwwqk92hlZ4zVzRqOM\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\n\r\n' reply: 'HTTP/1.1 200 OK\r\n' <snip>
Từ thẻ 4 (psc-instance-2), hãy xác minh rằng(các) bản ghi A DNS công khai của GoogleAPI.com được dùng khi truy cập vào vùng lưu trữ.
metadata.google.internal.domain > psc-instance-2.c.yourprojectname.internal.33973: [udp sum ok] 36442 q: A? storage.googleapis.com. 11/0/0 storage.googleapis.com. A 108.177.111.128, storage.googleapis.com. A 142.250.128.128, storage.googleapis.com. A 74.125.70.128, storage.googleapis.com. A 74.125.201.128, storage.googleapis.com. A 64.233.183.128, storage.googleapis.com. A 173.194.198.128, storage.googleapis.com. A 172.217.219.128, storage.googleapis.com. A 142.250.136.128, storage.googleapis.com. A 209.85.234.128, storage.googleapis.com. A 172.217.212.128, storage.googleapis.com. A 172.217.214.128
13. Sửa đổi hành vi của Gsutil
Hãy nhớ lại rằng ở bước trước, bạn đã tạo một Vùng DNS riêng tư và bản ghi A được liên kết với địa chỉ IP của điểm cuối PSC. Trong bước tiếp theo, chúng ta sẽ kiểm soát cách gsutil hoạt động bằng cách cập nhật tệp BOTO của máy ảo trên psc-instance-1.
Xem cấu hình BOTO mặc định từ thiết bị đầu cuối của phiên bản máy ảo trên thẻ 1 (psc-instance-1)
[psc-instance ~]$ more /etc/boto.cfg
Đầu ra (project_id của bạn sẽ khác)
[GSUtil] default_project_id = [your project number] default_api_version = 2 [GoogleCompute] service_account = default
Cập nhật cấu hình BOTO bằng nano hoặc VI Editor, đảm bảo bạn sao chép và dán tất cả các mục.
Ví dụ: sudo nano /etc/boto.cfg
hoặc
Ví dụ: sudo vi /etc/boto.cfg
Từ thẻ thiết bị đầu cuối của phiên bản VM 1(psc-instance-1)
[Credentials] gs_host = storage-pscendpoint.p.googleapis.com gs_host_header = storage.googleapis.com gs_json_host = storage-pscendpoint.p.googleapis.com gs_json_host_header = www.googleapis.com
Xác thực cấu hình, thứ tự của [Credentials] là yếu tố quan trọng đối với việc tra cứu DNS
more /etc/boto.cfg [Credentials] gs_host = storage-pscendpoint.p.googleapis.com gs_host_header = storage.googleapis.com gs_json_host = storage-pscendpoint.p.googleapis.com gs_json_host_header = www.googleapis.com [GSUtil] default_project_id = [your project number default_api_version = 2 [GoogleCompute] service_account = default
14. Xác minh hành vi tra cứu gsutil đã cập nhật
Từ thẻ 3 (psc-instance-1), hãy bắt đầu tcpdump và giám sát lưu lượng truy cập DNS
sudo tcpdump -vv -i eth0 port 53
Kiểm tra tra cứu gsutil của vùng lưu trữ từ thẻ 1 (psc-instance-1)
BUCKET_NAME=YOUR BUCKET NAME echo $BUCKET_NAME gsutil -D ls gs://$BUCKET_NAME
Nhật ký gỡ lỗi xác nhận rằng bạn có thể truy cập vào bộ chứa lưu trữ thông qua điểm cuối Kết nối dịch vụ riêng tư "pscendpoint"
Kết quả:
<snip>
INFO 0131 22:14:18.795986 base_api.py] Making http GET to https://storage-pscendpoint.p.googleapis.com/storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000
INFO 0131 22:14:18.796415 base_api.py] Headers: {u'Host': 'www.googleapis.com',
'accept': 'application/json',
'accept-encoding': 'gzip, deflate',
'content-length': '0',
'user-agent': 'apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0'}
INFO 0131 22:14:18.796502 base_api.py] Body: (none)
connect: (storage-pscendpoint.p.googleapis.com, 443)
send: 'GET /storage/v1/b/psc-bucket/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\ncontent-length: 0\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\nhost: www.googleapis.com\r\nauthorization: Bearer ya29.c.KpkB7wd3XWiYeRyTuth5_HPlNV-hPwc2Nn7RSIeMpzrpa_j4EsMPl2m_mDGKAcGHvYIgiC5bT2UVQirAPpSbbpToa6G6lkaBbH5SZwHwgNXYfisp5Ww1UjXe4rTa69a_Wp0WesafcwPNnYzDo3xf5VGh3iGhySA04kTXuyT--MgOU8U-XLII2LJQxUWlV8KEdrvyCuqRb-jsDdk_\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>
Từ thẻ 3 (psc-instance-1), hãy xác minh rằng IP điểm cuối PSC là bản ghi DNS A được dùng khi bạn cố gắng truy cập vào vùng lưu trữ.
@psc-instance-1 ~]$ sudo tcpdump -vv -i eth0 port 53
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:02:33.936256 IP (tos 0x0, ttl 64, id 55416, offset 0, flags [DF], proto UDP (17), length 82)
psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0xcceb!] 34796+ A? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.936269 IP (tos 0x0, ttl 64, id 55417, offset 0, flags [DF], proto UDP (17), length 82)
psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0x3ebd!] 5632+ AAAA? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.944018 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 98)
metadata.google.internal.domain > psc-instance-1.c.yourprojectname.42296: [udp sum ok] 34796 q: A? storage-pscendpoint.p.googleapis.com. 1/0/0 storage-pscendpoint.p.googleapis.com. A 10.10.110.10 (70)
05:02:33.946005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 175)
Xác minh rằng IP điểm cuối Private Service Connect hiện được dùng để phân giải DNS
Từ tab1
nslookup storage-pscendpoint.p.googleapis.com
Đầu ra
@psc-instance ~]$ nslookup storage-pscendpoint.p.googleapis.com Server: 169.254.169.254 Address: 169.254.169.254#53 Non-authoritative answer: Name: storage-pscendpoint.p.googleapis.com Address: <pscip>
15. Các bước dọn dẹp
Thoát khỏi phiên bản máy ảo (tất cả các thẻ)
exit
Xoá các thành phần trong phòng thí nghiệm khỏi một thiết bị đầu cuối Cloud Shell
gcloud compute routers nats delete cloudnat --router=crnat --region=us-central1 --quiet gcloud compute routers delete crnat --region=us-central1 --quiet gcloud compute forwarding-rules delete pscendpoint --global --quiet gcloud compute addresses delete psc-ip --global --quiet gsutil rm -r gs://$BUCKET_NAME gcloud compute instances delete psc-instance-1 --zone=us-central1-a --quiet gcloud compute instances delete psc-instance-2 --zone=us-central1-a --quiet gcloud compute firewall-rules delete psclab-ssh --quiet gcloud compute networks subnets delete psclab-subnet --region us-central1 --quiet gcloud compute networks delete psc-lab --quiet
Trong Console, hãy đảm bảo bạn đang xem đúng dự án, sau đó chọn Networking Services (Dịch vụ mạng) → Cloud DNS
16. Xin chúc mừng!
Chúc mừng bạn đã hoàn thành lớp học lập trình này.
Nội dung đã đề cập
- Các trường hợp sử dụng Private Service Connect
- Yêu cầu về mạng
- Các API được hỗ trợ
- Đã tạo một điểm cuối Private Service Connect
- Đã tạo bộ chứa bộ nhớ trên đám mây
- Đã cập nhật tệp cấu hình BOTO
- Đã tạo một NAT GW
- Thực hiện lệnh gsutil list trên VM1 để phân giải theo điểm cuối dịch vụ PSC của bạn
- Thực hiện lệnh gsutil list trên VM2 để phân giải theo googleapis.com công khai
- Sử dụng Tcpdump để xác thực việc phân giải DNS