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 phòng thí nghiệm 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ợ Đối tượng VPC. Khi người dùng định nghĩa một VPC theo mô hình VPC, điều này cho phép họ kết nối VPC với nhiều mạng VPC cùng nhau qua NCC Hub. NCC có cấu hình nói VPC giúp giảm độ phức tạp trong vận hành khi quản lý kết nối giữa các VPC theo cặp thông qua kết nối ngang hàng VPC, thay vào đó sử dụng mô hình quản lý kết nối tập trung.

Xin nhắc lại rằng Trung tâm kết nối mạng (NCC) là một mô hình mặt phẳng điều khiển kiểu trung tâm và chấu để quản lý kết nối mạng trong Google Cloud. Tài nguyên trung tâm cung cấp một mô hình quản lý hoạt động kết nối tập trung để kết nối các chạc nói.

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 trung tâm logic và cấu trúc liên kết nói trên trung tâm NCC giúp triển khai kết nối VPC có kết cấu lưới hoàn chỉnh trên 3 VPC riêng biệt.

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

  • Kết nối VPC 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ề định tuyến Cloud Router và BGP
  • Hai dự án GCP riêng biệt
  • Lớp học lập trình này cần 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 Định 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.pngS

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 như đã nêu
  • Xác thực đường dẫn dữ liệu
  • Khám phá các tính năng về khả năng phục vụ của 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 phòng thí nghiệm này.

Dự án NCC Hub Google Cloud Console

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 hơn:

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

Khởi chạy Cloud Shell. Lớp học lập trình này sử dụng $variables để hỗ trợ việc 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ò IAM

NCC cần có các vai trò IAM để truy cập vào một số API. Hãy nhớ thiết lập người dùng của bạn với các vai trò NCC IAM 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ý trung tâm và các ngôn ngữ.

mạng kết nối.hubs.networkConnected.spokes.

networkconnectivity.networkSpokeManager – Cho phép thêm và quản lý các nan hoa trong một trung tâm. Để được sử dụng trong VPC dùng chung, nơi 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 nan hoa cho tệp đính kèm của trung tâm.

mạng kết nối.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer

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ợ phát ngôn trên nhiều dự án, ở bước sau, chúng tôi sẽ triển khai VPC và các quy tắc tường lửa trong một dự án khác.

245f1002db33ca98.pngS

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

Phạm vi mạng con được hỗ trợ của VPC

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 khai được sử dụng riêng tư. Ở bước này, hãy tạo dải IP hợp lệ trong VPC4. 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 phạm vi mạng con chồng chéo

NCC sẽ không nhập các dải IP chồng chéo vào bảng tuyến đường trung tâm. Người dùng sẽ giải quyết hạn chế này trong bước sau. Bây giờ, hãy tạo 2 phạm vi 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 cho VPC

Định cấu hình 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 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 một Trung tâm NCC bằng các lệnh gcloud. Trung tâm NCC sẽ đóng vai trò là mặt phẳng điều khiển chịu trách nhiệm xây dựng cấu hình định tuyến giữa mỗi nói VPC.

8acc7651f52e251e.png.

Bật Dịch vụ API

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

gcloud services enable networkconnectivity.googleapis.com

Tạo Trung tâm NCC

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 được tạo. Ghi lại 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 khả năng 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 định tuyến mặc định 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 bảng định tuyến mặc định của Trung tâm NCC. Lưu ý* Bảng lộ trình của Trung tâm NCC sẽ trống cho đến khi các nan hoa được

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

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

4. NCC có nan hoa VPC

Tổng quan

Trong phần này, bạn sẽ định cấu hình 3 VPC dưới dạng NCC Spoke bằng các lệnh gcloud.

a70bc80037927bb0.png

Định cấu hình(các) VPC ở dạng NCC Spoke

Định cấu hình(các) VPC sau dưới dạng NCC Đã phát hiện theo thứ tự này

  • VPC4
  • VPC1
  • VPC2
  • VPC3

Định cấu hình VPC4 dưới dạng tiếng NCC và chỉ định VPC4 này vào trung tâm NCC đã được tạo trước đó. Lệnh gọi API nói của NCC yêu cầu phải chỉ định vị trí. Cờ "–toàn cầu" Đơn giản hoá cú pháp gcloud bằng cách cho phép người dùng tránh chỉ định một đường dẫn đầy đủ của URI khi định cấu hình một 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 ở dạng NCC nói.

Quản trị viên có thể loại trừ việc xuất các tuyến mạng con từ một VPC được đưa 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 sang bảng tuyến đường của NCC Hub.

Hãy dùng lệnh gcloud này để liệt kê tất cả mạng con thuộc VPC1.

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

Lưu ý đến cặp /25 mạng con đã 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 dưới dạng NCC và loại trừ cặp /25 mạng con được nhập vào bảng định tuyến trung tâm bằng cách sử dụng "export-excluded-ranges" từ khoá để lọc tuyến đường tóm tắt /24 từ 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 duy nhất cho mỗi NCC nói.

Liệt kê nội dung bảng định tuyến mặc định của Trung tâm NCC. Điều gì đã xảy ra với cặp /25 mạng con 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 dưới dạng tiế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 dưới dạng tiếng NCC và chỉ định VPC3 vào trung tâm NCC đã được 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)

NCC Hub phát hiện dải IP bị trùng với VPC2. Hãy nhớ rằng cả 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 dải IP chồng chéo bằng tính năng Loại trừ tệp xuất

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

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

Lưu ý: Để xoá một trò chuyện VPC được liên kết với một VPC cụ thể, thời gian chờ là 10 phút sẽ hết hạn để tạo lại một cuộc nói chuyện mới tham chiếu đến cùng một 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 dưới dạng tiếng NCC và chỉ định VPC3 vào trung tâm NCC đã được tạo trước đó. Thao tác thêm VPC3 dưới dạng trò chuyện với NCC đã thành công.

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 đầu ra.

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

Các dải IP chồng chéo từ VPC2 và VPC3 sẽ không được tính. Bảng định tuyến NCC Hub hỗ trợ tất cả các loại phạm vi hợp lệ IPv4, ngoại trừ các địa chỉ IP công khai (PUPI) được sử dụng riêng tư.

5. NCC với Lời nói của nhiều dự án

Tổng quan

Tính đến thời điểm này, bạn đã định cấu hình các chấu 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 dưới dạng NCC Spoke từ một dự án riêng biệt không phải NCC Hub bằng các lệnh gcloud.

Nhờ đó, những chủ dự án đang quản lý VPC của riêng mình có thể tham gia vào việc kết nối mạng với NCC Hub.

e1190fa898c5097d.png

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 phòng thí nghiệm này.

Bảng điều khiển Google Cloud đã nói về 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 hơn:

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

Khởi chạy Cloud Shell. Lớp học lập trình này sử dụng $variables để hỗ trợ việc 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ò IAM

NCC cần có các vai trò IAM để truy cập vào một số API. Hãy nhớ thiết lập người dùng của bạn với các vai trò NCC IAM theo yêu cầu.

Ở mức tối thiểu, quản trị viên nói trên nhiều dự án phải được cấp vai trò IAM: "network Match.networkSpokeManager. "

Bảng dưới đây liệt kê vai trò IAM cần thiết cho NCC Hub và quản trị viên Spoke để 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ý trung tâm và các ngôn ngữ.

mạng kết nối.hubs.networkConnected.spokes.

networkconnectivity.networkSpokeManager – Cho phép thêm và quản lý các nan hoa trong một trung tâm. Để được sử dụng trong VPC dùng chung, nơi 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 nan hoa cho tệp đính kèm của trung tâm.

mạng kết nối.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer

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 Trung tâm NCC

Hãy dùng lệnh gcloud này để tìm URI NCC Hub. Bạn sẽ cần đường dẫn URI để định cấu hình dự án chéo mà NCC đã đề cập trong bước tiếp theo.

gcloud network-connectivity hubs describe ncc-hub

VPC dạng chéo 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 dùng lệnh này để định cấu hình VPC ở dạng NCC nói.

  • HUB_URI phải là URI của một trung tâm trong một dự án khác.
  • VPC_URI phải ở trong cùng một dự án với người nói
  • Mạng VPC chỉ định rằng VPC trong nhiều dự án 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'

NCC đã đề cập đến trạng thái dự án chéo như thế nào? Tại sao?

6. Từ chối hoặc chấp nhận nội dung trao đổi của nhiều dự án

Tổng quan

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

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

Xác định các giao dịch trong nhiều dự án cần xem xét

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

Nhận lời phát biểu

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

Không bắt buộc: Từ chối một giọng phát biểu

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

Liệt kê Người nói đ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 mạng con trên Trung tâm

Trong dữ liệu đầu ra, bạn có thể thấy các tuyến mạng con từ nhiều VPC 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 chồng chéo giữa hai VPC. Xin lưu ý rằng NAT riêng tư giữa(các) VPC cần có NCC.

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

Hãy sử dụng các lệnh này trong dự án trung tâm NCC để tìm(các) phạm vi 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 mạng con chứa Dải IP chồng chéo là gì?

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

Định cấu hình NAT riêng tư

Dành phạm vi mạng con có thể định tuyến để tạo lưu lượng truy cập NAT từ mạng con chồng chéo của VPC2. Bằng cách định cấu hình dải ô mạng con không chồng chéo bằng cách sử dụng "–mục=PRIVATE_NAT" cờ.

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

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

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 dải IP NAT và mạng con cụ thể sẽ được dịch. Trong bước này, tạo Quy tắc NAT "1" để dịch gói mạng khớp với lưu lượng truy cập bắt nguồn từ dải mạng con trùng lặp nếu mạng đích nhận đườ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 tư

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 phần "Dịch vụ mạng > Cloud NAT > 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.pngS

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

5035b181aeaa30a8.pngS

Mở phiên SSH tới "vm1-vpc1-ncc" và sử dụng lệnh tcpdump bên dưới để thu thập các gói có nguồn gốc 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 sang "pNat-vm-vpc2" và sử dụng lệnh curl như 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 đầu ra của tcpdump trên "vm1-vpc1-ncc." Địa chỉ IP nguồn đã tạo ra 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 đườ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 thành "vm1-vpc1-ncc" và bắt đầu tệp 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 thành "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 thành "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 Cloud shell và xoá các thực thể máy ảo trong mạng trung tâm và mạng trang web nhánh

Xoá cấu hình Nat của 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á nan hoa ncc

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

Đã nói từ chối trên nhiều dự án

Thông báo từ chối VPC chéo dự án đã được đưa ra trong trung tâm NCC.

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

Xoá Trung tâm NCC

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

Xoá quy tắc về 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á các phiên bản 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 thành Phòng thí nghiệm về Trung tâm kết nối mạng!

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

  • Đã định cấu hình mạng kết nối VPC lưới đầy đủ với NCC Hub
  • Bộ lọc loại trừ nói của NCC
  • Hỗ trợ đã nói trên 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 đơn vị liên kết của Google. Bảo lưu mọi quyền. Không được phân phối.