Di chuyển sang Anycast và RFC 8484 DoH

Trong quá trình ra mắt DoH trên miền dns.google và địa chỉ IP Anycast phổ biến dành cho DNS Google Public, dịch vụ DoH Beta trên miền dns.google.com sử dụng các địa chỉ IP khác hiện không được dùng nữa và sẽ ngừng hoạt động.

Phiên bản thử nghiệm của API RFC 8484 cũng không được dùng nữa; dns.google/experimental sẽ không được hỗ trợ và dns.google/experimental sẽ được di chuyển sang dns.google/dns-query.

Lịch trình

Ngày Bước dừng hoạt động
2019-07-23 2019-08-01 dns.google.com/experimental chuyển hướng đến dns.google/dns-queryDONE
2019-08-05 2019-08-21 dns.google.com phân giải thành địa chỉ IP anycast của Google Public DNSDONE
2019-09-24 Địa chỉ IP cũ cho dns.google.com chuyển hướng đến dns.googleDONE
2020-06-23 dns.google.com chuyển hướng đến dns.google ở mọi nơi

Những điểm thay đổi đối với tiến trình này được cập nhật tại đây và đăng trên trang public-dns-announce. Đăng ký danh sách gửi thư khối lượng thấp đó để nhận thông tin cập nhật.

Thứ Năm, ngày 1 tháng 8 năm 2019

Yêu cầu https://dns.google.com/experimental sẽ nhận được lệnh chuyển hướng HTTP 301 đến https://dns.google/dns-query.

Các ứng dụng DoH sử dụng API JSON tại /resolve sẽ không bị ảnh hưởng.

Thứ Tư, ngày 21 tháng 8 năm 2019

dns.google.com phân giải thành địa chỉ IP Anycast của DNS Google Public.

Thông tin này minh bạch đối với hầu hết các ứng dụng DoH và không cần thay đổi gì.

Thứ Ba, ngày 24 tháng 9 năm 2019

Các truy vấn DoH đến địa chỉ IP dns.google.com cũ sẽ nhận được lệnh chuyển hướng HTTP 301 đến https://dns.google/.

Điều này có thể ảnh hưởng đến những ứng dụng DoH sử dụng API RFC 8484 hoặc JSON API.

Những ứng dụng gửi yêu cầu DoH đến địa chỉ IP được mã hoá cứng, có thể định cấu hình hoặc được lưu vào bộ nhớ đệm vĩnh viễn phải hỗ trợ một hoặc cả hai tuỳ chọn sau:

Thứ Ba, ngày 23 tháng 6 năm 2020

Truy vấn DoH đến dns.google.com trên địa chỉ IP Anycast sẽ nhận được lệnh chuyển hướng HTTP 301 đến dns.google.

Điều này có thể ảnh hưởng đến những ứng dụng DoH sử dụng API RFC 8484 hoặc JSON API.

Để hoạt động với Google DoH, ứng dụng phải hỗ trợ ít nhất một trong các nội dung sau:

Thay đổi đối với ứng dụng DoH

Theo dõi lệnh chuyển hướng HTTP

Máy chủ DoH chỉ là máy chủ HTTP xử lý truy vấn DNS. Do đó, các ứng dụng này có thể trả về các lệnh chuyển hướng HTTP (mã 301, 302, 307 hoặc 308) và các ứng dụng DoH phải tuân theo các lệnh chuyển hướng đó giống như mọi ứng dụng HTTP khác.

Nhà phát triển có thể kiểm tra việc hỗ trợ lệnh chuyển hướng HTTP với https://8.8.8.8/experimental hoặc https://8.8.8.8/resolve làm cơ sở cho URL DoH; các URL này trả về các lệnh chuyển hướng HTTP 301 đến https://dns.google/dns-queryhttps://dns.google/resolve (giữ nguyên mọi tham số GET).

Sử dụng miền dns.google cho Google DoH

Ứng dụng DoH nên sử dụng dns.google thay vì dns.google.com. Cho dù sử dụng API RFC 8484 hay JSON, mọi ứng dụng DoH có danh sách trình phân giải DoH được mã hoá cứng hoặc đã định cấu hình đều cần thay thế dns.google.com bằng dns.google trong mọi URL hoặc mẫu URI.

Sử dụng địa chỉ IP Anycast của Google Public DNS

Những ứng dụng DoH gửi yêu cầu DoH đến một danh sách địa chỉ IP được mã hoá cứng hoặc định cấu hình (ngay cả khi chỉ dùng để khởi động) cần phải thay thế các địa chỉ cũ của dns.google.com bằng địa chỉ IP Anycast của Google Public DNS.

Mẫu URI cho cấu hình

Các ứng dụng DoH nên cung cấp khả năng định cấu hình cho các điểm cuối. Cách ưu tiên và tiêu chuẩn để thực hiện việc này là sử dụng mẫu URI. Nhà phát triển ứng dụng DoH có khả năng định cấu hình đầy đủ phải thông báo cho người dùng về URL mới (mẫu URI: https://dns.google/dns-query{?dns}).

Sử dụng https://dns.google/dns-query cho RFC 8484 DoH

Các ứng dụng DoH có danh sách trình phân giải DoH được mã hoá cứng hoặc định cấu hình cần phải thay thế URL https://dns.google.com/experimental cho API DoH bản nháp trên Internet bằng https://dns.google/dns-query và xác nhận việc tuân thủ đầy đủ RFC 8484.

API /experimental (chỉ có tại dns.google.com) đã chấp nhận các truy vấn bằng cách sử dụng phương thức mã hoá Base64 không an toàn cho web và loại nội dung application/dns-udpwireformat bị API /dns-query từ chối (chỉ có tại dns.google). Những khác biệt này được mô tả trong hai phần sau đây.

Sử dụng phương thức mã hoá Base64Url cho tham số GET dns

Sử dụng phương thức mã hoá websafe Base64Url cho tham số dns trong các yêu cầu GET, thay thế Base64 (+ /) bằng (- _) và loại bỏ các ký tự khoảng đệm (=).

Chấp nhận và gửi application/dns-message

Hãy dùng application/dns-message trong tiêu đề Accept (và đối với RFC 8484 POST, trong tiêu đề Content-Type) và chấp nhận tiêu đề này làm phản hồi Content-Type.

Sử dụng Loại nội dung cũ cho yêu cầu POST sẽ không thành công với Loại nội dung đa phương tiện 415 không được hỗ trợ.

Những ứng dụng sử dụng Content-Type cũ trong tiêu đề Accept (Chấp nhận) sẽ nhận được phản hồi bằng Content-Type application/dns-message. Các ứng dụng DoH chấp nhận những điều này và không bỏ qua chúng do Content-Type không mong muốn, sẽ vẫn hoạt động.