Ringkasan DNS internal


Saat Anda membuat instance virtual machine (VM) Compute Engine, DNS internal otomatis membuat nama DNS untuk VM. Nama DNS ini memfasilitasi komunikasi VM-ke-VM internal dengan me-resolve alamat IP internal. Jaringan Virtual Private Cloud di Google Cloud menggunakan layanan DNS internal untuk memungkinkan VM di jaringan yang sama mengakses satu sama lain menggunakan nama DNS internal.

Google Cloud secara otomatis membuat, memperbarui, dan menghapus jenis data DNS berikut saat Anda mengelola VM:

  • Data alamat DNS, atau data A, dibuat untuk VM di zona DNS untuk .internal.
  • Data PTR untuk VM, yang digunakan untuk pencarian DNS terbalik, dibuat di zona terbalik yang sesuai.

Misalnya, saat Anda menghapus VM, Google Cloud otomatis menghapus data A dan PTR terkait untuk nama DNS internalnya. Jika Anda kemudian membuat VM dengan nama yang sama, Google Cloud akan membuat data baru untuk penggantinya.

Batasan

Nama DNS internal memiliki spesifikasi berikut:

  • Nama DNS internal VM hanya di-resolve ke alamat IP internal utamanya. Nama DNS internal tidak dapat digunakan untuk terhubung ke alamat IP eksternal VM.

  • Nama DNS internal tidak dapat dikonfigurasi untuk di-resolve menjadi IP alias sekunder.

  • Nama DNS internal hanya dapat di-resolve dari VM yang berada di jaringan yang sama. VM ini dapat berada di project yang sama dengan jaringan, atau dapat berada dalam project layanan menggunakan jaringan VPC Bersama yang sama. Untuk me-resolve nama DNS VM dalam project layanan, Anda harus menggunakan FQDN VM. Anda tidak dapat menggunakan DNS internal untuk menghubungi VM yang berada di jaringan berbeda.

Nama DNS internal global dan zonal

Google Cloud memiliki dua jenis nama DNS internal:

  • Zonal DNS: Nama VM harus unik di dalam setiap zona, tetapi Anda dapat menggunakan kembali nama VM di seluruh zona. Misalnya, Anda dapat memiliki beberapa VM bernama instance-1 selama VM berada di zona berbeda.
  • DNS Global: Nama VM harus unik di dalam setiap project. Dengan DNS global, Anda tidak dapat menggunakan kembali nama VM dalam project.

Google sangat merekomendasikan penggunaan DNS zona karena menawarkan keandalan yang lebih tinggi dengan mengisolasi kegagalan dalam pendaftaran DNS ke setiap zona. Jika terjadi pemadaman layanan, DNS global memiliki masalah berikut:

  • Nama VM harus unik di seluruh project. Akibatnya, Anda tidak dapat membuat VM baru di region mana pun yang mengalami kegagalan bidang kontrol, tempat Anda memiliki atau sebelumnya memiliki resource project. Google Cloud tidak dapat memverifikasi nama DNS resource yang ada di region yang tidak tersedia.
  • Fitur Compute Engine tertentu tidak tersedia, seperti penskalaan otomatis grup instance terkelola (MIG). Akibatnya, aplikasi yang menggunakan penskalaan otomatis untuk menangani peningkatan beban kerja dengan baik tidak dapat meningkatkan skala.

Jenis DNS internal default akan ditetapkan saat Anda mengaktifkan Compute Engine API.

  • Jenis DNS internal default adalah DNS zona.
  • Jika organisasi atau project mandiri Anda mengaktifkan Compute Engine API sebelum 6 September 2018, jenis DNS internal default akan disetel ke DNS global.

Nama domain yang sepenuhnya memenuhi syarat untuk nama DNS internal dijelaskan dalam tabel berikut.

Jenis DNS Internal Nama domain yang sepenuhnya memenuhi syarat (FQDN)
DNS Zona VM_NAME.ZONE.c.PROJECT_ID.internal
DNS Global (seluruh project) VM_NAME.c.PROJECT_ID.internal

Ganti kode berikut:

  • VM_NAME: nama VM. Untuk DNS zona, nilai ini harus unik di dalam zona, tetapi dapat diulang di seluruh zona. Untuk DNS global, nama VM harus unik di seluruh project.
  • ZONE: zona tempat instance Anda berada.
  • PROJECT_ID: project tempat VM berada.

Untuk mengetahui informasi tentang cara mengontrol jenis nama DNS internal yang digunakan pada level project atau instance, lihat mengonfigurasi nama DNS untuk project atau instance Anda.

Resolusi nama DNS

VM menerima informasi resolusi DNS internal sebagai bagian dari sewa DHCP mereka. Metode resolusi DNS bergantung pada platform sistem operasi:

  • Linux: Secara default, server DNS VM (169.254.169.254:53) me-resolve nama DNS internal.
  • Windows: Secara default, gateway default subnet me-resolve nama DNS internal.

Balik zona untuk data PTR

Layanan DNS internal Google Cloud secara otomatis membuat data PTR untuk VM di zona terbalik berikut:

  • 10.in-addr.arpa.
  • 168.192.in-addr.arpa.
  • 16.172.in-addr.arpa., 17.172.in-addr.arpa., ... hingga 31.172.in-addr.arpa.

Nama DNS Internal dan VPC Bersama

Anda dapat menggunakan nama DNS internal untuk merujuk ke alamat IP internal VM meskipun alamat IP tersebut berada di jaringan VPC Bersama dalam project host. Dengan VPC Bersama, bagian project ID dari nama DNS internal zona atau global (seluruh project) adalah ID project layanan.

Menyesuaikan nama DNS internal

Beberapa organisasi atau aplikasi mungkin memerlukan nama DNS internal kustom, bukan nama DNS internal default yang dibuat oleh Google Cloud.

Zona pribadi dan data kustom dengan Cloud DNS

Anda dapat menggunakan zona pribadi Cloud DNS untuk membuat entri DNS kustom untuk VM Anda. Anda dapat mengonfigurasi data PTR yang memungkinkan Anda mengganti URL DNS internal default untuk VM dengan URL kustom yang Anda berikan.

Untuk membuat data PTR kustom yang mengganti nama PTR DNS internal yang dibuat secara otomatis, lihat Data PTR untuk alamat RFC 1918 di zona pribadi. Guna mengetahui informasi tentang cara membuat data PTR untuk VM, baca artikel Membuat data PTR untuk instance VM.

Nama host kustom

Anda dapat menentukan nama host kustom untuk VM saat membuatnya. Nama host kustom yang ditetapkan dengan cara ini tidak diselesaikan oleh DNS internal. Dengan nama host kustom, Anda tetap harus membuat data DNS yang sesuai di zona yang sesuai (misalnya, menggunakan Cloud DNS). Untuk mengetahui informasi lebih lanjut, baca bagian membuat instance VM dengan nama host kustom.

DNS dan DHCP Internal

VM Compute Engine dikonfigurasi untuk memperpanjang lease DHCP setiap 24 jam. Untuk VM yang diaktifkan untuk DNS zona, masa lease DHCP berakhir setiap jam. VM yang menggunakan DNS zona memiliki entri zona dan global dalam file konfigurasi DHCP.

Secara default, sebagian besar distribusi Linux menyimpan informasi DHCP di resolv.conf. Pengeditan resolv.conf secara manual akan menyebabkannya dikembalikan ke DHCP default setiap kali masa lease DHCP berakhir pada VM Anda. Untuk membuat perubahan statis dalam file resolv.conf, beberapa distribusi Linux memungkinkan item ditambahkan awalannya atau ditambahkan akhirannya ke kebijakan DHCP.

Cara Anda mengubah kebijakan atau file konfigurasi DHCP bergantung pada distribusi Linux yang Anda gunakan. Misalnya, Red Hat Enterprise Linux dan Debian menggunakan file konfigurasi /etc/dhcp/dhcpd.conf. Di CentOS, Anda menggunakan utilitas command line Network Manager, nmcli.

Lihat dokumentasi sistem operasi untuk mendapatkan informasi tentang cara mengonfigurasi setelan jaringan DHCP dan DNS khusus.

Contoh file resolv.conf

Secara default, sebagian besar distribusi Linux menyimpan informasi DHCP di resolv.conf. Layanan systemd-resolved juga menyediakan layanan resolver untuk DNS. Anda dapat mengonfigurasi layanan ini dengan mengedit file /etc/systemd/resolved.conf dan file *.conf lainnya di direktori /etc/systemd/resolved.conf.d/. Pada distribusi Linux yang menyimpan informasi DHCP di resolved.conf, Anda dapat melihat entri DNS zona dan global dalam file /etc/systemd/resolved.conf.

File ini memiliki batasan berikut:

  • Jalur penelusuran hanya dapat menangani 6 data, dan 3 di antaranya disediakan oleh Compute Engine. Jika Anda menambahkan entri ke jalur penelusuran sehingga jumlah total entri lebih besar dari 6, aturan penelusuran setelah entri ke-6 tidak akan diterapkan oleh OS Anda. Hal ini dapat menyebabkan fitur Compute Engine berhenti berfungsi, seperti mengakses VM menggunakan nama instance-nya.
  • Pengeditan resolv.conf secara manual akan menyebabkannya dikembalikan ke DHCP default setiap kali masa lease DHCP 24 jam berakhir pada VM Anda. Di VM yang menggunakan DNS zona, masa lease DHCP berakhir setiap jam. Untuk membuat perubahan statis dalam file resolv.conf, beberapa distribusi Linux memungkinkan item ditambahkan awalannya atau ditambahkan akhirannya ke kebijakan DHCP.

Konfigurasi DNS zona

Contoh file resolv.conf zona:

# Local domain name. Computed from your project name.
domain ZONE.c.PROJECT_ID.internal
# Search list for hostname lookup. Starting with entries that represent
# your project and ending with google.internal to facilitate metadata server requests.
search ZONE.c.PROJECT_ID.internal. c.PROJECT_ID.internal. google.internal.
# Address of the DNS server to resolve project specific, and global domain names.
nameserver 169.254.169.254

Ganti kode berikut:

  • ZONE: zona tempat VM Anda berada
  • PROJECT_ID: project tempat VM berada

Contoh file dhcp.lease zona:

lease {
  # What interface we are using for the network
  interface "eth0";
  fixed-address 10.128.0.9;
  option subnet-mask 255.255.255.255;
  option routers 10.128.0.1;
  # Lease timeout, older VM instances will have this value set to infinite.
  option dhcp-lease-time 3600;
  option dhcp-message-type 5;
  option domain-name-servers 169.254.169.254;
  option dhcp-server-identifier 169.254.169.254;
  option interface-mtu 1460;
  # Search path options that are copied into the resolv.conf
  option domain-search "ZONE.c.PROJECT_ID.internal.", "c.PROJECT_ID.internal.", "google.internal.";
  option ntp-servers 169.254.169.254;
  option rfc3442-classless-static-routes 32,10,128,0,1,0,0,0,0,0,10,128,0,1;
  option host-name "VM_NAME.ZONE.c.PROJECT_ID.internal";
  option domain-name "ZONE.c.PROJECT_ID.internal";
  renew 4 2017/11/16 02:15:52;
  rebind 4 2017/11/16 02:43:59;
  expire 4 2017/11/16 02:51:29;
}

Ganti kode berikut:

  • VM_NAME: nama VM
  • ZONE: zona tempat VM Anda berada
  • PROJECT_ID: project tempat VM berada

Konfigurasi DNS global

Contoh file resolv.conf global:

# Local domain name. Computed from your project name.
domain c.PROJECT_ID.internal
# Search list for hostname lookup. Starting with entries that represent
# your project and ending with google.internal to facilitate metadata server requests.
search c.PROJECT_ID.internal google.internal.
# Address of the DNS server to resolve project specific, and global domain names.
nameserver 169.254.169.254

Ganti PROJECT_ID dengan project yang memiliki VM tersebut.

Contoh file dhcp.lease global:

lease {
  # What interface we are using for the network
  interface "eth0";
  fixed-address 10.128.0.8;
  option subnet-mask 255.255.255.255;
  option routers 10.128.0.1;
  # Lease timeout, older VM instances will have this value set to infinite.
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 169.254.169.254;
  option dhcp-server-identifier 169.254.169.254;
  option interface-mtu 1460;
  # Search path options that are copied into the resolv.conf
  option domain-search "c.PROJECT_ID.internal.", "google.internal.";
  option ntp-servers 169.254.169.254;
  option rfc3442-classless-static-routes 32,10,128,0,1,0,0,0,0,0,10,128,0,1;
  option host-name "VM_NAME.c.PROJECT_ID.internal";
  option domain-name "c.PROJECT_ID.internal";
  renew 4 2017/11/16 12:07:00;
  rebind 4 2017/11/16 22:44:53;
  expire 5 2017/11/17 01:44:53;
}

Ganti kode berikut:

  • VM_NAME: nama VM
  • PROJECT_ID: project tempat VM berada

Contoh file dhclient.conf

Beberapa sistem operasi, seperti Debian 9, menggunakan file dhclient.conf, bukan file resolv.conf.

Contoh file /etc/dhcp/dhclient.conf:

# Configuration file for /sbin/dhclient.
#
...
append domain-search "mydomain.com";
prepend domain-name-servers 172.16.1.1;

Dalam contoh ini, mydomain.com adalah domain penelusuran baru dan 172.16.1.1 adalah IP server DNS Anda.

Langkah selanjutnya