nslookup
、nsupdate
用于查询和更新域名。
其中nsupdate
要配合bind服务器使用。
1 bind域名服务器简易配置
接下来,将说明如何在Ubuntu 20.04.1 LTS安装配置bind。
1
apt install -y bind9
安装相关工具,
1
apt install -y dnsutils bind9-host
配置/etc/bind/named.conf
。如下为示例文件内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
logging {
channel access_log {
file "/var/log/named.log";
severity dynamic;
print-category yes;
print-severity yes;
print-time yes;
};
category default {
access_log;
};
};
zone "etcd.com" IN {
type master;
file "/var/lib/bind/db.etcd.com";
allow-query {
any;
};
allow-update {
any;
};
};
该文件中配置了两部分日志及区域两部分内容,其中区域部分更加规范的方法实在/etc/bind/named.conf.local
配置。这里,配置了名为etcd.com
的区域,它允许任意查询和更新,其数据文件为/var/lib/bind/db.etcd.com
,如下是示例内容。
1
2
3
4
5
6
7
8
9
10
$TTL 604800 ; 1 week
@ IN SOA dns.etcd.com. admin.etcd.com. (
100000 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
IN NS dns
dns IN A 192.168.100.50
@ IN SOA dns.etcd.com. admin.etcd.com.
中,需要配置域名服务器、和管理员邮箱。admin.etcd.com
可转化为邮箱地址admin@etcd.com
。
常见的记录类型见下表:
类型 | 说明 |
---|---|
A | 地址记录 |
CNAME | 别名 |
MX | 邮件交换记录 |
NS | 域名服务器记录 |
配置好上述文件后,执行如下命令启动bind服务器。
1
named
如下命令可以查看日志。
1
tail -f /var/log/named.log
2 nslookup和nsupdate
用nslookup
命令进行一下测试。
1
2
3
4
5
6
nslookup dns.etcd.com 192.168.100.50
Server: 192.168.100.50
Address: 192.168.100.50#53
Name: dns.etcd.com
Address: 192.168.100.50
使用nsupdate
命令可以添加新记录。
1
2
3
4
5
6
7
8
9
echo '
server 192.168.100.50
zone etcd.com
update add n0.etcd.com 80000 IN A 192.168.100.120
update add n1.etcd.com 80000 IN A 192.168.100.121
update add n2.etcd.com 80000 IN A 192.168.100.122
send
quit
' | nsupdate
最后使用nslookup
验证是否添加成功。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
nslookup n0.etcd.com 192.168.100.50
Server: 192.168.100.50
Address: 192.168.100.50#53
Name: n0.etcd.com
Address: 192.168.100.120
nslookup n1.etcd.com 192.168.100.50
Server: 192.168.100.50
Address: 192.168.100.50#53
Name: n1.etcd.com
Address: 192.168.100.121
nslookup n2.etcd.com 192.168.100.50
Server: 192.168.100.50
Address: 192.168.100.50#53
Name: n2.etcd.com
Address: 192.168.100.122
bind为数据文件开启了journal模式用于保护数据安全,例如/var/lib/bind/db.etcd.com
文件的目录下会生成db.etcd.com.jnl
文件,所以随意绕过bind修改数据文件,会导致bind启动失败。虽然删除jnl文件可以恢复启动,但是会造成数据丢失。