Lab: Spoke olarak NCC VPC

1. Giriş

Genel Bakış

Bu laboratuvarda kullanıcılar, VPC Bacak desteği aracılığıyla VPC'ler arası bağlantı kurmak için Network Connectivity Center'ın(NCC) nasıl kullanılabileceğini keşfedecekler. Kullanıcılar bir VPC'yi VPC kolu olarak tanımladığında, NCC Hub üzerinden birden fazla VPC ağına bağlayabilirler. VPC iş kolu yapılandırmasına sahip NCC, merkezi bir bağlantı yönetimi modeli yerine VPC eşleme aracılığıyla VPC'ler arası ikili bağlantıyı yönetmenin operasyonel karmaşıklığını azaltır.

Network Connectivity Center'ın (NCC), Google Cloud'da ağ bağlantısı yönetimi için bir merkez ve konuşmacı kontrol düzlemi modeli olduğunu unutmayın. Merkez kaynağı, kollar arasında bağlantı kurmak için merkezi bir bağlantı yönetimi modeli sağlar.

Oluşturacağınız uygulama

Bu kod laboratuvarında, üç farklı VPC'de tamamen örgülü bir VPC bağlantısı kumaşı uygulayacak NCC merkeziyle mantıksal bir merkez ve kol topolojisi oluşturacaksınız.

Neler öğreneceksiniz?

  • NCC ile Tam Mesh VPC Bağlantısı
  • VPC'de özel NAT

Gerekenler

  • GCP VPC ağı hakkında bilgi
  • Cloud Router ve BGP yönlendirme hakkında bilgi
  • İki ayrı GCP projesi
  • Bu Codelab için 5 VPC gerekir. Bu VPC'lerden biri NCC merkezinin bulunduğu projeden ayrı bir projede olmalıdır.
  • Kota:Ağlar'ı kontrol edin ve gerekirse ek ağlar isteyin. Ekran görüntüsü aşağıda verilmiştir:

6d1b99c6da87fd84.png

Hedefler

  • GCP ortamını ayarlama
  • Ağ Bağlantısı Merkezi'ni, VPC ile konuşmalı olarak yapılandırma
  • Veri Yolunu Doğrulama
  • NCC servis edilebilirlik özelliklerini keşfedin
  • Kullanılan kaynakları temizleme

Başlamadan önce

Google Cloud Console ve Cloud Shell

GCP ile etkileşimde bulunmak için bu laboratuvar boyunca hem Google Cloud Console'u hem de Cloud Shell'i kullanacağız.

NCC Hub Projesi Google Cloud Console

Cloud Console'a https://console.cloud.google.com adresinden ulaşabilirsiniz.

Ağ Bağlantısı Merkezi'ni yapılandırmayı kolaylaştırmak için Google Cloud'da aşağıdaki öğeleri ayarlayın:

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

Cloud Shell'i başlatın. Bu Codelab'de, Cloud Shell'de gcloud yapılandırmasının uygulanmasına yardımcı olmak için $variables değişkenleri kullanılı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, belirli API'lere erişmek için IAM rolleri gerektirir. Kullanıcınızı, gerektiği gibi NCC IAM rolleriyle yapılandırdığınızdan emin olun.

Rol/Açıklama

İzinler

networkconnectivity.networkAdmin: Ağ yöneticilerinin hub'ı ve kolları yönetmesine olanak tanır.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager: Bir merkeze kola eklemenize ve bunları yönetmenize olanak tanır. Ana makine projesinin Hub'ın sahibi olduğu ancak diğer projelerdeki diğer yöneticilerin Hub'a ekleriyle ilgili bağlantılar ekleyebildiği Paylaşılan VPC'de kullanılır.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer: Ağ kullanıcılarının merkez ve kollar arasındaki farklı özellikleri görüntülemesine olanak tanır.

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 projeye dağıtacağız. Mantıksal diyagram, bu adımda ayarlanacak ağ ortamını gösterir.

Projeler arası konuşma desteğini 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şturun

VPC ağı, veri yolu doğrulaması için GCE sanal makinesini 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'nin Desteklediği Alt Ağ Aralıkları

NCC, özel olarak kullanılan genel IP adresleri hariç tüm geçerli IPv4 alt ağ aralıklarını destekler. Bu adımda, VPC4'te merkez 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ışık IP aralıklarını hub rota tablosuna aktarmaz. Kullanıcılar, sonraki bir adımda bu kısıtlamayı atlayacaktır. Şimdilik VPC2 ve VPC3 için örtüşen 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

Her VPC'deki güvenlik duvarı kurallarını izin verecek şekilde 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"ye paket yüklemek için geçici internet erişimine ihtiyacınız vardır.

Dört sanal makine oluşturun. Her sanal makine, daha önce oluşturulan VPC'lerden birine atanı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. Network Connectivity Center Merkezi

Genel Bakış

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

8acc7651f52e251e.png

API Hizmetlerini Etkinleştirme

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

gcloud services enable networkconnectivity.googleapis.com

NCC merkezi oluşturma

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'ı tanımlayı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şturmak için kontrol düzlemindeki verileri tanımlayan bir yönlendirme tablosu kullanıma sundu. NCC Hub'ın yönlendirme tablosunun adını bulma

 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, kollar eklenene 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 kolları olan NCC

Genel Bakış

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

a70bc80037927bb0.png

VPC'leri NCC Spoke olarak yapılandırma

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

  • VPC4
  • VPC1
  • VPC2
  • VPC3

VPC4'ü NCC spoke olarak yapılandırın ve daha önce oluşturulan NCC hub'ına atayın. NCC sesli API çağrıları için bir konumun belirtilmesi gerekir. "–global" işareti, kullanıcının yeni bir NCC kolunu yapılandırırken tam URI yolu belirtmesini önleyerek 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 ağı olarak yapılandırın.

Yöneticiler, alt ağ rotalarının bir VPC kolundan NCC hub'ının rota tablosuna dışa aktarılmasını hariç tutabilir. 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 ön ekine dayalı bir hariç tutma 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

Kurulum bölümünde daha önce oluşturulan /25 alt ağı çiftini not 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 ağı olarak yapılandırın ve /24 özet rotasını belirli bir aralıktan filtrelemek için "export-exclude-ranges" anahtar kelimesini kullanarak /25 alt ağ çiftinin merkez yönlendirme tablosuna aktarılmasını engelleyin.

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 ağı başına en fazla 16 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 ağı olarak yapılandırma

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

VPC3'ü NCC spoke olarak yapılandırın ve daha önce oluşturulan NCC hub'ına 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ışma yapan IP aralığı algıladı. VPC2 ve VPC3'ün aynı 10.3.3.0/24 IP alt ağı ile ayarlandığını unutmayın.

Hariç tutma dışa aktarma özelliğiyle çakışık 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 kollarını silip yeniden oluşturması gerektiği bilinen bir sorundur.

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

Not: Belirli bir VPC ile ilişkili bir VPC kolunu sildikten sonra, aynı VPC'ye referans veren yeni bir kolu yeniden oluşturmak için 10 dakikalık bir bekleme süresi sona ermelidir.

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'ü NCC spoke olarak yapılandırın ve daha önce oluşturulan NCC hub'ına atayın. VPC3'ü NCC'ye konuşmacı 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 çıktıyı inceleyin.

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

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

5. Projeler arası bağlantılara sahip NCC

Genel Bakış

Şu ana kadar, Hub ile aynı projeye ait NCC kollar yapılandırdınız. Bu bölümde, gcloud komutlarını kullanarak VPC'yi NCC Hub dışındaki ayrı bir projeden NCC Hub'ı bağlayan bir NCC Hub'ı 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şimde bulunmak için bu laboratuvar boyunca hem Google Cloud Console'u hem de Cloud Shell'i kullanacağız.

Proje Arası Konuşma Google Cloud Console

Cloud Console'a https://console.cloud.google.com adresinden ulaşabilirsiniz.

Ağ Bağlantısı Merkezi'ni yapılandırmayı kolaylaştırmak için Google Cloud'da aşağıdaki öğeleri ayarlayın:

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

Cloud Shell'i başlatın. Bu Codelab'de, Cloud Shell'de gcloud yapılandırmasının uygulanmasına yardımcı olmak için $variables değişkenleri kullanılı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, belirli API'lere erişmek için IAM rolleri gerektirir. Kullanıcınızı, gerektiği gibi NCC IAM rolleriyle yapılandırdığınızdan emin olun.

Projeler arası bağlantı yöneticisine en azından "networkconnectivity.networkSpokeManager" IAM rolü verilmelidir. "

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 kolları yönetmesine olanak tanır.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager: Bir merkeze kola eklemenize ve bunları yönetmenize olanak tanır. Ana makine projesinin Hub'ın sahibi olduğu ancak diğer projelerdeki diğer yöneticilerin Hub'a ekleriyle ilgili bağlantılar ekleyebildiği Paylaşılan VPC'de kullanılır.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer: Ağ kullanıcılarının merkez ve kollar arasındaki farklı özellikleri görüntülemesine olanak tanır.

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

Projeler arası VPC'leri ve alt ağları oluşturma

VPC ağı, veri yolu doğrulaması için GCE sanal makinesini 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. Bir sonraki adımda, projeler arası NCC konuşmasını yapılandırmak için URI yoluna ihtiyacınız olacaktır.

gcloud network-connectivity hubs describe ncc-hub

Proje Arası Bağlantı Noktası VPC

VPC'nin NCC Hub projesinin parçası OLMAYAN diğer projeye giriş yapın. Cloud Shell'de, bir VPC'yi NCC kolu olarak yapılandırmak için bu komutu kullanın.

  • HUB_URI, farklı bir projedeki bir hub'ın URI'si olmalıdır.
  • VPC_URI, konuşmayla aynı projede olmalıdır.
  • VPC-network, bu projeler arası VPC'nin başka bir projedeki NCC Hub'a 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'

NCC'nin bahsettiği projeler arası durumunu öğrenebilir miyim? Neden?

6. Projeler arası bağlantıyı reddetme veya kabul etme

Genel Bakış

NCC Hub yöneticilerinin, hub'a katılmak için projeler arası bir konuşmayı açıkça kabul etmesi gerekir. Bu, proje sahiplerinin NCC küresel yönlendirme tablosuna izinsiz NCC kolları eklemesini engeller. Bir konuşma dizesi kabul edildikten veya reddedildikten sonra, yukarıdaki komutlar çalıştırılarak istenildiği kadar reddedilebilir veya kabul edilebilir.

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

İncelenecek projeler arası bağlantı noktalarını belirleme

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

Bir konuşmayı kabul etme

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

İsteğe bağlı: Bir kolu reddetme

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

Hub'da Etkin Hub'ları 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'da alt ağ rotalarını listeleme

Çıkışta, VPC'ler arası işleyicideki 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ındaki örtüşen alt ağ aralıkları için özel NAT'yi yapılandıracaksınız. VPC'ler arasındaki özel NAT için NCC'nin gerekli olduğunu unutmayın.

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

Örtüşen alt ağ aralıklarını bulmak için NCC merkezi 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ğ adı nedir?

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

Private NAT'i yapılandırma

VPC2'nin çakışık alt ağındaki kaynak NAT trafiğine yönlendirilebilir bir alt ağ aralığı ayırın. "–purpose=PRIVATE_NAT" işaretini kullanarak çakışmayan bir alt ağ aralığı yapılandırarak.

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

Özel NAT 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

Cloud Router'ı, vpc2-ncc'den 10.3.3.0/24 çakışma aralığını kaynak NAT olarak yapılandırın. Aşağıdaki örnek yapılandırmada "overlapping-vpc3", örtüşen alt ağın adıdır. "ALL" anahtar kelimesi, alt ağdaki tüm IP aralıklarının kaynak NAT'ye sahip 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ı ve çevrilecek belirli bir alt ağ havuzu oluşturuldu. Bu adımda, hedef ağ NCC hub yönlendirme tablosundan bir yol alıyorsa örtüşen alt ağ aralığından gelen trafiğe eşleşen ağ paketlerini çeviren "1" NAT kuralı oluşturun.

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

Private NAT'i 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çme
  • "Ağ Hizmetleri > Cloud NAT > ncc2-nat" bölümüne gidin.

Dinamik bağlantı noktası ayırma özelliğinin varsayılan olarak etkin olduğunu doğrulayın.

114050bb65e0c4e2.png

Ardından, VPC2 için yapılandırılmış özel NAT yolunu kullanan veri yolunu doğrularsınız.

5035b181aeaa30a8.png

"vm1-vpc1-ncc" için bir SSH oturumu açın ve "10.10.10.0/29" NAT havuzu 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 kod laboratuvarının yazıldığı sırada özel NAT, ICMP paketlerini desteklememektedir. "pNat-vm-vpc2" için SSH oturumu oluşturun ve TCP 80 bağlantı noktasındaki "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" üzerinde tcpdump'un çıktısını inceleyin. "vm1-vpc1-ncc" adresindeki web sunucumuza TCP oturumunu başlatan 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, her sanal makine arasındaki veri yolunu doğrulayın.

424df0ebe4510ebb.png

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

vm1-vpc1-ncc

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

"vm1-vpc2-ncc" için SSH oturumu oluşturun ve "vm1-vpc1-ncc"nin IP adresini "ping"leyin.

vm1-vpc2-ncc

ping 10.1.1.2

"vm1-vpc2-ncc" ile SSH bağlantısı kurun ve "vm1-vpc4-ncc"nin IP adresini "ping"leyin.

vm1-vpc2-ncc

ping 240.0.0.2

9. Temizleme

Cloud Shell'e giriş yapın ve merkez ve şube sitesi ağlarındaki sanal makine örneklerini silin

Özel 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 kolları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ı bağlantıyı reddetme

NCC merkezinden projeler arası VPC bacağını reddedin.

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

NCC Hub'ı silme

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 laboratuvarını tamamladınız.

İşlediğiniz konular

  • NCC Hub ile yapılandırılmış tam örgü VPC eşleme ağı
  • NCC Spoke Hariç Tutma Filtresi
  • Projeler arası destek temsilcisi
  • VPC'ler arasında özel NAT

Sonraki Adımlar

©Google, LLC veya iştirakleri. Tüm hakları saklıdır. Dağıtmayın.