Ringkasan DNS internal

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

Google Cloud Google Cloud otomatis membuat, mengupdate, dan menghapus jenis data DNS berikut saat Anda mengelola instance:

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

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

Batasan

  • Compute Engine membuat data A dan PTR nama DNS internal hanya untuk alamat IPv4 internal utama antarmuka jaringan nic0 instance. Oleh karena itu, jenis stack antarmuka jaringan nic0 harus khusus IPv4 atau dual-stack. DNS internal tidak mendukung antarmuka jaringan khusus IPv6.

  • Compute Engine tidak membuat data DNS internal untuk hal berikut:

    • Alamat IPv4 internal utama antarmuka jaringan yang berbeda dari nic0.
    • Alamat IPv4 eksternal dari antarmuka jaringan apa pun.
    • Alamat IPv4 internal dari rentang IP alias dari antarmuka jaringan apa pun.
    • Rentang alamat IPv6 internal atau eksternal dari antarmuka jaringan apa pun.
  • Untuk me-resolve nama DNS internal, VM klien dan VM yang terkait dengan data DNS internal harus:

    • Berada di jaringan VPC yang sama.
    • Berada di project yang sama (kecuali untuk skenario VPC Bersama tertentu).

    Untuk mengetahui informasi selengkapnya tentang skenario VPC Bersama, lihat Nama DNS internal dan VPC Bersama.

Nama DNS internal zona dan global

Google Cloud Google Cloud memiliki dua jenis nama DNS internal:

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

Google sangat merekomendasikan penggunaan DNS zona karena menawarkan keandalan yang lebih tinggi dengan mengisolasi kegagalan dalam pendaftaran DNS ke masing-masing zona. Jika terjadi gangguan, DNS global akan mengalami masalah berikut:

  • Nama instance harus unik di seluruh project. Akibatnya, Anda tidak dapat membuat instance 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 tertentu Compute Engine tidak tersedia, seperti penskalaan otomatis grup instance terkelola (MIG). Akibatnya, aplikasi Anda yang menggunakan penskalaan otomatis untuk menangani peningkatan beban kerja dengan baik tidak dapat ditingkatkan skalanya.

Jenis DNS internal default 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 ditetapkan 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 INSTANCE_NAME.ZONE.c.PROJECT_ID.internal
DNS Global (seluruh project) INSTANCE_NAME.c.PROJECT_ID.internal

Ganti kode berikut:

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

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

Resolusi nama DNS

Instance menerima informasi resolusi DNS internal sebagai bagian dari lease DHCP. Metode resolusi DNS bergantung pada platform sistem operasi:

  • Linux: Secara default, server DNS instance me-resolve nama DNS internal.
  • Windows: Secara default, gateway default subnet me-resolve nama DNS internal.

Zona terbalik untuk data PTR

Layanan DNS internalGoogle Cloudsecara otomatis membuat data PTR untuk instance di zona terbalik berikut:

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

Nama DNS Internal dan VPC Bersama

VM klien dan VM yang terkait dengan data DNS internal dapat berada di project terpisah, tetapi harus menggunakan jaringan VPC Bersama yang sama. Misalnya, klien dapat berada di satu project layanan, dan VM yang terkait dengan data DNS internal dapat berada di project layanan yang berbeda atau project host.

Klien harus mengeluarkan kueri nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk data DNS internal, bukan mengandalkan kueri parsial dan domain penelusuran DNS. Domain penelusuran DNS berbeda di setiap project karena alasan seperti berikut:

  • Bagian nama domain dari setiap data A DNS internal berisi ID project dari project yang berisi VM. Untuk VM di project layanan yang antarmuka jaringan nic0-nya menggunakan jaringan VPC Bersama, project VM berbeda dengan project yang berisi jaringan.

  • Penggunaan nama DNS internal zona atau global (seluruh project) bergantung pada konfigurasi project yang berisi VM.

Untuk mengetahui informasi selengkapnya tentang VPC Bersama, lihat:

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 instance Anda. Anda dapat mengonfigurasi data PTR agar dapat mengganti nama DNS internal default untuk instance dengan nama kustom yang Anda berikan.

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

Nama host kustom

Anda dapat menentukan nama host kustom untuk instance 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 selengkapnya, lihat membuat instance dengan nama host kustom.

DNS dan DHCP Internal

Instance Compute Engine dikonfigurasi untuk memperpanjang lease DHCP setiap 24 jam. Untuk instance yang diaktifkan untuk DNS zona, masa lease DHCP berakhir setiap jam. Instance 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. Mengedit resolv.conf secara manual akan menyebabkan file tersebut dikembalikan ke DHCP default setiap kali masa lease DHCP berakhir di instance 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. Misalnya, untuk Red Hat Enterprise Linux for SAP with HA and Update Services 8.6, gunakan link berikut: Mengonfigurasi file /etc/resolv.conf secara manual

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/. Di 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-6th tidak akan diterapkan oleh OS Anda. Hal ini dapat menyebabkan fitur Compute Engine berhenti berjalan, seperti mengakses instance menggunakan nama instance-nya.
  • Mengedit resolv.conf secara manual akan menyebabkan file tersebut dikembalikan ke DHCP default setiap kali masa lease DHCP 24 jam berakhir di instance Anda. Di instance 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 MDS_IP_ADDRESS

Ganti kode berikut:

  • ZONE: zona tempat instance Anda berada
  • PROJECT_ID: project tempat instance berada
  • MDS_IP_ADDRESS: alamat IP server metadata instance, yang merupakan salah satu hal berikut:
    • 169.254.169.254 untuk instance khusus IPv4 dan dual-stack.
    • fd20:ce::254 untuk instance khusus IPv6.

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 instances will have this value set to infinite.
  option dhcp-lease-time 3600;
  option dhcp-message-type 5;
  option domain-name-servers MDS_IP_ADDRESS;
  option dhcp-server-identifier MDS_IP_ADDRESS;
  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 MDS_IP_ADDRESS;
  option rfc3442-classless-static-routes 32,10,128,0,1,0,0,0,0,0,10,128,0,1;
  option host-name "INSTANCE_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:

  • INSTANCE_NAME: nama instance
  • ZONE: zona tempat instance Anda berada
  • PROJECT_ID: project tempat instance berada
  • MDS_IP_ADDRESS: alamat IP server metadata instance, yang merupakan salah satu hal berikut:
    • 169.254.169.254 untuk instance khusus IPv4 dan dual-stack.
    • fd20:ce::254 untuk instance khusus IPv6.

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 MDS_IP_ADDRESS

Ganti kode berikut:

  • PROJECT_ID: project tempat instance berada
  • MDS_IP_ADDRESS: alamat IP server metadata instance, yang merupakan salah satu hal berikut:
    • 169.254.169.254 untuk instance khusus IPv4 dan dual-stack.
    • fd20:ce::254 untuk instance khusus IPv6.

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 instances will have this value set to infinite.
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers MDS_IP_ADDRESS;
  option dhcp-server-identifier MDS_IP_ADDRESS;
  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 MDS_IP_ADDRESS;
  option rfc3442-classless-static-routes 32,10,128,0,1,0,0,0,0,0,10,128,0,1;
  option host-name "INSTANCE_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:

  • INSTANCE_NAME: nama instance
  • PROJECT_ID: project tempat instance berada
  • MDS_IP_ADDRESS: alamat IP server metadata instance, yang merupakan salah satu hal berikut:
    • 169.254.169.254 untuk instance khusus IPv4 dan dual-stack.
    • fd20:ce::254 untuk instance khusus IPv6.

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 berikutnya