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:
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.
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.
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.
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.
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.
Ardından, VPC2 için yapılandırılmış özel NAT yolunu kullanan veri yolunu doğrularsınız.
"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.
"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.