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:
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.
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.
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.
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.
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.
Şimdi, VPC2 için yapılandırılan özel NAT yolunu kullanan veri yolunu doğrulayacaksınız.
"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.
"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.