The Will Will Web

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

主機於 AD 環境下設定 VPN 時需注意 DNS 設定是否正確

前陣子一直有同事有帳號鎖定的問題,自從我將 帳戶鎖定閥值 (允許登入失敗次數) 調高一些之後不再有帳號鎖定的情況,不過卻還是有人反應「偶爾」會有連不上公司內特定網站的情況,例如:TFS 無法登入之類的。原來這問題就出在使用 Windows 內建的 VPN 撥接上遠端網路後會多註冊 DNS 進來,進而導致主機原本指定的 DNS 多出了兩組(原本兩組,撥接上 VPN 後變成四組),因此才會偶爾發生找不到 DC 進而導致認證失敗的狀況,這真是魔鬼總在細節裡的另一個案例了。

在 Windows 系統中設定 DNS 的方式如下圖所示:

 alt

alt

alt

事實上,如果你有兩個網路介面,如果個別註冊兩個 DNS 的話,兩個網路介面裡所定義的 DNS 都會自動被列為「本機系統」中所有可用的 DNS 伺服器清單,那麼也就是有 4 組 DNS 可以使用,不過 AD 的運作非常依賴 DNS 伺服器,在網域內使用相關 Windows 驗證的服務時經常需要透過 DNS 伺服器查出與 AD 相關的服務資源紀錄(SRV Record)以便於找到五大角色相對應的主機位置以進行操作。

原本設定好的兩組 DNS 原本可以正常查詢公司內的 DC 上的 DNS 伺服器,但是當 VPN 撥接成功後,在本機等同於多出一張網路介面可用,而當好大部分 VPN 伺服器通常都是設定自動取得 IP 與 DNS 的設定,在這種情況下就會導致在撥接上 VPN 之後多出了兩組不是網域內使用的 DNS 伺服器,當你在使用網域內服務時剛好切換到 VPN 伺服器所提供的 DNS 伺服器那就糟糕了,因為這樣你根本無法取得網域內的相關資源,登入自然失敗了。

為了避免這個問題發生,必須修改 VPN 撥接連線的 TCP/IPv4 設定,讓這個 VPN 連線能夠使用用戶端常用的 DNS 設定(也就是網域內 DNS 的位址),如此一來此問題才能真正被解決。

alt

alt

若要查詢目前本機已經註冊了多少個 DNS 必須使用 ipconfig /all 進行查看,查詢的結果會有所有網路介面的 DNS 伺服器資料,所有列出來的都是可用的 DNS 伺服器:

alt

最後再次提醒

如果系統內有多組網路介面被啟用的話,所有網路介面中所設定的 DNS 伺服器位址將全部都會列入可用的 DNS 伺服器清單,若有網域的環境需正常運作則必須手動指定各網路介面 DNS 伺服器位址才行。