DNS 服务搭建
1. 系统配置
- [root@master01 ~]# cat /etc/redhat-release
- CentOS Linux release 7.3.1611 (Core)
- [root@master01 ~]# uname -r
- 3.10.0-514.el7.x86_64
2. 安装工具
yum -y install bind bind-utils
3. 主要配置文件
- /etc/named.conf #主配置文件
- /etc/named.rfc1912.zones #区域配置文件
3.1 编辑 / etc/named.conf
- options {
- listen-on port 53 { any; }; #监听所有网段 53 端口
- listen-on-v6 port 53 { ::1; };
- directory "/var/named";
- dump-file "/var/named/data/cache_dump.db";
- statistics-file "/var/named/data/named_stats.txt";
- memstatistics-file "/var/named/data/named_mem_stats.txt";
- allow-query { any; }; #允许所有 IP
3.2 编辑 / etc/named.rfc1912.zones
在末尾添加以下配置:
- zone "test.com" IN { //zone 的名称
- type master; // 类型
- file "test.com.zone"; //test.com 这个 zone 存放的文件地址
- allow-update { none; };
- };
- zone "16.168.192.in-addr.arpa" in { // 反解
- type master;
- file "192.168.16.rev";
- };
3.3 编辑 zone 文件地址配置
- vim /var/named/test.com.zone
- $TTL 1D
- @ IN SOA test.com. root (
- #dns 区域地址 #配置通知邮箱
- 0 ; serial #更新序列号序列号
- 1D ; refresh #刷新时间
- 1H ; retry #重试延时
- 1W ; expire #失效时间
- 3H ) ; minimum #无效解析记录缓存时间
NS dns.test.com. #域名服务器解析记录
- dns IN A 192.168.16.100 #dns.test.com. 域名解析地址为 192.168.16.100
- master01 IN A 192.168.16.100
- master02 IN A 192.168.16.101
- slave21 IN A 192.168.16.121
- slave22 IN A 192.168.16.122
- slave23 IN A 192.168.16.123
- slave24 IN A 192.168.16.124
- slave25 IN A 192.168.16.125
- vim /var/named/192.168.16.rev
- $TTL 1D
@ IN SOA dns.test.com. abc.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.test.com.
100 PTR master01.test.com. #PTR 反解 192.168.16.100 对应到 master01.test.com.
101 PTR master02.test.com.
121 PTR slave21.test.com.
122 PTR slave22.test.com.
123 PTR slave23.test.com.
124 PTR slave24.test.com.
125 PTR slave25.test.com.
4. 开启服务
- systemctl start named
- systemctl enable named
5. 验证
- [root@master01 ~]# nslookup master01.test.com
- Server: 192.168.16.100
- Address: 192.168.16.100#53
- Name: master01.test.com
- Address: 192.168.16.100
- [root@master01 ~]# nslookup slave21.test.com
- Server: 192.168.16.100
- Address: 192.168.16.100#53
- Name: slave21.test.com
- Address: 192.168.16.121
- [root@master01 ~]# nslookup 192.168.16.123
- Server: 192.168.16.100
- Address: 192.168.16.100#53
- 123.16.168.192.in-addr.arpa name = slave23.test.com.
6. 服务端配置
windows 系统
点击网络连接, 配置 dns 服务器地址
清除 dns 缓存, ipconfig /flushdns
linux 系统
修改网卡配置文件 / etc/sysconfig/network-scripts/ifcfg-em1, 将 PEERDNS 参数 (是否将 dhcp 获取到的 dns 配置覆盖手工配配置的 dns 服务器) 改为 no, 并且添加 DNS1=192.168.16.100
linux 默认没有 dns 缓存
在通过 ping 某个 dns 域名, 无法解析的时候, 可以看看 cat /etc/resolv.conf 看这里面的 dns 是否有所设定的 dns 服务器.
7. 配置参数
$TTL, 这里为 6 小时.$TTL 指令表示一个资源记录在其他 DNS 服务器中的缓存时间
SOA(start of authority)资源记录: 它定义了一个域的全局特性, 必须是出现在 zone 文件中的第一个资源记录, 而且一个 zone 文件中必须只有一个 SOA 资源记录. 其中 SOA 后面的 dns 是域名服务器(必须从 NS 指定的主机中选择), root 是管理员邮箱(root@cobb.com), 其全写分别是 dns.data.com. 和 root.data.com, 因为 $ORIGIN 指明了域名, 所以这个地方可以略去.
serial, 这部分用来标记 ZONE 文件更新, 如果发生更新则 Serial 要单增, 否则 MASTER 不会通知 SLAVE 进行更新.
refresh, 这个标记 SLAVE 服务器多长时间主动 (忽略 MASTER 的更新通知) 向 MASTER 复核 Serial 是否有变, 如有变则更新之.
retry, 如 Refresh 过程不能完成, 重试的时间间隔.
expire 部分, 如 SLAVE 无法与 MASTER 取得联系, SLAVE 继续提供 DNS 服务的时间, 这里为 2W(两周时间).Expire 时间到期后 SLAVE 仍然无法联 系 MASTER 则停止工作, 拒绝继续提供服务. Expire 的实际意义在于它决定了 MASTER 服务器的最长下线时间(如 MASTER 迁移, DOWN 机等).
minimum 部分, 这个部分定义了 DNS 对否定回答 (NXDOMAIN 即访问的记录在权威 DNS 上不存在) 的缓存时间.
NS(name server)资源记录: 它定义了为本域 (domain) 服务的域名服务器.
A(Address)资源记录: 它定义域名的 IPv4 地址.
来源: http://www.bubuko.com/infodetail-2646432.html