The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

Exchange 若發生 451 4.4.0 DNS query failed 錯誤應如何處理

前陣子有好長一段時間公司內的 Exchange 就是沒辦法寄信到我公司一個合作夥伴的信箱裡,我公司裡的 Exchange 已經安裝超過5年了,第一次遇到這個問題,而且神奇的是,也只有這個合作夥伴的信箱有問題,每次只要寄信給他們總是被退信,都一定要改用 Gmail 寄信對方才能收到。相反的,對方也跟我說他們其他客戶沒有寄不進去的,只有我們有無法傳送郵件的問題。真的又看到鬼了,兩造雙方查了很久,也都互推自己沒問題,且事實也是如此,真像只有一個,這時我又柯南上身,最終查出個水落石出。

首先,我們一樣先來看看問題發生的徵狀,每發出一封信給對方,一定會收到退信,如下圖:

然後我再寄送一次測試信給對方,並當下查詢 Exchange Server 2007 上的「佇列檢視器」,得知所有寄給合作夥伴的所有郵件全都因為 451 4.4.0 DNS query failed 的錯誤而擱置,如下圖:

 

這問題實在太詭異了,因為我在本機用 nslookup 工具程式查詢客戶的域名(Domain Name)都是正常的,唯獨 Exchange 無法寄出郵件,並顯示 DNS 查詢失敗的錯誤訊息。

接著我改用 Linux 的 host 工具程式逐步探究 DNS 是否有任何設定上的問題,也因此找出了一些些蛛絲馬跡,請看如下檢查的步驟:

1. 先查詢 twca.com.tw 的相關域名資訊,查到了兩個 A 紀錄,與一個 MX 紀錄

# host twca.com.tw
twca.com.tw has address 60.250.3.148
twca.com.tw has address 219.87.64.178
twca.com.tw mail is handled by 11 mailspamsqr.twca.com.tw.

2. 由於 MX 紀錄必須要有 A 紀錄才能運作,所以我接著查詢 mailspamsqr.twca.com.tw. 的 A 紀錄

# host mailspamsqr.twca.com.tw.
mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134
;; connection timed out; no servers could be reached
;; connection timed out; no servers could be reached

是的,問題終於出現了一條線索,因為在查詢 mailspamsqr.twca.com.tw. 的主機紀錄時,竟然出現兩個莫名的 connection timed out; no servers could be reached 錯誤!這樣的錯誤通常是出在 DNS 伺服器連不上的情況,但怪的是,明明已經回傳兩筆 mailspamsqr.twca.com.tw. 的 A 紀錄,為什麼還要繼續查呢?

此時我指明查 A 紀錄,得到的結果正常:

# host -t a mailspamsqr.twca.com.tw.
mailspamsqr.twca.com.tw has address 203.67.10.134
mailspamsqr.twca.com.tw has address 219.80.19.162

接著我再往 NS 紀錄查找,我先查詢他的上層 twca.com.tw. 域名的 NS 紀錄,查到有兩個紀錄:

# host -t ns twca.com.tw.
twca.com.tw name server dns2.twca.com.tw.
twca.com.tw name server dns7.twca.com.tw.

然後再利用這兩個 NS 查詢出 mailspamsqr.twca.com.tw. 的 A 紀錄:

# host -t a mailspamsqr.twca.com.tw. dns2.twca.com.tw.
Using domain server:
Name: dns2.twca.com.tw.
Address: 219.80.58.105#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134

怪了!感覺 DNS 一切正常阿!為什麼 Exchange 就是連接不到呢?!而且剛剛出現的兩個莫名的 connection timed out; no servers could be reached 錯誤還沒有得到解答!

我猜想,他可能是 mailspamsqr.twca.com.tw. 擁有自己的 NS 紀錄,所以查詢 DNS 的時候又往下繼續遞迴查詢,所以我接著查 mailspamsqr.twca.com.tw. 的 NS 紀錄,並且指明用 dns2.twca.com.tw. 這台域名伺服器負責查詢,很幸運的有查到 oalinkproof.twca.com.tw. 這筆 NS 紀錄:

# host -t ns mailspamsqr.twca.com.tw. dns2.twca.com.tw.
Using domain server:
Name: dns2.twca.com.tw.
Address: 210.66.125.105#53
Aliases:

mailspamsqr.twca.com.tw name server oalinkproof.twca.com.tw.

不過,很不幸的,案情又再次陷入膠著,因為所有 DNS 檢核紀錄都正確,為什麼就是會有莫名的 connection timed out; no servers could be reached 錯誤呢?!

有時候診斷 IT 問題跟醫生診斷病人的過程極其相似,擁有 Second Opinion 是很重要的,那可以讓你往不同的角度思考問題,進而找出解決之道。

說真的,查不出問題的時候,靈感很重要,要用各種角度不停思考,打破思考的藩籬,,這時我改以 HiNet DNS (168.95.1.1) 查詢同一個 mailspamsqr.twca.com.tw. 的 NS 紀錄,真像終於大白:

# host -t ns mailspamsqr.twca.com.tw. 168.95.1.1
;; connection timed out; no servers could be reached

你可能會想問,搞不好 mailspamsqr.twca.com.tw. 真的沒有 NS 紀錄啊?!這問題很簡單,因為真正的查不到 DNS 紀錄的回傳訊息是不一樣的,如下所示我故意查一個不存在的 NS 紀錄,得到的結果應該是 not found 才對:

# host -t ns XXXmailspamsqr.twca.com.tw. 168.95.1.1
Using domain server:
Name: dns2.twca.com.tw.
Address: 210.66.125.105#53
Aliases:

Host XXXmailspamsqr.twca.com.tw. not found: 3(NXDOMAIN)

目前為止對問題的釐清又多出了一小條線索可以分析,我們歸納一下目前收集到的問題與相關線索:

  1. Exchange Server 2007 的「佇列檢視器」出現 451 4.4.0 DNS query failed 錯誤
  2. 在 Linux 執行 host mailspamsqr.twca.com.tw. 會得到兩個連不到 DNS 伺服器的錯誤
  3. 用 TWCA 自己的 DNS 可以查詢到 mailspamsqr.twca.com.tw. 的 NS 紀錄
  4. 用 HiNet 的 DNS 查詢 mailspamsqr.twca.com.tw. 的 NS 紀錄會出現連不到 DNS 伺服器的錯誤
  5. 我們的 Exchange Server 2007 可以寄送郵件到大部分的 SMTP 伺服器
  6. 合作夥伴的 Mail Server 可以收到大部分 SMTP 伺服器寄來的郵件

我後來是從上述第 3 項開始查起,我去查 oalinkproof.twca.com.tw. 的 A 紀錄,查到一堆 IP 地址,而且從 HiNet DNS 查詢也都查的到:
( :說實在我沒看過有人的 NS 紀錄這樣玩的,竟然放那麼多負載平衡 IP 地址 )

# host -t a oalinkproof.twca.com.tw. dns2.twca.com.tw.
Using domain server:
Name: dns2.twca.com.tw.
Address: 210.66.125.105#53
Aliases:

oalinkproof.twca.com.tw has address 61.30.20.252
oalinkproof.twca.com.tw has address 60.250.3.130
oalinkproof.twca.com.tw has address 219.80.34.22
oalinkproof.twca.com.tw has address 219.80.19.189
oalinkproof.twca.com.tw has address 219.80.19.253
oalinkproof.twca.com.tw has address 61.30.20.60
oalinkproof.twca.com.tw has address 203.67.10.129
oalinkproof.twca.com.tw has address 219.87.64.189
oalinkproof.twca.com.tw has address 203.67.10.113

因為 mailspamsqr.twca.com.tw. 的 NS 紀錄掛在 oalinkproof.twca.com.tw. 這台名稱伺服器上,所以我改用 oalinkproof.twca.com.tw. 這台名稱伺服器查詢 mailspamsqr.twca.com.tw. 的 A 紀錄,竟然順利取得 IP 地址:

# host -t a mailspamsqr.twca.com.tw. oalinkproof.twca.com.tw.
Using domain server:
Name: oalinkproof.twca.com.tw.
Address: 219.80.19.189#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134

接著我再用 oalinkproof.twca.com.tw. 這台名稱伺服器查詢 mailspamsqr.twca.com.tw. 的 MX 紀錄,竟然查不到 MX 紀錄:

# host -t mx mailspamsqr.twca.com.tw. oalinkproof.twca.com.tw.
Using domain server:
Name: oalinkproof.twca.com.tw.
Address: 203.67.10.129#53
Aliases:

mailspamsqr.twca.com.tw has no MX record

因為找不到 MX 紀錄,所以信件就寄不過去嗎?不是的,其實有很多公司的域名都沒設定 MX 但郵件一樣收的到,因為郵件伺服器會自動抓出該域名的 A 紀錄當成預設的 MX 位址。

這下好了,案情再次陷入膠著,因為接下來查詢的所有紀錄都有,但為什麼會有「用 HiNet 的 DNS 查詢 mailspamsqr.twca.com.tw. 的 NS 紀錄會出現連不到 DNS 伺服器的錯誤」的問題呢?為什麼連不上?因為 mailspamsqr.twca.com.tw. 沒有自己的 NS 紀錄嗎?查詢之下,果真又出現一個新線索:

# host -t ns mailspamsqr.twca.com.tw. oalinkproof.twca.com.tw.
Using domain server:
Name: oalinkproof.twca.com.tw.
Address: 219.80.34.22#53
Aliases:

mailspamsqr.twca.com.tw has no NS record

天啊,這的域名的 DNS 問題會不會太多?紀錄缺東缺西的,還有在 twca.com.tw. 根本不該定義 mailspamsqr.twca.com.tw. 的 NS 紀錄吧!

查到這裡,問題差不多已經解決,不過讓我困惑的是為什麼「用 HiNet 的 DNS 查詢 mailspamsqr.twca.com.tw. 的 NS 紀錄會出現連不到 DNS 伺服器的錯誤」的問題還是會有,這根有沒有定義 NS 沒多大關係,因為錯誤訊息很明白的顯示「connection timed out; no servers could be reached 」,也代表著 HiNet 的 DNS 應該有查到 oalinkproof.twca.com.tw. 這筆 A 紀錄才會試圖連過去,還記得 oalinkproof.twca.com.tw. 的 A 紀錄有一大堆嗎?說實在我沒看過有人的 NS 紀錄這樣玩的,竟然放那麼多負載平衡 IP 地址

# host -t a oalinkproof.twca.com.tw. dns2.twca.com.tw.
Using domain server:
Name: dns2.twca.com.tw.
Address: 210.66.125.105#53
Aliases:

oalinkproof.twca.com.tw has address 61.30.20.252
oalinkproof.twca.com.tw has address 60.250.3.130
oalinkproof.twca.com.tw has address 219.80.34.22
oalinkproof.twca.com.tw has address 219.80.19.189
oalinkproof.twca.com.tw has address 219.80.19.253
oalinkproof.twca.com.tw has address 61.30.20.60
oalinkproof.twca.com.tw has address 203.67.10.129
oalinkproof.twca.com.tw has address 219.87.64.189
oalinkproof.twca.com.tw has address 203.67.10.113

由於這種 Round-robin DNS 的負載平衡機制會有 DNS Cache 的問題,用戶端無法自由切換不同的 NS 紀錄,因此犧牲了 DNS 本身的高可用性特性,正常來說,應該定義多筆 NS 紀錄才對,況且,一般公司會需要這麼多 NS 主機,或是 NS 主機會需要這麼多線路做負載平衡,我也十分懷疑,所以我才說我很少看到有人的 NS 紀錄是這樣玩的!

為了驗證錯誤,我一個 IP 一個 IP 的去查,結果竟有驚人發現,這些 IP 中,真的有一個 IP 連不上,而因為 Round-robin DNS 的關係,這個世界上只要有 Name Server 選中了這個 IP,也代表著一定會有人連不上也查不到在 oalinkproof.twca.com.tw. 上面的所有 DNS 紀錄,請見以下「紅字」部分:

# host -t a mailspamsqr.twca.com.tw. 61.30.20.252
Using domain server:
Name: 61.30.20.252
Address: 61.30.20.252#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134
# host -t a mailspamsqr.twca.com.tw. 61.30.20.252
Using domain server:
Name: 61.30.20.252
Address: 61.30.20.252#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134
# host -t a mailspamsqr.twca.com.tw. 60.250.3.130
Using domain server:
Name: 60.250.3.130
Address: 60.250.3.130#53
Aliases:

mailspamsqr.twca.com.tw has address 203.67.10.134
mailspamsqr.twca.com.tw has address 219.80.19.162
# host -t a mailspamsqr.twca.com.tw. 219.80.34.22
Using domain server:
Name: 219.80.34.22
Address: 219.80.34.22#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134
# host -t a mailspamsqr.twca.com.tw. 219.80.19.189
Using domain server:
Name: 219.80.19.189
Address: 219.80.19.189#53
Aliases:

mailspamsqr.twca.com.tw has address 203.67.10.134
mailspamsqr.twca.com.tw has address 219.80.19.162
# host -t a mailspamsqr.twca.com.tw. 219.80.19.253
Using domain server:
Name: 219.80.19.253
Address: 219.80.19.253#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134
# host -t a mailspamsqr.twca.com.tw. 61.30.20.60
;; connection timed out; no servers could be reached
# host -t a mailspamsqr.twca.com.tw. 203.67.10.129
Using domain server:
Name: 203.67.10.129
Address: 203.67.10.129#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134
# host -t a mailspamsqr.twca.com.tw. 219.87.64.189
Using domain server:
Name: 219.87.64.189
Address: 219.87.64.189#53
Aliases:

mailspamsqr.twca.com.tw has address 203.67.10.134
mailspamsqr.twca.com.tw has address 219.80.19.162
# host -t a mailspamsqr.twca.com.tw. 203.67.10.113
Using domain server:
Name: 203.67.10.113
Address: 203.67.10.113#53
Aliases:

mailspamsqr.twca.com.tw has address 219.80.19.162
mailspamsqr.twca.com.tw has address 203.67.10.134

查案查到這裡,是不是該結案了呢?因為如果是 DNS 運作有問題,照理說應該不會只有我不能連,而其他人都能連接吧!如果真的有時查的到、有時查不到,應該總有幾次會成功吧,但基本上每次都查詢失敗!所以,我研判「兇手」另有其人!也就是說,「connection timed out; no servers could be reached 」這個問題並不是因為 oalinkproof.twca.com.tw. 的 A 紀錄中有一台名稱伺服器連不上而造成的。

查了一大圈,都快把合作夥伴的 DNS 問題給健檢完了,但「兇手」卻還沒抓到,悶啊~~

最後還是尋求 Microsoft 技術支援,看是不是 Exchange 本身的問題,後來得到的消息是 Exchange Server 2007 與 Exchange Server 2010 在特定更新版本之前會有個問題,就是透過 Exchange Server 查詢對方 SMTP 位址的時候會嘗試查詢遠端 SMTP 伺服器的 AAAA 紀錄 (也就是 IPv6 的地址),但因為有些名稱伺服器會忽略 AAAA 紀錄的查詢或是回傳錯誤的訊息格式而導致找不到對方域名的 A 紀錄或 MX 紀錄,因而導致引發 451 4.4.0 DNS query failed 的錯誤!相關說明請見 KB972744

如果是 Exchange Server 2007 的話,必須先套用更新到 Update Rollup 2 for Exchange Server 2007 Service Pack 2 以上版本,然後再修改以下設定,勾選「使用傳輸伺服器上的外部 DNS 查閱設定」即可解決此一問題。如果是 Exchange Server 2010 的話,直接勾選該選項即可,如下圖示:

 

真像即將大白,但我的完美性格作祟,總覺得問題解決的不夠圓滿,我們再看一次線索中最重要的兩條:

  1. 我們的 Exchange Server 2007 可以寄送郵件到大部分的 SMTP 伺服器
  2. 合作夥伴的 Mail Server 可以收到大部分 SMTP 伺服器寄來的郵件

第 1 點我們已經釐清問題,而且已經解決!

第 2 點,我們公司的 Exchange Server 2007 畢竟發給其他客戶都沒什麼問題,唯獨 TWCA 寄不到,這也代表著一定他們有些地方設定有問題,現在我已經研判出問題發生的主因在於對方的域名因為查不到 AAAA 紀錄,所以引發 451 4.4.0 DNS query failed 錯誤。而重點就在於:為什麼其他人沒這個問題?就只有 TWCA 才有呢?

我們再來看一下 mailspamsqr.twca.com.tw. 這個域名的 A 紀錄:

# host -t a mailspamsqr.twca.com.tw.
mailspamsqr.twca.com.tw has address 203.67.10.134
mailspamsqr.twca.com.tw has address 219.80.19.162

當查詢 AAAA 紀錄時,竟然回應的是 connection timed out; no servers could be reached

# host -t aaaa mailspamsqr.twca.com.tw.
;; connection timed out; no servers could be reached

如果查不到 AAAA 紀錄的結果應該是 not found 才對:

# host -t aaaa xxxmailspamsqr.twca.com.tw.
Host xxxmailspamsqr.twca.com.tw. not found: 3(NXDOMAIN)

這代表著當 DNS Client 查詢 mailspamsqr.twca.com.tw. 域名的 AAAA 紀錄時,會先判斷出該網域負責的 NS 紀錄為 oalinkproof.twca.com.tw.,但是真正搞笑的是,oalinkproof.twca.com.tw 竟然回應我他不負責這個域名 ( mailspamsqr.twca.com.tw ),請向 Root Name Server 重新查詢!也就是說 DNS Client 已經辛苦的從 Root Name Server 查到 oalinkproof.twca.com.tw 這台名稱伺服器,但這台又叫我回去 Root Name Server 重查,所以導致無窮迴圈發生,因此引發了 connection timed out 的問題。

我們改用 dig 工具程式向 oalinkproof.twca.com.tw 這台名稱伺服器查詢 mailspamsqr.twca.com.tw 的 NS 紀錄,看能不能得到 AA ( Authoritative Answer ; 權威的答案 ) 的 DNS 旗標紀錄,結果真如所料,如果這台名稱伺服器回應的 DNS Header Flags 中並沒有 “aa” 旗標,也代表著該該伺服器並不負責該域名的意思。

dig mailspamsqr.twca.com.tw. NS @oalinkproof.twca.com.tw.

我們來看一個設定正確的 DNS 查詢結果,回應結果中應該會有 aa 旗標才對:

dig blog.miniasp.com. NS @ns1.miniasp.com.

嗚呼~ 真相大白!結論就是:我們合作伙伴的 DNS 設定錯誤!

 

現在,雖然已經真相大白,但為什麼合作伙伴長久以來都沒發現自己的 DNS 有問題呢?這真的是最終解答嗎?這最後一塊拼圖我們還是一次講到位吧!

 

這個問題,要看 DNS Client ( Resolver ) 是怎樣設計的,因為查詢 DNS 的過程有點複雜,查詢的過程還有分 遞迴查詢 (Recursive Query) 或 反覆查詢 (Iterative Query),但一般來說,查詢 DNS 紀錄的通常都是用戶端,也就是他只要結果,不管查詢過程,所以通常就是「遞迴查詢」的方式直接得到一個查詢結果而已,所以當我們查詢 mailspamsqr.twca.com.tw. 的 A 紀錄時,最終會查到 oalinkproof.twca.com.tw. 這台域名伺服器,有趣的是,這台的確會回應這是一個權威的答案 ( aa ),所以當 Mail Server 運作的過程中用的是 IPv4 的協定,而且使用發信功能,就不會出現問題。關於這點我們可以用 dig +trace 參數得知完整的遞迴查詢過程,如下所示:

# dig +trace A mailspamsqr.twca.com.tw.

; <<>> DiG 9.7.0-P1 <<>> +trace A mailspamsqr.twca.com.tw.
;; global options: +cmd
.                       433229  IN      NS      c.root-servers.net.
.                       433229  IN      NS      f.root-servers.net.
.                       433229  IN      NS      d.root-servers.net.
.                       433229  IN      NS      g.root-servers.net.
.                       433229  IN      NS      k.root-servers.net.
.                       433229  IN      NS      m.root-servers.net.
.                       433229  IN      NS      l.root-servers.net.
.                       433229  IN      NS      j.root-servers.net.
.                       433229  IN      NS      e.root-servers.net.
.                       433229  IN      NS      b.root-servers.net.
.                       433229  IN      NS      a.root-servers.net.
.                       433229  IN      NS      i.root-servers.net.
.                       433229  IN      NS      h.root-servers.net.
;; Received 228 bytes from 168.95.1.1#53(168.95.1.1) in 2 ms

tw.                     172800  IN      NS      e.dns.tw.
tw.                     172800  IN      NS      sec4.apnic.net.
tw.                     172800  IN      NS      d.dns.tw.
tw.                     172800  IN      NS      f.dns.tw.
tw.                     172800  IN      NS      b.dns.tw.
tw.                     172800  IN      NS      g.dns.tw.
tw.                     172800  IN      NS      a.dns.tw.
tw.                     172800  IN      NS      ns.twnic.net.
tw.                     172800  IN      NS      c.dns.tw.
tw.                     172800  IN      NS      h.dns.tw.
;; Received 504 bytes from 192.33.4.12#53(c.root-servers.net) in 144 ms

com.tw.                 86400   IN      NS      a.twnic.net.tw.
com.tw.                 86400   IN      NS      b.twnic.net.tw.
com.tw.                 86400   IN      NS      c.twnic.net.tw.
com.tw.                 86400   IN      NS      d.twnic.net.tw.
com.tw.                 86400   IN      NS      e.twnic.net.tw.
com.tw.                 86400   IN      NS      f.twnic.net.tw.
com.tw.                 86400   IN      NS      g.twnic.net.tw.
com.tw.                 86400   IN      NS      ns2.cuhk.edu.hk.
;; Received 416 bytes from 203.119.3.1#53(h.dns.tw) in 2 ms

twca.com.tw.            86400   IN      NS      dns2.twca.com.tw.
twca.com.tw.            86400   IN      NS      dns7.twca.com.tw.
;; Received 143 bytes from 137.189.6.21#53(ns2.cuhk.edu.hk) in 28 ms

mailspamsqr.twca.com.tw. 3600   IN      NS      oalinkproof.twca.com.tw.
;; Received 234 bytes from 219.80.58.105#53(dns2.twca.com.tw) in 5 ms

mailspamsqr.twca.com.tw. 30     IN      A       203.67.10.134
mailspamsqr.twca.com.tw. 30     IN      A       219.80.19.162
;; Received 73 bytes from 203.67.10.129#53(oalinkproof.twca.com.tw) in 396 ms

當我們改查詢 mailspamsqr.twca.com.tw. 的 AAAA 紀錄時,最終會查到 oalinkproof.twca.com.tw. 這台域名伺服器,但搞笑的是,oalinkproof.twca.com.tw. 竟然回應說「這域名不甘我的事,請你去找 Root NS 查詢」,所以用戶端不但完全查不到 AAAA 紀錄,而且還引發無窮迴圈進而發生連不上伺服器的錯誤訊息。關於這點我們可以用 dig +trace 參數得知完整的遞迴查詢過程,如下所示你還會看到一個 “BAD REFERRAL” 字樣代表這個回應是有問題的:

# dig +trace AAAA mailspamsqr.twca.com.tw.

; <<>> DiG 9.7.0-P1 <<>> +trace AAAA mailspamsqr.twca.com.tw.
;; global options: +cmd
.                       479246  IN      NS      k.root-servers.net.
.                       479246  IN      NS      g.root-servers.net.
.                       479246  IN      NS      c.root-servers.net.
.                       479246  IN      NS      e.root-servers.net.
.                       479246  IN      NS      b.root-servers.net.
.                       479246  IN      NS      f.root-servers.net.
.                       479246  IN      NS      d.root-servers.net.
.                       479246  IN      NS      j.root-servers.net.
.                       479246  IN      NS      i.root-servers.net.
.                       479246  IN      NS      h.root-servers.net.
.                       479246  IN      NS      m.root-servers.net.
.                       479246  IN      NS      a.root-servers.net.
.                       479246  IN      NS      l.root-servers.net.
;; Received 228 bytes from 168.95.1.1#53(168.95.1.1) in 2 ms

tw.                     172800  IN      NS      a.dns.tw.
tw.                     172800  IN      NS      b.dns.tw.
tw.                     172800  IN      NS      c.dns.tw.
tw.                     172800  IN      NS      d.dns.tw.
tw.                     172800  IN      NS      e.dns.tw.
tw.                     172800  IN      NS      f.dns.tw.
tw.                     172800  IN      NS      g.dns.tw.
tw.                     172800  IN      NS      h.dns.tw.
tw.                     172800  IN      NS      ns.twnic.net.
tw.                     172800  IN      NS      sec4.apnic.net.
;; Received 496 bytes from 193.0.14.129#53(k.root-servers.net) in 256 ms

com.tw.                 86400   IN      NS      c.twnic.net.tw.
com.tw.                 86400   IN      NS      g.twnic.net.tw.
com.tw.                 86400   IN      NS      a.twnic.net.tw.
com.tw.                 86400   IN      NS      f.twnic.net.tw.
com.tw.                 86400   IN      NS      d.twnic.net.tw.
com.tw.                 86400   IN      NS      e.twnic.net.tw.
com.tw.                 86400   IN      NS      b.twnic.net.tw.
com.tw.                 86400   IN      NS      ns2.cuhk.edu.hk.
;; Received 416 bytes from 192.83.166.11#53(ns.twnic.net) in 2 ms

twca.com.tw.            86400   IN      NS      dns2.twca.com.tw.
twca.com.tw.            86400   IN      NS      dns7.twca.com.tw.
;; Received 143 bytes from 203.73.24.203#53(b.twnic.net.tw) in 115 ms

mailspamsqr.twca.com.tw. 3600   IN      NS      oalinkproof.twca.com.tw.
;; Received 234 bytes from 210.66.125.105#53(dns2.twca.com.tw) in 8 ms

.                       518400  IN      NS      J.ROOT-SERVERS.NET.
.                       518400  IN      NS      K.ROOT-SERVERS.NET.
.                       518400  IN      NS      L.ROOT-SERVERS.NET.
.                       518400  IN      NS      M.ROOT-SERVERS.NET.
.                       518400  IN      NS      A.ROOT-SERVERS.NET.
.                       518400  IN      NS      B.ROOT-SERVERS.NET.
.                       518400  IN      NS      C.ROOT-SERVERS.NET.
.                       518400  IN      NS      D.ROOT-SERVERS.NET.
.                       518400  IN      NS      E.ROOT-SERVERS.NET.
.                       518400  IN      NS      F.ROOT-SERVERS.NET.
.                       518400  IN      NS      G.ROOT-SERVERS.NET.
.                       518400  IN      NS      H.ROOT-SERVERS.NET.
.                       518400  IN      NS      I.ROOT-SERVERS.NET.
;; BAD REFERRAL
;; Received 252 bytes from 219.80.19.189#53(oalinkproof.twca.com.tw) in 20 ms

 

總結

關於這個問題,比較正確的解決方法應該是請合作廠商設定好正確的 NS 紀錄,而不是叫我們更新 Exchange Server 或調整我方設定!為了證明這一點,花了我好多時間撰寫這篇文章,我覺得我真的是吃飽太閒才會寫這些,希望對大家有幫助。 XD

 

相關連結

 

常用 DNS 查詢指令整理

  • host 指令
    • host -t a mailspamsqr.twca.com.tw.
    • host -t aaaa mailspamsqr.twca.com.tw.
    • host -t ns mailspamsqr.twca.com.tw.
    • host -t mx mailspamsqr.twca.com.tw.
  • dig 指令
    • 查 AAAA 紀錄 ( IPv6 位址 )
      • dig AAAA mailspamsqr.twca.com.tw.
    • 查 A 紀錄,顯示簡短訊息(僅顯示查詢結果)
      • dig +short A mailspamsqr.twca.com.tw.
    • 查 A 紀錄,顯示簡短訊息,指定 Name Server 查詢
      • dig +short A mailspamsqr.twca.com.tw. @dns2.twca.com.tw.
    • 查特定域名的完整遞迴查詢過程
      • dig +trace mailspamsqr.twca.com.tw.
    • 僅查單一 NS 上的紀錄,不啟用遞迴查詢
      • dig +norec mailspamsqr.twca.com.tw. @dns2.twca.com.tw.
    • 取得遞迴查詢的結果 (有加沒加 +rec 結果相同,因為預設就是遞迴查詢)
      • dig +rec mailspamsqr.twca.com.tw. @dns2.twca.com.tw.