Domain-Name-System

Bind9 根據請求的伺服器(自己的)IP 地址解析

  • January 31, 2022

我有一個 bind9 DNS 伺服器,上面分配了兩 (2) 個 IP 地址。我們稱它們為 IP#1 和 IP#2。我需要一種方法來了解客戶端正在使用哪個 IP 地址,並在其 nslookup 中以不同的結果進行響應。我將嘗試用下面的兩個例子來解釋。

使用者“X”使用 NS 伺服器 IP#1 對 domainname.com 進行 nslookup。伺服器應該返回一個特定的地址。

使用者“Y”使用 NS 伺服器 IP#2 對 domainname.com 執行相同的 nslookup。伺服器應該為他返回一個不同的地址。

任何關於從哪裡開始尋找的指導都會有很大的幫助。

請參閱https://ftp.isc.org/isc/bind9/cur/9.18/doc/arm/html/reference.html#view-statement-grammar上的綁定“視圖”功能

您可以將特定區域內容與特定視圖匹配,並且可以根據使用的目標 IP 地址(即您的伺服器 IP 地址)定義視圖。

view view_name [ class ] {
   match-clients { address_match_list } ;
   match-destinations { address_match_list } ;
   match-recursive-only yes_or_no ;
 [ view_option ; ... ]
 [ zone_statement ; ... ]
} ;

view 語句是 BIND 9 的一個強大功能,它允許名稱伺服器根據提問者的不同來回答 DNS 查詢。它對於實現拆分 DNS 設置而無需執行多個伺服器特別有用。

每個視圖語句定義了一個客戶端子集可以看到的 DNS 名稱空間的視圖。如果客戶端的源 IP 地址與視圖的 match-clients 子句的 address_match_list 匹配,並且其目標 IP 地址與視圖的 match-destinations 子句的 address_match_list 匹配,則客戶端匹配視圖。

雖然存在並使用了此功能,但請注意,除了在各種視圖之間同步數據的所有問題之外,它使故障排除變得更加複雜。所以要格外小心。

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