Lab: Spoke olarak NCC VPC

1. Giriş

Genel Bakış

Bu laboratuvarda kullanıcılar, VPC Speksleri desteğiyle VPC'ler arası bağlantı oluşturmak için Ağ Bağlantı Merkezi'nin(NCC) nasıl kullanılabileceğini keşfedecektir. Kullanıcılar bir VPC'yi VPC kablosu olarak tanımladığında, kullanıcılar bu VPC'yi NCC Hub üzerinden birden çok VPC ağına birlikte bağlayabilir. VPC uçlu NCC yapılandırması, merkezi bir bağlantı yönetimi modeli kullanmak yerine VPC eşleme aracılığıyla ikili VPC arası bağlantıyı yönetmenin operasyonel karmaşıklığını azaltır.

Network Connectivity Center'ın (NCC), Google Cloud'daki ağ bağlantısı yönetimi için merkezi bir kontrol düzlemi modeli olduğunu unutmayın. Merkez kaynağı, ara bağlantı uçları için merkezi bir bağlantı yönetimi modeli sağlar.

Oluşturacaklarınız

Bu codelab'de üç farklı VPC'de tamamen örgütlenmiş bir VPC bağlantı yapısı uygulayan NCC merkezi ile mantıksal bir merkez oluşturacaksınız ve konuşan topoloji yapacaksınız.

Neler öğreneceksiniz?

  • NCC ile Tam Örgü VPC Bağlantısı
  • VPC genelinde özel NAT

Gerekenler

  • GCP VPC ağı hakkında bilgi
  • Cloud Router ve BGP yönlendirmesi hakkında bilgi
  • İki ayrı GCP projesi
  • Bu Codelab için 5 VPC gerekir. Bu VPC'lerden biri, NCC merkezinden ayrı bir projede bulunmalıdır
  • Kota:Ağlar sayfanızı kontrol edin ve gerekirse ek ağlar isteyin. Ekran görüntüsünü aşağıda bulabilirsiniz:

6d1b99c6da87fd84.png

Hedefler

  • GCP Ortamını Ayarlama
  • Ağ Bağlantı Merkezi'ni VPC ile uç olarak yapılandırma
  • Veri Yolunu Doğrula
  • NCC hizmet verilebilirlik özelliklerini keşfedin
  • Kullanılan kaynakları temizleyin

Başlamadan önce

Google Cloud Console ve Cloud Shell

GCP ile etkileşime geçmek için bu laboratuvar boyunca hem Google Cloud Console hem de Cloud Shell'i kullanacağız.

NCC Hub Projesi Google Cloud Console

Cloud Console'a https://console.cloud.google.com adresinden erişilebilir.

Network Connectivity Center'ı yapılandırmayı kolaylaştırmak için Google Cloud'da aşağıdaki öğeleri ayarlayın:

Google Cloud Console'un proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.

Cloud Shell'i başlatın. Bu Codelab, Cloud Shell'de gcloud yapılandırması uygulamasına yardımcı olmak için $variables kullanır.

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

IAM Rolleri

NCC'nin belirli API'lere erişmek için IAM rolleri olması gerekir. Kullanıcınızı NCC IAM rolleriyle gerektiği şekilde yapılandırdığınızdan emin olun.

Rol/Açıklama

İzinler

networkconnectivity.networkAdmin - Ağ yöneticilerinin hub ve uçları yönetmesine izin verir.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager - Bir hub'daki uçların eklenmesine ve yönetilmesine olanak tanır. Ana makine projesinin Hub'a sahip olduğu ancak diğer projelerdeki diğer yöneticiler, kendi ekleri için Hub'a uçlar ekleyebildiği durumlarda Paylaşılan VPC'de kullanılır.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer - Ağ kullanıcılarının, hub ve uçların farklı özelliklerini görüntülemesine izin verir.

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

2. Ağ Ortamını Ayarlama

Genel Bakış

Bu bölümde, VPC ağlarını ve güvenlik duvarı kurallarını tek bir projede dağıtacağız. Mantıksal şema, bu adımda ayarlanacak ağ ortamını gösterir.

Projeler arası uç desteği göstermek için sonraki bir adımda farklı bir projede VPC ve güvenlik duvarı kuralları dağıtacağız.

245f1002db33ca98.png

VPC'leri ve Alt ağları oluşturma

VPC ağı, veri yolu doğrulaması için GCE sanal makinesi yükleyeceğiniz alt ağları içerir

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

VPC Desteklenen Alt Ağ Aralıkları

NCC, özel olarak kullanılan genel IP adresleri hariç geçerli tüm IPv4 alt ağ aralıklarını destekler. Bu adımda, VPC4'te hub rota tablosuna aktarılacak geçerli IP aralıkları oluşturun.

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

Çakışan Alt Ağ Aralıkları Oluşturma

NCC, çakışan IP aralıklarını merkez rota tablosuna içe aktarmaz. Kullanıcılar sonraki bir adımda bu kısıtlamayı geçici olarak çözecektir. Şimdilik VPC2 ve VPC3 için çakışan iki IP aralığı oluşturun.

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

VPC Güvenlik Duvarı Kurallarını Yapılandırma

İzin verilecek her VPC'de güvenlik duvarı kurallarını yapılandırın

  • SSH
  • Dahili IAP
  • 10.0.0.0/8 aralığı
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

Her VPC'de GCE sanal makinesini yapılandırma

"vm1-vpc1-ncc" üzerine paket yüklemek için geçici internet erişimine ihtiyacınız olacaktır.

Dört sanal makine oluşturun. Her sanal makine daha önce oluşturulmuş VPC'lerden birine atanacaktır

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. Ağ Bağlantı Merkezi Merkezi

Genel Bakış

Bu bölümde, gcloud komutlarını kullanarak NCC Hub'ı yapılandıracağız. NCC Hub, her bir VPC kolu arasında yönlendirme yapılandırması oluşturmaktan sorumlu kontrol düzlemi görevi görür.

8acc7651f52e251e.png

API Hizmetlerini Etkinleştir

Henüz etkinleştirilmemişse ağ bağlantısı API'sini etkinleştirin:

gcloud services enable networkconnectivity.googleapis.com

NCC Merkezi oluştur

gcloud komutunu kullanarak NCC merkezi oluşturma

gcloud network-connectivity hubs create ncc-hub

Örnek çıkış

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]

Yeni oluşturulan NCC Hub'ı açıklayın. Adı ve ilişkili yolu not edin.

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, veri bağlantısı oluşturmaya yönelik kontrol düzlemini tanımlayan bir yönlendirme tablosu kullanıma sundu. NCC Hub'ın yönlendirme tablosunun adını bulun

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

NCC varsayılan rota tablosunun URI'sini bulun.

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'

NCC Hub'ın varsayılan yönlendirme tablosunun içeriğini listeleyin. Not* NCC Hub'ın rota tablosu, uçlar dolana kadar boş olur

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

NCC Hub'ın rota tablosu boş olmalıdır.

4. VPC Telsizleri ile NCC

Genel Bakış

Bu bölümde, gcloud komutlarını kullanarak NCC Spoke olarak üç VPC'yi yapılandıracaksınız.

a70bc80037927bb0.png

VPC'leri NCC Spoke olarak yapılandırma

Aşağıdaki VPC'leri bu sırada NCC Spoke olarak yapılandırın

  • VPC4
  • VPC1
  • VPC2
  • VPC3

VPC4'ü bir NCC kolu olarak yapılandırın ve daha önce oluşturulan NCC merkezine atayın. NCC uçlu API çağrıları için bir konum belirtilmesi gerekir. "–global" bayrağı Kullanıcının yeni bir NCC iletişim kutusu yapılandırırken tam URI yolu belirtmekten kaçınmasını sağlayarak gcloud söz dizimini basitleştirir.

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

VPC1'i NCC iletişim kutusu olarak yapılandırın.

Yöneticiler, alt ağ rotalarının bir VPC kablosundan NCC merkezinin rota tablosuna aktarılmasını engelleyebilir. Codelab'in bu bölümünde, VPC1'in alt ağının NCC Hub rota tablosuna dışa aktarılmasını önlemek için özet önekine dayalı bir dışa aktarma dışa aktarma kuralı oluşturun.

VPC1'e ait tüm alt ağları listelemek için bu gcloud komutunu kullanın.

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

Daha önce kurulum bölümünde oluşturulan /25 alt ağ çiftine dikkat edin.

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

VPC1'i NCC kolu olarak yapılandırın ve "dışa aktar-hariç tut-aralıkları" kullanarak /25 alt ağ çiftini merkez yönlendirme tablosuna aktarma işleminden hariç tutun anahtar kelimesini kullanabilirsiniz.

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 

Not* Kullanıcılar, NCC kablosu başına 16'ya kadar benzersiz IP aralığını filtreleyebilir.

NCC Hub'ın varsayılan yönlendirme tablosunun içeriğini listeleyin. NCC Hub'ın yönlendirme tablosundaki /25 alt ağ çiftine ne oldu?

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

VPC2'yi NCC iletişim kutusu olarak yapılandırma

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

VPC3'ü bir NCC kolu olarak yapılandırın ve daha önce oluşturulan NCC merkezine atayın.

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

Ne oldu?

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, VPC2 ile çakışan IP aralığı algıladı. VPC2 ve VPC3'ün aynı 10.3.3.0/24 IP alt ağıyla ayarlandığını unutmayın.

Dışa Aktarımı Hariç Tut ile Çakışan IP aralıklarını filtreleme

Bu codelab'in yazıldığı sırada kullanıcıların, dışa aktarma filtresinde yapılandırma değişiklikleri yapmak için NCC uçlarını silip yeniden oluşturması gereken bilinen bir sorun söz konusudur.

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

Not: Belirli bir VPC ile ilişkili VPC hattının silinmesi, aynı VPC'ye referans veren yeni bir kolun yeniden oluşturulması için 10 dakikalık bekleme süresinin sona ermesini gerektirir.

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

VPC3'ü bir NCC kolu olarak yapılandırın ve daha önce oluşturulan NCC merkezine atayın. VPC3'ü NCC'ye iletişim kutusu olarak ekleme girişimi başarılı olacaktır.

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

NCC Hub'ın varsayılan yönlendirme tablosunun içeriğini listeleyin ve çıkışı inceleyin.

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

VPC2 ve VPC3'teki çakışan IP aralıkları hariç tutulur. NCC Hub yönlendirme tablosu, özel olarak kullanılan genel IP adresleri (PUPI) hariç geçerli tüm IPv4 geçerli aralık türlerini destekler.

5. Projeler Arası Konuşmalar ile NCC

Genel Bakış

Şimdiye kadar Hub ile aynı projeye ait NCC uçlarını yapılandırdınız. Bu bölümde, gcloud komutlarını kullanarak NCC Hub dışında bir projeden VPC'yi NCC Spoke olarak yapılandıracaksınız.

Bu sayede kendi VPC'lerini yöneten proje sahipleri, NCC Hub ile ağ bağlantısına katılabilir.

e1190fa898c5097d.png

Projeler Arası: Google Cloud Console ve Cloud Shell

GCP ile etkileşime geçmek için bu laboratuvar boyunca hem Google Cloud Console hem de Cloud Shell'i kullanacağız.

Projeler Arası Spoke Google Cloud Konsolu

Cloud Console'a https://console.cloud.google.com adresinden erişilebilir.

Network Connectivity Center'ı yapılandırmayı kolaylaştırmak için Google Cloud'da aşağıdaki öğeleri ayarlayın:

Google Cloud Console'un proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.

Cloud Shell'i başlatın. Bu Codelab, Cloud Shell'de gcloud yapılandırması uygulamasına yardımcı olmak için $variables kullanır.

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

IAM Rolleri

NCC'nin belirli API'lere erişmek için IAM rolleri olması gerekir. Kullanıcınızı NCC IAM rolleriyle gerektiği şekilde yapılandırdığınızdan emin olun.

En azından, projeler arası uçlu yöneticisine IAM rolü verilmelidir: "networkconnectivity.networkSpokeManager. "

Aşağıdaki tabloda, referans olarak NCC Hub ve Spoke yöneticisi için gereken IAM rolü listelenmiştir.

Rol/Açıklama

İzinler

networkconnectivity.networkAdmin - Ağ yöneticilerinin hub ve uçları yönetmesine izin verir.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager - Bir hub'daki uçların eklenmesine ve yönetilmesine olanak tanır. Ana makine projesinin Hub'a sahip olduğu ancak diğer projelerdeki diğer yöneticiler, kendi ekleri için Hub'a uçlar ekleyebildiği durumlarda Paylaşılan VPC'de kullanılır.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer - Ağ kullanıcılarının, hub ve uçların farklı özelliklerini görüntülemesine izin verir.

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

Projeler Arasında VPC'leri ve Alt Ağları oluşturma

VPC ağı, veri yolu doğrulaması için GCE sanal makinesi yükleyeceğiniz alt ağları içerir

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

NCC Hub Proje URI'si

NCC Hub URI'sini bulmak için bu gcloud komutunu kullanın. Sonraki adımda projeler arası NCC uçunu yapılandırmak için URI yoluna ihtiyacınız olacaktır.

gcloud network-connectivity hubs describe ncc-hub

Projeler Arası Spoke VPC'si

VPC'nin NCC Hub projesinin parçası OLMADIĞI diğer projeye giriş yapın. Cloud Shell'de bu komutu kullanarak VPC'yi NCC kolu olarak yapılandırın.

  • HUB_URI, farklı bir projedeki bir merkezin URI'si olmalıdır.
  • VPC_URI, uçla aynı projede olmalıdır
  • VPC ağı, bu çapraz projedeki VPC'nin başka bir projedeki NCC Merkezi'ne katılacağını belirtir
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'

Projeler arası NCC iletişiminin durumu nedir? Neden?

6. Projeler Arası Konuşmayı Reddetme veya Kabul Etme

Genel Bakış

NCC Hub yöneticileri, merkeze katılmak için projeler arası konuşmayı açıkça kabul etmelidir. Bu, proje sahiplerinin NCC küresel yönlendirme tablosuna yetkisiz NCC uçları eklemesini önler. Bir uç kabul edildiğinde veya reddedildiğinde yukarıdaki komutlar çalıştırılarak istediğiniz kadar reddedilebilir veya kabul edilebilir.

Cloud Shell'e giriş yaparak NCC merkezinin bulunduğu projeye dönün.

İncelenecek Projeler Arası Konuşmaları Belirleme

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

Sohbeti kabul etme

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

İsteğe bağlı: Konuşmayı reddetme

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

Hub'da aktif konuşmaları listeleme

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

Hub'daki alt ağ rotalarını listeleme

Çıkıştan, VPC bağlantısından alt ağ rotalarını görebiliyor musunuz?

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. VPC'ler arasında özel NAT

Genel Bakış

Bu bölümde, iki VPC arasında çakışan alt ağ aralıkları için özel NAT yapılandıracaksınız. VPC'ler arasındaki gizli NAT için NCC gerektiğini unutmayın.

Önceki bölümde VPC2 ve VPC3, "10.3.3.0/24" çakışan bir alt ağ aralığıyla yapılandırılmıştır. Her iki VPC de, çakışan alt ağın NCC merkez rota tablosuna eklenmesini hariç tutmak için NCC bandı olarak yapılandırılır. Bu da, söz konusu alt ağda bulunan ana makinelere ulaşmak için 3. katman veri yolu olmadığı anlamına gelir.

Çakışan alt ağ aralıklarını bulmak için NCC merkez projesinde bu komutları kullanın.

gcloud compute networks subnets list --network vpc2-ncc

gcloud compute networks subnets list --network vpc3-ncc

vpc2-ncc'de çakışan IP aralığını içeren alt ağın adı nedir?

*Alt ağ adını bir yere kaydedin ve not edin. Bu aralık için kaynak NAT yapılandıracaksınız.

Gizli NAT'yi Yapılandırma

VPC2'nin çakışan alt ağından NAT trafiği kaynaklamak için yönlendirilebilir bir alt ağ aralığı ayırın. "–Intent=PRIVATE_NAT" kullanarak örtüşmeyen bir alt ağ aralığı yapılandırarak tıklayın.

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

Gizli NAT işlemi gerçekleştirmek için özel bir bulut yönlendiricisi oluşturun

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

Bulut yönlendiricisini, vpc2-ncc'den 10.3.3.0/24 örtüşen aralıktaki NAT kaynağını kaynaklayacak şekilde yapılandırın. Aşağıdaki örnek yapılandırmada, "overlapping-vpc3" çakışan alt ağın adıdır. "TÜMÜ" anahtar kelime, alt ağdaki tüm IP aralıklarının kaynağın NAT'li olacağını belirtir.

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

Önceki adımlarda, NAT IP aralıklarından ve çevrilecek ilgili alt ağdan oluşan bir havuz oluşturuldu. Bu adımda "1" NAT Kuralını oluşturun hedef ağ, NCC merkezi yönlendirme tablosundan bir yol alıyorsa çakışan alt ağ aralığından gelen trafikle eşleşen ağ paketlerini çevirir.

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

Gizli NAT'yi doğrulama

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

Örnek çıkış

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

İsteğe bağlı olarak,

  • Web konsoluna geç
  • "Ağ Hizmetleri > Cloud NAT > ncc2-nat"

Dinamik bağlantı noktası ayırmanın varsayılan olarak etkin olduğunu doğrulayın.

114050bb65e0c4e2.png

Şimdi, VPC2 için yapılandırılan özel NAT yolunu kullanan veri yolunu doğrulayacaksınız.

5035b181aeaa30a8.png

"vm1-vpc1-ncc" alanına bir SSH oturumu açın ve "10.10.10.0/29." NAT havuz aralığından gelen paketleri yakalamak için aşağıdaki tcpdump komutunu kullanın

vm1-vpc1-ncc

sudo tcpdump -i any net 10.10.10.0/29 -n

Bu codelab'in yazıldığı sırada özel NAT, ICMP paketlerini desteklemez. "pNat-vm-vpc2" SSH oturumunu açın ve TCP 80 bağlantı noktasında "vm1-vpc1-ncc" adresine bağlanmak için aşağıda gösterilen curl komutunu kullanın.

pnat-vm-vpc2

curl 10.1.1.2 -v 

"vm1-vpc1-ncc" tcpdump çıkışını inceleyin. "vm1-vpc1-ncc" üzerindeki web sunucumuzda TCP oturumunun başlatıldığı kaynak IP adresi nedir?

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. Veri Yolu Bağlantısını Doğrulama

Şemaya bakın ve her bir sanal makine arasındaki veri yolunu doğrulayın.

424df0ebe4510ebb.png

"vm1-vpc1-ncc" adresine SSH uygulayın ve ICMP paketlerini " kaynağından izlemek için TCP dökümünü başlatın vm2-vpc2-ncc" Bu sanal makinenin VPC2'de bulunduğunu hatırlatmak isteriz.

vm1-vpc1-ncc

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

"vm1-vpc2-ncc" ve "ping" için bir SSH oturumu oluşturun "vm1-vpc1-ncc" IP adresine sahip olmalıdır.

vm1-vpc2-ncc

ping 10.1.1.2

"vm1-vpc2-ncc" ve "ping" için bir SSH oluşturun "vm1-vpc4-ncc" IP adresine sahip olmalıdır.

vm1-vpc2-ncc

ping 240.0.0.2

9. Temizleme

Cloud Shell'e giriş yapıp merkez ile şube ağlarındaki sanal makine örneklerini silin

Gizli VPC Nat yapılandırmalarını silme

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

Ncc uçlarını silme

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

Projeler arası konuşmayı reddetme

NCC merkezinden projeler arası VPC iletişimini reddedin.

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

NCC Merkezi'ni sil

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

Güvenlik Duvarı Kurallarını Silme

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

GCE Örneklerini Silme

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

VPC Alt Ağlarını silme

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

VPC'leri silme

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

10. Tebrikler!

Network Connectivity Center Lab'i tamamladınız.

İşledikleriniz

  • NCC Hub ile yapılandırılmış Tam Mesh VPC Eşleme ağı
  • NCC Spoke Hariç Tutma Filtresi
  • Projeler Arası Spoke Desteği
  • VPC arasında özel NAT

Sonraki Adımlar

©Google, LLC veya satış ortakları. Tüm hakları saklıdır. Bu içeriği dağıtmayın.