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ạng và yêu cầu thêm Mạng nếu cần, ảnh chụp màn hình bên dưới:
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.
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.
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.
Đị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.
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.
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.
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.
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.