Linux
bind9,從結果中排除外部介面地址
美好的一天,我正在使用 Zentyal,配置了 2 個介面,一個內部和一個外部。解析伺服器主機名和別名時,bind 在結果中隨機返回外部地址。問題當然是本地網無法與外網通話,隨機中斷服務。例子:
dig proxy.private.example.com ;; ANSWER SECTION: proxy.private.example.com. 259200 IN CNAME zentyal.private.example.com. zentyal.private.example.com. 900 IN A 192.168.122.73 zentyal.private.example.com. 900 IN A 10.10.20.40
10.10.20.40 位於內部網路上,是我們應該始終解析的地址。
如何從結果中排除介面“192.168.122.73”?我的綁定配置會是什麼樣子?
ps:我已經搜尋了3天了;我可能正在尋找錯誤的東西。
非常感謝您的幫助。
您現在配置的是
A
同一資源的多個 -records。Bind 將以循環方式處理它,並交替返回 192.168.122.73 或 10.10.20.40 用於對 zentyal.private.example.com 的 DNS 請求。您想要的是,根據 DNS 請求發起的介面/IP 地址,以一致的方式返回不同的響應。在 Bind 中,這稱為視圖。
它要求您設置兩個不同的區域文件,一個用於外部客戶端,另一個用於內部客戶端,並配置 Bind 何時使用哪個區域文件。您的配置中的相關配置部分可能看起來像這樣:
view "internal" { match-clients { localnets; }; recursion yes; /* this is the default */ zone "private.example.com" { type master; file "db.private.example.com.internal"; allow-transfer { any; }; }; }; view "external" { match-clients { any; }; recursion no; zone "example.com" { type master; file "db.example.com.external"; allow-transfer { none; }; }; };
然後將 10.x ip-address 的 A 記錄添加到 db.private.example.com.internal 並確保只有 192.x ip-address 的 A 記錄保留在公共 db.example.com.external區文件。