PowerEdge:在內外部網域名稱相同的 Windows 環境中無法連線至網站
摘要: 本文提供在 Active Directory 和網際網路網域名稱相同的環境中,可能出現的三個問題的相關資訊。
症状
在下方所有範例中,AD 網域和註冊網域都命名為 domain.com,並且有一個名為 www.domain.com 的公司網站。相同的網域名稱會造成分割 (或稱為裂腦) 的 DNS 環境。在這種情況下,內部和外部 DNS 命名空間具有相同的名稱,但各自獨立。
問題 1:無法從辦公室內存取外部託管的公司網站。
這是分割 DNS 環境最常見的問題。加入網域的客戶無法從辦公室內存取公司網站或其他公司擁有的網際網路連線資源。辦公室外的機器可以順利連線到網站。
問題 2:無法從辦公室內存取內部託管的公開網站。
這是上述問題 1 的另一種狀況。不同之處在於網站為內部託管,在公司內部網路的防火牆後面,或是在 DMZ 中。內部和外部使用者都應該要能存取網站,但內部使用者無法。外部使用者回報沒有問題。
問題 3:網站載入不完整,或者在解決問題 1 或 2 後無法載入。
對於內部使用者,網站可能完全無法載入或載入不完整。網站的某些部分可能無法顯示,而且網站內的連結可能沒有作用。外部使用者則可以正常存取網站。
原因
問題 1:無法從辦公室內存取外部託管的公司網站。
若要查看發生這種情況的原因,請檢查內部使用者嘗試瀏覽公司網站時發生什麼事:
- 使用者的電腦查詢網域的 DNS 伺服器,通常是網域控制器 (DC),以取得 IP 位址:
www.domain.com。 - DC 託管的正向查詢區名稱為
domain.com,因此它會在該區域查找主機記錄的名稱為www。 - DC 找不到主機記錄 (名稱:
www),而由於它專屬於domain.com區域,因此不會正向查詢。 - DC 回應使用者的電腦,指出找不到以下位址:
www.domain.com。 - 使用者電腦上的瀏覽器顯示「無法顯示頁面」或類似錯誤。
出現此問題的原因是專屬 DNS 伺服器不會將其區域中的名稱查詢發送到其他 DNS 伺服器。如果沒有與給定查詢相符的記錄,它將傳回「找不到」回應。在此範例中,還有其他 DNS 伺服器具有正確的記錄:DNS 伺服器託管公開的 domain.com 區域。從辦公室外的機器可以存取網站這一事實中可以明顯看出這一點。但是,來自內部機器的查詢不會發送到該伺服器。
問題 2:無法從辦公室內存取內部託管的公開網站。
此問題的原因與問題 1 的原因類似。在這種情況下,內部使用者可以正確地將網站名稱解析為其公開 IP 位址。但是,由於防火牆的配置方式,他們仍然無法存取網站。它預期內部網路的使用者使用其私人位址 (而非公開位址) 存取網站。
問題 3:網站載入不完整,或者在解決問題 1 或 2 後無法載入。
這種情況的發生緣由可能導因於網站代碼將瀏覽器從 www.domain.com 重新導向至 domain.com。內部連結也可能使用網站 domain.com 而不是 www.domain.com。無論網站是內部託管還是外部託管,在內部機器上都出現相同的症狀。
在這種情況下,問題稍微複雜一些。為了讓機器將 domain.com 解析為 IP 位址,DNS 的 domain.com 區域中必須有空白的主機記錄。此記錄的名稱在 Windows DNS 主控台中顯示為 (與父資料夾相同)。但是,AD 會使用 domain.com 區域的空白主機記錄來表示 domain.com 網域的 DC。如果 domain.com 區域有額外的空白主機記錄,可能會導致延遲或驗證問題。
基於上述原因,此問題無法單獨使用 DNS 解決。僅以網站的 IP 位址建立空白的主機記錄,只能間歇性地解決內部使用者的網站存取問題。指向 DC 的現有空白主機記錄會干擾此作法,原因是 DNS 的循環制功能所致。由於這些記錄由 DC 自動註冊,因此如果從 DNS 區域移除,它們會定期重新出現。
解决方案
問題 1:無法從辦公室內存取外部託管的公司網站。
這個問題的解決方案很簡單。在 DC 的 domain.com 區域中建立名為 www 的主機 (A) 記錄,並為該記錄提供網站的 IP 位址。然後,查詢該 DNS 伺服器的機器會收到正確的回應,並可以瀏覽網站。
問題 2:無法從辦公室內存取內部託管的公開網站。
對此也有一個簡單的解決方案。在 DC 的 domain.com 區域中建立名為 www 的主機記錄,但為該記錄提供網站的私人 IP 位址。內部機器會將網站名稱解析為私人位址,而外部機器則會繼續將網站名稱解析為網站的公開位址。
問題 3:網站載入不完整,或者在解決問題 1 或 2 後無法載入。
解決此問題最簡單的方法是修改網站的程式碼以移除重新導向。此外,內部連結網站應使用網站 www.domain.com 而不是 domain.com。如果無法修改程式碼,解決問題的唯一其他選項是重新命名 AD 網域。這可能是一項複雜的任務,具體取決於環境的大小和複雜性。
備註:在所有這些範例中,必須使用名稱 www.domain.com 來存取網站。使用名稱 domain.com 存取網站無法運作或只能間歇運作。
其他信息
Active Directory (AD) 網域設計的最佳實務建議,不要使用已註冊的網域名稱作為 AD 網域的名稱。有兩種建議的替代方法:
- 在 AD 網域名稱中,使用非公開 DNS 後綴 (例如
.local或.lan)。 - 使 AD 網域成為已註冊網域的子網域 (例如
corp.domain.com)。
只有在 AD 網域尚未建立或重新命名作業正在進行時,才能進行此操作。