網頁

Tool - IntoDNS報告內容全攻略筆記

DNS Server架設需求討論

之前提過一次「選一個安全的DNS伺服器」,不過那是別人架設好的DNS Server,一般而言,如果我們只架Web Server、Mail Server服務,那我們最少在網路上須提供二筆最基本的「記錄,Record」,一個是 A Record、一個是 MX Record

例如,

www.kkbruce.net  A  64.233.183.121
mail.kkbruce.net  A  64.233.183.121
           MX  10 mail.kkbruce.net

DNS 相關知識,不是今天的主題,我不深入討論。

我們在申請Domain時,Domain服務供應商都會有 DNS 代管服務,而且會提供我們一個基礎或進階DNS管理的功能,有些 Domain 服務供應商提的 DNS 功能很全面,有些很入門。如果你 Domain 是在台灣申請,絕大部份所提供的 DNS 管理功能都很入門,有些更只有少少幾筆數的A記錄和MX記錄。

當個人或公司,剛好對外只提供Web或Mail服務時,簡單的幾筆的A記錄與MX記錄,確實是足夠用,代管省成本、省頻寬、省硬體…,且這些 Domain 供應商的DNS伺服器都很穩定。通常不夠用時,我們就必須自己架設DNS Server來提供解析服務。這裡先說明,因為Domain轉換供應商有一定的限制與條件,並不是想轉換就可以立即轉換,如果你符合轉換件條,當然可以轉換到DNS管理功能較全面的供應商,不過,通常是「當務之急」,所以我說「必須自己架設」。

DNS Server是整個網路的基礎,沒有它整個網路就是廢物。架好了,並不代表設定沒問題。DNS本身有一堆的RFC文件,一般人也不太可能為了架一台DNS Server去讀那些RFC文件,我們必須能很快速找出設定問題。早期,或是你年紀大一點,大概都是使用dnsstuff.com所提供的測試服務,不過後來dnsstuff轉換經營方式,我就很少使用dnsstuff了。後來,又在網路上找到了另一個intoDNS提供DNS測試服務。

intoDNS測試的好處是「快」,一般我們修改 DNS 後,還必須等到上層的DNS Server(例如,ISP的DNS Server)快取時間結束,重新抓取我們DNS Server裡Record內容後,"使用者"或"我們"才能知道修改結果正確與否。但使用intoDNS測試我們的DNS設定時,通常你修改完DNS,intoDNS通常就能抓取最新的結果,這可以省下我們許多時間。(不過還是會受上層DNS Server快取的影響)

有一點要注意,intoDNS只能針對「第一層」的Domain進行測試,即「kkbruce.net」是OK,但像「ns1.kkbruce.net」第二層Domain,intoDNS就不進行測試。

intoDNS Report正體中文解釋


以下就我申請的 kkbruce.net 網域名稱進行測試,http://www.intodns.com/kkbruce.net所提供的報告內容,簡單進行說明。(基本上,只要不出現紅色驚嘆號,就是OK)


Category:Parent

網域根節點,共五項測試。

Test name


intoDNS kkbruce.net Parent 測試結果
圖一:intoDNS kkbruce.net Parent 測試結果

  • Domain NS records:檢查上層伺服器是否能找到你的NS Records(名稱伺服器記錄),一般最少不同IP的兩筆記錄。
  • TLD Parent Check:是否能從上層伺服器查詢到你的TLD(根網域)資訊。
  • Your nameservers are listed:你的DNS是否記錄在上層伺服器之中。
  • DNS Parent sent Glue:glue records,你的上層伺服器能轉送DNS要求到你的DNS Server。
  • Nameservers A records:每一台NS記錄的DNS是否有A記錄。
Glue 這我不熟,從 wiki了解 Glue Records,
Circular dependencies and glue records
Name servers in delegations are identified by name, rather than by IP address. This means that a resolving name server must issue another DNS request to find out the IP address of the server to which it has been referred. If the name given in the delegation is a subdomain of the domain for which the delegation is being provided, there is a circular dependency. In this case the nameserver providing the delegation must also provide one or more IP addresses for the authoritative nameserver mentioned in the delegation. This information is called glue. The delegating name server provides this glue in the form of records in the additional section of the DNS response, and provides the delegation in the answer section of the response.
For example, if the authoritative name server for example.org is ns1.example.org, a computer trying to resolve www.example.org first resolves ns1.example.org. Since ns1 is contained in example.org, this requires resolving example.org first, which presents a circular dependency. To break the dependency, the nameserver for the org top level domain includes glue along with the delegation for example.org. The glue records are address records that provide IP addresses for ns1.example.org. The resolver uses one or more of these IP addresses to query one of domain's authoritative servers, which allows it to complete the DNS query.
例如,kkbruce.net 這個網域要設定 ns1.kkbruce.net 與 ns2.kkbruce.net 這兩台 DNS 伺服器,當使用者直接打 kkbruce.net 時的查詢流程會是:

  1. No Glue Record flow
    1. kkbruce.net 的名稱伺服器是? → 去問 ns1.kkbruce.net
    2. ns1.kkbruce.net 的IP是? → 去問 kkbruce.net
    3. kkbruce.net 的名稱伺服器是? → 去問ns1.kkbruce.net
    4. ns1.kkbruce.net 的IP是? → 去問 kkbruce.net
    5. Loop ... 進入無窮迴圈
  2. Have Glue Record flow
    1. kkbruce.net 的名稱伺服器是? → 去問 ns1.kkbruce.net
    2. ns1.kkbruce.net 的IP是? → IP Address 是 xxx.xxx.xxx.xxx
有些代管的DNS名稱伺服器是不提供Glue Records,這我最後會說明。

Category:NS

Name servers(名稱伺服器),共十八項測試。即測試你自行架設的名稱伺服器。

Test Name


intoDNS kkbruce.net NS 測試結果
圖二:intoDNS kkbruce.net NS 測試結果

  • NS records from your nameservers:NS記錄是否在你的名稱伺服器之中。
  • Recursive Queries:遞迴查詢。(不要開啟 recursive queries)
  • Same Glue:確認你所提供的NS有相同的Glue。
  • Glue for NS records:查詢NS記錄,回應的A記錄是否正確。參考上一小節最後範例。
  • Mismatched NS records:是否有錯誤的NS記錄。所有名稱伺服器的NS記錄必須一致。
  • DNS servers responded:DNS伺服器是否有回應。只要其中一台有回應即可。
  • Name of nameservers are valid:NS記錄在你名稱伺服器是否正確。
  • Multiple Nameservers:是否有多台名稱伺服器。最少兩台。
  • Nameservers are lame:是否有無用的名稱伺服器。
  • Missing nameservers reported by parent:你的名稱伺服器的NS記錄與上層伺服器回報的是否相同。
  • Missing nameservers reported by your nameservers:你名稱伺服器的NS記錄是否互相一致。
  • Domain CNAMEs:Domain本身是否有多筆CNAME記錄。
  • NSs CNAME check:NS記錄本身是否有多筆CNAME記錄。
  • Different subnets:你的名稱伺服器是否在不同的網段。
  • IPs of nameservers are public:名稱伺服器是的IP是否為公開。不能是 192.168.x.x、10.10.x.x、172.16.x.x之類的私有網段。
  • DNS servers allow TCP connection:名稱伺服器是否允許TCP 53 port連接。如果有設定防火牆,記得要開UDP與TCP的53 port。
  • Different autonomous systems:不同的AS。
  • Stealth NS records sent:是否有洩漏SOA記錄。

[補充]Glue for NS records
這一項有問題,我的 kkbruce.net 是透過 Google 向 Godaddy 購買,裡面都是預設值,kkbruce.net 裡沒有那兩台 Name Servers的A記錄,會增加額外的成本,intoDNS也提供修改方式,在 kkbruce.net 裡增加那兩台Name Servers的A記錄。只要不是紅色驚嘆號,你可以自行選擇要不要修正,我的建議是:「能力範圍內盡量修正」。

[補充]Different autonomous systems
我不是很了解,從Internet找到回答是:
Basically the same as the last one, except this means that your DNS servers use the same "AS". An "AS" is a routing term used in BGP. Basically, an AS is a "network" on the internet. If your nameserves are in the same AS, and the internet connection to that AS drops, your nameservers once again become unreachable.
我到另一個 dns-info 做我們公司的測試,兩台伺服器雖然是不同IP,但都是得到 AS3462,此項測試是黃色驚嘆號,搜尋 AS3642 得到的是「Chunghwa Telecom Co., Ltd. Data Communication Business Group (HiNet)」。還是看不懂,簡單說,即是雖然IP不同,但他們在網路上走的路由(routing)是差不多的,只要這條路由(routing)斷了,還是全斷,本質上,就失去架設兩台以上名稱伺服器的原用意。

Category:SOA

SOA:Start Of Authority,開始的授權資源記錄。共八項測試。

Test Name


intoDNS kkbruce.net SOA測試結果
圖三:intoDNS kkbruce.net SOA記錄測試結果


  • SOA record:取得SOA記錄。
  • NSs have same SOA serial:名稱伺服器之間,是否有相同序號的SOA記錄。
  • SOA MNAME entry:主要名稱伺服器的名稱是否與上層名稱伺服器一致。剛好玩到一個 intoDNS - hinet.net, SOA與上層名稱伺服器不一致。
  • SOA Serial:SOA序號。建議使用「西元年月日nn」格式,例如「2011120201」,這樣可以一眼看出來是西元幾年幾月幾日第幾次修改。
  • SOA REFRESH:重新整理的間隔。
  • SOA RETRY:重試間隔。
  • SOA EXPIRE:到期時間。
  • SOA MINIMUM TTL:最小存留時間。


SOA相關設定參考值,可參考我這篇Windows Server 2008 R2修改DNS記錄更新時間

Category:MX

MX:郵件交換程式記錄。共十一項測試。如果你的網域沒有架設Mail伺服器,那此項測試的錯誤為正常,不影響名稱伺服器運作。

Test Name


intoDNS kkbruce.net MX記錄測試結果
圖四:intoDNS kkbruce.net MX記錄測試結果


  • MX Records:取得MX記錄。
  • Different MX records at nameservers:名稱伺服器之間的MX記錄是否有不一樣。
  • MX name validity:
  • MX IPs are public:MX記錄所帶的IP是否為公開。
  • MX CNAME Check:MX記錄是否為CNAME記錄。
  • MX A request returns CNAME:有MX記錄的A記錄,不是使用CNAME記錄。
  • MX is not IP:MX記錄是FQDN,而不是IP。最本文最開頭的「mx 10 mail.kkbruce.net」所帶的是 mail.kkbruce.net,不是帶IP Address。
  • Number of MX records:是否有多筆的MX記錄。
  • Mismatched MX A:名稱伺服器之間MX記錄的A記錄是否一致。
  • Duplicate MX A records:多筆MX記錄是否指向相同的A記錄或同一IP。
  • Reverse MX A records (PTR):MX記錄的A記錄是否有設定IP反解。

[補充]Number of MX records
一般中小企業,很多只會有一台Mail伺服器。到了比較中大企業,才比較有機會看到多台MX記錄的設定。

[補充]Duplicate MX A records
如果你的企業有多台Mail伺服器,與Glue for NS records差不多理由,希望可以分流、分不同ISP做線路備源。

[補充]Reverse MX A records (PTR)
IP反解,通常要向申請線路的ISP申請,這是為了垃圾郵件的問題,功效多大我不知道,如果沒有Anti-Spam的幫忙,每天還是有數百封不等的Spam mail。另外,通常還需要設定一個SPF的TXT記錄,簡易格式為「v=spf1 ip4:xxx.xxx.xxx.xxx mx -all」,xxx.xxx.xxx.xx 修改為你 mail 對外的IP。

Category:WWW

WWW, 。共三項測試。如果你的網域沒有架設WWW伺服器,那此項測試的錯誤為正常,不影響名稱伺服器運作。

Test Name


intoDNS kkbruce.net WWW記錄測試結果
圖五:intoDNS kkbruce.net WWW記錄測試結果

  1. WWW A Record:www 網址的A記錄是否正常。
  2. IPs are public:www網址的IP是否為公開。
  3. WWW CNAME:此www網址是否為CNAME記錄。建議 www獨立一筆A記錄。

我只有一條線路或我只想架一台DNS Server,可以嗎?

我們架設DNS時,最常碰到二個麻煩的規定,
  1. 一定要兩台DNS Server
  2. 一定要兩個不同的IP
這對於我們"只有一條對外線路"或"只能申請一固定IP"的公司而言很不方便,這邊提供一個很好的解決方案,如果你們家公司有申請 Hinet 的線路,透過HN號碼,都可以免費到 hidomain 申請一個「次名稱伺服器」服務。

你厲害,都不會比 ISP 厲害,它會當你的DNS備源伺服務器,它能提供 7x24x365 的免費備源,光那三個數字,就沒幾家公司做的到。想想,如果有一天 Hinet 的 DNS 掛了,那應該會是「台灣的網災」,印象中,台灣多次的地震、天災、水災…也沒聽過 Hinet 的 DNS 有掛掉的記錄,放心的交給他。

例如:
ns1.kkbruce.net → IP1
vns2.hinet.net → IP2

這樣之後,你就有二台DNS Server。只要你是 Hinet 的用戶,就算你已經有二台以上DNS Server,我還是非常建議你去申請此一服務,此備源方案可以讓你整體IT架構有加分效果。

hidomain次名稱伺服器 - Windows Server的區域轉送問題

我不知道這算不算機秘資料,hidomain網頁上範例為 BIND,而且是網段「allow-transfer {168.95.192.0/24; 168.95.1.0/24; }; 」寫法,我在Windows Server設定區域轉送時發現,Windows Server的區域轉送無法使用網段,只能單一IP的一個一個設定,二個網段255個+255個,瘋了,打電話比較快。

hidomain次名稱伺服器 for Windows Server區域轉送IP


  • 168.95.1.186
  • 168.95.1.187
  • 168.95.192.186
  • 168.95.192.187 

將以上四組IP加入Windows Server區域轉送設定,這樣 hidomain 才有辦法來跟你同步相關 zone 資料。最後決定寫出來是因為,這些IP和168.95.1.1、168.95.192.1都在同一網段,Scan一下很好找,且有心人士只要透過 Log 就能知道那幾台IP來進行同步,Hinet 應該不會那麼弱,公佈幾個IP被打掛了。

最後,當你使用 vns2.hinet.net服務後,你用 intoDNS 去Scan,會發現 intoDNS 會提醒你 vns2.hinet.net 的DNS是「No Glue」,就是不提供Glue Records。

3 則留言:

  1. 你好
    謝謝你這篇文章分享 很詳細喔 但我有個問題
    我上intodns輸入我們公司網域 miyo.com.tw
    出現mx的錯誤 因我們的DNS是托給seednet代管的
    Domain Name Server IP
    vdns1.seed.net.tw 139.175.252.23
    vdns2.seed.net.tw 139.175.55.247
    我公司主機如下
    59.125.179.4 信件收發主機
    211.72.206.7 網頁主機 已托給智邦代管 IP也是智邦給的
    seednet 代管DNS設定如下
    Host 記錄型態 MX順序 IP/Domain/內容
    ns.miyo.com.tw MX 1 59.125.179.4.
    www.miyo.com.tw A 211.72.206.7
    mail.miyo.com.tw MX 2 59.125.179.4.
    目前網站已可正常運作 信件方面只可寄出 但客戶無法寄入 是設定有問題嗎? 可否幫個忙 謝謝

    回覆刪除
    回覆
    1. 方便抓個SeedNet設定圖給我看嗎?
      寄到
      http://blog.kkbruce.net/p/blog-page_13.html#.TzikwbHxrD8 裡的那個Mail。

      刪除
  2. 很棒的教程。 为什么不应该使用该工具
    域DNS运行状况检查器工具
    完整的运行状况报告,其中包括DNS运行状况测试,NS记录测试,MX记录测试,邮件(MX)记录黑名单测试,域IP黑名单测试,DMARC测试,邮件记录的SMTP测试和SPF记录测试。

    回覆刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。