在这个例子中,我们将概述如何使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 /行后不要忘记冒号。