我已经配置了自己的 DNS 服务器,并希望子网上的每个人都能互相查找。
我怎么做?
答案1
首先,您需要一个 DNS 服务器。绑定 是广泛使用的标准服务器的示例。
以下是一个示例:
- 网络命名
local.example.com
- 使用 IP 地址
192.168.0.0
- 和网络掩码
255.255.255.0
(24 位)
对于服务器:
- 命名
ns1
- 带有 IP 号码
192.168.0.1
对于 2 个外部 DNS 服务器:
- 1.2.3.4
- 1.2.3.5
相应地更改这些值以适合您的网络结构。
1.安装BIND
sudo apt-get install bind9
2. 添加本地域名
在BINDs配置文件中/etc/named.conf.local
添加名称查询的配置(名称到IP号码):
zone "local.example.com" {
type master;
file "/etc/bind/db.local.example.com";
allow-query { 192.168.0.0.0/24; 127.0.0.1; };
};
对于反向查询(IP 号码到名称):
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.0";
allow-query { 192.168.0.0/24; 127.0.0.1; };
};
为您的网络创建两个配置文件。在 中/etc/bind/db.local.example.com
输入:
$TTL 604800
@ IN SOA local.example.com. hostmaster.example.com. (
1503281 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.local.example.com.
ns1 IN A 192.168.0.1
;
; Local computers
comp1 IN A 192.168.0.101
comp2 IN A 192.168.0.102
comp3 IN A 192.168.0.103
输入/etc/bind/db.192.168.0
:
$TTL 604800
@ IN SOA v1.local.example.com. hostmaster.example.com. (
1503281 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.
1 IN PTR ns1.local.example.com.
; Local computers
101 IN PTR comp1.local.example.com.
102 IN PTR comp2.local.example.com.
103 IN PTR comp3.local.example.com.
注意Serial
参数:它可能包含任何数字,并且每次更改配置文件时都应更改它。在此示例中,它由日期和唯一编号 (YYMMDDN) 构成。
3. 外部决议
您的服务器需要解析其他查询,请将外部 DNS 服务器配置/etc/bind/named.conf.options
为“转发器”:
options {
forwarders {
1.2.3.4;
1.2.3.5;
};
[...]
}
4. 加载配置
您可以通过以下方式重新加载配置:
sudo service bind9 reload
检查/var/log/syslog
加载新配置是否没有错误。
5. 使用
您现在应该能够从网络localhost
客户端查询 DNS 服务器192.168.0.0/24
。需要配置它们以使用此服务器 ( 192.168.0.1
) 和此域名 ( local.example.com
) - 例如使用 DHCP 配置或静态配置/etc/network/interfaces
,如下所示:
auto eth0
iface eth0 inet static
address 192.168.0.101
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
dns-search local.example.com
要在客户端计算机上测试您的 DNS(在永久切换之前),您可以尝试:
host comp1 192.168.0.1