iT邦幫忙

0

是外面DNS的問題嗎?

公司有一個網站,突然下午的時候在公司內部無法連結這網站(但直接打IP可以),而在外面都可以正常連結成功。想請教各位的是:外面的DNS有可能只針對某網域來封鎖嗎?還是是公司內部DNS出問題?有問了公司的MIS,她們說都沒做任何異動。但這情形發生不只一次了,後來都是自動好的...

andy1020 iT邦新手 5 級 ‧ 2010-03-29 18:54:17 檢舉
結果真的是內部DNS解析錯了....
我在想,那倒不如內部DNS都不要有對應紀錄,直接都連去外面再解析就好了啊!

而內部有對應是不是為了加速公司內的解析呢?
(還沒找到MIS)
6
cocl
iT邦新手 5 級 ‧ 2010-03-28 10:21:45
最佳解答
  1. 檢查 Client 端 TCP/IP 的 primary dns, second dns 是否都指向 192.168.7.6?
  2. 192.168.7.6 是 dual dns ?
  3. 先用 nslookup 判斷是那一台 dns server 無法查到 test.com

方法:

假設 TCP/IP primary dns, second dns 設的都對
先向 test.com 的每一台 ns server 查看看
以確定是否 test.com 的 ns server 能否正常解析 test.com
然後再試著向 hinet.net 或 ISP提供的 dns server 查詢能否正常解析 test.com

(a).查 test.com 的 ns record

執行 nslookup, 在 nslookup 命令列輸入:
set type=ns
test.com
檢查回應訊息,
將有出現 nameserver 的那幾行的 IP address 抄下來

(2).向 test.com 各 ns server 查詢

假設從 (1) 查到的 nameserver 是指向 8.8.8.8
且已知 test.com 的 public IP address 是 123.x.x.x

改向 8.8.8.8 查詢, 在 nslookup 命令列輸入:
server 8.8.8.8
test.com
123.x.x.x
google.com
檢查 server 8.8.8.8的回應訊息,
是否能查到 test.com, 123.x.x.x, google.com?

試著向 test.com 的每一台 ns server 查看看
以確定是否 test.com ns server

向 hinet dns 查詢, 在 nslookup 命令列輸入:
server 168.95.1.1
test.com
123.x.x.x
set type=ns
test.com
檢查 server 168.95.1.1 的回應訊息,
是否能查到 test.com, 123.x.x.x, 及 test.com 的 ns record?

改向內部 192.168.7.6 查詢, 在 nslookup 命令列輸入:
server 192.168.7.6
test.com
123.x.x.x
google.com
set type=ns
test.com
檢查 server 192.168.7.6 的回應訊息,
是否能查到 test.com, 123.x.x.x, google.com 及 test.com 的 ns record?

若向 server 192.168.7.6 查不到,
但 hinet 168.95.1.1 查得
有可能 192.168.7.6 是沒有為 private ip address 設 dual dns server

假設 dual dns 設定如下:
內部 dns 設 test.com = 192.168.1.254
外部 dns 設 test.com = 123.x.x.x
若在 192.168 網域, 向 server 192.168.7.6 解析不到 test.com
但向 hinet 168.95.1.1 卻查得到
有可能 192.168.7.6 沒有為 private ip address 設 dual dns server
照理說, 有設 dual dns
在 192.168 網域查 test.com 應該將 test.com 解析為 192.168.1.254
在網外查, 應該會將 test.com 解析為 123.x.x.x

若沒有設 dual dns
或 192.168.7.6 無法解析 test.com 的 public ip address
那麼 client TCP/IP 的 primary dns, second dns 不要指向 192.168.7.6
改指向可以回應 test.com 的 外部dns server
或 192.168.7.6 要設 forward 將查詢轉到 ISP 去

8
s8710063
iT邦新手 4 級 ‧ 2010-03-26 10:38:01

不太可能是外部 DNS SERVER阻擋的問題,建議您檢查您網卡內 TCP/IP設定慣用的DNS伺服器設定,是不是有指向內部IP的DNS Server。
若有,應該就要檢查內部DNS Server設定,不過聽您的敘述應該是貴公司MIS才能檢查吧。

如果您只是因為無法使用domain name來連結網站的問題而困擾,其實不一定要管DNS問題,直接修改你本機的Hosts檔案,把您要連結的網址與IP新增上去即可。
hosts檔案通常在 C:\WINDOWS\system32\drivers\etc 內可以找到。
修改方式:再最下面一行加上→ IP△domain name →存檔即可。(△為空白鍵)

andy1020 iT邦新手 5 級 ‧ 2010-03-26 10:48:28 檢舉

恩,我照您所說的方法試了真的可行呢!
但是啊,我不能要公司內部所有的人都這樣在個人電腦裡面設定吧?!
每個人的本機網卡內都是使用對應到公司的DNS Server的。
而上次發生的時間才剛上個月而已...
我是希望分清責任好跟上面的人交代啊...即便外面都能正常使用

8
Ken(Bigcandy)
iT邦大師 1 級 ‧ 2010-03-26 11:09:05

andy1020提到:
她們說都沒做任何異動

那有重新檢查確認嗎?我的設備,常常我也沒動他,他就是會設定跑掉啊
當事人檢查一下,不是一句話『沒異動』就打發,太推卸責任了吧

看來是DNS問題,不能連線當時,用NSLOOKUP檢查,就會知道問題所在了

andy1020 iT邦新手 5 級 ‧ 2010-03-26 11:43:56 檢舉

從昨天下午到現在還是不通...

對DNS不熟,有幾個疑問:
1.DNS沒動他自己真的會跑掉嗎?
2.假設是公司內部DNS問題好了,但我們仍可以上網啊,
照理說應該可以連到外部DNS對應IP,再回來,不是嗎?

對DNS挺不熟的...

srv iT邦研究生 1 級 ‧ 2010-03-26 13:07:52 檢舉

有問題的電腦下 ipconfig /flushdns 清掉 cache
再試看看.

建議您先熟悉DNS運作,以及NSLOOKUP指令

DNS牽涉到內外電腦、WINDOWS AD服務,如果沒有整合,應該不會跑掉,但是誰能保證?
你先用NSLOOKUP檢查吧,亂猜不是解決問題的方法
為什麼我一直強調nslookup?因為他是windows內建,檢查網域名稱、ip的簡單好東西
可以上網?
網路行為沒這麼簡單
DNS
防火牆
線路
..........

6
tombo
iT邦高手 1 級 ‧ 2010-03-26 15:17:45

你的網站放在公司內部嗎?
你去用 nslookup 去查
1.DNS沒人動,不可能自己跑掉
2.你能上網是因為上網的 DNS Query 是向外查詢,而不是你家DNS的設定。
3.你先檢查一下你們電腦的 IP,使用的 DNS Server IP 是哪個!

以前有遇到客戶的狀況是,用戶端都是設 168.95.1.1 Hinet DNS,可是該公司網路流量太大,經常會造成 DNS Query Fail,最後是在防火牆上做 DNS QoS Policy來解決。

andy1020 iT邦新手 5 級 ‧ 2010-03-26 16:12:20 檢舉

說明一下環境好了:
Web Server在外部,假設IP是203.xxx.xxx.8,外面當然有申請DNS來對應www.test.com。
而公司內部也有DNS(192.168.7.6),因此公司內部的人當然都會用此慣用DNS。

突然在公司內部的人無法連結www.test.com,打203.xxx.xxx.8卻行,請外面的人的測試卻是完全沒問題。

因此很明顯的的排除了外面DNS的問題了吧?

我能上網當然不是因內部DNS,而是連到了外部DNS來對應的吧!
意思是說,我打www.test.com應該也可以去連到外部DNS來對應203.xxx.xxx.8啊(就像其他外面都正常使用那樣),但看樣子似乎是沒出去.....

而下禮拜才可以去詢問MIS,公司內DNS是她們管的...

tombo iT邦高手 1 級 ‧ 2010-03-26 18:30:50 檢舉

如果公司內部的DNS沒有設定test.com 這個 domain ,那你會連到 internet 去查詢 www.test.com 的 ip,外部的人可以連得到,所以你公司應該有設定 test.com 這個 domain

如果公司內部的 dns 有設定 test.com 這個 domain,那這個 domain 如果有設錯,就會無法連接。

內部 dns 出包的機率比較高...
我是覺得免問了,很多 MIS 出包自己都搞不清楚...甚至不知道自己動了什麼設定會影響到其他設定。

tombo iT邦高手 1 級 ‧ 2010-03-26 18:33:13 檢舉

在你輸入 nslookup 之後,可以輸入 ? ,就可以查到所有的指令及參數使用方法

4
jackytsao
iT邦研究生 1 級 ‧ 2010-03-26 18:18:35

有可能是內部的解析出了問題
也就是說出問題時 內部解析 www.test.com 出來的不是 203.xxx.xxx.8
而是某個內部IP 192.168.X.X
而這個IP不屬於該網站
所以你可以在問題發生時利用 Ping www.test.com 來看看解析成什麼

4
ansonchen
iT邦新手 1 級 ‧ 2010-03-26 22:08:21

版主
依你敘述與測試狀況
我確定這是DNS解析問題
100% 為內部DNS Server問題:

  1. DNS cache暫存到舊record
  2. 很多網站會作多筆DNS導向,剛好某ip不通後而DNS未即時更新
  3. 很多管理公司DNS人員習慣或喜歡設hinet dns,而很多時候上層DNS不一定正確,很多MIS認為內部DNS Record不常變動,所以更新時間很久才自動更新
  4. 當你公司有多台DNS時,查詢此網站也是會因record未同步更新或你剛好詢問DNS是舊紀錄

即時解決問題就請你提供正確ip給MIS寫道DNS資料庫
這樣就解決囉!!

看更多先前的回應...收起先前的回應...
ayu iT邦好手 5 級 ‧ 2010-03-28 01:56:51 檢舉

個人相當贊同ansonchen的見解.
DNS在很多情況下, 不正確的設定仍似乎可以正常運作,
而不像其它的應用, 錯誤設定立即反應, 而讓MIS很快察覺.
HINET DNS只是cache-only, 真正問題的源頭通常不是它們.
版大的情況有很多種可能與環節需查看, 且內外部查詢結果或許也不同,
外人未必能提供有效幫助.

ansonchen iT邦新手 1 級 ‧ 2010-03-29 22:33:05 檢舉

很早就po文
怎麼不是選我的答案 ~"~
給我贈點嘛!! 雖然打不多 (小弟懶得打字)
可以留言給小弟告訴你方法
版主今日有回確定內部DNS問題?

andy1020 iT邦新手 5 級 ‧ 2010-03-30 09:37:32 檢舉

抱歉啊,假日完回來禮拜一就自動好了...
害我一時之間不知如何用各位的方法測試...
只好選打字比較多、有步驟的為解答囉..哈

但...給完解答後的下午又來了...
用大家的方法尋找後確定是內部解析問題...

我會再問問MIS到底在搞什麼東西...

ansonchen iT邦新手 1 級 ‧ 2010-04-17 18:40:05 檢舉

嗯!!問題處理好就ok

4
josejose
iT邦新手 4 級 ‧ 2010-03-28 15:51:13

Hi~ 這問題確實是DNS的問題,下次出問題可以使用 ipconfig /displaydns 查出DNS client的Cache,以找出到底用戶端解析到哪個IP了,以下為DNS client名稱查詢的流程:
1.先看是不是自己-->hostname
2.找Client的cache-->ipconfig /displaydns
3.找hosts file-->%windir%\sustem32\drivers\etc\hosts
<<如果關掉client端的cache此步驟就會略過>>
4.找Name Server-->即主要的Dns(Prefer Dns)

因此當下快速解決方式:

  1. 就是在螢幕右下方的網路連線按右鍵"修復" 清除Cache
  2. 到服務管理重新啟動dns client服務
  3. 指令ipconfig /flushdns
    以上提供給您參考~~

我要發表回答

立即登入回答