DNS配置详解 bind实现正向解析和反向解析 - JDE - 博客园


本站和网页 https://www.cnblogs.com/JDEdwards/p/6991213.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

DNS配置详解 bind实现正向解析和反向解析 - JDE - 博客园
首页
新闻
博问
专区
闪存
班级
我的博客
我的园子
账号设置
简洁模式 ...
退出登录
注册
登录
JDE
Powered by 博客园
博客园
首页
新随笔
联系 |
订阅
管理
DNS配置详解 bind实现正向解析和反向解析
DNS是域名服务(Domain Name Service),负责把域名解析成IP地址(正向解析)或者把IP地址解析为域名(反向解析)。
DNS查询过程:
假设我们要访问www.abc.com,dns解析请求会发送给我们配置dns服务器,如果当前已有缓存则直接把结果返回给我们的终端,如果没有则向dns的根查询负责解析.com的服务器的IP,找到负责.com域的服务器后再向其查询负责abc.com这个域的服务器的IP,得到结果后再向其查询www.abc.com的IP地址,查询到结果后再返回给我们。
在这个过程中,我们只需要向我们指向的dns发起一次dns请求,他就会把最终的结果返回给我们,这个过程称为递归查询,而当其缓存中没有我们要查询的记录时,他需要一级一级的分别向根,.com, abc.com查询,每一次的查询请求都是他自己发起的,这个过程称为迭代查询。
由于abc.com这个域的解析不是由我们指向的dns服务器负责的,所以他返回给我们的答案为非权威应答,而他通过迭代从负责abc.com的dns服务器查询到的结果则为权威应答。
在互联网上总共有13个根服务器,在linux系统上可以dig -t NS .查看
10
11
12
13
14
[root@bob ~]# dig -t NS . | awk '$4=="A" {print $0}'
d.root-servers.net. 5 IN A 199.7.91.13
b.root-servers.net. 5 IN A 192.228.79.201
a.root-servers.net. 5 IN A 198.41.0.4
c.root-servers.net. 5 IN A 192.33.4.12
j.root-servers.net. 5 IN A 192.58.128.30
f.root-servers.net. 5 IN A 192.5.5.241
k.root-servers.net. 5 IN A 193.0.14.129
l.root-servers.net. 5 IN A 199.7.83.42
e.root-servers.net. 5 IN A 192.203.230.10
g.root-servers.net. 5 IN A 192.112.36.4
i.root-servers.net. 5 IN A 192.36.148.17
m.root-servers.net. 5 IN A 202.12.27.33
h.root-servers.net. 5 IN A 128.63.2.53
DNS资源记录类型:
FQDN --> IP A IPv4 FQDN(Fully Qualified Domain Name)
FQDN --> IP AAAA IPv6
Domain --> DNS Server NS
Domain --> Master DNS SOA(Start Of Authority)起始授权记录:准确说明谁是主dns服务器,主辅之间如何同步
FQDN --> FQDN CNAME(Canonical Name) 别名记录
Domain --> Mail Server MX (Mail eXchanger) 邮件服务器,有优先级,0-99,数字越小,优先级越高
IP --> FQDN PTR(Pointer) 反向解析记录
注:正向解析和反向解析使用不同的名称解析库,每一个名称解析库叫做一个zone(区域)
正向解析的根是 .(一个点)
反向解析的根是 .in-addr.arpa.
DNS安装配置:
作为DNS缓存服务器
全球使用最广泛的dns服务器软件bind,由www.isc.org维护,同时dhcp软件也由他维护,可以去官网下载软件源码和文档
安装过程很简单 yum install -y bind
主配置文件/etc/named.conf,默认配置是监听在127.0.0.1上的且只允许本机查询,只需要更改为主机的对外地址或者直接注释(监听在所有网络接口、允许所有主机查询),启动服务就可作为一台DNS缓存服务器了。
bind9是C语言写的,配置文件也是C语言风格,// 是注释符,每个语句结束要加;分号,bind10据说用C++和Python写的,options段定义的是全局参数
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
// allow-query { localhost; };
rpm包给我们提供了启动脚本named, service named start即可
配置正向解析
在named.conf中
directory "/var/named";
include "/etc/named.rfc1912.zones";
编辑named.rfc1912.zones添加以下内容以增加对域bob.org的管理
zone "bob.org" IN {
type master; // 类型为主服务器
file "bob.org.zone"; // 指定资源解析库存放位置,这个路径是相对
// named.conf中定义的directory的,即实际位置为/var/named/bob.org.zone
};
创建文件/var/named/bob.org.zone添加以一内容
10
11
12
13
14
15
16
17
18
19
20
21
$TTL 43200; // 这里可以定义全局变量,如果没有定义TTL则继承这里的43200单位秒
// 第一条记录必须为SOA记录
bob.org./*区域名称,可以写成@直接引用当前区域名称*/ 86400/*TTL,可不定义,会直接继承全局的*/
IN /*Internet,固定格式*/ SOA /*记录类型*/ ns.bob.org. /*主服务器的FQDN*/
admin.bob.org /*管理员邮箱,因为@有特殊意义用点代替*/
$TTL 43200;
@ 86400 IN SOA ns.bob.org. admin.bob.org (
201410070001; //serial number序列号
1h; // refresh time 主辅之间刷新时间
5m; // retry time 拉取信息不成功的重试时间
7d; // expire time 过期时间,过期后辅服务器也将放弃解析
1d; ) // 否定答案的TTL
@/*引用当前域名,可省略*/ IN NS ns.bob.org.
IN MX 10 mail1.bob.org.
IN MX 20 mail2 /*相当于mail2.bob.org.*/
ns IN A 172.16.100.10
www IN A 172.16.100.11
webmail IN CNAME mail2
mail1.bob.org. IN A 172.16.100.12
mail2.bob.org. IN A 172.16.100.13
[root@localhost named]# named-checkconf // 检查配置文件
[root@localhost named]# chown :named /var/named/bob.org.zone
[root@localhost named]# named-checkzone "bob.org" "/var/named/bob.org.zone"
// 检查区域文件是否正确
zone bob.org/IN: loaded serial 3841574385
OK
10
11
12
13
14
15
16
17
18
19
20
21
[root@localhost named]# dig -t NS bob.org @172.16.100.10 // 测试是否可解析
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t NS bob.org @172.16.100.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34365
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
// 标志aa(authority answer)权威答案
;; QUESTION SECTION:
;bob.org. IN NS
;; ANSWER SECTION:
bob.org. 43200 IN NS ns.bob.org.
;; ADDITIONAL SECTION:
ns.bob.org. 43200 IN A 172.16.100.10
;; Query time: 0 msec
;; SERVER: 172.16.100.10#53(172.16.100.10)
;; WHEN: Wed Aug 27 14:13:38 2014
;; MSG SIZE rcvd: 58
3. 配置反向解析
10
11
12
13
14
15
16
$TTL 43200;
@ 86400 IN SOA ns.bob.org. admin.bob.org. (
201410070001;
1h;
5m;
7d;
1d;)
IN NS ns.bob.org. // NS记录是必须的
IN MX 10 mail1.bob.org.
IN MX 20 mail2.bob.org.
10 IN PTR ns.bob.org.
10 IN PTR www.bob.org.
11 IN PTR mail1.bob.org.
12 IN PTR mail2.bob.org.
12 IN PTR webmail.bob.org.
zone "100.16.172.in-addr.arpa" IN {
type master;
file "172.16.100.zone";
};
在区域配置文件/etc/named.rfc1912.zones新建一个区域
创建反向资源解析库文件/var/named/172.16.100.zone
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 测试反向解析
[root@localhost named]# dig -x 172.16.100.10 @172.16.100.10
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -x 172.16.100.10 @172.16.100.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11785
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;10.100.16.172.in-addr.arpa. IN PTR
;; ANSWER SECTION:
10.100.16.172.in-addr.arpa. 43200 IN PTR www.bob.org.
10.100.16.172.in-addr.arpa. 43200 IN PTR ns.bob.org.
;; AUTHORITY SECTION:
100.16.172.in-addr.arpa. 43200 IN NS ns.bob.org.
;; ADDITIONAL SECTION:
ns.bob.org. 43200 IN A 172.16.100.10
;; Query time: 0 msec
;; SERVER: 172.16.100.10#53(172.16.100.10)
;; WHEN: Wed Aug 27 19:35:57 2014
;; MSG SIZE rcvd: 116
[root@localhost named]# host -t PTR 172.16.100.10
10.100.16.172.in-addr.arpa domain name pointer ns.bob.org.
10.100.16.172.in-addr.arpa domain name pointer
发表于
2017-06-12 09:05
JDE
阅读(8447)
评论(0)
编辑
收藏
举报
刷新评论刷新页面返回顶部