DNS学习笔记
FQDN就是访问网址----找到IP
www.tzh.com
www 主机名、别名
tzh.com domain 域名
DNS服务
分散式:/etc/hosts
集中式:/NIS
分布式:DNS
DNS:Domain Name Service 应用层协议
BIND:Bekerley Internal Name Demain
本地名称解析配置文件:/etc/hosts
一、DNS域名
访问流程(正向解析)
二、DNS服务器类型
主名称服务器(primary name server):从域管理员构造的本地磁盘文件中加载域信息,该文件(区域文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查询。 从名称服务器(secondary name server):它可从主服务器中复制一整套域信息。区域文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。这种复制称为”区域文件复制”。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器称作权威性服务器。配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文件。 唯高速缓存名称服务器(caching-only server):可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。 当BIND被配置为缓存服务器的时候,它只会回应已缓存的请求,并将所有其他的请求转发到上游的 DNS 服务器。缓存名称服务器只需要.这个zone file文件即可。
三、安装DNS服务器
[root@t2 ~]# yum install bind bind-utils bind-chroot -y
[root@t2 ~]# systemctl start named
四、DNS配置的主要文件组
/etc/hosts 主机的一个文件列表 添加记录如:111.13.100.92 www.baidu.com
对于简单的主机名解析(点分表示法),默认在请求DNS或NIS网络域名服务器前,/etc/named.conf 通常会告诉程序先查看此文件。
/etc/resolv.conf 转换程序配置文件
在配置程序请求BIND域名查询服务查询主机名时,必须告诉程序使用哪个域名服务器和IP地址来完成这个任务
/etc/named.conf BIND主文件
设置一般的name参数,指向该服务器使用的域数据库的信息源
/var/named/named.ca 根域名配置服务器指向文件
指向根域名配置服务器,用于告诉缓存服务器初始化
/var/named/localhost.zone localhost区正向域名解析文件
用于将本地IP地址(127.0.0.1)转换为本地回送IP地址(127.0.0.1)
/var/named/name.local localhost区反向域名解析文件
用于将localhost名字转换为本地回送IP地址(127.0.0.1)
/etc/named.rfc1912.zones 区块设置文件
#把自己的zones放这个配置文件named.rfc1912.zones
五、正向解析配置
资源记录
#记得把/etc/named.conf的 2跟10 改成any
[root@t2 named]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
-------------------------------
[root@t2 ~]# vim /etc/named.rfc1912.zones
#新增一个zone
zone "tzh.com" IN {
type master;
file "tzh.com.zone";
allow-update { none; };
};
[root@t2 ~]# cd /var/named/
[root@t2 named]# cp -a named.localhost tzh.com.zone
#如果没加-a 得改组的权限
[root@t2 named]# chgrp named tzh.com.zone
[root@t2 named]# vim tzh.com.zone
$TTL 1D
# 主域名(后面得加.)邮箱地址@用.代替
@ IN SOA hs.tzh.com. admin.tzh.com. (
#版本号修改一次得改这个 0 改1 2 3
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS hs
hs A 192.168.47.189
#改完重新加载
[root@t2 named]# systemctl reload named
#检查主配置文件是否有语法错误
[root@t2 ~]# named-checkconf
#检查解析库配置文件是否有错误
[root@t2 ~]# named-checkzone "tzh.com" /var/named/tzh.com.zone
zone tzh.com/IN: loaded serial 0
OK
六、测试
#在189上测试
[root@t2 named]# dig www.tzh.com @127.0.0.1
[root@t2 named]# host www.tzh.com 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
www.tzh.com has address 192.168.47.190
#在190上测试
[root@t3 ~]# host www.tzh.com 192.168.47.189
Using domain server:
Name: 192.168.47.189
Address: 192.168.47.189#53
Aliases:
www.tzh.com has address 192.168.47.190
七、实验
#1、现在190上加DNS指向192.168.47.189
#2、在189安装httpd
[root@t2 ~]# yum -y install httpd
[root@t2 ~]# echo '123456' > /var/www/html/index.html
[root@t2 ~]# systemctl restart httpd
#在192.168.47.190
[root@t3 ~]# dig www.tzh.com
[root@t3 ~]# curl -i www.tzh.com
A、DNS反向解析
[root@t2 ~]# vim /etc/named.rfc1912.zones
#加上
zone "47.168.192.in-addr.arpa" IN {
type master;
file "192.168.47.189.zone";
allow-update { none; };
};
##添加zone
[root@t2 ~]# cd /var/named/
[root@t2 named]# cp -a named.loopback 192.168.47.189.zone
[root@t2 named]# vim 192.168.47.189.zone
$TTL 1D
@ IN SOA hs.tzh.com admin.tzh.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS hs.tzh.com.
189 PTR hs.tzh.com.
189 PTR mail.tzh.com.
#检查语法
[root@t2 named]# named-checkzone "192.168.47.189.zone" /var/named/192.168.47.189.zone
zone 192.168.47.189.zone/IN: loaded serial 0
OK
#重启
[root@t2 named]# systemctl reload named
#测试
[root@t2 named]# dig -x 192.168.47.189 @127.0.0.1
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> -x 192.168.47.189 @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34385
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;189.47.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
189.47.168.192.in-addr.arpa. 86400 IN PTR mail.tzh.com.
189.47.168.192.in-addr.arpa. 86400 IN PTR hs.tzh.com.
;; AUTHORITY SECTION:
47.168.192.in-addr.arpa. 86400 IN NS hs.tzh.com.
;; ADDITIONAL SECTION:
hs.tzh.com. 86400 IN A 192.168.47.189
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 06 11:11:17 CST 2020
;; MSG SIZE rcvd: 129
B、配置从DNS(从机190)
第1步:在主服务器的区域配置文件中允许该从服务器的更新请求,即修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS服务程序。
[root@t2 named]# vim /etc/named.rfc1912.zones
zone "tzh.com" IN {
type master;
file "tzh.com.zone";
allow-update { 192.168.47.190; };
};
zone "47.168.192.in-addr.arpa" IN {
type master;
file "192.168.47.189.zone";
allow-update { 192.168.47.190; };
};
#重启
[root@t2 named]# systemctl restart named
#从服务器安装bind
[root@t3 ~]# yum install bind bind-utils -y
[root@t3 ~]# systemctl start named && systemctl enable named
第2步:在从服务器中填写主服务器的IP地址与要抓取的区域信息,然后重启服务。注意此时的服务类型应该是slave(从),而不再是master(主)。masters参数后面应该为主服务器的IP地址,而且file参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件。
#修改配置文件
[root@t3 ~]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
[root@t3 named]# vim /etc/named.rfc1912.zones
#加上
zone "tzh.com" IN {
type slave;
file "/slaves/tzh.com.zone";
masters { 192.168.47.189; };
};
zone "47.168192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.47.189.rev";
masters { 192.168.47.189; };
};
#检查语法错误
[root@t3 named]# named-checkconf /etc/named.conf
#重启
[root@t3 slaves]# systemctl restart named
[root@t3 slaves]# cd /var/named/slaves
[root@t3 slaves]# ll
total 4
-rw-r--r-- 1 named named 280 Aug 6 11:41 192.168.47.189.rev
#测试在从机上
[root@t3 slaves]# nslookup
> www.tzh.com
Server: 192.168.47.189
Address: 192.168.47.189#53
Name: www.tzh.com
Address: 192.168.47.190
> 192.168.47.189
189.47.168.192.in-addr.arpa name = hs.tzh.com.
189.47.168.192.in-addr.arpa name = mail.tzh.com.