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 peralatan pengelolaan. Anda dapat mengonfigurasi server ini sebagai server DNS untuk semua beban kerja VMware dengan menyiapkan binding DNS. Untuk melakukannya, Anda harus:
- Mendapatkan alamat IP server DNS Private Cloud
- Menyiapkan izin pengikatan DNS untuk mengizinkan akun utama pengguna terikat ke VPC intranet
- Mengonfigurasi DNS untuk workload VMware atau setelan DNS DHCP segmen NSX-T
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 konfigurasikan alat seperti yang dijelaskan di bawah.
gcloud
Setel ID project default Anda:
gcloud config set project PROJECT_ID
Menetapkan 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 kumpulan dokumentasi ini menggunakan alat command line cURL
untuk
membuat kueri API. Token akses yang valid diperlukan sebagai bagian dari permintaan cURL
. Ada banyak cara untuk mendapatkan token akses yang valid. Langkah-langkah berikut menggunakan alat gcloud
untuk membuat token akses:
Login ke Google Cloud:
gcloud auth login
Buat token akses dan ekspor ke TOKEN:
export TOKEN=`gcloud auth print-access-token`
Verifikasi bahwa TOKEN telah disetel 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.
Download dan instal library Python:
pip install google-cloud-vmwareengine
Konfigurasikan informasi ADC dengan menjalankan perintah tersebut di shell Anda:
gcloud auth application-default login
Atau, gunakan file kunci Service Account:
export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
Untuk mengetahui informasi selengkapnya tentang library ini, kunjungi halaman referensi atau lihat contoh kode di GitHub.
Mendapatkan IP server DNS workload cloud pribadi
Konsol
Untuk mendapatkan alamat IP server DNS cloud pribadi, ikuti langkah-langkah berikut.
- Akses konsol Google Cloud.
- Dari navigasi utama, klik Private cloud.
- Klik nama cloud pribadi yang ingin Anda hubungkan.
- Di halaman Summary untuk cloud pribadi, di bagian Private Cloud DNS server, klik Copy untuk menyalin alamat IP server Cloud DNS pribadi.
gcloud
Untuk mendapatkan alamat IP server DNS cloud pribadi Anda menggunakan Google Cloud CLI, gunakan perintah gcloud vmware private-clouds describe
:
gcloud vmware private-clouds describe \ --private-cloud=PRIVATE_CLOUD_ID \ --project=PROJECT_ID \ --location=REGION
Ganti kode berikut:
PRIVATE_CLOUD_ID
: nama cloud pribadi untuk permintaan iniPROJECT_ID
: project ID untuk permintaan iniREGION
: region cloud pribadi; jika ini adalah cloud pribadi yang direntangkan, tentukan zona untuk cloud pribadi ini
API
Untuk mendapatkan alamat IP server DNS cloud pribadi Anda 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 iniREGION
: region cloud pribadi; jika cloud pribadi ini direntangkan, tentukan zona untuk cloud pribadi iniPRIVATE_CLOUD_ID
: nama cloud pribadi untuk permintaan ini.
Menyiapkan izin pengikatan DNS
Anda hanya dapat menyiapkan dan mengelola izin pengikatan DNS menggunakan alat gcloud
atau
secara langsung menggunakan REST API. Anda tidak dapat menyiapkan binding
melalui konsol.
Berikan izin pengikatan DNS
Agar pengguna dapat mengonfigurasi binding DNS, Anda harus memberikan izin kepada akun utama pengguna untuk mengikat ke VPC intranet. Dalam hal ini, akun utama pengguna adalah alamat email pengguna yang akan mengikat zona DNS pribadi dengan VPC intranet.
gcloud
gcloud vmware dns-bind-permission grant \ --user=USER
Ganti USER dengan email pengguna yang akan mengikat
zona DNS pribadi dengan VPC intranet. Contoh, example1@gmail.com
.
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/privateClouds/dnsBindPermission:grant { "Principal": { "user": "USER" } }
Ganti kode berikut:
PROJECT_ID
: project untuk permintaan ini.USER
: email pengguna yang izinnya ingin Anda cabut. Contoh,example1@gmail.com
.
Cabut Izin Pengikatan DNS
Mencabut Izin Pengikatan DNS yang sebelumnya diberikan kepada pengguna.
gcloud
gcloud vmware dns-bind-permission revoke \ --user=USER
Ganti USER dengan email pengguna yang izinnya ingin Anda cabut. Contoh, example1@gmail.com
.
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/privateClouds/dnsBindPermission:revoke { "Principal": { "user": "USER" } }
Ganti kode berikut:
PROJECT_ID
: project untuk permintaan ini.USER
: email pengguna yang izinnya ingin Anda cabut. Contoh,example1@gmail.com
.
Menjelaskan Izin pengikatan DNS
Menjelaskan izin binding DNS untuk project dan akun utama pengguna mana yang memiliki akses untuk mengonfigurasi binding DNS.
gcloud
gcloud vmware dns-bind-permission describe
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/privateClouds/dnsBindPermission
Ganti PROJECT_ID
dengan project untuk permintaan ini.
Mengikat Zona DNS Private Cloud dengan VPC intranet jaringan VMware Engine
Setelah Anda memberikan izin kepada akun utama pengguna untuk mengonfigurasi binding DNS, pengguna 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:
- Akses konsol Google Cloud.
- Dari navigasi utama, klik VMware Engine networks.
- Temukan Jaringan VMware Engine, klik opsi Action, lalu pilih Copy Intranet VPC network URL.
gcloud
gcloud vmware networks describe VMWARE_ENGINE_NETWORK
Ganti VMWARE_ENGINE_NETWORK
dengan jaringan untuk
menjelaskan. Sebagai bagian dari respons, gcloud
menampilkan detail jaringan
yang berisi URL VPC intranet.
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 iniNETWORK_ID
: jaringan yang akan dijelaskan
Binding
Setelah izin pengikatan dikonfigurasi, alur kerja yang dimaksud adalah menambahkan peering DNS ke VPC intranet jaringan VMware Engine ke dalam proses pengelolaan zona Cloud DNS 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 diperluas, contohzone1.example.com
INTRANET_VPC_URL
: URL VPC intranet untuk jaringan VMware EngineEXISTING_VPC
: URL jaringan VPC yang ada yang telah terikat denganDOMAIN
PROJECT_ID
: project ID untuk permintaan ini
API
Buat permintaan PATCH
ke resource managedZones
dan berikan
nama zona tersebut:
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 iniDOMAIN
: domain yang akan diperluas, contohzone1.example.com
INTRANET_VPC_URL
: URL VPC intranet untuk jaringan VMware Engine.EXISTING_VPC
: URL jaringan VPC yang ada yang telah terikat dengan DOMAIN
Contoh Binding DNS
Berikut adalah beberapa contoh binding DNS yang mungkin 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 Pribadi
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."