ในการเปิดตัว DoH ในโดเมน dns.google และที่อยู่ IP ของ Anycast ที่รู้จักกันดีสำหรับ DNS สาธารณะของ Google บริการ DoH แบบเบต้าในโดเมน dns.google.com ที่ใช้ที่อยู่ IP อื่นๆ ได้เลิกใช้งานแล้วและจะยุติการให้บริการ
นอกจากนี้ เวอร์ชันทดลองของ RFC 8484 API ก็เลิกใช้งานไปแล้วเช่นกัน แต่ไม่รองรับ dns.google/experimental และจะมีการย้ายข้อมูล dns.google/experimental ไปยัง dns.google/dns-query
ไทม์ไลน์
วันที่ | ขั้นตอนการยุติการให้บริการ |
---|---|
dns.google.com/experimental เปลี่ยนเส้นทางไปยัง
dns.google/dns-query – DONE |
|
dns.google.com แปลค่าเป็น Google Public DNS
anycast ที่อยู่ IP – DONE |
|
2019-09-24 | ที่อยู่ IP เก่าสำหรับ dns.google.com เปลี่ยนเส้นทางไปยัง dns.google – DONE |
2020-06-23 | dns.google.com จะเปลี่ยนเส้นทางไปยัง dns.google ทุกที่ |
การเปลี่ยนแปลงไทม์ไลน์นี้จะได้รับการอัปเดตที่นี่ และโพสต์ไปยัง public-dns-announce สมัครรับข่าวสารอัปเดตจากรายชื่ออีเมลที่มีปริมาณน้อย
- วันพฤหัสบดีที่ 1 สิงหาคม 2019
คำขอสำหรับ
https://dns.google.com/experimental
จะได้รับการเปลี่ยนเส้นทาง HTTP 301 ไปยังhttps://dns.google/dns-query
แอปพลิเคชัน DoH ที่ใช้ JSON API ที่
/resolve
จะไม่ได้รับผลกระทบหากต้องการใช้งาน Google DoH แอปพลิเคชันที่ใช้
/experimental
ต้องรองรับรายการต่อไปนี้อย่างน้อย 1 รายการแอปพลิเคชัน RFC 8484 DoH ต้องติดตั้งใช้งานทั้ง 2 อย่างต่อไปนี้ด้วย
- วันพุธที่ 21 สิงหาคม 2019
dns.google.com
แก้ไขเป็นที่อยู่ IP ของ Anycast สำหรับ DNS สาธารณะของ Googleการดำเนินการนี้โปร่งใสสำหรับแอปพลิเคชัน DoH ส่วนใหญ่โดยไม่ต้องมีการเปลี่ยนแปลง
- วันอังคารที่ 24 กันยายน 2019
การค้นหา DoH ที่ไปยังที่อยู่ IP ของ dns.google.com เดิมจะได้รับการเปลี่ยนเส้นทาง HTTP 301 ไปยัง
https://dns.google/
การดำเนินการนี้อาจส่งผลต่อแอปพลิเคชัน DoH ที่ใช้ RFC 8484 หรือ JSON API
แอปพลิเคชันที่ส่งคำขอ DoH ไปยังที่อยู่ IP แบบฮาร์ดโค้ด กำหนดค่า หรือแคชถาวรต้องรองรับอย่างใดอย่างหนึ่งหรือทั้ง 2 อย่างต่อไปนี้
- วันอังคารที่ 23 มิถุนายน 2020
การค้นหา DoH ไปยัง dns.google.com ในที่อยู่ IP ของ Anycast จะได้รับการเปลี่ยนเส้นทาง HTTP 301 ไปยัง dns.google
การดำเนินการนี้อาจส่งผลต่อแอปพลิเคชัน DoH ที่ใช้ RFC 8484 หรือ JSON API
หากต้องการทำงานกับ Google DoH แอปพลิเคชันต้องรองรับสิ่งต่อไปนี้อย่างน้อย 1 รายการ
การเปลี่ยนแปลงสําหรับไคลเอ็นต์ DoH
ติดตามการเปลี่ยนเส้นทาง HTTP
เซิร์ฟเวอร์ DoH เป็นเพียงเซิร์ฟเวอร์ HTTP ที่จัดการการค้นหา DNS เท่านั้น ด้วยเหตุนี้ จึงอาจแสดงการเปลี่ยนเส้นทาง HTTP (รหัส 301, 302, 307 หรือ 308) และไคลเอ็นต์ DoH ควรติดตามการเปลี่ยนเส้นทางเหล่านั้นเช่นเดียวกับไคลเอ็นต์ HTTP อื่นๆ
นักพัฒนาซอฟต์แวร์สามารถตรวจสอบการรองรับการเปลี่ยนเส้นทาง HTTP โดยใช้ https://8.8.8.8/experimental
หรือ https://8.8.8.8/resolve
เป็นฐานสำหรับ URL DoH โดยจะแสดงการเปลี่ยนเส้นทาง HTTP 301 ไปยัง https://dns.google/dns-query
และ https://dns.google/resolve
(เก็บพารามิเตอร์ GET ทั้งหมด)
ใช้โดเมน dns.google สำหรับ Google DoH
แอปพลิเคชัน DoH ควรใช้ dns.google แทน dns.google.com ทั้งนี้ไม่ว่าจะใช้ RFC 8484 หรือ JSON API แอปพลิเคชัน DoH ที่มีรายการรีโซลเวอร์ DoH แบบฮาร์ดโค้ดหรือที่กำหนดค่าไว้แล้วจะต้องแทนที่ dns.google.com ด้วย dns.google ใน URL หรือเทมเพลต URI ใดก็ตาม
ใช้ที่อยู่ IP Anycast ของ Google Public DNS
แอปพลิเคชัน DoH ที่ส่งคำขอ DoH ไปยังรายการที่อยู่ IP แบบฮาร์ดโค้ดหรือที่กำหนดค่าไว้ (แม้ว่าจะใช้เพียง Bootstrapping) จำเป็นต้องแทนที่ที่อยู่เดิมของ dns.google.com ด้วยที่อยู่ IP ของ Anycast สำหรับ DNS สาธารณะของ Google
เทมเพลต URI สำหรับการกำหนดค่า
แอปพลิเคชัน DoH ต้องมีความสามารถในการกำหนดค่าสำหรับปลายทาง วิธีการที่แนะนำและเป็นมาตรฐานในการดำเนินการนี้คือการใช้เทมเพลต URI นักพัฒนาแอปพลิเคชัน DoH ที่มีการกำหนดค่าได้อย่างสมบูรณ์ควรแจ้งให้ผู้ใช้ทราบเกี่ยวกับ URL ใหม่ (เทมเพลต URI: https://dns.google/dns-query{?dns}
)
ใช้ https://dns.google/dns-query
สำหรับ RFC 8484 DoH
แอปพลิเคชัน DoH ที่มีรายการรีโซลเวอร์ DoH แบบฮาร์ดโค้ดหรือที่กำหนดค่าไว้แล้วจะต้องแทนที่ URL https://dns.google.com/experimental
สำหรับ DoH API สำหรับฉบับร่างอินเทอร์เน็ตด้วย https://dns.google/dns-query
และยืนยันการปฏิบัติตามข้อกำหนด RFC 8484 โดยสมบูรณ์
/experimental
API (มีให้บริการที่ dns.google.com เท่านั้น) คำค้นหาที่ยอมรับโดยใช้การเข้ารหัส Base64 แบบไม่ใช่ Websafe และประเภทเนื้อหา application/dns-udpwireformat
ที่ /dns-query
API ปฏิเสธ (ใช้ได้ที่ dns.google เท่านั้น)
ความแตกต่างเหล่านี้จะอธิบายไว้ในสองส่วนต่อไปนี้
ใช้การเข้ารหัส Base64Url สำหรับพารามิเตอร์ GET dns
ใช้การเข้ารหัส Websafe Base64Url สำหรับพารามิเตอร์ dns
ในคำขอ GET โดยแทนที่ Base64 (+
/
) ด้วย (-
_
) และนำอักขระระยะห่างจากขอบ (=
) ออก
ยอมรับและส่ง application/dns-message
ใช้ application/dns-message
ในส่วนหัว "ยอมรับ" (และสำหรับ RFC 8484 POST ในส่วนหัว Content-Type) และยอมรับให้เป็น "ประเภทเนื้อหาของการตอบกลับ"
การใช้ Content-Type แบบเก่าสำหรับ POST จะไม่สำเร็จ หากมี 415 ประเภทสื่อที่ไม่รองรับ
แอปพลิเคชันที่ใช้ Content-Type แบบเก่าในส่วนหัว "ยอมรับ" จะได้รับการตอบกลับด้วยแอปพลิเคชัน Content-Type/dns-message แอปพลิเคชัน DoH ที่ยอมรับรายการเหล่านี้ และอย่าเพิกเฉยเนื่องจากประเภทเนื้อหาที่ไม่คาดคิดจะยังคงใช้งานได้