DNSSEC DNS 數位簽章 與 EDNS0 檢查

TWNIC 發佈的新聞說,Cloudflare(1.1.1.1)、Google(8.8.8.8)、IBM(9.9.9.9) 等大型公共 DNS[RFC 7873] 業者 公布預計將於2019年2月1日當天嚴格執行 EDNS 的符合性驗證,若 DNS 軟體 或 網路設備不支援 EDNS協定 將造成 DNS 無法順利解析 或 解析反應變慢。

馬上就有幾個問題:

  1. EDNS 是什麼?
  2. 如何確認自己的 DNS Server 有支援 EDNS?
  3. 若發現自己的 DNS Server 不支援,要怎麼設定來支援 EDNS?

註:TWNIC 新聞說這個情況比較容易發生在外部 DNS Server,若使用 TWNIC 101.101.101.101、101.102.103.104 就不會有此問題。

DNSSEC DNS 數位簽章 與 EDNS0 檢查

EDNS 相關資料:

TWNIC 的新聞詳見:

EDNS 是什麼?

下述整理自此篇: 詳見此篇:DNSSEC─數位簽章與 EDNS0

  • DNSSEC、EDNS0:
    • 傳統 DNS 傳輸是透過 UDP port 53 的封包,UDP 封包本身的限制大小是 512 bytes,在傳統的 DNS 是足夠使用的。
    • DNSSEC 因為納入了數位簽章的功能,變成原本 UDP 的封包要包含數位簽章的資料,不敷使用。
    • EDNS0 可以將 UDP 封包擴展到 4,096 bytes 的大小,這樣的大小才能容納 DNSSEC 的資料傳輸。
  • EDNS0:
    • EDNS0 的流程是由 DNS 用戶端發起的
    • 當解析器可以接受 EDNS0 的封包時,就會在封包的 Additional 區段放入一個 『opt』 資訊傳遞給 Server,表示自己支援 EDNS0
    • DNS Server 收到 DNS 封包後看到 Additional 區段有『opt』 資訊,就會知道用戶端有支援 EDNS0 封包
    • Server 產生回應封包後也會在 Additional 區段加入『opt』資訊表示這是 EDNS0 封包,所以如果你有觀察 DNSSEC 的 Additional 區段,你發現回應數目會 + 1,這表示是 EDNS0 封包喔!
    • 註:雖然是 EDNS0 封包,可是不代表這是 DNSSEC 封包,在 EDNS0 中有一個 bit: DO 被設定為 1 的時候,才代表這是 DNSSEC 封包

如何確認自己的 DNS Server 有支援 EDNS?

  • 到下述網站來檢測
  • 或者 dig +dnssec example.com ns # 看到有下述回應內容就是有支援
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags: do; udp: 4096
    

註:Extension mechanisms for DNS - Wikipedia

若發現自己的 DNS Server 不支援,要怎麼設定來支援 EDNS?

這點現在還遇不到(或許是我看的方法不對,還在驗證中),目前手上所有 DNS Server 都嘗試過,都看不到沒有上述資訊的,所以還找不到不支援的案例,若真的遇到的話,可能直接把 DNS Server 升級就能解決~

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈DNSSEC DNS 數位簽章 與 EDNS0 檢查〉中有 1 則留言

  1. 自動引用通知: DNS (下) - 台網中心部落格

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料