1. परिचय
Looker (Google Cloud Core) की मदद से, Google Cloud Console की मदद से Looker इंस्टेंस को आसान और बेहतर तरीके से प्रावधान किया जा सकता है, कॉन्फ़िगर किया जा सकता है, और मैनेज किया जा सकता है. कुछ मामलों में, कंसोल से एडमिन के तौर पर किए जाने वाले काम भी किए जा सकते हैं.
Looker (Google Cloud Core) के इंस्टेंस के लिए, तीन नेटवर्क कॉन्फ़िगरेशन उपलब्ध हैं:
- सार्वजनिक: इंटरनेट कनेक्शन, ऐसे आईपी पते का इस्तेमाल करता है जिसे इंटरनेट से ऐक्सेस किया जा सकता हो.
- निजी: इंटरनेट कनेक्शन, Google के होस्ट किए गए वर्चुअल प्राइवेट क्लाउड (VPC) आईपी पते का इस्तेमाल करता है.
- सार्वजनिक और निजी: नेटवर्क कनेक्शन, सार्वजनिक आईपी पते और निजी आईपी पते, दोनों का इस्तेमाल करता है. इसमें आने वाले ट्रैफ़िक को सार्वजनिक आईपी से और बाहर जाने वाले ट्रैफ़िक को निजी आईपी से रूट किया जाता है.
इस ट्यूटोरियल में, आपने निजी नेटवर्क को डिप्लॉय किया है, ताकि एचए वीपीएन के बजाय, अपनी कंपनी की इमारत में Looker कनेक्टिविटी के साथ काम किया जा सके. इसकी कॉपी, मल्टी क्लाउड और ऑन-प्रिमाइसेस कनेक्टिविटी की आपकी ज़रूरतों के हिसाब से बनाई जा सकती है.
Looker (Google Cloud Core), निजी आईपी के साथ उन इंस्टेंस के लिए काम करता है जो नीचे दी गई शर्तें पूरी करते हैं:
- इंस्टेंस वर्शन 'एंटरप्राइज़' या 'एम्बेड करें' वाले होने चाहिए.
आपको क्या बनाना होगा
इस ट्यूटोरियल में, एक ऐसे स्टैंडअलोन VPC में ज़्यादा निजी Looker नेटवर्क डिप्लॉयमेंट बनाने की जानकारी दी गई है जिसमें मल्टी क्लाउड और कंपनी की इमारत में हाइब्रिड कनेक्टिविटी की सुविधा होती है.
आपको कंपनी की इमारत में एनवायरमेंट दिखाने के लिए, on-prem-vpc
नाम का VPC नेटवर्क सेट अप करना होगा. डिप्लॉयमेंट में, आपकी कंपनी की इमारत में मौजूद डेटा सेंटर या क्लाउड सेवा देने वाली कंपनी को हाइब्रिड नेटवर्किंग की सुविधा दी जाएगी. इसके बजाय, कंपनी की इमारत में vpc मौजूद नहीं होगा.
नीचे ट्यूटोरियल के मुख्य चरण दिए गए हैं
- us-central1 में स्टैंडअलोन VPC बनाना
- निजी सेवा ऐक्सेस के लिए आईपी सबनेट असाइन करना
- Looker इंस्टेंस को अलग VPC में डिप्लॉय करना
- कंपनी की इमारत में Vpc और हाइब्रिड नेटवर्किंग बनाएं
- BGP पर Looker आईपी रेंज का विज्ञापन दें और उसकी पुष्टि करें
- Looker और Postgresql के डेटा कम्यूनिकेशन को इंटिग्रेट करके उनकी पुष्टि करें
Figure1
आप इन चीज़ों के बारे में जानेंगे
- VPC और उससे जुड़ी हाइब्रिड नेटवर्किंग बनाने का तरीका
- Looker को स्टैंडअलोन वीपीसी में डिप्लॉय करने का तरीका
- कंपनी की इमारत में वीपीसी और उससे जुड़ी हाइब्रिड नेटवर्किंग की सुविधा कैसे बनाएं
- एचए वीपीएन के बजाय, कंपनी की इमारत को Analytics-वीपीएस से कनेक्ट करें
- हाइब्रिड नेटवर्किंग के बजाय Looker सबनेट का विज्ञापन दिखाने का तरीका
- हाइब्रिड नेटवर्किंग इन्फ़्रास्ट्रक्चर को मॉनिटर करने का तरीका
- Looker Cloud Core के साथ Postgresql के डेटाबेस को इंटिग्रेट करने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud प्रोजेक्ट
आईएएम की अनुमतियां
2. शुरू करने से पहले
ट्यूटोरियल की मदद करने के लिए, प्रोजेक्ट अपडेट करना
यह ट्यूटोरियल, Cloud Shell में gcloud कॉन्फ़िगरेशन लागू करने में मदद करने के लिए $variables का इस्तेमाल करता है.
Cloud Shell के अंदर, यह तरीका अपनाएं:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. VPC सेटअप
Analytics-vpc बनाएं
Cloud Shell के अंदर, यह तरीका अपनाएं:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
ऑन-प्रीम-वीपीसी बनाना
Cloud Shell के अंदर, यह तरीका अपनाएं:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Postgresql डेटाबेस सबनेट बनाएं
Cloud Shell के अंदर, यह तरीका अपनाएं:
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
Cloud राऊटर और NAT का कॉन्फ़िगरेशन
Cloud NAT का इस्तेमाल सॉफ़्टवेयर पैकेज इंस्टॉल करने के लिए ट्यूटोरियल में किया जाता है, क्योंकि डेटाबेस वीएम इंस्टेंस में कोई बाहरी आईपी पता नहीं होता है.
Cloud Shell के अंदर, Cloud राऊटर बनाएं.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
Cloud Shell के अंदर, NAT गेटवे बनाएं.
gcloud compute routers nats create on-prem-nat-us-central1 --router=on-prem-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
डेटाबेस टेस्ट इंस्टेंस बनाना
ऐसा पोस्टग्रेस-डेटाबेस इंस्टेंस बनाएं जिसका इस्तेमाल Looker से कनेक्टिविटी की जांच करने और उसकी पुष्टि करने के लिए किया जाएगा.
Cloud Shell के अंदर, इंस्टेंस बनाएं.
gcloud compute instances create postgres-database \
--project=$projectid \
--zone=us-central1-a \
--machine-type=e2-medium \
--subnet=database-subnet-us-central1 \
--no-address \
--image=projects/ubuntu-os-cloud/global/images/ubuntu-2304-lunar-amd64-v20230621 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
फ़ायरवॉल के नियम बनाएं
आईएपी को अपने वीएम इंस्टेंस से कनेक्ट करने की अनुमति देने के लिए, फ़ायरवॉल का नियम बनाएं:
- यह उन सभी वीएम इंस्टेंस पर लागू होता है जिन्हें आपको आईएपी का इस्तेमाल करके ऐक्सेस करना है.
- आईपी रेंज 35.235.240.0/20 से, इन्ग्रेस डेटा ट्रैफ़िक की अनुमति देता है. इस रेंज में वे सभी आईपी पते शामिल होते हैं जिनका इस्तेमाल आईएपी, टीसीपी फ़ॉरवर्ड करने के लिए करता है.
Cloud Shell से
gcloud compute firewall-rules create on-prem-ssh \
--network on-prem-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
4. निजी सेवा का ऐक्सेस
निजी सेवाओं का ऐक्सेस, आपके VPC नेटवर्क और Google या तीसरे पक्ष के मालिकाना हक वाले नेटवर्क के बीच एक निजी कनेक्शन होता है. Google या तीसरे पक्ष की कंपनियां, सेवाएं देने वाली इकाइयों को सेवा प्रोड्यूसर भी कहा जाता है. Looker Cloud Core, सेवा देने वाली कंपनी है.
निजी कनेक्शन, आपके VPC नेटवर्क में वीएम इंस्टेंस को चालू करता है. साथ ही, यह उन सेवाओं को भी चालू करता है जिन्हें ऐक्सेस करने पर, खास तौर पर इंटरनल आईपी पतों का इस्तेमाल करके कम्यूनिकेट किया जाता है.
बड़े लेवल पर, निजी सेवाओं का ऐक्सेस इस्तेमाल करने के लिए, आपको VPC नेटवर्क में आईपी पता रेंज (सीआईडीआर ब्लॉक) असाइन करना होगा. इसके बाद, सेवा प्रोड्यूसर से एक निजी कनेक्शन बनाना होगा.
सेवाओं के लिए आईपी पते की सीमा तय करना
निजी कनेक्शन बनाने से पहले, आपको आईपीवी4 पते की रेंज तय करनी होगी, ताकि सेवा प्रोड्यूसर के VPC नेटवर्क का इस्तेमाल किया जा सके. इससे यह पक्का होता है कि आपके VPC नेटवर्क और सेवा प्रोड्यूसर के नेटवर्क के बीच कोई आईपी पता एक जैसा नहीं है.
VPC नेटवर्क में कोई रेंज तय करने पर, उस रेंज को कस्टम स्टैटिक रूट के सबनेट और डेस्टिनेशन (प्राइमरी और सेकंडरी रेंज) के लिए अनुमति नहीं मिलती.
निजी सेवाओं के ऐक्सेस के साथ आईपीवी6 पता रेंज का इस्तेमाल नहीं किया जा सकता.
Google Cloud Console में, अपने प्रोजेक्ट के लिए Service Networking API को चालू करें. ऐसा हो सकता है कि एपीआई को चालू करते समय, आपको कंसोल पेज को रीफ़्रेश करके इस बात की पुष्टि करनी पड़े कि एपीआई चालू हो गया है.
आईपी ऐलोकेशन सेट करना
पते की सीमा और प्रीफ़िक्स की लंबाई (सबनेट मास्क) तय करने के लिए, पतों और प्रीफ़िक्स की लंबाई वाले फ़्लैग का इस्तेमाल करें. उदाहरण के लिए, सीआईडीआर ब्लॉक 192.168.0.0/22 को बांटने के लिए, पते के लिए 192.168.0.0 और प्रीफ़िक्स की लंबाई के लिए 22 तय करें.
Cloud Shell में, Looker के लिए आईपी पता तय करें.
gcloud compute addresses create psa-range-looker \
--global \
--purpose=VPC_PEERING \
--addresses=192.168.0.0 \
--prefix-length=22 \
--description="psa range for looker" \
--network=analytics-vpc
Cloud Shell में, आईपी ऐलोकेशन की पुष्टि करें.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
उदाहरण:
userl@cloudshell$ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
NAME: psa-range-looker
ADDRESS/RANGE: 192.168.0.0/22
TYPE: INTERNAL
PURPOSE: VPC_PEERING
NETWORK: analytics-vpc
REGION:
SUBNET:
STATUS: RESERVED
निजी कनेक्शन बनाएं
तय की गई रेंज बनाने के बाद, सर्विस प्रोड्यूसर Looker Cloud Core के साथ निजी कनेक्शन बनाया जा सकता है. Looker इंस्टेंस बनने के बाद, निजी कनेक्शन आपके VPC नेटवर्क और सेवा प्रोड्यूसर के नेटवर्क के बीच VPC नेटवर्क पीयरिंग कनेक्शन बनाता है.
निजी कनेक्शन, आपके VPC नेटवर्क और सेवा प्रोड्यूसर के बीच वन-टू-वन संबंध होते हैं. अगर सेवा देने वाला एक प्रोड्यूसर कई सेवाएं देती है, तो आपको प्रोड्यूसर की सभी सेवाओं के लिए सिर्फ़ एक निजी कनेक्शन की ज़रूरत होगी.
एक से ज़्यादा सर्विस प्रोड्यूसर से कनेक्ट करने पर, हर प्रोड्यूसर के लिए अलग ऐलोकेशन का इस्तेमाल करें. यह तरीका हर सेवा प्रोड्यूसर के लिए, रूट और फ़ायरवॉल के नियमों जैसी नेटवर्क सेटिंग को मैनेज करने में आपकी मदद करता है.
Cloud Shell के अंदर, निजी कनेक्शन बनाएं और ऑपरेशन का नाम नोट कर लें.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
उदाहरण:
user@cloudshell$ gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
Cloud Shell के अंदर, देखें कि कार्रवाई पूरी हुई या नहीं. OPERATION_NAME को पिछले चरण में जनरेट किए गए नाम से बदलें.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
उदाहरण:
user@cloudshell$ gcloud services vpc-peerings operations describe \
--name=operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
5. Looker (Google Cloud Core) इंस्टेंस बनाना
शुरू करने से पहले
Google Cloud Console में, अपने प्रोजेक्ट के लिए Looker API को चालू करें. एपीआई को चालू करते समय, हो सकता है कि आपको कंसोल पेज को रीफ़्रेश करके इस बात की पुष्टि करनी पड़े कि एपीआई चालू हो गया है.
इंस्टेंस की पुष्टि करने और उसे ऐक्सेस करने के लिए, OAuth क्लाइंट सेट अप करें.
यहां दिए गए सेक्शन में, Looker इंस्टेंस बनाने के लिए, आपको OAuth क्लाइंट आईडी और सीक्रेट का इस्तेमाल करना होगा.
अनुमति वाले JavaScript ऑरिजिन और रीडायरेक्ट यूआरआई की ज़रूरत नहीं है.
Cloud Console में दिए गए स्क्रीनशॉट के आधार पर, एक इंस्टेंस बनाएं.
LOOKER → INSTANCE बनाएं पर जाएं
पहले बनाए गए OAuth क्लाइंट आईडी और सीक्रेट को भरें.
बनाएं को चुनें
इंस्टेंस बनाने के दौरान, आपको कंसोल में इंस्टेंस पेज पर रीडायरेक्ट किया जाएगा. अपने नए इंस्टेंस का स्टेटस देखने के लिए, आपको पेज को रीफ़्रेश करना पड़ सकता है. Google Cloud कंसोल के मेन्यू में सूचना आइकॉन पर क्लिक करके, इंस्टेंस बनाने से जुड़ी गतिविधि देखी जा सकती है. आपका इंस्टेंस बनने के दौरान, Google Cloud Console के मेन्यू में सूचना आइकॉन के चारों ओर लोड होने वाला आइकॉन दिखेगा.
Looker इंस्टेंस बनने के बाद, एक इंस्टेंस यूआरएल जनरेट होता है. यूआरएल को नोट कर लें.
6. OAuth 2.0 क्लाइंट आईडी को अपडेट करना
नीचे दिए गए सेक्शन में, आपको इंस्टेंस यूआरएल में /oauth2callback
जोड़कर, पहले बनाए गए OAuth क्लाइंट आईडी अनुमति वाले रीडायरेक्ट यूआरआई को अपडेट करना होगा.
इसके बाद, इंस्टेंस यूआरएल का इस्तेमाल करके Looker यूज़र इंटरफ़ेस (यूआई) में लॉग इन करें.
Cloud Console में, एपीआई और सेवाएं → क्रेडेंशियल
अपना Oauth 2.0 क्लाइंट आईडी चुनें और अपना इंस्टेंस यूआरएल अपडेट करें. इसका उदाहरण नीचे दिया गया है:
7. Looker ऐक्सेस की पुष्टि करें
Cloud Console में, Looker पर जाएं और अपने इंस्टेंस यूआरएल को चुनें. इससे Looker यूज़र इंटरफ़ेस (यूआई) खुलेगा.
लॉन्च करने के बाद, आपको नीचे दिए गए स्क्रीनशॉट में लैंडिंग पेज दिखेगा. इससे Looker Cloud Core के ऐक्सेस की पुष्टि की जा सकेगी.
8. हाइब्रिड कनेक्टिविटी
नीचे दिए गए सेक्शन में, एक क्लाउड राऊटर बनाया जाएगा. इसकी मदद से, बॉर्डर गेटवे प्रोटोकॉल (बीजीपी) का इस्तेमाल करके, अपने वर्चुअल प्राइवेट क्लाउड (वीपीसी) और मिलते-जुलते ऐप्लिकेशन के नेटवर्क के बीच, डाइनैमिक तरीके से रूट शेयर करने की सुविधा मिलेगी.
Cloud राऊटर में आपके नेटवर्क को कनेक्ट करने के लिए, Cloud VPN टनल पर बीजीपी सेशन सेट अप किया जा सकता है. यह नए सबनेट आईपी पते की रेंज को अपने-आप पहचानकर, आपके मिलते-जुलते ऐप्लिकेशन को उनके बारे में बताता है.
ट्यूटोरियल में, Looker पर निजी कनेक्टिविटी के बारे में जानकारी देने के लिए, analytics-vpc और on-prem-vpc के बीच एचए वीपीएन को डिप्लॉय किया जाएगा.
analytics-vpc के लिए HA VPN GW बनाएं
हर गेटवे बन जाने पर, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इसका मतलब है कि हर गेटवे इंटरफ़ेस के लिए एक पता. इन आईपी पतों को नोट कर लें, ताकि इन्हें बाद में कॉन्फ़िगरेशन के चरणों में इस्तेमाल किया जा सके.
Cloud Shell के अंदर, HA VPN GW बनाएं
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
on-prem-vpc के लिए HA VPN GW बनाएं
हर गेटवे बन जाने पर, दो बाहरी IPv4 पते अपने-आप असाइन हो जाते हैं. इसका मतलब है कि हर गेटवे इंटरफ़ेस के लिए एक पता. इन आईपी पतों को नोट कर लें, ताकि इन्हें बाद में कॉन्फ़िगरेशन के चरणों में इस्तेमाल किया जा सके.
Cloud Shell के अंदर, HA VPN GW बनाएं.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
HA VPN GW बनाने की पुष्टि करना
कंसोल का इस्तेमाल करके, HYBRID कनेक्टिविटी → वीपीएन → इसकी मदद से क्लाउड वीपीएन GATEWAYS पर जाएं.
analytics-vpc के लिए क्लाउड राऊटर बनाएं
Cloud Shell के अंदर, us-central1 में मौजूद Cloud राऊटर बनाएं
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
कंपनी की इमारत के लिए क्लाउड राऊटर बनाएं
Cloud Shell के अंदर, us-central1 में मौजूद Cloud राऊटर बनाएं
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Analytics-vpc के लिए वीपीएन टनल बनाना
आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.
VPN टनल0 बनाएं
Cloud Shell के अंदर, टनल बनाएं0:
gcloud compute vpn-tunnels create analytics-vpc-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 0
वीपीएन टनल1 बनाएं
Cloud Shell के अंदर, टनल बनाएं1:
gcloud compute vpn-tunnels create analytics-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 1
ऑन-प्रीम-वीपीसी के लिए वीपीएन टनल बनाना
आपको हर एचए वीपीएन गेटवे पर दो वीपीएन टनल बनाने होंगे.
VPN टनल0 बनाएं
Cloud Shell के अंदर, टनल बनाएं0:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 0
वीपीएन टनल1 बनाएं
Cloud Shell के अंदर, टनल बनाएं1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
वीपीएन टनल बनाने की पुष्टि करें
कंसोल का इस्तेमाल करके, HYBRID ConnectIVITY → VPN → इसकी आवाज़ के साथ वीपीएन इस्तेमाल करने वाले टूल पर जाएं.
9. BGP के आस-पास के लोगों को तैयार करें
बीजीपी सेशन बनाना
इस सेक्शन में, Cloud Router इंटरफ़ेस और BGP पीयर को कॉन्फ़िगर किया जाता है.
Analytics-vpc के लिए पीयरिंग और BGP इंटरफ़ेस बनाना
Cloud Shell के अंदर, BGP इंटरफ़ेस बनाएं:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel0 \
--region us-central1
Cloud Shell के अंदर, BGP पीयर बनाएं:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1
Cloud Shell के अंदर, BGP इंटरफ़ेस बनाएं:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel1 \
--region us-central1
Cloud Shell के अंदर, BGP पीयर बनाएं:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1
BGP इंटरफ़ेस बनाएं और कंपनी की इमारत के लिए पीयरिंग करें
Cloud Shell के अंदर, BGP इंटरफ़ेस बनाएं:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel0-to-analytics-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region us-central1
Cloud Shell के अंदर, BGP पीयर बनाएं:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel0 \
--interface if-tunnel1-to-analytics-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1
Cloud Shell के अंदर, BGP इंटरफ़ेस बनाएं:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel1-to-analytics-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region us-central1
Cloud Shell के अंदर, BGP पीयर बनाएं:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel1\
--interface if-tunnel2-to-analytics-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1
वीपीएन टनल की जानकारी देखने के लिए, हाइब्रिड कनेक्टिविटी → वीपीएन पर जाएं.
एचए वीपीएन पर, Analytics-vpc के सीखे गए रूट की पुष्टि करें
एचए वीपीएन टनल और बीजीपी सेशन पहले से ही सेट हो चुके हैं. इसलिए, वीडियो की ऑन-प्रेम-वीपीसी से रूट करने के लिए, Analytics-vPC से डेटा इकट्ठा किया जाता है. कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → analytics-vpc → ROUTES → Region → us-central1 → VIEW पर जाएं
देखें कि analytics-vpc ने on-prem-vpc Database-subnet-us-central1 172.16.10.0/27 से रूट सीखे हैं
पुष्टि करना कि एचए वीपीएन की मदद से, कंपनी की इमारत वीपीसी ने रूट नहीं सीखे
analytics-vpc में सबनेट नहीं होता, इसलिए Cloud राऊटर, कंपनी की इमारत पर किसी भी सबनेट का विज्ञापन नहीं करेगा . कंसोल का इस्तेमाल करके, VPC नेटवर्क → VPC नेटवर्क → on-prem-vpc → ROUTES → region → us-central1 → VIEW पर जाएं
10. Looker सबनेट को कंपनी की इमारत में दिखाएं
Analytics-cr-us-central1 क्लाउड राऊटर से Looker प्राइवेट सर्विस ऐक्सेस (पीएसए) सबनेट का विज्ञापन अपने-आप नहीं दिखाया जाता, क्योंकि सबनेट को पीएसए के लिए असाइन किया जाता है, न कि VPC को.
आपको पीएसए सबनेट 192.168.0.0/22 (psa-range-looker) के लिए, analytics-cr-central1 से पसंद के मुताबिक रूट विज्ञापन बनाना होगा. इसका विज्ञापन कंपनी की इमारत में होगा और इसका इस्तेमाल Looker को ऐक्सेस करने के लिए किया जाएगा.
कंसोल से, HYBRID कनेक्टिविटी → क्लाउड रूटिंग → analytics-cr-us-central1 पर जाएं. इसके बाद, बदलाव करें को चुनें.
विज्ञापन वाले रूट सेक्शन में, कस्टम रूट बनाएं विकल्प चुनें. इसके बाद, नीचे दिए गए उदाहरण के आधार पर फ़ील्ड अपडेट करें. इसके बाद, हो गया चुनें और सेव करें पर क्लिक करें.
11. पुष्टि करना कि कंपनी की इमारत के vpc ने Looker सबनेट को समझ लिया है
अब Looker पीएसए सबनेट को कस्टम रूट विज्ञापन के तौर पर analytics-cr-us-central1 से विज्ञापन दिया गया है.
कंसोल का इस्तेमाल करके, VPC NETWORK → VPC NETWORKS → on-prem-vpc → ROUTES → Region → us-central1 → VIEW पर जाएं
analytics-vpc की मदद से विज्ञापन में दिखाए गए Looker रूट को देखें:
12. मौजूदा VPC पीयरिंग की पुष्टि करें
Looker Cloud Core और analytics-vpc के बीच कनेक्शन, VPC पीयरिंग के ज़रिए होता है. इससे BGP के ज़रिए सीखे गए कस्टम रूट को एक्सचेंज किया जा सकता है. ट्यूटोरियल में, analytics-vpc को उन रूट को Looker पर पब्लिश करना होगा जिनके बारे में कंपनी की ऑन-प्रेम-वीपीसी से सीखी गई थी. यह सुविधा चालू करने के लिए, VPC पीयरिंग की सुविधा को अपडेट करना ज़रूरी है, ताकि पसंद के मुताबिक बनाए गए रूट एक्सपोर्ट किए जा सकें.
इंपोर्ट और एक्सपोर्ट किए गए मौजूदा रास्तों की पुष्टि करें.
VPC नेटवर्क → VPC NETWORK PEERING → servicenetworking-googleapis-com पर जाएं
नीचे दिए गए स्क्रीनशॉट में बताया गया है कि Google की ओर से मैनेज किए जाने वाले पीयर्ड vpc नेटवर्किंग, servicesnetworking से psa-range-looker को इंपोर्ट करने के बारे में जानकारी देने वाला analytics-vpc.
चुने गए एक्सपोर्ट किए गए रूट, पीयर किए गए VPC नेटवर्क में एक्सपोर्ट किए गए किसी भी रूट का पता नहीं लगाते 1) सबनेट, analytics-vpc में कॉन्फ़िगर नहीं किए गए हैं 2) कस्टम रूट एक्सपोर्ट करने का विकल्प नहीं चुना गया
13. VPC पीयरिंग को अपडेट करें
VPC नेटवर्क → VPC NETWORK PEERING → servicenetworking-googleapis-com → EDIT पर जाएं
कस्टम रूट एक्सपोर्ट करें → सेव करें को चुनें
14. अपडेट की गई VPC पीयरिंग की पुष्टि करें
एक्सपोर्ट किए गए रूट की पुष्टि करें.
VPC नेटवर्क → VPC NETWORK PEERING → servicenetworking-googleapis-com पर जाएं
एक्सपोर्ट किए गए चुनिंदा रूट से पता चलता है कि Analytics-vpc की मदद से, कंपनी की इमारत में मौजूद वीपीसी रूट (डेटाबेस सबनेट 172.16.10.0/27) को पीयर किए गए VPC नेटवर्किंग में होस्ट करने वाले Looker में एक्सपोर्ट किया जाता है.
15. Looker पोस्टग्रे-डेटाबेस बनाना
नीचे दिए गए सेक्शन में, Cloud Shell का इस्तेमाल करके postgres-database vm में एसएसएच का इस्तेमाल किया जा सकता है.
Cloud Shell के अंदर, postgres-database इंस्टेंस** के लिए ssh चलाएं.**
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
ओएस के अंदर, postgres-database इंस्टेंस के आईपी पते (ens4) की पहचान करें और उसे नोट करें.
ip a
उदाहरण:
user@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
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:ac:10:0a:02 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 172.16.10.2/32 metric 100 scope global dynamic ens4
valid_lft 84592sec preferred_lft 84592sec
inet6 fe80::4001:acff:fe10:a02/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:
ओएस के अंदर, पोस्टग्रेज़ से बाहर निकलें.
\q
उदाहरण:
postgres=# \q
user@postgres-database:~$
नीचे दिए गए सेक्शन में, नीचे दिए गए स्क्रीनशॉट के मुताबिक, आईपीवी4 लोकल कनेक्शन में pg_hba.conf फ़ाइल में, postgres-database इंस्टेंस आईपी पता और Looker निजी Google ऐक्सेस सबनेट (192.168.0.0/22) डालना होगा:
sudo nano /etc/postgresql/15/main/pg_hba.conf
नीचे दिए गए सेक्शन में, सभी ‘*' को सुनने के लिए, postgresql.conf की टिप्पणी हटाएं नीचे दिए गए स्क्रीनशॉट के मुताबिक, आईपी पते:
sudo nano /etc/postgresql/15/main/postgresql.conf
पहले:
बाद में:
ओएस के अंदर, 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 Sat 2023-07-01 23:40:59 UTC; 7s ago
Process: 4073 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 4073 (code=exited, status=0/SUCCESS)
CPU: 2ms
Jul 01 23:40:59 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Jul 01 23:40:59 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
16. पोस्टग्रेज़ डेटाबेस बनाएं
नीचे दिए गए सेक्शन में, आपको postgres_looker नाम का एक postgres डेटाबेस बनाना है. साथ ही, schema Looker_schema का इस्तेमाल करके, यह पुष्टि करना भी है कि Looker की मदद से, ऑफ़िस में इसकी कनेक्टिविटी की पुष्टि की जाती है.
ओएस के अंदर, पोस्टग्रेज़ में लॉग इन करें.
sudo -u postgres psql postgres
ओएस के अंदर, डेटाबेस बनाएं.
create database postgres_looker;
ओएस के अंदर, डेटाबेस की जानकारी दें.
\l
ओएस के अंदर, पासवर्ड लुकर की मदद से उपयोगकर्ता लुकर बनाएं
create user postgres_looker with password 'postgreslooker';
ओएस के अंदर, डेटाबेस से कनेक्ट करें.
\c postgres_looker;
ओएस के अंदर, स्कीमा लुकर-स्कीमा बनाएं और Cloud Shell के प्रॉम्प्ट से बाहर निकलें.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
उदाहरण:
user@postgres-database$ sudo -u postgres psql postgres
psql (15.3 (Ubuntu 15.3-0ubuntu0.23.04.1))
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 SCHEMA
postgres_looker=# create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
CREATE TABLE
postgres_looker=# exit
ओएस से बाहर निकलें और आपको क्लाउड शेल पर वापस भेज दें.
\q
exit
17. कंपनी की इमारत में फ़ायरवॉल बनाएं
नीचे दिए गए सेक्शन में, लॉगिंग के साथ एक इन्ग्रेस फ़ायरवॉल बनाएं. इसकी मदद से, Looker सबनेट कम्यूनिकेशन को पोस्टग्रे-डेटाबेस इंस्टेंस में करने की अनुमति मिलती है.
Cloud Shell से, on-prem-vpc फ़ायरवॉल बनाएं.
gcloud compute --project=$projectid firewall-rules create looker-access-to-postgres --direction=INGRESS --priority=1000 --network=on-prem-vpc --action=ALLOW --rules=all --source-ranges=192.168.0.0/22 --enable-logging
18. analytics-vpc में निजी डीएनएस बनाना
Looker को Google की ओर से मैनेज किए जाने वाले VPC में डिप्लॉय किया जाता है, लेकिन Analytics-vpc निजी डीएनएस का ऐक्सेस, सेवाओं के नेटवर्किंग के साथ पीयरिंग के ज़रिए किया जा सकता है.
नीचे दिए गए सेक्शन में, आपको analytics-vpc में एक निजी डीएनएस ज़ोन बनाना होगा. इसमें पोस्टग्रे-डेटाबेस इंस्टेंस पूरी तरह क्वालिफ़ाइड डोमेन नेम (postgres.analytics.com)
और आईपी पता) का A रिकॉर्ड शामिल होगा.
Cloud Shell से, प्राइवेट ज़ोन analytics.com बनाएं.
gcloud dns --project=$projectid managed-zones create gcp-private-zone --description="" --dns-name="analytics.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/analytics-vpc"
Cloud Shell से, postgres-database इंस्टेंस के आईपी पते की पहचान करें.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
उदाहरण:
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
Cloud Shell से, A रिकॉर्ड बनाएं. साथ ही, पहले से पहचाने गए आईपी पते को जोड़ना न भूलें.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
उदाहरण:
user@cloudshell$ gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="172.16.10.2"
NAME: postgres.analytics.com.
TYPE: A
TTL: 300
DATA: 172.16.10.2
Cloud Shell से, पीयर dns-uffix analytics.com. ताकि Looker को analytics-vpc प्राइवेट ज़ोन का ऐक्सेस मिल सके.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. Looker को Postgres postgres-database के साथ इंटिग्रेट करना
नीचे दिए गए सेक्शन में, आपको कंपनी की इमारत में मौजूद पोस्टग्रे-डेटाबेस इंस्टेंस से डेटाबेस कनेक्शन बनाने के लिए, Cloud Console का इस्तेमाल करना होगा.
Cloud Console में, Looker पर जाएं और अपने इंस्टेंस यूआरएल को चुनें. इससे Looker यूज़र इंटरफ़ेस (यूआई) खुलेगा.
लॉन्च होने के बाद, आपको नीचे दिए गए स्क्रीनशॉट के मुताबिक लैंडिंग पेज दिखेगा.
एडमिन → डेटाबेस → कनेक्शन → पर जाएं, कनेक्शन जोड़ें को चुनें
नीचे दिए गए स्क्रीनशॉट के मुताबिक, कनेक्शन की जानकारी भरें. इसके बाद, कनेक्ट करें को चुनें
कनेक्शन अब हो गया है
20. Looker कनेक्टिविटी की पुष्टि करना
नीचे दिए गए सेक्शन में, Looker ‘टेस्ट' का इस्तेमाल करके, कंपनी की ऑन-प्रीम-वीपीसी में पोस्टग्रे-डेटाबेस से Looker कनेक्टिविटी की पुष्टि करने का तरीका बताया गया है क्या है.
अगर सेशन का समय खत्म हो गया है, तो Cloud Shell से पोस्टग्रेट डेटाबेस में लॉग इन करें.
Cloud Shell के अंदर, यह तरीका अपनाएं:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
ओएस से, psa-range-looker सबनेट 192.168.0.0/22 की मदद से, TLSDUMP फ़िल्टर बनाएं
sudo tcpdump -i any net 192.168.0.0/22 -nn
डेटा कनेक्शन पर जाएं एडमिन → डेटाबेस → कनेक्शन → चुनें → टेस्ट
टेस्ट को चुनने के बाद, Looker पोस्टग्रेट डेटाबेस से कनेक्ट हो जाएगा, जैसा कि नीचे बताया गया है:
ओएस टर्मिनल पर वापस जाएं और इस बात की पुष्टि करें कि TCPDUMP को यह पता चला है कि psc-range-looker, कंपनी की इमारत में मौजूद पोस्टग्रे-डेटाबेस इंस्टेंस से कनेक्ट हो रहा है.
नोट जोड़ें कि पीएसए रेंज से जुड़ा कोई भी आईपी, Looker से दिखाया जाएगा
user@postgres-database$ sudo tcpdump -i any net 192.168.0.0/22 -nn
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
00:16:55.121631 ens4 In IP 192.168.1.24.46892 > 172.16.10.2.5432: Flags [S], seq 2221858189, win 42600, options [mss 1366,sackOK,TS val 4045928414 ecr 0,nop,wscale 7], length 0
00:16:55.121683 ens4 Out IP 172.16.10.2.5432 > 192.168.1.24.46892: Flags [S.], seq 1464964586, ack 2221858190, win 64768, options [mss 1420,sackOK,TS val 368503074 ecr 4045928414,nop,wscale 7], length 0
21. सुरक्षा से जुड़े सुझाव
Looker और Postgres डेटाबेस को सुरक्षित रखने के लिए, सुरक्षा से जुड़े कुछ सुझाव और सबसे सही तरीके दिए गए हैं. इनमें ये शामिल हैं:
- Looker के लिए सबसे कम अधिकार वाले डेटाबेस खाते की अनुमतियां सेट अप करना, ताकि यह अब भी ज़रूरी काम कर सके.
- TLS 1.2+ का इस्तेमाल करके एन्क्रिप्ट (सुरक्षित) किए गए डेटा में क्लाइंट और Looker यूज़र इंटरफ़ेस (यूआई) और Looker के बीच ट्रांज़िशन का डेटा
- जो डेटा ऐक्टिव नहीं है उसे डिफ़ॉल्ट रूप से एन्क्रिप्ट (सुरक्षित) किया जाता है. ग्राहक, Looker इंस्टेंस ( https://cloud.google.com/looker/docs/looker-core-cmek) और पोस्टग्रे ( https://cloud.google.com/sql/docs/postgres/configure-cmek) के लिए सीएमईके का इस्तेमाल कर सकते हैं
- Looker ऐक्सेस कंट्रोल - Looker एडमिन यह कंट्रोल कर सकते हैं कि उपयोगकर्ताओं का कोई ग्रुप या सिद्धांत, कॉन्टेंट का ऐक्सेस, डेटा ऐक्सेस, और सुविधा का ऐक्सेस देकर, Looker में क्या देख और कर सकता है. इन विकल्पों की मदद से, Looker एडमिन कुछ खास भूमिकाएं तय कर सकता है. इनमें मॉडल और अनुमति सेट जैसी भूमिकाएं शामिल होती हैं. साथ ही, यह डेटा के लिए सटीक ऐक्सेस कंट्रोल बना सकता है.
- Looker में ऑडिट लॉग और डेटा ऐक्सेस लॉग, दोनों का इस्तेमाल किया जा सकता है. यह जानकारी इकट्ठा करती है कि किसने क्या कब और कहां किया. ऑडिट लॉग डिफ़ॉल्ट रूप से चालू होते हैं, जबकि डेटा ऐक्सेस लॉग को साफ़ तौर पर चालू किया जाना चाहिए.
- फ़िलहाल, VPC-SC उन एंटरप्राइज़ और एम्बेड इंस्टेंस के साथ काम करता है जिन्हें सिर्फ़ निजी आईपी से कॉन्फ़िगर किया गया हो
22. व्यवस्थित करें
Looker Cloud Core इंस्टेंस मिटाएं और इस पर जाएं:
LOOKER → लुकर-ट्यूटोरियल → DELETE
Cloud Shell से, ट्यूटोरियल कॉम्पोनेंट मिटाएं.
gcloud compute vpn-tunnels delete analytics-vpc-tunnel0 analytics-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete analytics-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet
gcloud compute routers delete analytics-cr-us-central1 on-prem-cr-us-central1 on-prem-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete postgres-database --zone=us-central1-a --quiet
gcloud compute networks subnets delete database-subnet-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete looker-access-to-postgres on-prem-ssh --quiet
gcloud dns record-sets delete postgres.analytics.com. --type=A --zone=gcp-private-zone
gcloud dns managed-zones delete gcp-private-zone
gcloud compute networks delete on-prem-vpc --quiet
gcloud compute addresses delete psa-range-looker --global --quiet
gcloud compute networks delete analytics-vpc --quiet
23. बधाई हो
बधाई हो, आपने हाइब्रिड नेटवर्किंग पर Looker कनेक्टिविटी को कॉन्फ़िगर करके उसकी पुष्टि कर दी है. इससे कंपनी की इमारत और मल्टी क्लाउड एनवायरमेंट में डेटा कम्यूनिकेशन की सुविधा चालू हो गई है.
Looker Connect के 'टेस्ट' का इस्तेमाल करके, पोस्टग्रेट डेटाबेस में Looker Cloud Core की कनेक्टिविटी की जांच की जा सकती है पोस्टग्रे-डेटाबेस इंस्टेंस में टूल और टीसीपीडीयूएमपी शामिल है.
Cosmopup को लगता है कि ट्यूटोरियल शानदार हैं!!
आगे पढ़ें और वीडियो
- पेश है Looker का नया वर्शन
- क्या आपको GCP पर माइग्रेट करना है? सबसे ज़रूरी चीज़ें सबसे पहले: VPC
- क्लाउड राऊटर के साथ डाइनैमिक रूटिंग
पहचान फ़ाइलें
- Looker (Google Cloud Core) का दस्तावेज़
- Looker (Google Cloud Core) इंस्टेंस बनाना
- Looker के लिए निजी आईपी कनेक्शन बनाना (Google Cloud Core)
- Google Cloud नेटवर्क के बीच एचए वीपीएन
- Cloud NA की मदद से नेटवर्क के पते का अनुवाद करने की सुविधा को सेट अप और मैनेज करें
- डाइनैमिक रूट की अदला-बदली करने के विकल्प