Domain-Name-System

是否可以(如何?)將具有一個目標 IP 的傳入 UDP 數據包路由到通過靜態 URL 的 DNS 查詢解析的目標 IP?

  • July 8, 2016

我有一組移動設備,它們被配置為將 UDP 消息發送到其 SRAM 中設置的 IP 地址。它們既不能儲存 URL,也不能將 URL 解析為 IP 地址。流向設備發送到的目標 IP 的流量必須通過我控制的網關路由器。網關路由器正在執行 OpenWRT linux。我想將這些 UDP 數據包路由到 Amazon Elastic Load Balancing(一項 AWS 服務)。Elastic Load Balancing 的一個限制是(據我所知)必須使用 DNS 來解析負載均衡器的 IP(因為在任何時候 AWS 都可能使用多個負載均衡器,並且使用哪個選項在 Amazon 控制下的 DNS 中設置)。說來話長。

簡短的故事是“如何將通過 OpenWRT 路由器路由的 UDP 數據包定向到通過該路由器上的 DNS 解析的地址?”

我正在尋找通過 IP 鏈/表、防火牆規則等(或至少具有一些歷史的“外掛”)而不是自定義生成的程式碼的解決方案。

提前感謝大家的幫助!

我正在尋找通過 IP 鏈/表、防火牆規則等(或至少具有一些歷史的“外掛”)而不是自定義生成的程式碼的解決方案。

不會發生的,對不起。防火牆和路由引擎通常會在策略啟動時將 DNS 記錄解析為 IP 地址,Linux 也不例外。核心不會執行額外的 DNS 查找來查找 DNS 記錄的變化。

手冊頁iptables使這一點非常清楚,強調我的:

地址可以是網路名稱、主機名、網路 IP 地址(帶有 /mask)或純 IP 地址。在將規則送出給核心之前,主機名只會被解析一次。 請注意,使用諸如 DNS 之類的遠端查詢指定要解析的任何名稱是一個非常糟糕的主意。

DNS 傳統上在這些類型的堆棧中沒有作用,因為它們試圖使操作盡可能具有確定性。忽略實施此程式碼會增加整體情況的複雜性,這也是一種安全風險,因為您實質上是將安全策略的控制權委託給控制 DNS 記錄的任何人。即使您 100% 確定您信任遠端伺服器運營商,基於 UDP 的 DNS 本質上是可欺騙的協議(DNSSEC 可以防止上游偽造,但不提供客戶端和遞歸器之間的保護,也就是“最後一英里”),這使得這很糟糕全面的想法。如果您找到支持此功能的產品,您可能不應該支持它們!

您需要從此等式中刪除 DNS。對於您正在工作的層的工作來說,這是錯誤的工具。

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