Looker PSC Southbound Hybrid NEG به داخل محل،Looker PSC Southbound Hybrid NEG به داخل محل،Looker PSC Southbound Hybrid NEG به داخل محل،Looker PSC Southbound Hybrid NEG به داخل محل

۱. مقدمه

در این آزمایشگاه کد، شما یک اتصال به سمت جنوب به یک پایگاه داده postgres داخلی از طریق H-VPN با استفاده از یک متعادل‌کننده بار پروکسی tcp داخلی و گروه نقطه پایانی شبکه ترکیبی که از Looker PSC به عنوان یک مصرف‌کننده سرویس فراخوانی می‌شود، برقرار خواهید کرد.

سرویس خصوصی اتصال (Private Service Connect) قابلیتی از شبکه گوگل کلود (Google Cloud) است که به مصرف‌کنندگان اجازه می‌دهد تا به صورت خصوصی از داخل شبکه VPC خود به سرویس‌های مدیریت‌شده دسترسی داشته باشند. به طور مشابه، به تولیدکنندگان سرویس مدیریت‌شده نیز اجازه می‌دهد تا این سرویس‌ها را در شبکه‌های VPC جداگانه خود میزبانی کنند و یک اتصال خصوصی به مصرف‌کنندگان خود ارائه دهند. به عنوان مثال، وقتی از سرویس خصوصی اتصال برای دسترسی به Looker استفاده می‌کنید، شما مصرف‌کننده سرویس هستید و گوگل، همانطور که در شکل 1 برجسته شده است، تولیدکننده سرویس است.

شکل ۱.

۱۴۵ea4672c3a3b14.png

دسترسی به سمت جنوب، که با نام PSC معکوس نیز شناخته می‌شود، به مصرف‌کننده این امکان را می‌دهد که به عنوان تولیدکننده، یک سرویس منتشر شده ایجاد کند تا به Looker اجازه دسترسی به نقاط انتهایی در محل، در یک VPC، به سرویس‌های مدیریت شده و هیبرید را بدهد. اتصالات به سمت جنوب می‌توانند در هر منطقه‌ای، صرف نظر از محل استقرار Looker PSC، همانطور که در شکل 2 برجسته شده است، مستقر شوند.

شکل ۲.

259493afd914f68b.png

آنچه یاد خواهید گرفت

  • الزامات شبکه
  • ایجاد یک سرویس تولیدکننده Private Service Connect
  • ایجاد یک نقطه پایانی اتصال سرویس خصوصی در Looker
  • با استفاده از یک اتصال آزمایشی، اتصال به پایگاه داده postgres داخلی را از Looker برقرار کنید.

آنچه نیاز دارید

def88091b42bfe4d.png

۲. آنچه خواهید ساخت

شما یک شبکه تولیدکننده، looker-psc-demo، ایجاد خواهید کرد تا متعادل‌کننده بار پروکسی tcp داخلی و Hybrid NEG منتشر شده به عنوان یک سرویس از طریق Private Service Connect (PSC) را مستقر کنید. برای نمایش یک پایگاه داده در محل، یک VPC در محل را که با استفاده از HA-VPN به VPC در محل looker-psc-demo متصل است، مستقر خواهید کرد.

برای اعتبارسنجی دسترسی به سرویس تولیدکننده، اقدامات زیر را انجام خواهید داد:

  • یک نقطه پایانی PSC در Looker مرتبط با پیوست سرویس تولیدکننده ایجاد کنید
  • از کنسول Looker برای انجام اعتبارسنجی اتصال به پایگاه داده postgres در محل استفاده کنید

۳. الزامات شبکه

در زیر جزئیات الزامات شبکه برای شبکه تولیدکننده آمده است، مصرف‌کننده در این آزمایشگاه کد، نمونه Looker PSC است.

قطعات

توضیحات

VPC (مشاهده‌گر-psc-دمو)

حالت سفارشی VPC

VPC (در حال حاضر-دمو)

حالت سفارشی VPC

زیرشبکه PSC NAT

بسته‌های شبکه VPC مصرف‌کننده با استفاده از NAT مبدا (SNAT) ترجمه می‌شوند، به طوری که آدرس‌های IP مبدا اصلی آنها به آدرس‌های IP مبدا از زیرشبکه NAT در شبکه VPC تولیدکننده تبدیل می‌شوند.

زیرشبکه قانون ارسال PSC

برای اختصاص آدرس IP به متعادل‌کننده بار پروکسی TCP داخلی منطقه‌ای استفاده می‌شود.

زیرشبکه PSC NEG

برای اختصاص آدرس IP به گروه نقاط پایانی شبکه استفاده می‌شود.

زیرشبکه فقط پروکسی

به هر یک از پروکسی‌های متعادل‌کننده بار، یک آدرس IP داخلی اختصاص داده می‌شود. بسته‌هایی که از یک پروکسی به یک ماشین مجازی backend یا نقطه پایانی ارسال می‌شوند، دارای یک آدرس IP منبع از زیرشبکه فقط پروکسی هستند.

هیبرید منفی

سرویس‌های ابری داخلی و سایر سرویس‌ها مانند هر سرویس ابری دیگری در backend متعادل‌سازی بار (Cloud Load Balancing) در نظر گرفته می‌شوند. تفاوت کلیدی این است که شما از یک اتصال ترکیبی NEG برای پیکربندی نقاط انتهایی این backendها استفاده می‌کنید. نقاط انتهایی باید ترکیبات معتبری از IP:port باشند که متعادل‌کننده بار شما بتواند با استفاده از محصولات اتصال ترکیبی مانند Cloud VPN یا Cloud Interconnect به آنها دسترسی پیدا کند.

خدمات بک‌اند

یک سرویس backend به عنوان پلی بین متعادل‌کننده بار و منابع backend شما عمل می‌کند. در این آموزش، سرویس backend با Hybrid NEG مرتبط است.

روتر ابری

  • Cloud NAT برای قابلیت‌های صفحه کنترل به روترهای ابری متکی است، اما برای مدیریت نشست BGP به آن متکی نیست.
  • روتر ابری برای BGP ایجاد شده برای برقراری HA-VPN بین VPC های psc-looker-demo و on-prem-demo استفاده می‌شود.

HA-VPN

HA VPN بین شبکه‌های Google Cloud VPC . در این توپولوژی، می‌توانید دو شبکه Google Cloud VPC را با استفاده از یک دروازه HA VPN در هر شبکه به هم متصل کنید. شبکه‌های VPC می‌توانند در یک منطقه یا چندین منطقه باشند.

NAT ابری

توسط VPC نسخه آزمایشی برای خروج از اینترنت استفاده می‌شود.

۴. توپولوژی Codelab

79aeb28b38f237da.png

۵. تنظیمات و الزامات

تنظیم محیط خودتنظیم

  1. وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • نام پروژه، نام نمایشی برای شرکت‌کنندگان این پروژه است. این یک رشته کاراکتری است که توسط APIهای گوگل استفاده نمی‌شود. شما همیشه می‌توانید آن را به‌روزرسانی کنید.
  • شناسه پروژه در تمام پروژه‌های گوگل کلود منحصر به فرد است و تغییرناپذیر است (پس از تنظیم، قابل تغییر نیست). کنسول کلود به طور خودکار یک رشته منحصر به فرد تولید می‌کند؛ معمولاً برای شما مهم نیست که چه باشد. در اکثر آزمایشگاه‌های کد، باید شناسه پروژه خود را (که معمولاً با عنوان PROJECT_ID شناخته می‌شود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید، می‌توانید یک شناسه تصادفی دیگر ایجاد کنید. به عنوان یک جایگزین، می‌توانید شناسه خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. پس از این مرحله قابل تغییر نیست و در طول پروژه باقی می‌ماند.
  • برای اطلاع شما، یک مقدار سوم، شماره پروژه ، وجود دارد که برخی از APIها از آن استفاده می‌کنند. برای کسب اطلاعات بیشتر در مورد هر سه این مقادیر، به مستندات مراجعه کنید.
  1. در مرحله بعد، برای استفاده از منابع/API های ابری، باید پرداخت صورتحساب را در کنسول ابری فعال کنید . اجرای این آزمایشگاه کد هزینه زیادی نخواهد داشت، اگر اصلاً هزینه‌ای داشته باشد. برای خاموش کردن منابع به منظور جلوگیری از پرداخت صورتحساب پس از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.

شروع پوسته ابری

اگرچه می‌توان از راه دور و از طریق لپ‌تاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا می‌شود، استفاده خواهید کرد.

از کنسول گوگل کلود ، روی آیکون Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

55efc1aaa7a4d3ad.png

آماده‌سازی و اتصال به محیط فقط چند لحظه طول می‌کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

7ffe5cbb04455448.png

این ماشین مجازی با تمام ابزارهای توسعه‌ای که نیاز دارید، مجهز شده است. این ماشین مجازی یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه می‌دهد و روی فضای ابری گوگل اجرا می‌شود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود می‌بخشد. تمام کارهای شما در این آزمایشگاه کد را می‌توان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.

۶. قبل از شروع

فعال کردن APIها

در داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region

فعال کردن تمام سرویس‌های لازم:

gcloud services enable compute.googleapis.com

۷. ایجاد شبکه VPC تولیدکننده

شبکه VPC

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute networks create looker-psc-demo --subnet-mode custom

ایجاد زیرشبکه‌ها

زیرشبکه PSC به منظور ترجمه آدرس شبکه با پیوست سرویس PSC مرتبط خواهد شد.

درون Cloud Shell، زیرشبکه PSC NAT را ایجاد کنید:

gcloud compute networks subnets create producer-psc-nat-subnet --network looker-psc-demo --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

درون Cloud Shell، زیرشبکه‌ی قانون ارسال تولیدکننده را ایجاد کنید:

gcloud compute networks subnets create producer-psc-fr-subnet --network looker-psc-demo --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

درون Cloud Shell، زیرشبکه فقط پروکسی منطقه‌ای تولیدکننده را ایجاد کنید:

gcloud compute networks subnets create $region-proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=$region \
  --network=looker-psc-demo \
  --range=10.10.10.0/24

آدرس IP متعادل‌کننده بار را رزرو کنید

در داخل Cloud Shell، یک آدرس IP داخلی برای متعادل‌کننده بار رزرو کنید:

gcloud compute addresses create hybrid-neg-lb-ip \
  --region=$region \
  --subnet=producer-psc-fr-subnet

در داخل Cloud Shell، آدرس IP رزرو شده را مشاهده کنید.

gcloud compute addresses describe hybrid-neg-lb-ip \
  --region=$region | grep -i address:

خروجی مثال:

gcloud compute addresses describe hybrid-neg-lb-ip   --region=$region | grep -i address:
address: 172.16.20.2

NEG هیبریدی را تنظیم کنید

یک شبکه NEG ترکیبی ایجاد کنید و –network-endpoint-type را روی NON_GCP_PRIVATE_IP_PORT تنظیم کنید.

در داخل Cloud Shell، یک Hybrid NEG ایجاد کنید که برای دسترسی به پایگاه داده on-premium استفاده می‌شود:

gcloud compute network-endpoint-groups create on-prem-hybrid-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --network=looker-psc-demo \
    --zone=$zone

درون Cloud Shell، Hybrid NEG را با IP:Port پایگاه داده on-prem، 192.168.10.4 و پورت 5432 که در مرحله بعدی آموزش ایجاد شده است، به‌روزرسانی کنید:

gcloud compute network-endpoint-groups update on-prem-hybrid-neg \
    --add-endpoint=ip=192.168.10.4,port=5432 \
    --zone=$zone

ایجاد یک بررسی سلامت منطقه‌ای

درون Cloud Shell، یک بررسی سلامت ایجاد کنید که پورت پایگاه داده‌ی on-premium، یعنی ۵۴۳۲، را بررسی کند:

gcloud compute health-checks create tcp on-prem-5432-healthcheck \
    --region=$region \
    --port=5432

ایجاد سیاست و قوانین فایروال شبکه

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute network-firewall-policies create looker-psc-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy looker-psc-demo-policy --network looker-psc-demo --name looker-psc-demo --global-firewall-policy

قانون فایروال زیر اجازه می‌دهد ترافیک از محدوده PSC NAT Subnet به تمام نمونه‌های شبکه ارسال شود.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy looker-psc-demo-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

۸. ایجاد سرویس تولیدکننده

ایجاد کامپوننت‌های متعادل‌کننده بار

درون Cloud Shell، یک سرویس backend ایجاد کنید::

gcloud compute backend-services create producer-backend-svc --region=$region --load-balancing-scheme=INTERNAL_MANAGED --protocol=TCP --region=$region --health-checks=on-prem-5432-healthcheck --health-checks-region=$region

درون Cloud Shell، بک‌اند Hybrid NEG را به سرویس بک‌اند اضافه کنید:

gcloud compute backend-services add-backend producer-backend-svc --network-endpoint-group=on-prem-hybrid-neg --network-endpoint-group-zone=$zone --balancing-mode=CONNECTION --max-connections=100 --region=$region

در Cloud Shell، یک پروکسی TCP هدف ایجاد کنید تا درخواست‌ها را به سرویس backend خود هدایت کنید:

gcloud compute target-tcp-proxies create producer-lb-tcp-proxy \
      --backend-service=producer-backend-svc  \
      --region=$region

در سینتکس زیر، یک قانون ارسال (متعادل‌کننده بار پروکسی داخلی tcp) ایجاد کنید.

در Cloud Shell، موارد زیر را انجام دهید:

gcloud compute forwarding-rules create producer-hybrid-neg-fr \
     --load-balancing-scheme=INTERNAL_MANAGED \
     --network-tier=PREMIUM \
     --network=looker-psc-demo \
     --subnet=producer-psc-fr-subnet \
     --address=hybrid-neg-lb-ip \
     --target-tcp-proxy=producer-lb-tcp-proxy \
     --target-tcp-proxy-region=$region \
     --region=$region \
     --ports=5432

ایجاد پیوست سرویس

درون Cloud Shell، ضمیمه سرویس، onpremdatabase1-svc-attachment را ایجاد کنید:

gcloud compute service-attachments create onpremdatabase1-svc-attachment --region=$region --producer-forwarding-rule=producer-hybrid-neg-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

در مرحله بعد، پیوست سرویس ذکر شده در selfLink URI را که با پروژه‌های پیکربندی نقطه پایانی PSC در Looker شروع می‌شود، دریافت و یادداشت کنید.

selfLink: projects/<your-project-id>/regions/<your-region>/serviceAttachments/onpremdatabase1-svc-attachment

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute service-attachments describe onpremdatabase1-svc-attachment --region=$region

مثال خروجی مورد انتظار:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-09-01T16:07:51.600-07:00'
description: ''
enableProxyProtocol: false
fingerprint: cFt9rERR1iE=
id: '2549689544315850024'
kind: compute#serviceAttachment
name: onpremdatabase1-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '19348441121424360'
  low: '2549689544315850024'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-hybrid-neg-fr

در کنسول ابری، به مسیر زیر بروید:

سرویس‌های شبکه → اتصال سرویس خصوصی → سرویس‌های منتشر شده

9f436251a3ae2cc7.png

4c3e8e73d40d1238.png

۹. ایجاد یک اتصال نقطه پایانی PSC در Looker

در بخش بعدی، شما از طریق استفاده از پرچم‌های –psc-service-attachment در Cloud Shell برای یک دامنه واحد، پیوست سرویس تولیدکنندگان را با Looker Core PSC مرتبط خواهید کرد.

درون Cloud Shell، با به‌روزرسانی پارامترهای زیر برای مطابقت با محیط خود، ارتباط psc را ایجاد کنید:

  • INSTANCE_NAME: نام نمونه Looker (هسته Google Cloud) شما.
  • دامنه_۱: onprem.database1.com
  • SERVICE_ATTACHMENT_1: آدرس اینترنتی (URI) هنگام ایجاد پیوست سرویس، onpremdatabase1-svc-attachment، ثبت شد.
  • منطقه: منطقه‌ای که نمونه Looker (هسته گوگل کلود) شما در آن میزبانی می‌شود.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment  domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION

مثال:

gcloud looker instances update looker-psc-instance --psc-service-attachment domain=onprem.database1.com,attachment=projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment --region=$region

در داخل Cloud Shell، اعتبارسنجی کنید که وضعیت اتصال serviceAttachments برابر با "ACCEPTED" باشد و نام نمونه PSC Looker خود را به‌روزرسانی کنید:

gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json

مثال:

gcloud looker instances describe looker-psc-instance --region=$region --format=json

مثال:

{
  "adminSettings": {},
  "createTime": "2024-08-23T00:00:45.339063195Z",
  "customDomain": {
    "domain": "looker.cosmopup.com",
    "state": "AVAILABLE"
  },
  "encryptionConfig": {},
  "lookerVersion": "24.14.18",
  "name": "projects/$project/locations/$region/instances/looker-psc-instance",
  "platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
  "pscConfig": {
    "allowedVpcs": [
      "projects/$project/global/networks/looker-psc-demo",
      "projects/$project/global/networks/looker-shared-vpc"
    ],
    "lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/$region/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
    "serviceAttachments": [
      {
        "connectionStatus": "ACCEPTED",
        "localFqdn": "onprem.database1.com",
        "targetServiceAttachmentUri": "projects/$project/regions/$region/serviceAttachments/onpremdatabase1-svc-attachment"
      }
    ]
  },
  "pscEnabled": true,
  "state": "ACTIVE",
  "updateTime": "2024-09-01T23:15:07.426372901Z"
}

اعتبارسنجی نقطه پایانی PSC در Cloud Console

از طریق کنسول ابری می‌توانید اتصال PSC را تأیید کنید

در کنسول ابری، به مسیر زیر بروید:

مشاهده‌گر → نمونه مشاهده‌گر → جزئیات

2d4684d722d31e4b.png

993cdaf748f4c030.png

شبکه VPC آماده به کار را ایجاد کنید

شبکه VPC

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute networks create on-prem-demo --project=$project --subnet-mode=custom

ایجاد زیرشبکه پایگاه داده Postgresql

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute networks subnets create database-subnet --project=$project --range=192.168.10.0/28 --network=on-prem-demo --region=$region

در داخل Cloud Shell، یک آدرس IPv4 داخلی، که برای onprem.database1.com استفاده می‌شود، یعنی ۱۹۲.۱۶۸.۱۰.۴، رزرو کنید:

gcloud compute addresses create on-prem-database1-ip --region=$region --subnet=database-subnet --addresses 192.168.10.4

روتر ابری را برای VPC نسخه آزمایشی ایجاد کنید

در آموزش نصب بسته نرم‌افزاری، از Cloud NAT استفاده شده است زیرا نمونه ماشین مجازی آدرس IP خارجی ندارد.

درون Cloud Shell، روتر ابری مورد استفاده با Cloud NAT و HA-VPN را ایجاد کنید:

gcloud compute routers create on-prem-cr \
   --region=$region \
   --network=on-prem-demo \
   --asn=65002

درون Cloud Shell، دروازه NAT را ایجاد کنید:

gcloud compute routers nats create on-prem-nat --router=on-prem-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region $region

نمونه آزمایشی پایگاه داده را ایجاد کنید

یک نمونه از postgres-database ایجاد کنید که برای آزمایش و اعتبارسنجی اتصال به Looker استفاده خواهد شد.

درون Cloud Shell، نمونه (instance) را ایجاد کنید:

gcloud compute instances create postgres-database \
    --project=$project \
    --zone=$zone \
    --machine-type=e2-medium \
    --subnet=database-subnet \
    --no-address \
    --private-network-ip 192.168.10.4 \
    --image-family debian-12 \
    --image-project debian-cloud  \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt -y install postgresql postgresql-client postgresql-contrib -y"

ایجاد سیاست و قوانین فایروال شبکه

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute network-firewall-policies create on-prem-demo-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy on-prem-demo-policy --network on-prem-demo --name on-prem-demo --global-firewall-policy

برای اینکه به IAP اجازه دهید به ماشین‌های مجازی شما متصل شود، یک قانون فایروال ایجاد کنید که:

  • برای تمام نمونه‌های ماشین مجازی که می‌خواهید با استفاده از IAP به آنها دسترسی داشته باشید، اعمال می‌شود.
  • اجازه ورود ترافیک از محدوده IP 35.235.240.0/20 را می‌دهد. این محدوده شامل تمام آدرس‌های IP است که IAP برای ارسال TCP استفاده می‌کند.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy on-prem-demo-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22  --global-firewall-policy

قانون فایروال زیر اجازه می‌دهد ترافیک از محدوده زیرشبکه فقط پروکسی به تمام نمونه‌های شبکه ارسال شود.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy on-prem-demo-policy --description "allow traffic from proxy only subnet" --direction INGRESS --src-ip-ranges 10.10.10.0/24 --global-firewall-policy --layer4-configs=tcp

۱۰. اتصال ترکیبی

در بخش بعدی، شما یک روتر ابری ایجاد خواهید کرد که به شما امکان می‌دهد با استفاده از پروتکل دروازه مرزی (BGP) به صورت پویا مسیرها را بین ابر خصوصی مجازی (VPC) و شبکه همتا تبادل کنید.

روتر ابری می‌تواند یک جلسه BGP را از طریق یک تونل VPN ابری برای اتصال شبکه‌های شما راه‌اندازی کند. این روتر به طور خودکار محدوده آدرس‌های IP زیرشبکه جدید را یاد می‌گیرد و آنها را به شبکه همکار شما اعلام می‌کند.

در مراحل زیر، شما HA VPN را بین VPC مربوط به looker-psc-demo و VPC مربوط به on-prem-demo مستقر خواهید کرد تا اتصال Hybrid NEG را به onprem.database1.com نشان دهید.

ایجاد HA VPN GW برای looker-psc-demo

وقتی هر دروازه ایجاد می‌شود، دو آدرس IPv4 خارجی به طور خودکار اختصاص داده می‌شود، یکی برای هر رابط دروازه.

درون Cloud Shell، HA VPN GW را ایجاد کنید:

gcloud compute vpn-gateways create looker-psc-demo-vpn-gw \
   --network=looker-psc-demo \
   --region=$region

ایجاد HA VPN GW برای نسخه آزمایشی اولیه

وقتی هر دروازه ایجاد می‌شود، دو آدرس IPv4 خارجی به طور خودکار اختصاص داده می‌شود، یکی برای هر رابط دروازه.

درون Cloud Shell، HA VPN GW را ایجاد کنید:

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-demo\
   --region=$region

اعتبارسنجی ایجاد HA VPN GW

با استفاده از کنسول، به مسیر HYBRID CONNECIVITY → VPN → CLOUD VPN GATEWAYS بروید.

7f1b504616504866.png

ایجاد روتر ابری برای looker-psc-demo

درون Cloud Shell، روتر ابری را ایجاد کنید:

gcloud compute routers create looker-psc-demo-cr \
   --region=$region \
   --network=looker-psc-demo\
   --asn=65001

ایجاد تونل‌های VPN برای looker-psc-demo

شما دو تونل VPN روی هر دروازه HA VPN ایجاد خواهید کرد.

ایجاد تونل VPN0

درون Cloud Shell، tunnel0 را ایجاد کنید:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 0

ایجاد تونل VPN1

درون Cloud Shell، تونل ۱ را ایجاد کنید:

gcloud compute vpn-tunnels create looker-psc-demo-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router looker-psc-demo-cr \
    --vpn-gateway looker-psc-demo-vpn-gw \
    --interface 1

ایجاد تونل‌های VPN برای نسخه آزمایشی اولیه

شما دو تونل VPN روی هر دروازه HA VPN ایجاد خواهید کرد.

ایجاد تونل VPN0

درون Cloud Shell، tunnel0 را ایجاد کنید:

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
   --interface 0

ایجاد تونل VPN1

درون Cloud Shell، تونل ۱ را ایجاد کنید:

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway looker-psc-demo-vpn-gw \
    --region $region \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

اعتبارسنجی ایجاد تونل VPN

با استفاده از کنسول، به مسیر HYBRID CONNECIVITY → VPN → CLOUD VPN TUNNELS بروید.

c2fcb340a7614070.png

۱۱. ایجاد همسایه‌های BGP

ایجاد یک رابط BGP و peering برای looker-psc-demo

درون Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel0 \
    --region $region

درون Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region $region

درون Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface looker-psc-demo-cr \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel looker-psc-demo-tunnel1 \
    --region $region

درون Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer looker-psc-demo-cr \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region $region

ایجاد یک رابط BGP و peering برای نسخه آزمایشی اولیه

درون Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel0-to-looker-psc-demo \
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region $region

درون Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel0 \
    --interface if-tunnel1-to-looker-psc-demo \
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region $region

درون Cloud Shell، رابط BGP را ایجاد کنید:

gcloud compute routers add-interface on-prem-cr \
    --interface-name if-tunnel1-to-looker-psc-demo \
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region $region

درون Cloud Shell، همتای BGP را ایجاد کنید:

gcloud compute routers add-bgp-peer on-prem-cr \
    --peer-name bgp-looker-psc-demo-tunnel1\
    --interface if-tunnel2-to-looker-psc-demo \
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region $region

برای مشاهده جزئیات تونل VPN به Hybrid CONNECIVITY → VPN بروید.

78ab590317919bf5.png

اعتبارسنجی مسیرهای آموخته‌شده‌ی looker-psc-demo از طریق HA VPN

اکنون که تونل‌های HA VPN و جلسات BGP برقرار شده‌اند، رفتار پیش‌فرض روتر ابری، تبلیغ مسیرهای زیرشبکه است. مسیرهای آموخته‌شده looker-psc-demo را مشاهده کنید.

با استفاده از کنسول، به مسیر VPC network → VPC networks → looker-psc-demo → ROUTES → REGION → VIEW بروید.

کاربر Observe looker-psc-demo زیرشبکه پایگاه داده 192.168.10.0/28 را از VPC در حال اجرا در نسخه آزمایشی اولیه یاد گرفته است.

c11a11ed8b0491c8.png

اعتبارسنجی مسیرهای آموخته‌شده توسط VPC در نسخه آزمایشی اولیه از طریق HA VPN

از آنجایی که رفتار پیش‌فرض روتر ابری، تبلیغ همه زیرشبکه‌ها است، زیرشبکه فقط پروکسی از طریق BGP تبلیغ می‌شود. Hybrid NEG هنگام ارتباط با سرور onprem.database1.com از زیرشبکه فقط پروکسی به عنوان آدرس منبع استفاده می‌کند.

کاربر Observe در نسخه آزمایشی خود، زیرشبکه فقط-پروکسی ۱۰.۱۰.۱۰.۰/۲۴ را از looker-psc-demo یاد گرفته است.

با استفاده از کنسول، به مسیر VPC network → VPC networks → on-prem-demo → ROUTES → REGION → VIEW بروید.

b0073faed026931f.png

۱۲. ایجاد پایگاه داده‌ی Looker postgres

در بخش بعدی، با استفاده از Cloud Shell، یک SSH به ماشین مجازی postgres-database اجرا خواهید کرد.

درون Cloud Shell، یک ssh به نمونه postgres-database اجرا کنید**:**

 gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

در داخل سیستم عامل، آدرس IP (ens4) نمونه postgres-database را شناسایی و یادداشت کنید:

ip a

مثال:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:04 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 192.168.10.4/32 metric 100 scope global dynamic ens4
       valid_lft 66779sec preferred_lft 66779sec
    inet6 fe80::4001:c0ff:fea8:a04/64 scope link 
       valid_lft forever preferred_lft forever

در داخل سیستم عامل، وارد postgresql شوید:

sudo -u postgres psql postgres

در داخل سیستم عامل، رمز عبور را وارد کنید:

\password postgres

در داخل سیستم عامل، رمز عبور را postgres تنظیم کنید (دو بار رمز عبور یکسان را وارد کنید):

postgres

مثال:

user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres": 
Enter it again: 

داخل سیستم عامل، از postgres خارج شوید:

\q

مثال:

postgres=# \q
user@postgres-database:~$ 

در بخش بعدی، آدرس IP مربوط به نمونه پایگاه داده postgres (192.168.10.4) و زیرشبکه فقط پروکسی (10.10.10.0/24) را در فایل pg_hba.conf در زیر اتصالات محلی IPv4 وارد خواهید کرد.

sudo nano /etc/postgresql/15/main/pg_hba.conf

تصویر زیر، به‌روزرسانی تکمیل‌شده را نشان می‌دهد: eaff2ed6d27fa7cc.png

در بخش زیر، فایل postgresql.conf را از حالت کامنت خارج کنید تا مطابق تصویر زیر، تمام آدرس‌های IP با پسوند '*' را شنود کند:

sudo nano /etc/postgresql/15/main/postgresql.conf

قبل از:

65e0b1074dc48644.png

بعد از:

۱۴a0d1fa5455e23e.png

در داخل سیستم عامل، سرویس postgresql را مجدداً راه اندازی کنید:

sudo service postgresql restart

در داخل سیستم عامل، وضعیت postgresql را به عنوان فعال تأیید کنید:

sudo service postgresql status

مثال:

در داخل سیستم عامل، وضعیت postgresql را به عنوان فعال تأیید کنید:

user@postgres-database:/$ sudo service postgresql status
 postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
     Active: active (exited) since Mon 2024-09-02 12:10:10 UTC; 1min 46s ago
    Process: 20486 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 20486 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Sep 02 12:10:10 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Sep 02 12:10:10 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.

۱۳. ایجاد پایگاه داده postgres

در بخش بعدی، یک پایگاه داده postgres با نام postgres_looker و طرحواره looker_schema ایجاد خواهید کرد که برای اعتبارسنجی اتصال looker به محل استفاده می‌شود.

در داخل سیستم عامل، وارد postgres شوید:

sudo -u postgres psql postgres

در داخل سیستم عامل، پایگاه داده را ایجاد کنید:

create database postgres_looker;

درون سیستم عامل، پایگاه داده را فهرست کنید:

\l

در داخل سیستم عامل، کاربر postgres_looker را با رمز عبور postgreslooker ایجاد کنید:

create user postgres_looker with password 'postgreslooker';

داخل سیستم عامل، به پایگاه داده متصل شوید:

\c postgres_looker;

در داخل سیستم عامل، طرحواره looker-schema را ایجاد کنید و از خط فرمان Cloud Shell خارج شوید.

create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit

Exit from the OS, returning you to cloud shell:

\q

مثال:

user@postgres-database:/$ sudo -u postgres psql postgres
psql (15.8 (Debian 15.8-0+deb12u1))
Type "help" for help.

postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
                                                List of databases
      Name       |  Owner   | Encoding | Collate |  Ctype  | ICU Locale | Locale Provider |   Access privileges   
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
 postgres        | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 postgres_looker | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | 
 template0       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
 template1       | postgres | UTF8     | C.UTF-8 | C.UTF-8 |            | libc            | =c/postgres          +
                 |          |          |         |         |            |                 | postgres=CTc/postgres
(4 rows)

postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
CREATE SCHEMA
CREATE TABLE
postgres_looker-# \q

۱۴. ادغام Looker با پایگاه داده postgres در Postgres

در بخش بعدی از کنسول Looker برای ایجاد یک اتصال پایگاه داده به نمونه داخلی postgres-database استفاده خواهید کرد.

به بخش مدیریت → پایگاه داده → اتصالات بروید و گزینه افزودن اتصال را انتخاب کنید.

جزئیات اتصال را مطابق تصویر زیر پر کنید، CONNECT را انتخاب کنید

5900fdf0b698cbfc.png

اتصال اکنون پیکربندی شده است

4817157fd3b1277e.png

۱۵. اعتبارسنجی اتصال Looker

در بخش بعدی یاد خواهید گرفت که چگونه اتصال Looker به پایگاه داده postgres را در on-prem-vpc با استفاده از اکشن 'test' Looker و TCPDUMP اعتبارسنجی کنید.

اگر مهلت زمانی جلسه به پایان رسیده است، از Cloud Shell وارد پایگاه داده postgres شوید.

درون Cloud Shell، موارد زیر را انجام دهید:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
zone=[YOUR-ZONE]
echo $project
echo $region
gcloud compute ssh --zone "$zone" "postgres-database" --project "$project"

از طریق سیستم عامل، یک فیلتر TCPDUMP با زیرشبکه فقط پروکسی 10.10.10.0/24 ایجاد کنید.

sudo tcpdump -i any net 10.10.10.0/24 -nn

به مسیر اتصال داده بروید: مدیر → پایگاه داده → اتصالات → پایگاه داده postgres → تست

پس از انتخاب Test، Looker مطابق شکل زیر به پایگاه داده postgres متصل می‌شود:

774f9313ece41034.png

تمیز کردن

از یک ترمینال Cloud Shell، اجزای آزمایشگاه را حذف کنید

gcloud compute service-attachments delete onpremdatabase1-svc-attachment --region=$region -q

gcloud compute forwarding-rules delete producer-hybrid-neg-fr --region=$region -q

gcloud compute target-tcp-proxies delete producer-lb-tcp-proxy --region=$region -q

gcloud compute backend-services delete producer-backend-svc --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy looker-psc-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=looker-psc-demo-policy  --name=looker-psc-demo --global-firewall-policy -q

gcloud compute network-firewall-policies delete looker-psc-demo-policy --global -q

gcloud compute routers nats delete on-prem-nat --router=on-prem-cr --router-region=$region -q

gcloud compute network-endpoint-groups delete on-prem-hybrid-neg --zone=$zone -q

gcloud compute addresses delete hybrid-neg-lb-ip --region=$region -q

gcloud compute vpn-tunnels delete looker-psc-demo-tunnel0 looker-psc-demo-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=$region -q

gcloud compute vpn-gateways delete looker-psc-demo-vpn-gw on-prem-vpn-gw --region=$region -q

gcloud compute routers delete looker-psc-demo-cr on-prem-cr --region=$region -q

gcloud compute instances delete postgres-database --zone=$zone -q

gcloud compute addresses delete on-prem-database1-ip --region=$region -q

gcloud compute networks subnets delete database-subnet --region=$region -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy on-prem-demo-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=on-prem-demo-policy  --name=on-prem-demo --global-firewall-policy -q

gcloud compute networks subnets delete $region-proxy-only-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-psc-fr-subnet --region=$region -q

gcloud compute networks delete on-prem-demo -q

gcloud compute networks delete looker-psc-demo -q

۱۶. تبریک

تبریک می‌گوییم، شما با موفقیت اتصال به پایگاه داده داخلی را از طریق HA-VPN با استفاده از Looker Console که توسط Private Service Connect پشتیبانی می‌شود، پیکربندی و تأیید کردید.

شما زیرساخت تولیدکننده را ایجاد کردید، یاد گرفتید که چگونه یک نقطه پایانی Hybrid NEG، سرویس تولیدکننده و Looker PSC ایجاد کنید که امکان اتصال به سرویس تولیدکننده را فراهم می‌کند.

کازموپاپ فکر می‌کند که کدلب‌ها فوق‌العاده هستند!!

c911c127bffdee57.jpeg

بعدش چی؟

به برخی از این آزمایشگاه‌های کد نگاهی بیندازید...

مطالعه بیشتر و ویدیوها

اسناد مرجع