如何根據來源子網路解析不同的 DNS 項目?

如何根據來源子網路解析不同的 DNS 項目?

我在多個網站中建立了一個新的內部網站,我希望根據所使用的來源子網路將其 FQDN 解析為網站特定的子網域。我們的綁定DNS 目前設定的方式是,fqdn 解析在網站a 中為主,從屬於網站b 和c(全部透過puppet),因此我無法在網站b 和c 中設定單獨的記錄文件,並使用不同的答案來執行此操作。

例如,我希望網站 a 172.10.0.0/16 中的 IP 將 server.domain.com 解析為 server.a.domain.com,網站 b 172.11.0.0/16 中的 IP 將 server.domain.com 解析為 server。 b.domain.com 等

我一直在研究 Bind RPZ,但這似乎沒有為子網提供特定的解析選項,只能刪除或阻止整個子網,除非我讀錯了。我可以讓它重定向 cname,而不是轉發到正確的區域進行解析,但這通常適用於所有不使用客戶端 IP 觸發器的伺服器,就像我嘗試使用的那樣,我也可能會更新 CNAME在domain .com 區域中。

加入到 name.d.conf.options

response-policy { zone "rpz"; };

rpz 區域文件

zone "rpz" {
  type master;
  file "/etc/named/zones/rpz/db.rpz.conf";
  allow-query { none; };
};

資料庫檔案

@       IN    SOA  nstest.domain.com. domain.com.  (
                      2   ; serial
                      3H  ; refresh
                      1H  ; retry
                      1W  ; expiry
                      1H) ; minimum

@        IN    NS    nstest.domain.com. ; destination IP rewrite

16.0.0.16.172.rpz-ip CNAME server.domain.com.
server.domain.com     CNAME   server.a.domain.com.

透過這些設置,所有透過此 ns 向 server.domain.com 發出的請求,無論來源 IP 解析為 server.a.domain.com

或者嘗試使用 RPZ 是錯誤的方法,我在研究中也看到了綁定視圖,但這看起來您必須為每個站點重新創建整個區域文件,我只想修改單個 CNAME 記錄。

任何幫助表示讚賞。

答案1

  • 地點 B 的專用伺服器

在這種情況下,您可以輕鬆使用 RPZ。解決方案甚至可以在非標準連接埠(除 53 TCP/UDP 之外)上運行此 DNS 伺服器,並在防火牆層級設定連接埠重定向,以便一旦請求來自特定網絡,它就會被重定向到此連接埠。所有其他請求將由標準連接埠上的 DNS 伺服器處理(由於存在「全域」RPZ 問題,我認為也需要為其他流量提供 DNS 伺服器)。

  • 「共享」DNS 伺服器不僅適用於位置 B

視圖可能是最適合您的方向。如果您不需要明確 CNAME,但它甚至可以是 A 記錄,您可以輕鬆地在視圖中定義“特定子網域”,其餘部分保持“正常”解析/轉送到其他 DNS 伺服器”。

假設您有域名example.com在位置 A 的 DNS 伺服器上。server.example.com通常解析為 192.0.2.10 的 A 記錄。另外還有一個紀錄another.example.com解析為 A,值為 192.0.2.20。

然後你在本地某個地方(位置 B)綁定伺服器解析一些本地客戶端。您可以為特定用戶端(位置 B 上的本機 IP)建立本機視圖,您可以在其中建立網域server.example.com

@       IN    SOA  dns.example.com. admin.example.com.  (
                      2   ; serial
                      3H  ; refresh
                      1H  ; retry
                      1W  ; expiry
                      1H) ; minimum

@        IN    NS    dns.example.com ; destination IP rewrite

@        IN    A     192.0.2.30

一旦客戶端發送對 server.example.com 的請求,它將在本機解析為視圖中的本機「主」區域。一旦客戶端請求其他任何內容(除了 server.example.com 的子網域),它將根據其他配置進行定期解析或轉送...

所以在位置 A 的結果將是:

server.example.com => 192.0.2.10
another.example.com => 192.0.2.20

在位置 B 上,它將是:

server.example.com => 192.0.2.30
another.example.com => 192.0.2.20

透過這種方式,您可以僅覆寫明確的子網域清單。缺點是,由於它是額外區域,因此至少必須有 SOA 和最可能的 NS 記錄,因此在這種情況下不可能使用 CNAME。

相關內容