在這個例子中,我們將概述如何使dns系統(綁定/命名)根據哪個IP正在執行查詢將域解析為特定的IP。 為此,我們將使用綁定的“查看”功能。
假設
- 我們在局域網上,我們希望局域網內的計算機能夠解析
域名192.168.1.234
- 所有的外部IP都應該解析域名1.2.3.4
- 域名已在/ var / named /中有1.2.3.4區域,domain.com.db
-
服務器的IP為192.168.1.234(應將LAN計算機發送到)
1)創建區域的局域網副本。
cd /var/named
cp -p domain.com.db domain.com.lan.db
2)編輯domain.com.lan.db文件,并將所有1.2.3.4條目更改為192.168.1.234
3)編輯你的/etc/named/named.conf,事情需要移動。
如果在“選項”和“控制”部分之后,立即移動該行:
include "/etc/rndc.key";
4)在rndc.key包含行后立即添加這些行:
acl internal {
192.168.1.0/24;
};
view "internal-view" {
match-clients { internal; };
zone "domain.com" { type master; file "domain.com.lan.db"; };
};
view "external-view" {
match-clients { any; };
其中的重點在于圍繞外部視圖中的所有其他“區域”線。 使用視圖時,所有區域必須位于視圖內。
5)在named.conf的最底部,添加這一行:
}; //end external view
在添加完所有外部區域后關閉外部視圖。
6)如果你有超過1個域名需要以這種方式進行內部工作,請重復步驟1,2,4,在那里你只需在步驟4的內部視圖中添加1行以獲得額外的域名。
7)另外,您可能需要確保192.168.1.0/24范圍是否包含您的傳入路由器IP ......取決于哪個IP從路由器傳入......外部IP或LAN IP(不是100 %肯定)。 所以上述范圍可能不正確。 一定要測試你的查找內部外部以確認視圖正常工作。
如果您不確定范圍的工作方式,您可以添加一個IP列表,而不是范圍。 每個IP /行后不要忘記冒號。