Migrasi ke anycast dan RFC 8484 DoH

Sebagai bagian dari peluncuran DoH di domain dns.google dan alamat IP anycast yang terkenal untuk Google Public DNS, layanan DoH Beta pada domain dns.google.com yang menggunakan alamat IP lain kini tidak digunakan lagi dan akan dinonaktifkan.

Versi eksperimental dari RFC 8484 API juga tidak digunakan lagi; dns.google/experimental tidak didukung, dan dns.google/experimental akan dimigrasikan ke dns.google/dns-query.

Rentang waktu

Tanggal Langkah penghentian
2019-07-23 2019-08-01 dns.google.com/experimental dialihkan ke dns.google/dns-queryDONE
2019-08-05 2019-08-21 dns.google.com me-resolve ke alamat IP anycast Google Public DNSDONE
2019-09-24 Alamat IP lama untuk dns.google.com dialihkan ke dns.googleDONE
2020-06-23 dns.google.com dialihkan ke dns.google di mana saja

Perubahan pada linimasa ini akan diperbarui di sini dan diposting ke public-dns-announce. Berlangganan ke milis volume rendah untuk mendapatkan info terbaru.

Kamis, 1 Agustus 2019

Permintaan untuk https://dns.google.com/experimental mendapatkan pengalihan HTTP 301 ke https://dns.google/dns-query.

Aplikasi DoH yang menggunakan JSON API di /resolve tidak akan terpengaruh.

Rabu, 21 Agustus 2019

dns.google.com me-resolve ke alamat IP anycast Google Public DNS.

Hal ini transparan untuk sebagian besar aplikasi DoH, tanpa perlu perubahan.

Selasa, 24 September 2019

Kueri DoH ke alamat IP lama dns.google.com mendapatkan pengalihan HTTP 301 ke https://dns.google/.

Hal ini dapat memengaruhi aplikasi DoH yang menggunakan RFC 8484 atau JSON API.

Aplikasi yang mengirim permintaan DoH ke alamat IP yang di-hardcode, dapat dikonfigurasi, atau di-cache secara permanen harus mendukung salah satu atau kedua hal berikut:

Selasa, 23 Juni 2020

Kueri DoH ke dns.google.com pada alamat IP anycast mendapatkan pengalihan HTTP 301 ke dns.google.

Hal ini dapat memengaruhi aplikasi DoH yang menggunakan RFC 8484 atau JSON API.

Agar berfungsi dengan DoH Google, aplikasi harus mendukung setidaknya salah satu hal berikut:

Perubahan untuk klien DoH

Mengikuti pengalihan HTTP

Server DoH adalah server HTTP yang menangani kueri DNS. Dengan demikian, klien tersebut mungkin menampilkan pengalihan HTTP (kode 301, 302, 307, atau 308), dan klien DoH harus mengikuti pengalihan tersebut seperti klien HTTP lainnya.

Developer dapat memeriksa dukungan pengalihan HTTP dengan https://8.8.8.8/experimental atau https://8.8.8.8/resolve sebagai dasar untuk URL DoH mereka; URL ini menampilkan pengalihan HTTP 301 ke https://dns.google/dns-query dan https://dns.google/resolve (dengan mempertahankan parameter GET apa pun).

Gunakan domain dns.google untuk Google DoH

Aplikasi DoH harus menggunakan dns.google, bukan dns.google.com. Baik menggunakan RFC 8484 atau JSON API, semua aplikasi DoH dengan daftar resolver DoH yang di-hard code atau dikonfigurasi harus mengganti dns.google.com dengan dns.google di URL atau template URI apa pun.

Gunakan alamat IP anycast Google Public DNS

Aplikasi DoH yang mengirim permintaan DoH ke daftar alamat IP yang di-hard code atau dikonfigurasi (bahkan hanya untuk bootstrap) harus mengganti alamat lama dns.google.com dengan alamat IP anycast Google Public DNS.

Template URI untuk konfigurasi

Aplikasi DoH harus menyediakan kemampuan konfigurasi untuk endpoint; cara yang lebih disukai dan standar untuk melakukannya adalah dengan template URI. Developer aplikasi DoH dengan kemampuan konfigurasi lengkap harus memberi tahu pengguna tentang URL baru (template URI: https://dns.google/dns-query{?dns}).

Gunakan https://dns.google/dns-query untuk RFC 8484 DoH

Aplikasi DoH dengan daftar resolver DoH yang di-hard code atau dikonfigurasi harus mengganti URL https://dns.google.com/experimental untuk DoH API draf internet dengan https://dns.google/dns-query dan mengonfirmasi kepatuhan RFC 8484 lengkap.

/experimental API (hanya tersedia di dns.google.com) menerima kueri yang menggunakan encoding Base64 non-websafe dan jenis konten application/dns-udpwireformat yang ditolak oleh /dns-query API (hanya tersedia di dns.google). Perbedaan tersebut dijelaskan dalam dua bagian berikut.

Gunakan encoding Base64Url untuk parameter GET dns

Gunakan encoding Base64Url websafe untuk parameter dns dalam permintaan GET, dengan mengganti Base64 (+ /) dengan (- _) dan menghapus karakter padding (=).

Terima dan kirim application/dns-message

Gunakan application/dns-message di header Accept (dan untuk RFC 8484 POST, di header Content-Type) lalu terima sebagai Content-Type of response.

Menggunakan Jenis Konten lama untuk POST akan gagal dengan kode 415 Jenis Media yang Tidak Didukung.

Aplikasi yang menggunakan Content-Type lama di header Accept akan mendapatkan respons dengan Content-Type application/dns-message. Aplikasi DoH yang menerima ini, dan tidak mengabaikannya karena Jenis Konten yang tidak diharapkan, akan tetap berfungsi.