Windows Server 中的輪詢 dns 無法正常工作
為我的 DNS 區域啟用了 Windows 2012 R2 Round Round(集成了 AD)
我要麼不理解這一點,要麼它不起作用。
我想使用輪詢 dns 來解析伺服器集群。
首先我嘗試創建一個新的子域和 cname 記錄
- 我有一個“mycluster”的子域和一個指向“.”的 cname。每個伺服器的(空白名稱)
- 我可以 ping mycluster.mydom.com 並取回其中一台伺服器的 ip
- 但在連續 ping 中,它使用同一台伺服器回复
- 即使在我刷新 DNS 後,它也會回復同一個伺服器的 IP
然後我嘗試創建一個新的子域和 A 記錄
- 所以我有同樣的事情,但我有一個空白名稱的記錄解析到域
- 這次我像以前一樣從同一台伺服器取回IP
- 但是當我在我的電腦上刷新 dns 時,我得到了一個不同的地址(每次我刷新 DNS 我得到一個不同的地址)
Windows DNS 中的循環不支持 cname 嗎?
這是否也意味著需要編寫應用程序來支持循環?就像應用程序必須不記憶體解析的名稱才能正確地進行負載平衡
多個“A”記錄是使用 DNS 循環的方式。假設您在三台伺服器上有一個網站 www.example.com。您將向 example.com DNS 區域添加三個 A 記錄,其中一個記錄指向每個伺服器的每個 IP 地址。像這樣:
- www A 10.0.0.1
- www A 10.0.0.2
- www A 10.0.0.3
當瀏覽器/客戶端向尋找 www.example.com 的 DNS 伺服器發送 DNS 請求時,DNS 伺服器會將所有三個條目發送回瀏覽器/客戶端。您可以通過使用 ping 連接到 www.example.com 然後使用IPCONFIG /DISPLAYDNS來看到這一點。您應該看到所有三個條目都已返回。刷新您的記憶體並重複該過程,這一次將返回所有三個條目,但順序不同(DNS Round Robin in Action!)
這是踢球者…… Ping 不是一個非常智能的應用程序,因此如果第一個條目由於某種原因關閉,它將不會嘗試列表中的第二個條目。這是需要應用程序端邏輯的地方。例如,如果第一個條目沒有響應,Skype for Business 客戶端之類的應用程序將嘗試 DNS 提供的列表中的下一個條目。
DNS Round Robin 是一種粗略的負載平衡機制,如果您了解它的局限性,它會很有用。
或者,如果您使用 Microsoft NLB 之類的軟體負載平衡器或硬體負載平衡器,這些都更加不優雅。我們將只向 DNS 添加一個條目,該條目將指向負載均衡器正在使用的 VIP,我們將其留給負載均衡器以確保我們始終連接到啟動並執行的伺服器。