Mengonfigurasi binding DNS

Halaman ini menjelaskan cara mengonfigurasi binding DNS untuk Jaringan VMware Engine Standar.

Setiap cloud pribadi men-deploy Server Cloud DNS yang digunakan untuk semua resolusi perangkat pengelolaan. Anda dapat mengonfigurasi server ini sebagai server DNS untuk semua beban kerja VMware dengan menyiapkan binding DNS. Untuk melakukannya, Anda harus:

  1. Mendapatkan alamat IP server DNS Private Cloud
  2. Menyiapkan izin pengikatan DNS untuk mengizinkan pokok pengguna terikat ke VPC intranet
  3. Mengonfigurasi DNS untuk workload VMware atau setelan DNS DHCP segmen NSX

Sebelum memulai

Anda hanya dapat mengonfigurasi binding DNS menggunakan alat gcloud atau API.

Persyaratan gcloud dan API

Untuk menggunakan alat command line gcloud atau API guna mengelola resource VMware Engine, sebaiknya konfigurasi alat seperti yang dijelaskan di bawah.

gcloud

  1. Tetapkan project ID default Anda:

    gcloud config set project PROJECT_ID
    
  2. Tetapkan region dan zona default:

    gcloud config set compute/region REGION
    
    gcloud config set compute/zone ZONE
    

Untuk mengetahui informasi selengkapnya tentang alat gcloud vmware, lihat dokumen referensi Cloud SDK.

API

Contoh API dalam set dokumentasi ini menggunakan alat command line cURL untuk mengirim kueri ke API. Token akses yang valid diperlukan sebagai bagian dari permintaan cURL request. Ada banyak cara untuk mendapatkan token akses yang valid; langkah-langkah berikut menggunakan alat gcloud untuk membuat token akses:

  1. Login ke Google Cloud:

    gcloud auth login
    
  2. Buat token akses dan ekspor ke TOKEN:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Pastikan TOKEN ditetapkan dengan benar:

    echo $TOKEN
    

Sekarang, gunakan token otorisasi dalam permintaan Anda ke API. Contoh:

curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

Contoh kode Python dalam dokumentasi ini menggunakan library VMware Engine untuk berkomunikasi dengan API. Agar dapat menggunakan pendekatan ini, library perlu diinstal dan Kredensial Default Aplikasi harus dikonfigurasi.

  1. Download dan instal library Python:

    pip install google-cloud-vmwareengine
    
  2. Konfigurasi informasi ADC dengan menjalankan perintah tersebut di shell Anda:

    gcloud auth application-default login
    

    Atau, gunakan file kunci Akun Layanan:

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Untuk mengetahui informasi selengkapnya tentang library, buka halaman referensi atau lihat contoh kode di GitHub.

Mendapatkan IP server DNS workload cloud pribadi

Konsol

Untuk mendapatkan alamat IP server DNS cloud pribadi Anda, ikuti langkah-langkah berikut.

  1. Di konsol Google Cloud , buka halaman Private clouds.

    Buka Private Cloud

  2. Klik Pilih project, lalu pilih organisasi, folder, atau project yang berisi cloud pribadi yang ingin Anda hubungkan.

  3. Klik nama cloud pribadi.

  4. Di halaman Summary untuk cloud pribadi, di bagian Private Cloud DNS servers, klik Copy untuk menyalin alamat IP server DNS Cloud pribadi.

gcloud

Untuk mendapatkan alamat IP server DNS cloud pribadi menggunakan Google Cloud CLI, gunakan perintah gcloud vmware private-clouds describe:

 gcloud vmware private-clouds describe PRIVATE_CLOUD_ID \
  --project=PROJECT_ID \
  --location=REGION

Ganti kode berikut:

  • PRIVATE_CLOUD_ID: nama private cloud untuk permintaan ini
  • PROJECT_ID: project ID untuk permintaan ini
  • REGION: region cloud pribadi; jika ini adalah cloud pribadi yang diperluas, tentukan zona untuk cloud pribadi ini

API

Untuk mendapatkan alamat IP server DNS cloud pribadi menggunakan VMware Engine API, buat permintaan GET:

curl -X GET -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/privateCloud/PRIVATE_CLOUD_ID"

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini
  • REGION: region cloud pribadi; jika ini adalah cloud pribadi yang diperluas, tentukan zona untuk cloud pribadi ini
  • PRIVATE_CLOUD_ID: nama cloud pribadi untuk permintaan ini.

Menyiapkan izin binding DNS

Anda hanya dapat menyiapkan dan mengelola izin bind DNS menggunakan alat gcloud atau langsung menggunakan REST API. Binding tidak dapat disiapkan melalui konsol.

Memberikan izin mengikat DNS

Agar pengguna dapat mengonfigurasi binding DNS, Anda harus memberikan izin kepada prinsipal pengguna untuk melakukan binding ke VPC intranet. Dalam hal ini, prinsipal pengguna adalah alamat email pengguna yang akan mengikat zona DNS pribadi dengan VPC intranet.

gcloud

gcloud vmware dns-bind-permission grant \
  --user=USER \
  --project=PROJECT_ID

Ganti kode berikut:

  • USER: email pengguna yang akan mengikat zona DNS pribadi dengan VPC intranet; misalnya, example1@gmail.com
  • PROJECT_ID: project ID untuk permintaan ini

API

Buat permintaan POST ke metode dnsBindPermissions:grant dan berikan alamat email pengguna dalam isi permintaan.

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dnsBindPermission:grant -d '
{
"principal": {
  "user": "USER"
}
}'

Ganti kode berikut:

  • PROJECT_ID: project untuk permintaan ini.
  • USER: email pengguna yang izinnya ingin Anda batalkan. Misalnya, example1@gmail.com.

Mencabut Izin Binding DNS

Mencabut Izin Pengikatan DNS yang sebelumnya diberikan kepada pengguna.

gcloud

gcloud vmware dns-bind-permission revoke \
  --user=USER \
  --project=PROJECT_ID

Ganti kode berikut:

  • USER: email pengguna yang izinnya ingin Anda batalkan; misalnya, example1@gmail.com
  • PROJECT_ID: project ID untuk permintaan ini

API

Buat permintaan POST ke dnsBindPermissions:revoke dan berikan alamat email pengguna dalam isi permintaan.

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dnsBindPermission:revoke -d '
{
"principal": {
  "user": "USER"
}
}'

Ganti kode berikut:

  • PROJECT_ID: project untuk permintaan ini.
  • USER: email pengguna yang izinnya ingin Anda batalkan. Misalnya, example1@gmail.com.

Menjelaskan Izin mengikat DNS

Menjelaskan izin pengikatan DNS untuk project dan prinsipal pengguna mana yang memiliki akses untuk mengonfigurasi pengikatan DNS.

gcloud

gcloud vmware dns-bind-permission describe \
--project=PROJECT_ID

Ganti PROJECT_ID dengan project ID untuk permintaan ini.

API

Buat permintaan GET ke resource dnsBindPermissions.

curl -X GET -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dnsBindPermission

Ganti PROJECT_ID dengan project untuk permintaan ini.

Mengikat Zona DNS Cloud Pribadi dengan VPC intranet jaringan VMware Engine

Setelah Anda memberikan izin kepada prinsipal pengguna untuk mengonfigurasi binding DNS, pengguna tersebut dapat membuat binding antara zona DNS pribadi di Cloud DNS dan VPC intranet Jaringan VMware Engine. VMware Engine menggunakan peering DNS untuk memfasilitasi resolusi Cloud DNS.

Menemukan URL VPC Intranet

Anda memerlukan URL VPC intranet jaringan untuk membuat binding baru. VPC intranet jaringan VMware Engine dapat ditemukan dengan mencantumkan detail jaringan VMware Engine.

Konsol

Untuk menemukan URL VPC Intranet menggunakan konsol Google Cloud , ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman VMware Engine networks.

    Buka jaringan VMware Engine

  2. Klik Pilih project, lalu pilih organisasi, folder, atau project yang berisi jaringan VMware Engine.

  3. Temukan Jaringan VMware Engine, klik opsi Action dan pilih Copy Intranet VPC network URL.

gcloud

gcloud vmware networks describe VMWARE_ENGINE_NETWORK \
--project=PROJECT_ID

Ganti kode berikut:

  • VMWARE_ENGINE_NETWORK: jaringan yang akan dideskripsikan
  • PROJECT_ID: project ID untuk permintaan ini

API

Buat permintaan GET ke resource vmwareEngineNetworks dan berikan nama jaringan:

curl -X GET -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/vmwarenEngineNetworks/NETWORK_ID

Ganti kode berikut:

  • PROJECT_ID: project untuk permintaan ini
  • NETWORK_ID: jaringan yang akan dideskripsikan

Binding

Alur kerja yang dimaksudkan, setelah izin pengikatan dikonfigurasi, adalah menambahkan peering DNS ke VPC intranet jaringan VMware Engine ke proses pengelolaan zona DNS Cloud standar Anda untuk setiap zona.

gcloud

gcloud dns managed-zones create peering-DOMAIN  \
--dns-name="DOMAIN" \
--visibility="private" \
--networks="INTRANET_VPC_URL" \
--target-project="PROJECT_ID" \
--target-network="EXISTING_VPC" \
--description="DESCRIPTION"

Ganti kode berikut:

  • DOMAIN: domain yang akan diperpanjang, contoh zone1.example.com
  • INTRANET_VPC_URL: URL VPC intranet untuk jaringan VMware Engine
  • EXISTING_VPC: URL jaringan VPC yang ada yang sudah terikat dengan DOMAIN
  • PROJECT_ID: project ID untuk permintaan ini

API

Buat permintaan PATCH ke resource managedZones dan berikan nama zona:

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://dns.googleapis.com/v1/projects/PROJECT_ID/managedZones -d "{
"name": "peering-DOMAIN",          
"description": "",
"dnsName": DOMAIN,
"peeringConfig": {
    "targetNetwork": {
        "networkUrl": EXISTING_VPC
    }
  },
  "privateVisibilityConfig": {
    "networks": [
      {
        "networkUrl": INTRANET_VPC_URL
      }
    ]
  }  
}"

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini
  • DOMAIN: domain yang akan diperpanjang, contoh zone1.example.com
  • INTRANET_VPC_URL: URL VPC intranet untuk jaringan VMware Engine.
  • EXISTING_VPC: URL jaringan VPC yang sudah ada dan DOMAIN sudah terikat dengannya

Contoh Binding DNS

Berikut beberapa contoh binding DNS yang dapat Anda gunakan.

Otoritatif

gcloud dns managed-zones create zone1 \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --description="DESCRIPTION" \
  --networks="EXISTING_VPC"
gcloud dns managed-zones create peering-zone1 \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"

Penerusan Bersyarat

gcloud dns managed-zones create zone1 \
  --description="DESCRIPTION" \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --networks=EXISTING_VPC \
  --forwarding-targets="DNS_SERVER_IP1","DNS_SERVER_IP2"
gcloud dns managed-zones create peering-zone1 \
  --dns-name="zone1.example.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"

Meneruskan Semua

gcloud dns managed-zones create forward-all \
  --description="" --dns-name="." \
  --visibility="private" \
  --networks="EXISTING_VPC" \
  --forwarding-targets="DNS_SERVER_IP1","DNS_SERVER_IP2"
gcloud dns managed-zones create peering-forward-all \
  --dns-name="." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"

Google API Private

gcloud dns managed-zones create googleapis \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --description="Direct GCVE traffic to Private IPs for Google API Access" \
  --networks="EXISTING_VPC"
gcloud dns managed-zones create peering-googleapis  \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"
gcloud dns record-sets create private.googleapis.com. \
  --zone="googleapis" \
  --type="A" \
  --ttl="300" \
  --rrdatas="199.36.153.8,199.36.153.9,199.36.153.10,199.36.153.11"
gcloud dns record-sets create *.googleapis.com. \
  --zone="googleapis" \
  --type="CNAME" \
  --ttl="300" \
  --rrdatas="private.googleapis.com."

Google API Dibatasi

gcloud dns managed-zones create googleapis \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --description="Direct GCVE traffic to Private IPs for Google API Access" \
  --networks="EXISTING_VPC"
gcloud dns managed-zones create peering-googleapis \
  --dns-name="googleapis.com." \
  --visibility="private" \
  --networks="INTRANET_VPC_URL" \
  --target-project="PROJECT_ID" \
  --target-network="EXISTING_VPC" \
  --description="DESCRIPTION"
gcloud dns record-sets create restricted.googleapis.com. \
  --zone="googleapis" \
  --type="A" \
  --ttl="300" \
  --rrdatas="199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7"
gcloud dns record-sets create *.googleapis.com. \
  --zone="googleapis" \
  --type="CNAME" \
  --ttl="300" \
  --rrdatas="restricted.googleapis.com."