
我有一個bind9 DNS 伺服器,上面分配了兩(2) 個IP 位址。我們稱它們為 IP#1 和 IP#2。我需要一種方法來了解客戶端正在使用哪個 IP 位址,並在 nslookup 中回應不同的結果。我將嘗試用下面兩個例子來解釋。
使用者「X」使用 NS 伺服器 IP#1 對 domainname.com 進行 nslookup。伺服器應該傳回一個特定的位址。
使用者「Y」使用 NS 伺服器 IP#2 對domainname.com 執行相同的 nslookup。伺服器應該為他回傳一個不同的位址。
任何關於從哪裡開始尋找的指導都會有很大的幫助。
答案1
請參閱綁定“視圖”功能: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 ; ... ]
} ;
視圖語句是 BIND 9 的一項強大功能,它允許名稱伺服器根據詢問者以不同的方式回答 DNS 查詢。它對於實施分割 DNS 設定而無需運行多個伺服器特別有用。
每個視圖語句定義了客戶端子集可以看到的 DNS 名稱空間的視圖。如果用戶端的來源IP 位址與視圖的match-clients 子句的ddress_match_list 匹配,並且其目標IP 位址與視圖的match-destinations 子句的ddress_match_list 匹配,則用戶端匹配視圖。
儘管存在並使用此功能,但請注意,除了在不同視圖之間同步資料的所有問題之外,它還使故障排除變得更加複雜。所以要格外小心。