Phòng thí nghiệm: VPC của NCC dưới dạng một Spoke

1. Giới thiệu

Tổng quan

Trong lớp học này, người dùng sẽ khám phá cách sử dụng Trung tâm kết nối mạng(NCC) để thiết lập kết nối liên VPC trên quy mô lớn thông qua tính năng hỗ trợ cho Lực lượng phụ trách VPC. Khi người dùng xác định một VPC là một luồng VPC, họ có thể kết nối VPC đó với nhiều mạng VPC thông qua Trung tâm NCC. NCC có cấu hình lồng ghép VPC giúp giảm độ phức tạp trong hoạt động quản lý kết nối liên VPC theo cặp thông qua tính năng liên kết VPC, thay vì sử dụng mô hình quản lý kết nối tập trung.

Hãy nhớ rằng Trung tâm kết nối mạng (NCC) là mô hình tầng điều khiển dạng trung tâm và nan hoa để quản lý kết nối mạng trong Google Cloud. Tài nguyên trung tâm cung cấp mô hình quản lý kết nối tập trung để kết nối các nan hoa.

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 cấu trúc logic hình vành đai với nút trung tâm NCC. Nút trung tâm này sẽ triển khai một mạng kết nối VPC hoàn toàn dạng lưới trên ba VPC riêng biệt.

Kiến thức bạn sẽ học được

  • Kết nối VPC dạng lưới đầy đủ với NCC
  • NAT riêng tư trên VPC

Bạn cần có

  • Có kiến thức về mạng VPC của GCP
  • Có kiến thức về Cloud Router và định tuyến BGP
  • Hai dự án GCP riêng biệt
  • Lớp học lập trình này yêu cầu 5 VPC. Một trong các VPC đó phải nằm trong một dự án riêng biệt với trung tâm NCC
  • Kiểm tra Hạn mức:Mạngyêu cầu thêm Mạng nếu cần, ảnh chụp màn hình bên dưới:

6d1b99c6da87fd84.png

Mục tiêu

  • Thiết lập môi trường GCP
  • Định cấu hình Trung tâm kết nối mạng với VPC làm luồng
  • Xác thực đường dẫn dữ liệu
  • Khám phá các tính năng về khả năng bảo dưỡng của nhà cung cấp dịch vụ (NCC)
  • Dọn dẹp tài nguyên đã sử dụng

Trước khi bắt đầu

Google Cloud Console và Cloud Shell

Để tương tác với GCP, chúng ta sẽ sử dụng cả Google Cloud Console và Cloud Shell trong suốt lớp học này.

Dự án NCC Hub Bảng điều khiển Google Cloud

Bạn có thể truy cập vào Cloud Console tại https://console.cloud.google.com.

Thiết lập các mục sau trong Google Cloud để dễ dàng định cấu hình Trung tâm kết nối mạng:

Trong Google Cloud Console, trên trang bộ chọn dự án, hãy chọn hoặc tạo một dự án Google Cloud.

Chạy Cloud Shell. 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.

gcloud auth list
gcloud config list project
gcloud config set project [HUB-PROJECT-NAME]
projectname=[HUB-PROJECT-NAME]
echo $projectname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1

Vai trò trong IAM

NCC yêu cầu các vai trò IAM để truy cập vào các API cụ thể. Hãy nhớ định cấu hình người dùng của bạn bằng các vai trò IAM NCC theo yêu cầu.

Vai trò/Nội dung mô tả

Quyền

networkconnectivity.networkAdmin – Cho phép quản trị viên mạng quản lý nút trung tâm và nút nhánh.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager – Cho phép thêm và quản lý các nan hoa trong một trung tâm. Để sử dụng trong VPC dùng chung, trong đó dự án lưu trữ sở hữu Trung tâm, nhưng các quản trị viên khác trong các dự án khác có thể thêm các rô-to cho các tệp đính kèm của họ vào Trung tâm.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer – Cho phép người dùng mạng xem các thuộc tính khác nhau của trung tâm và nan hoa.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

2. Thiết lập môi trường mạng

Tổng quan

Trong phần này, chúng ta sẽ triển khai mạng VPC và quy tắc tường lửa trong một dự án. Sơ đồ logic minh hoạ môi trường mạng sẽ được thiết lập trong bước này.

Để minh hoạ tính năng hỗ trợ lồng ghép dự án, trong bước sau, chúng ta sẽ triển khai VPC và các quy tắc tường lửa trong một dự án khác.

245f1002db33ca98.png

Tạo VPC và mạng con

Mạng VPC chứa các mạng con mà bạn sẽ cài đặt máy ảo GCE để xác thực đường dẫn dữ liệu

gcloud compute networks create vpc1-ncc --subnet-mode custom
gcloud compute networks create vpc2-ncc --subnet-mode custom
gcloud compute networks create vpc3-ncc --subnet-mode custom
gcloud compute networks create vpc4-ncc --subnet-mode custom

gcloud compute networks subnets create vpc1-ncc-subnet1 \
--network vpc1-ncc --range 10.1.1.0/24 --region us-central1

gcloud compute networks subnets create vpc1-ncc-subnet2 \
--network vpc1-ncc --range 10.1.2.0/25 --region us-central1

gcloud compute networks subnets create vpc1-ncc-subnet3 \
--network vpc1-ncc --range 10.1.2.128/25 --region us-central1

gcloud compute networks subnets create vpc2-ncc-subnet1 \
--network vpc2-ncc --range 10.2.2.0/24 --region us-central1

Dải mạng con được VPC hỗ trợ

NCC hỗ trợ tất cả các dải mạng con IPv4 hợp lệ, ngoại trừ địa chỉ IP công cộng dùng riêng tư. Trong bước này, hãy tạo các dải IP hợp lệ trong VPC4. Các dải IP này sẽ được nhập vào bảng định tuyến trung tâm.

gcloud compute networks subnets create benchmark-testing-rfc2544 \
--network vpc4-ncc --range 198.18.0.0/15 --region us-east1

gcloud compute networks subnets create class-e-rfc5735 \
--network vpc4-ncc --range 240.0.0.0/4 --region us-east1

gcloud compute networks subnets create ietf-protcol-assignment-rfc6890 \
--network vpc4-ncc --range 192.0.0.0/24 --region us-east1

gcloud compute networks subnets create ipv6-4-relay-rfc7526 \
--network vpc4-ncc --range 192.88.99.0/24 --region us-east1

gcloud compute networks subnets create pupi \
--network vpc4-ncc --range 50.50.50.0/24 --region us-east1

gcloud compute networks subnets create test-net-1-rfc5737 \
--network vpc4-ncc --range 192.0.2.0/24 --region us-east1

gcloud compute networks subnets create test-net-2-rfc5737 \
--network vpc4-ncc --range 198.51.100.0/24 --region us-east1

gcloud compute networks subnets create test-net-3-rfc5737 \
--network vpc4-ncc --range 203.0.113.0/24 --region us-east1

Tạo các dải mạng con trùng lặp

NCC sẽ không nhập các dải IP trùng lặp vào bảng định tuyến trung tâm. Người dùng sẽ giải quyết hạn chế này ở bước sau. Hiện tại, hãy tạo hai dải IP trùng lặp cho VPC2 và VPC3.

gcloud compute networks subnets create overlapping-vpc2 \
--network vpc3-ncc --range 10.3.3.0/24 --region us-central1

gcloud compute networks subnets create overlapping-vpc3 \
--network vpc2-ncc --range 10.3.3.0/24 --region us-central1

Định cấu hình Quy tắc tường lửa VPC

Định cấu hình các quy tắc tường lửa trên mỗi VPC để cho phép

  • SSH
  • IAP nội bộ
  • Phạm vi 10.0.0.0/8
gcloud compute firewall-rules create ncc1-vpc-internal \
--network vpc1-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc2-vpc-internal \
--network vpc2-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc3-vpc-internal \
--network vpc3-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc4-vpc-internal \
--network vpc4-ncc \
--allow all \
--source-ranges 10.0.0.0/8

gcloud compute firewall-rules create ncc1-vpc-iap \
--network vpc1-ncc \
--allow all \
--source-ranges 35.235.240.0/20

gcloud compute firewall-rules create ncc2-vpc-iap \
--network vpc2-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20

gcloud compute firewall-rules create ncc3-vpc-iap \
--network vpc3-ncc \
--allow=tcp:22  \
--source-ranges 35.235.240.0/20

gcloud compute firewall-rules create ncc4-vpc-iap \
--network vpc4-ncc \
--allow=tcp:22  \
--source-ranges 35.235.240.0/20

Định cấu hình máy ảo GCE trong mỗi VPC

Bạn sẽ cần có quyền truy cập Internet tạm thời để cài đặt các gói trên "vm1-vpc1-ncc".

Tạo 4 máy ảo, mỗi máy ảo sẽ được chỉ định cho một trong các VPC đã tạo trước đó

gcloud compute instances create vm1-vpc1-ncc \
--subnet vpc1-ncc-subnet1 \
--metadata=startup-script='#!/bin/bash
  apt-get update
  apt-get install apache2 -y
  apt-get install tcpdump -y
  service apache2 restart
  echo "
<h3>Web Server: www-vm1</h3>" | tee /var/www/html/index.html'


gcloud compute instances create vm2-vpc2-ncc \
--zone us-central1-a \
--subnet vpc2-ncc-subnet1 \
--no-address 

gcloud compute instances create pnat-vm-vpc2 \
--zone us-central1-a \
--subnet overlapping-vpc3 \
--no-address 


gcloud compute instances create vm1-vpc4-ncc \
--zone us-east1-b \
--subnet class-e-rfc5735 \
--no-address

3. Trung tâm kết nối mạng

Tổng quan

Trong phần này, chúng ta sẽ định cấu hình Trung tâm NCC bằng các lệnh gcloud. Trung tâm NCC sẽ đóng vai trò là vùng điều khiển chịu trách nhiệm tạo cấu hình định tuyến giữa mỗi luồng VPC.

8acc7651f52e251e.png

Bật Dịch vụ API

Bật API kết nối mạng trong trường hợp API này chưa được bật:

gcloud services enable networkconnectivity.googleapis.com

Tạo Trung tâm nhà cung cấp nội dung

Tạo trung tâm NCC bằng lệnh gcloud

gcloud network-connectivity hubs create ncc-hub

Kết quả ví dụ

Create request issued for: [ncc-hub]
Waiting for operation [projects/user-3p-dev/locations/global/operations/operation-1668793629598-5edc24b7ee3ce-dd4c765b-5ca79556] to complete...done.     
Created hub [ncc-hub]

Mô tả Trung tâm NCC mới tạo. Lưu ý tên và đường dẫn liên kết.

gcloud network-connectivity hubs describe ncc-hub
gcloud network-connectivity hubs describe ncc-hub
createTime: '2023-11-02T02:28:34.890423230Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub
routeTables:
- projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uniqueId: de749c4c-0ef8-4888-8622-1ea2d67450f8
updateTime: '2023-11-02T02:28:48.613853463Z'

NCC Hub đã giới thiệu một bảng định tuyến xác định vùng điều khiển để tạo kết nối dữ liệu. Tìm tên bảng định tuyến của NCC Hub

 gcloud network-connectivity hubs route-tables list --hub=ncc-hub
NAME: default
HUB: ncc-hub
DESCRIPTION:

Tìm URI của bảng tuyến mặc định của NCC.

gcloud network-connectivity hubs route-tables describe default --hub=ncc-hub
createTime: '2023-02-24T17:32:58.786269098Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uid: eb1fdc35-2209-46f3-a8d6-ad7245bfae0b
updateTime: '2023-02-24T17:33:01.852456186Z'

Liệt kê nội dung của bảng định tuyến mặc định của Trung tâm NCC. Lưu ý* Bảng tuyến của Trung tâm NCC sẽ trống cho đến khi có các nan

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default

Bảng tuyến của Trung tâm NCC phải trống.

4. NCC có Lực lượng hỗ trợ VPC

Tổng quan

Trong phần này, bạn sẽ định cấu hình ba VPC làm một NCC Spoke bằng các lệnh gcloud.

a70bc80037927bb0.png

Định cấu hình(các) VPC làm Lực lượng hỗ trợ NCC

Định cấu hình(các) VPC sau đây làm NCC Spoke theo thứ tự này

  • VPC4
  • VPC1
  • VPC2
  • VPC3

Định cấu hình VPC4 làm một luồng NCC và chỉ định luồng đó cho trung tâm NCC đã tạo trước đó. Các lệnh gọi API bằng lời nói của NCC yêu cầu bạn phải chỉ định một vị trí. Cờ "–global" đơn giản hoá cú pháp gcloud bằng cách cho phép người dùng tránh chỉ định đường dẫn URI đầy đủ khi định cấu hình một luồng NCC mới.

gcloud network-connectivity spokes linked-vpc-network create vpc4-spoke4 \
--hub=ncc-hub \
--vpc-network=vpc4-ncc \
--global

Định cấu hình VPC1 làm một luồng NCC.

Quản trị viên có thể loại trừ các tuyến đường mạng con khỏi việc xuất từ một luồng VPC vào bảng định tuyến của trung tâm NCC. Trong phần này của lớp học lập trình, hãy tạo một quy tắc loại trừ xuất dựa trên tiền tố tóm tắt để ngăn mạng con của VPC1 xuất vào bảng định tuyến của Trung tâm NCC.

Sử dụng lệnh gcloud này để liệt kê tất cả các mạng con thuộc VPC1.

gcloud config set accessibility/screen_reader false
gcloud compute networks subnets list --network=vpc1-ncc

Lưu ý cặp mạng con /25 đã tạo trước đó trong phần thiết lập.

NAME              REGION       NETWORK   RANGE          STACK_TYPE  
vpc1-ncc-subnet1  us-central1  vpc1-ncc  10.1.1.0/24    IPV4_ONLY
vpc1-ncc-subnet2  us-central1  vpc1-ncc  10.1.2.0/25    IPV4_ONLY
vpc1-ncc-subnet3  us-central1  vpc1-ncc  10.1.2.128/25  IPV4_ONLY

Định cấu hình VPC1 làm một luồng NCC và loại trừ cặp mạng con /25 khỏi việc nhập vào bảng định tuyến trung tâm bằng cách sử dụng từ khoá "export-exclude-ranges" để lọc tuyến tóm tắt /24 khỏi phạm vi cụ thể đó.

gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global 

Lưu ý* Người dùng có thể lọc tối đa 16 dải IP riêng biệt cho mỗi luồng NCC.

Liệt kê nội dung của bảng định tuyến mặc định của Trung tâm NCC. Điều gì đã xảy ra với cặp mạng con /25 trên bảng định tuyến của NCC Hub?

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default --filter="NEXT_HOP:vpc1-ncc"
IP_CIDR_RANGE  STATE   TYPE                  NEXT_HOP  HUB      ROUTE_TABLE
10.1.1.0/24    ACTIVE  VPC_PRIMARY_SUBNET    vpc1-ncc  ncc-hub  default

Định cấu hình VPC2 làm một luồng NCC

gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--global

Định cấu hình VPC3 làm một luồng NCC và chỉ định luồng đó cho trung tâm NCC đã tạo trước đó.

gcloud  network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--global

Điều gì đã xảy ra?

ERROR: (gcloud.network-connectivity.spokes.linked-vpc-network.create) Invalid resource state for "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/global/networks/vpc3-ncc": 10.3.3.0/24 (SUBNETWORK) overlaps with 10.3.3.0/24 (SUBNETWORK) from "projects/user-3p-dev/global/networks/vpc2-ncc" (peer)

Trung tâm NCC phát hiện phạm vi IP trùng lặp với VPC2. Hãy nhớ rằng VPC2 và VPC3 đều được thiết lập với cùng một mạng con IP 10.3.3.0/24.

Lọc các dải IP trùng lặp bằng tính năng Loại trừ dữ liệu xuất

Tại thời điểm viết lớp học lập trình này, đây là một vấn đề đã biết, trong đó người dùng phải xoá và tạo lại các nan NCC để thay đổi cấu hình cho bộ lọc xuất.

gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet

Lưu ý: Sau khi bạn xoá một nút VPC liên kết với một VPC cụ thể, bạn phải đợi hết khoảng thời gian chờ 10 phút thì mới có thể tạo lại một nút mới tham chiếu đến chính VPC đó.

gcloud  network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global

Định cấu hình VPC3 làm một luồng NCC và chỉ định luồng này cho trung tâm NCC đã tạo trước đó. Bạn sẽ thành công khi thêm VPC3 làm một nút thành phần kết nối đến NCC.

gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global

Liệt kê nội dung của bảng định tuyến mặc định của NCC Hub và kiểm tra kết quả.

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default

Các dải IP trùng lặp từ VPC2 và VPC3 sẽ bị loại trừ. Bảng định tuyến của NCC Hub hỗ trợ tất cả các loại dải IPv4 hợp lệ, ngoại trừ địa chỉ IP công khai dùng riêng tư (PUPI).

5. NCC có các luồng xuyên dự án

Tổng quan

Cho đến nay, bạn đã định cấu hình các nan NCC thuộc cùng một dự án với Hub. Trong phần này, bạn sẽ định cấu hình VPC làm một NCC Spoke từ một dự án riêng biệt với NCC Hub bằng các lệnh gcloud.

Điều này cho phép chủ sở hữu dự án đang quản lý VPC của riêng họ tham gia vào khả năng kết nối mạng với Trung tâm NCC.

e1190fa898c5097d.png

Trên nhiều dự án: Google Cloud Console và Cloud Shell

Để tương tác với GCP, chúng ta sẽ sử dụng cả Google Cloud Console và Cloud Shell trong suốt lớp học này.

Google Cloud Console trên nhiều dự án

Bạn có thể truy cập vào Cloud Console tại https://console.cloud.google.com.

Thiết lập các mục sau trong Google Cloud để dễ dàng định cấu hình Trung tâm kết nối mạng:

Trong Google Cloud Console, trên trang bộ chọn dự án, hãy chọn hoặc tạo một dự án Google Cloud.

Chạy Cloud Shell. 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.

gcloud auth list
gcloud config list project
gcloud config set project [YOUR-CROSSPROJECT-NAME]
xprojname=[YOUR-CROSSPROJECT-NAME]
echo $xprojname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1

Vai trò trong IAM

NCC yêu cầu các vai trò IAM để truy cập vào các API cụ thể. Hãy nhớ định cấu hình người dùng của bạn bằng các vai trò IAM NCC theo yêu cầu.

Ít nhất, quản trị viên của nhiều dự án phải được cấp vai trò IAM: "networkconnectivity.networkSpokeManager". "

Bảng dưới đây liệt kê vai trò IAM bắt buộc đối với quản trị viên Trung tâm và Cánh của NCC để bạn tham khảo.

Vai trò/Nội dung mô tả

Quyền

networkconnectivity.networkAdmin – Cho phép quản trị viên mạng quản lý nút trung tâm và nút nhánh.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager – Cho phép thêm và quản lý các nan hoa trong một trung tâm. Để sử dụng trong VPC dùng chung, trong đó dự án lưu trữ sở hữu Trung tâm, nhưng các quản trị viên khác trong các dự án khác có thể thêm các rô-to cho các tệp đính kèm của họ vào Trung tâm.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer – Cho phép người dùng mạng xem các thuộc tính khác nhau của trung tâm và nan hoa.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

Tạo VPC và mạng con trong dự án chéo

Mạng VPC chứa các mạng con mà bạn sẽ cài đặt máy ảo GCE để xác thực đường dẫn dữ liệu

gcloud compute networks create xproject-vpc \
--subnet-mode custom

gcloud compute networks subnets create xprj-net-1 \
--network xproject-vpc \
--range 10.100.1.0/24 \
--region us-central1

URI dự án NCC Hub

Sử dụng lệnh gcloud này để tìm URI của Trung tâm NCC. Bạn sẽ cần đường dẫn URI để định cấu hình NCC trên nhiều dự án đã đề cập trong bước tiếp theo.

gcloud network-connectivity hubs describe ncc-hub

VPC Spoke giữa các dự án

Đăng nhập vào dự án khác mà VPC KHÔNG thuộc dự án NCC Hub. Trên cloudshell, hãy sử dụng lệnh này để định cấu hình VPC làm một luồng NCC.

  • HUB_URI phải là URI của một trung tâm trong một dự án khác.
  • VPC_URI phải nằm trong cùng một dự án với luồng
  • VPC-network chỉ định VPC trong dự án chéo này sẽ tham gia Trung tâm NCC trong một dự án khác
gcloud network-connectivity spokes linked-vpc-network create xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--vpc-network=xproject-vpc

.

Create request issued for: [xproj-spoke]
Waiting for operation [projects/xproject/locations/global/operations/operation-1689790411247-600dafd351158-2b862329-19b747f1] to complete...done.                           
Created spoke [xproj-spoke].
createTime: '2023-07-19T18:13:31.388500663Z'
hub: projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub
linkedVpcNetwork:
  uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/xproject-vpc
name: projects/xproject/locations/global/spokes/xproj-spoke
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 46b4d091-89e2-4760-a15d-c244dcb7ad69
updateTime: '2023-07-19T18:13:38.652800902Z'

Trạng thái của dự án chéo mà NCC đề cập là gì? Tại sao?

6. Từ chối hoặc chấp nhận luồng trên nhiều dự án

Tổng quan

Quản trị viên của Trung tâm NCC phải chấp nhận rõ ràng một nhóm dự án đa dự án để tham gia trung tâm. Điều này giúp chủ sở hữu dự án không thể đính kèm các luồng NCC trái phép vào bảng định tuyến toàn cầu NCC. Sau khi một luồng được chấp nhận hoặc từ chối, bạn có thể từ chối hoặc chấp nhận luồng đó nhiều lần theo ý muốn bằng cách chạy các lệnh ở trên.

Quay lại dự án chứa trung tâm NCC bằng cách đăng nhập vào shell trên đám mây.

Xác định các luồng dữ liệu giữa các dự án cần xem xét

gcloud network-connectivity hubs list-spokes ncc-hub \
 --filter="reason:PENDING_REVIEW"

Chấp nhận một luồng

gcloud network-connectivity spokes accept xproj-spoke --global

Không bắt buộc: Từ chối một luồng

gcloud network-connectivity spokes reject xproj-spoke \
--global \
--details="some reason to reject"

Liệt kê các Lốp xe đang hoạt động trên Trung tâm

gcloud network-connectivity hubs list-spokes ncc-hub \
 --filter="state:ACTIVE"
NAME            PROJECT          LOCATION  TYPE         STATE   STATE REASON
Xproj-spoke     xproj            global    VPC_NETWORK  ACTIVE
vpc4-spoke4     user-3p-dev      global    VPC_NETWORK  ACTIVE
vpc1-spoke1     user-3p-dev      global    VPC_NETWORK  ACTIVE
vpc2-spoke2     user-3p-dev      global    VPC_NETWORK  ACTIVE
vpc3-spoke3     user-3p-dev      global    VPC_NETWORK  ACTIVE

Liệt kê các tuyến đường mạng con trên Hub

Trong kết quả, bạn có thể thấy các tuyến đường mạng con từ nút trung tâm VPC chéo không?

gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:xprj-vpc"
IP_CIDR_RANGE  STATE   TYPE                NEXT_HOP  HUB      ROUTE_TABLE
10.100.0.0/16  ACTIVE  VPC_PRIMARY_SUBNET  xprj-vpc  ncc-hub  default

7. NAT riêng tư giữa(các) VPC

Tổng quan

Trong phần này, bạn sẽ định cấu hình NAT riêng tư cho các dải mạng con trùng lặp giữa hai VPC. Xin lưu ý rằng NAT riêng tư giữa(các) VPC yêu cầu NCC.

Trong phần trước, VPC2 và VPC3 được định cấu hình với phạm vi mạng con trùng lặp là "10.3.3.0/24". Cả hai VPC đều được định cấu hình dưới dạng một luồng NCC để loại trừ việc chèn mạng con trùng lặp vào bảng định tuyến trung tâm NCC, tức là không có đường dẫn dữ liệu lớp 3 nào để truy cập vào các máy chủ lưu trú nằm trên mạng con đó.

Sử dụng các lệnh này trong dự án trung tâm NCC để tìm(các) dải mạng con trùng lặp.

gcloud compute networks subnets list --network vpc2-ncc

gcloud compute networks subnets list --network vpc3-ncc

Trên vpc2-ncc, tên của mạng con chứa Phạm vi IP trùng lặp là gì?

*Lưu ý và lưu tên mạng con vào một nơi nào đó. Bạn sẽ định cấu hình NAT nguồn cho phạm vi này.

Thiết lập NAT riêng

Dành riêng một phạm vi mạng con có thể định tuyến cho lưu lượng truy cập NAT nguồn từ mạng con trùng lặp của VPC2. Bằng cách định cấu hình phạm vi mạng con không trùng lặp bằng cờ "–purpose=PRIVATE_NAT".

gcloud compute networks subnets create ncc2-spoke-nat \
--network=vpc2-ncc \
--region=us-central1 \
--range=10.10.10.0/29 \
--purpose=PRIVATE_NAT

Tạo một bộ định tuyến đám mây chuyên dụng để thực hiện NAT riêng tư

gcloud compute routers create private-nat-cr \
--network vpc2-ncc \
--region us-central1

Định cấu hình bộ định tuyến đám mây để nguồn NAT có phạm vi trùng lặp 10.3.3.0/24 từ vpc2-ncc. Trong cấu hình mẫu bên dưới, "overlapping-vpc3" là tên của mạng con trùng lặp. Từ khoá "ALL" (TẤT CẢ) chỉ định rằng tất cả các dải IP trong mạng con sẽ được NAT nguồn.

gcloud compute routers nats create ncc2-nat \
--router=private-nat-cr \
--type=PRIVATE \
--nat-custom-subnet-ip-ranges=overlapping-vpc3:ALL \
--router-region=us-central1

Các bước trước đã tạo một nhóm các dải IP NAT và một mạng con cụ thể sẽ được dịch. Trong bước này, hãy tạo Quy tắc NAT "1" để dịch các gói mạng khớp với lưu lượng truy cập bắt nguồn từ phạm vi mạng con trùng lặp nếu mạng đích đi theo một đường dẫn từ bảng định tuyến trung tâm NCC.

gcloud compute routers nats rules create 1 \
--router=private-nat-cr \
--region=us-central1 \
--match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/$projectname/locations/global/hubs/ncc-hub"' \
--source-nat-active-ranges=ncc2-spoke-nat \
--nat=ncc2-nat

Xác minh NAT riêng

gcloud compute routers nats describe ncc2-nat --router=private-nat-cr

Kết quả ví dụ

enableDynamicPortAllocation: true
enableEndpointIndependentMapping: false
endpointTypes:
- ENDPOINT_TYPE_VM
name: ncc2-nat
rules:
- action:
    sourceNatActiveRanges:
    - https://www.googleapis.com/compute/projects/yueri-3p-dev/regions/us-central1/subnetworks/ncc2-spoke-nat
  match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/yueri-3p-dev/locations/global/hubs/ncc-hub"
  ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/projects/yueri-3p-dev/regions/us-central1/subnetworks/overlapping-vpc3
  sourceIpRangesToNat:
  - ALL_IP_RANGES
type: PRIVATE

Không bắt buộc,

  • Chuyển sang bảng điều khiển web
  • chuyển đến "Dịch vụ mạng > NAT trên đám mây > ncc2-nat"

Xác minh rằng tính năng phân bổ cổng động được bật theo mặc định.

114050bb65e0c4e2.png

Tiếp theo, bạn sẽ xác minh đường dẫn dữ liệu sử dụng đường dẫn NAT riêng được định cấu hình cho VPC2.

5035b181aeaa30a8.png

Mở một phiên SSH đến "vm1-vpc1-ncc" và sử dụng lệnh tcpdump bên dưới để ghi lại các gói bắt nguồn từ phạm vi nhóm NAT "10.10.10.0/29".

vm1-vpc1-ncc

sudo tcpdump -i any net 10.10.10.0/29 -n

Tại thời điểm viết lớp học lập trình này, NAT riêng tư không hỗ trợ các gói ICMP. Phiên SSH đến "pNat-vm-vpc2" và sử dụng lệnh curl như minh hoạ bên dưới để kết nối với "vm1-vpc1-ncc" trên cổng TCP 80.

pnat-vm-vpc2

curl 10.1.1.2 -v 

Kiểm tra kết quả của tcpdump trên "vm1-vpc1-ncc". Địa chỉ IP nguồn bắt nguồn phiên TCP đến máy chủ web của chúng tôi trên "vm1-vpc1-ncc" là gì?

tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
19:05:27.504761 ens4  In  IP 10.10.10.2.1024 > 10.1.1.2:80: Flags [S], seq 2386228656, win 65320, options [mss 1420,sackOK,TS val 3955849029 ecr 0,nop,wscale 7], length 0
19:05:27.504805 ens4  Out IP 10.1.1.2:80 > 10.10.10.2.1024: Flags [S.], seq 48316785, ack 2386228657, win 64768, options [mss 1420,sackOK,TS val 1815983704 ecr 3955849029,nop,wscale 7], length 0
<output snipped>

8. Xác minh khả năng kết nối của đường dẫn dữ liệu

Tham khảo sơ đồ, xác minh đường dẫn dữ liệu giữa mỗi máy ảo.

424df0ebe4510ebb.png

SSH vào "vm1-vpc1-ncc" và bắt đầu kết xuất TCP để theo dõi các gói ICMP từ "vm2-vpc2-ncc". Xin lưu ý rằng máy ảo này nằm trên VPC2.

vm1-vpc1-ncc

sudo tcpdump -i any icmp -v -e -n

Thiết lập phiên SSH đến "vm1-vpc2-ncc" và "ping" địa chỉ IP của "vm1-vpc1-ncc".

vm1-vpc2-ncc

ping 10.1.1.2

Thiết lập SSH đến "vm1-vpc2-ncc" và "ping" địa chỉ IP của "vm1-vpc4-ncc".

vm1-vpc2-ncc

ping 240.0.0.2

9. Dọn dẹp

Đăng nhập vào màn hình shell trên đám mây và xoá các phiên bản máy ảo trong mạng của trung tâm và trang web chi nhánh

Xoá cấu hình Nat VPC riêng tư

gcloud compute routers nats rules delete 1 \
--nat=ncc2-nat \
--router=private-nat-cr \
--region=us-central1 \
--quiet

gcloud compute routers nats delete ncc2-nat \
--router=private-nat-cr \
--router-region=us-central1 \
--quiet

gcloud compute routers delete private-nat-cr \
--region=us-central1 \
--quiet

Xoá ncc spokes

gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet

gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet

gcloud network-connectivity spokes delete vpc3-spoke3 --global --quiet

gcloud network-connectivity spokes delete vpc4-spoke4 --global --quiet

Từ chối luồng trên nhiều dự án

Từ chối luồng VPC giữa các dự án từ trung tâm NCC.

gcloud network-connectivity spokes reject projects/$xprojname/locations/global/spokes/xproj-spoke \--details="cleanup" \
--global

Xoá Trung tâm nhà sáng tạo nội dung

gcloud network-connectivity hubs delete ncc-hub --quiet

Xoá quy tắc tường lửa

gcloud compute firewall-rules delete ncc1-vpc-internal --quiet
gcloud compute firewall-rules delete ncc2-vpc-internal --quiet
gcloud compute firewall-rules delete ncc3-vpc-internal --quiet
gcloud compute firewall-rules delete ncc4-vpc-internal --quiet
gcloud compute firewall-rules delete ncc1-vpc-iap --quiet
gcloud compute firewall-rules delete ncc2-vpc-iap --quiet
gcloud compute firewall-rules delete ncc3-vpc-iap --quiet
gcloud compute firewall-rules delete ncc4-vpc-iap --quiet

Xoá phiên bản máy ảo GCE

gcloud compute instances delete vm1-vpc1-ncc --zone=us-central1-a --quiet
gcloud compute instances delete vm2-vpc2-ncc --zone=us-central1-a --quiet
gcloud compute instances delete pnat-vm-vpc2 --zone=us-central1-a --quiet
gcloud compute instances delete vm1-vpc4-ncc --zone=us-east1-b --quiet

Xoá mạng con VPC

gcloud compute networks subnets delete ncc2-spoke-nat --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet2 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet3 --region us-central1 --quiet
gcloud compute networks subnets delete vpc2-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc2 --region us-central1 --quiet 
gcloud compute networks subnets delete overlapping-vpc3 --region us-central1 --quiet

gcloud compute networks subnets delete benchmark-testing-rfc2544 --region us-east1 --quiet
gcloud compute networks subnets delete class-e-rfc5735 --region us-east1 --quiet
gcloud compute networks subnets delete ietf-protcol-assignment-rfc6890 --region us-east1 --quiet
gcloud compute networks subnets delete ipv6-4-relay-rfc7526 --region us-east1 --quiet
gcloud compute networks subnets delete pupi --region us-east1 --quiet
gcloud compute networks subnets delete test-net-1-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-2-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-3-rfc5737 --region us-east1 --quiet

Xoá(các) VPC

gcloud compute networks delete vpc1-ncc vpc2-ncc vpc3-ncc vpc4-ncc 
--quiet 

10. Xin chúc mừng!

Bạn đã hoàn tất lớp học Network Connectivity Center!

Nội dung bạn đã đề cập

  • Thiết lập mạng Kết nối ngang hàng VPC Full Mesh bằng Trung tâm NCC
  • Bộ lọc loại trừ NCC Spoke
  • Hỗ trợ nhiều dự án
  • NAT riêng tư giữa các VPC

Các bước tiếp theo

©Google, LLC hoặc các công ty liên kết của Google. Bảo lưu mọi quyền. Không phân phối.