Centos

AWS - ELB - NTP - 無法轉發 UDP 流量?

  • October 22, 2015

我正在嘗試在內部 ELB 後面設置兩個微實例,它們將處理諸如中央日誌記錄和 NTP 查詢等日常任務,但我意識到 ELB 不支持 UDP 轉發。經過一番搜尋,我發現了這篇文章,並對其進行了研究,但根據AWS 文件,您無法在私有區域內的節點上設置健康檢查。

所以我的問題是,我如何啟用具有容錯能力的單個 NTP 伺服器(ELB 或 Route-53,或?)以便本地節點可以引用它,而不是通過請求污染網際網路通道?我需要通過 VIP 和 keepalived 管理自己的容錯機制嗎?

不要嘗試負載平衡或以其他方式“HA”您的時間伺服器。這與 NTP 的設計工作方式背道而馳——通過將伺服器相互比較。基於 DNS 的故障轉移也不可行。對 ntpd 進行簡單的健康檢查也是沒有意義的,因為守護程序可以執行並且快​​樂,儘管它已經失去理智並發出無效的時間信號。

請注意,ntpd 將在啟動時將指定時間伺服器的名稱解析為 IP 地址,並且一旦執行就不會嘗試重新解析該資訊(除非/直到您告訴它重新讀取/重新載入配置文件)。

這意味著,如果您認為只有一個伺服器名稱但多個 IP 地址(可能指向多台機器)可以獲得更高的可靠性,您應該再考慮一下。當您管理一個非常大的 NTP 伺服器組(例如 pool.ntp.org)時,這樣做是有好處的,但對於任何較小的伺服器,您幾乎肯定不會得到您可能正在考慮的行為。

另外,也不要嘗試為多台機器提供相同的 IP 地址,或者將它們隱藏在負載平衡設備後面 - 這確實會混淆 ntpd 並使情況變得更糟。

最好有一組指定的伺服器,每個伺服器都有自己唯一的 IP 地址,並將客戶端配置為連接到該組中的多個伺服器,然後讓客戶端處理當一個或多個伺服器時發生的問題變得無法訪問或不可靠。

http://support.ntp.org/bin/view/Support/SelectingOffsiteNTPServers#Section_5.3.6.

單獨配置伺服器並將客戶端設置為使用所有伺服器…全部 4 個,因為 4 被認為是適當數量伺服器的下限,因為它為您留下了仍然是來自三個的高質量時間信號伺服器,如果其中一台伺服器失去理智。三分之一的壞伺服器不允許有效地忽略一台壞伺服器。

http://support.ntp.org/bin/view/Support/SelectingOffsiteNTPServers#Section_5.3.3.

從我的角度來看,VPC 中使用的 NAT 實例是執行時間伺服器的合適候選者。

或者…考慮一下,一旦ntpd穩定下來,它產生的流量就會越來越少,不用太擔心相對微不足道的網際網路流量(但當然不要將伺服器全部配置為直接連接到stratum 1來源)。

引用自:https://serverfault.com/questions/730647