區網 DNS Server 與路由器內建 DNS Server 的衝突與設定

路由器一般都有內建簡易型的 DNS server (dnsmasq),可以自行設定本地機器的 domain name,如果是要查詢外部 domain ,也可以設定一到多組的外部 DNS server 以便轉發到外部進行查詢,一般來說常設定 ISP 提供的 DNS 或是使用 Google 強大的 8.8.8.8 及 8.8.4.4這兩台 DNS。

而 Synology 也可以自建 DNS server,而且是完整版的,如果要啟動 AD 網域,得先安裝並啟動 DNS server,以便管理 AD 網域中的各台主機名稱。為了妥善管理家中各項裝置,我啟用了 AD 網域,並將家中的設備都逐一的設定到 Synology 的 DNS server 中,同時也設定了 DNS 外部轉寄站的規則,同時為了加快瀏覽的速度,broso.synology.me 在本地裝置進行查詢時,還可以使用區網的 IP 來瀏覽,少了一層 NAT 的轉換,速度會加快不少。

接著問題來了,我發現常常在區網瀏覽 隨想意誌 時,常常會發生無法顯示網頁,再仔細使用 nslookup 指令查詢,才發現原來 broso.synology.me 在本地查詢時,無法從 Synology 的 DNS 查詢到區網 IP,所以當然無法顯示網頁。

仔細順了一遍目前路由器與Synology上的 DNS 設定,應該是目前的設定混亂,每個 DNS Server 都有設定外部轉寄站進行查詢,同時路由器上面的設定也有點眉角要注意,所以還是記錄一下,方便自己以後回頭來查詢。

  • DNS 的設定應該分層有序,並且不要都設定可以往外查詢。

因為所有裝置的 IP 是由路由器的 DHCP 來進行派發,所以預設的 DNS 就還是設定在路由器上的 DNS,但路由器的 DNS 設定,外部轉寄站就只設定 Synology 的 IP(不要再設定外部轉寄站,像是 ISP 或是 Google 的 DNS),以便將所有的 DNS 查詢都轉交給 Synology 的 DNS 來回應(如此 broso.synology.me 才有機會查詢為本地的區網 IP)。同時路由器的往上層 DNS 轉寄查詢設定當然要打開囉(如下紅框)。

其次 Synology 的 DNS 設定就得設定外部轉寄站了,並且指向 ISP 或 Google 的 DNS。

  • RT-AC86U 的 DNS 設定要注意

DNS Rebind protection 記得要關掉,不然 dnsmasq 往上層本地端的 DNS 查詢時,會判定為 DNS Rebind attack。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

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