1)DNS简介:
DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写。域名便于人们记忆,但机器之间只认IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。上网时输入的网址通过域名解析系统解析找到了相对应的IP地址,这样才能上网。
2)DNS服务器工作原理:
假设我们访问www.tao.com的域名时的流程:
-
本地主机访问www.tao.com的域名时,首先会查询本地hosts文件及dns缓存,查询是否有对应的地址和ip映射关系,如有有则调用这个ip地址映射完成域名解析。
-
如果hosts文件和dns缓存没有这个域名的映射,则会根据tcp/ip参数设置中的首选DNS服务器,在此我们叫他本地DNS服务器,此服务器收到查询时,如果该域名包含在本地配置区域资源中,则返回解析结果给客户端,完成域名解析。
-
如果本地DNS服务器中没有,则本地DNS服务器会把请求发送到13台根服务器(.表示根服务器),根服务器收到请求后,发现自己没有相关记录,但是根服务器有下一级.com域名的解析记录。将.com域名对应的ip返回本地DNS服务器。
-
本地DNS服务器根据ip联系.com服务器,查询www.tao.com的ip,.com服务器查询后发现自己没有相关记录,但是有下一级tao.com域名的解析记录。返回tao.com的ip地址。
-
本地DNS服务器再次向tao.com服务器查询,此服务器查询到自己有www.tao.com的域名对应解析,返回对应ip地址。
-
本地DNS将解析到的www.tao.com的ip地址放到DNS缓存中。并返回客户端对应的ip地址。
说明:本地客户端向DNS查询属于递归查询(步骤2),本地DNS服务器向其他DNS服务器查询属于迭代查询(步骤3-步骤5)。Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion递
归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…
3)搭建主-辅服务器
说明: 主DNSip:10.0.0.150
备DNSip:10.0.0.160
客户端ip:10.0.0.152
主用DNS服务器:
1、安装bind包,编辑/etc/named.conf,启用本机指定网口监听53端口号、指定网口接收DNS查询请求,并允许接收指定备用DNS的区域传送;
[root@centos8 ~]#yum install bind -y
[root@centos8 ~]#vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#只允许从服务器进行区域传输
allow-transfer { 10.0.0.160;};
2、编辑/etc/named.rfc1912.zones文件,新增指定区域参数;
[root@centos8 ~]#vim /etc/named.rfc1912.zones
#加上这段
zone "tan.org" {
type master;
file "tan.org.zone";
};
3、新建zone文件,/var/named/tan.org.zone,添加SOA,NS,A,MX等记录;
[root@centos8 ~]#cp -p /var/named/named.localhost /var/named/tan.org.zone
#如果没有-p,需要改权限。chgrp named magedu.org.zone
[root@centos8 ~]#vim /var/named/tan.org.zone
$TTL 1D
@ IN SOA master admin.tan.org. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
NS slave
master A 10.0.0.150
slave A 10.0.0.160
www A 10.0.0.152
4、使用named-checkconf、named-zone检查服务端配置、区域文件配置。
[root@centos8 ~]#named-checkconf
[root@centos8 ~]#named-checkzone "tan.org" /var/named/tan.org.zone
zone tan.org/IN: loaded serial 1
OK
5、使用systemctl start named启动DNS服务
[root@centos8 ~]#systemctl start named #第一次启动服务
[root@centos8 ~]#rndc reload #不是第一次启动服务
备用DNS服务器:
1、安装bind包,编辑/etc/named.conf,启用本机指定网口监听53端口号、指定网口接收DNS查询请求,不允许区域传送;
[root@centos8 ~]#yum install bind -y
[root@centos8 ~]#vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#不允许其它主机进行区域传输
allow-transfer { none;};
2、编辑/etc/named.rfc1912.zones文件,新增指定区域参数(type类型slave,masters指定主DNS服务器,zone文件是放在/var/named/slaves/下且是自动生成);
[root@centos8 ~]#vim /etc/named.rfc1912.zones
zone "magedu.org" {
type slave;
masters { 主服务器IP;};
file "slaves/tan.org.slave";
};
3、重启服务,并检查区域数据库文件是否生成。
[root@centos8 ~]#systemctl start named #第一次启动服务
[root@centos8 ~]#rndc reload #不是第一次启动服务
[root@centos8 ~]#ls /var/named/slaves/tan.org.slave #查看区域数据库文件是否生成
/var/named/slaves/tan.org.slave
客户端验证解析结果:
标签:10.0,named,简述,DNS,org,服务器,tan From: https://www.cnblogs.com/tanll/p/17746299.html
首先客户端网卡配置文件DNS指向我们的两个dns
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.152
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.150
NS2=8.8.8.8
#使用主DNS解析
[root@localhost yum.repos.d]# dig www.tan.org @10.0.0.150
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 <<>> www.tan.org @10.0.0.150
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49336
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.tan.org. IN A
;; ANSWER SECTION:
www.tan.org. 86400 IN A 10.0.0.152
;; AUTHORITY SECTION:
tan.org. 86400 IN NS slave.tan.org.
tan.org. 86400 IN NS master.tan.org.
;; ADDITIONAL SECTION:
master.tan.org. 86400 IN A 10.0.0.150
slave.tan.org. 86400 IN A 10.0.0.160
;; Query time: 0 msec
;; SERVER: 10.0.0.150#53(10.0.0.150)
;; WHEN: Sat Oct 30 20:37:16 CST 2021
;; MSG SIZE rcvd: 129
#使用备DNS解析
[root@localhost yum.repos.d]# dig www.tan.org @10.0.0.160
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 <<>> www.tan.org @10.0.0.160
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59303
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.tan.org. IN A
;; ANSWER SECTION:
www.tan.org. 86400 IN A 10.0.0.152
;; AUTHORITY SECTION:
tan.org. 86400 IN NS slave.tan.org.
tan.org. 86400 IN NS master.tan.org.
;; ADDITIONAL SECTION:
master.tan.org. 86400 IN A 10.0.0.150
slave.tan.org. 86400 IN A 10.0.0.160
;; Query time: 0 msec
;; SERVER: 10.0.0.160#53(10.0.0.160)
;; WHEN: Sat Oct 30 20:37:21 CST 2021
;; MSG SIZE rcvd: 129
#在主DNS停掉服务
[root@centos8 ~]#systemctl stop named
#主服务器挂掉后,使用主服务器不能解析,但备用服务器正常解析。
[root@localhost ~]# dig www.tan.org @10.0.0.150
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 <<>> www.tan.org @10.0.0.150
;; global options: +cmd
;; connection timed out; no servers could be reached
[root@localhost ~]# dig www.tan.org @10.0.0.160
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 <<>> www.tan.org @10.0.0.160
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30808
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.tan.org. IN A
;; ANSWER SECTION:
www.tan.org. 86400 IN A 10.0.0.152
;; AUTHORITY SECTION:
tan.org. 86400 IN NS slave.tan.org.
tan.org. 86400 IN NS master.tan.org.
;; ADDITIONAL SECTION:
master.tan.org. 86400 IN A 10.0.0.150
slave.tan.org. 86400 IN A 10.0.0.160
;; Query time: 0 msec
;; SERVER: 10.0.0.160#53(10.0.0.160)
;; WHEN: Sat Oct 30 20:43:44 CST 2021
;; MSG SIZE rcvd: 129