DNS服务器
服务名named
软件包名bind
RHEL5:必须一个叫做chroot的环境
RHEL6$RHEL7:没有严格的要求,如果用yum安装,默认安装chroot

systemctl restart named
软件包名字:bind
服务名称:named
专用术语:DNS

DNS服务器配置:

1:查询是否已经安装DNS
[root@node1 ~]# rpm -qa | grep bind
 bind-license-9.9.4-37.el7.noarch
 bind-libs-9.9.4-37.el7.x86_64
 bind-libs-lite-9.9.4-37.el7.x86_64或者:
 [root@node1 ~]# yum install -y bind*2:重启服务
[root@node1 named]# systemctl restart named
RHEL5:必须存在一个叫做chroot的环境
 RHEL6&RHEL7:没有严格的要求必须安装chroot。如果使用yum安装,默认是安装chroot3:查看配置文件
[root@node1 named]# vim /etc/named.conf
 options {
 listen-on port 53 { 127.0.0.1; };-----DNS服务器的地址(本机)
 listen-on-v6 port 53 { ::1; };----IPV6的地址
 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 { localhost; };-----允许那些主机查询本dnszone “.” IN { -----.表示的是根域服务器
 type hint; -----类型为hint,表示的是根域
 file “named.ca”;-----根域服务器的配置文件名称,该文件记录所有根域服务器
 };4:主配置文件的编辑
明确:
 1:你要使用谁做dns服务器,地址是多少(我的是192.168.1.111)
 2:准备怎么做(是否做主从)
 [root@node1 named]# vim /etc/named.conf
 // named.conf
 options {
 listen-on port 53 { 192.168.1.111; };
 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 { 192.168.1.0/24; };
 };zone “.” IN {
 type hint;
 file “named.ca”;
 };#定义配置文件
 #1定义正向区域配置文件
 zone “baidu.com” IN {
 type master;
 file “baidu.zhengx.zone”;
 };#定义反向解析配置文件
 zone “1.168.192.in-addr.arpa” IN {
 type master;
 file “baidu.fanx.zone”;
 };4:正向区域配置文件和反向区域配置文件默认都不存在,需要手动创建
 [root@node1 named]# ls
 chroot dynamic named.ca named.localhost-----这个文件是模板文件
 data dyndb-ldap named.empty named.loopback5:查看模板文件
[root@node1 named]# vim named.localhost
 $TTL 1D
 @ IN SOA @ rname.invalid. (
 0 ; serial
 1D ; refresh
 1H ; retry
 1W ; expire
 3H ) ; minimum
 NS @
 A 127.0.0.1
 AAAA ::1C:\Windows\System32\drivers\etc----windows下hosts文件存放的位置
6:创建区域配置文件并编辑
[root@node1 named]# cp named.localhost baidu.zhengx.zone -p
 [root@node1 named]# ll
 -rw-r-----. 1 root named 152 Jun 21 2007 baidu.zhengx.zone
 (看啥?
 1:名字是否跟主配置文件/etc/name.conf写的一致
 2:看该文件的所属组是不是为named
 3:-p是带权限拷贝,也是就使所属组为named)7:编辑正向区域配置文件
[root@node1 named]# vim baidu.zhengx.zone
 $TTL 1D
 @ IN SOA baidu.com. root.node1.baidu.com. (
 0 ; serial
 1D ; refresh
 1H ; retry
 1W ; expire
 3H ) ; minimum
 NS node1.baidu.com.
 node1 A 192.168.1.111
 node2 A 192.168.1.2228:编辑反向区域配置文件
[root@node1 named]# cp baidu.zhengx.zone baidu.fanx.zone
 [root@node1 named]# ll
 total 24
 -rw-r-----. 1 root root 193 Jun 23 06:49 baidu.fanx.zone–所属组为root
 -rw-r-----. 1 root named 193 Jun 23 06:49 baidu.zhengx.zone
 [root@node1 named]# chgrp named baidu.fanx.zone
 [root@node1 named]# ll
 total 24
 -rw-r-----. 1 root named 193 Jun 23 06:49 baidu.fanx.zone
 -rw-r-----. 1 root named 193 Jun 23 06:49 baidu.zhengx.zone
 [root@node1 named]# vim baidu.fanx.zone
 $TTL 1D
 @ IN SOA baidu.com. root.node1.baidu.com. (
 0 ; serial
 1D ; refresh
 1H ; retry
 1W ; expire
 3H ) ; minimum
 NS node1.baidu.com.
 111 PTR node1.baidu.com.
 222 PTR node2.baidu.com.9:确认你的服务器IP地址和主机名
[root@node1 named]# ifconfig
 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 192.168.1.111 netmask 255.255.255.0 broadcast 192.168.1.255
 inet6 fe80::20c:29ff:fe40:9de0 prefixlen 64 scopeid 0x20
 ether 00:0c:29:40:9d:e0 txqueuelen 1000 (Ethernet)
 RX packets 9691 bytes 945995 (923.8 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 2206 bytes 331857 (324.0 KiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@node1 named]# vim /etc/hostname
 [root@node1 named]# hostname node1.baidu.com
 [root@node1 named]# hostname
 node1.baidu.comnode1的dns需要指向自己
 [root@node1 named]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
 DEVICE=ens33
 ONBOOT=yes
 BOOTPROTO=none
 TYPE=Ethernet
 IPADDR=192.168.1.111
 PREFIX=24
 GATEWAY=192.168.1.1
 DNS1=192.168.1.111
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=no
 NAME=“System ens33”
 UUID=c96bc909-188e-ec64-3a96-6a90982b08ad[root@node1 named]# systemctl restart network

10:把node2加入到该域中

1:修改主机名
[root@node2 ~]# vim /etc/hostname 
node2.baidu.com
[root@node2 ~]# hostname node2.baidu.com
[root@node2 ~]# hostname
node2.baidu.com
2:修改网络配置,将DNS指向DNS服务器
[root@node2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@node2 ~]# systemctl restart network
[root@node2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
 TYPE=Ethernet
 BOOTPROTO=none
 DEFROUTE=yes
 PEERDNS=yes
 PEERROUTES=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=yes
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_PEERDNS=yes
 IPV6_PEERROUTES=yes
 IPV6_FAILURE_FATAL=no
 IPV6_ADDR_GEN_MODE=stable-privacy
 NAME=ens33
 UUID=2ed71679-1f8f-4aea-afaf-6fa7aed2fb13
 DEVICE=ens33
 ONBOOT=yes
 IPADDR=192.168.1.222
 NETMASK=255.255.255.0
 GATEWAY=192.168.1.1
 DNS1=192.168.1.111[root@node1 named]# systemctl restart named
 [root@node1 named]# dig -t axfr baidu.com; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t axfr baidu.com
 ;; global options: +cmd
 baidu.com. 86400 IN SOA baidu.com. root.node1.baidu.com. 0 86400 3600 604800 10800
 baidu.com. 86400 IN NS node1.baidu.com.
 node1.baidu.com. 86400 IN A 192.168.1.111
 node2.baidu.com. 86400 IN A 192.168.1.222
 baidu.com. 86400 IN SOA baidu.com. root.node1.baidu.com. 0 86400 3600 604800 10800
 ;; Query time: 4 msec
 ;; SERVER: 192.168.1.111#53(192.168.1.111)
 ;; WHEN: Sun Jun 23 07:11:41 AST 2019
 ;; XFR size: 5 records (messages 1, bytes 162)[root@node1 named]# nslookup
node1.baidu.com
 Server: 192.168.1.111
 Address: 192.168.1.111#53Name: node1.baidu.com
 Address: 192.168.1.111192.168.1.222
 Server: 192.168.1.111
 Address: 192.168.1.111#53

222.1.168.192.in-addr.arpa name = node2.baidu.com.

**DNS域名解析工作原理
<1> 客户机提交域名解析请求,并将该请求发送给本地的域名服务器。
<2> 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。
<3> 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
<4> 本地服务器再向返回的域名服务器发送请求。
<5> 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器的地址。
<6> 本地域名服务器将查询请求发送给返回的DNS服务器。
<7> 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS信息,查询过程将重复<6>、<7>步骤,直到返回解析信息或解析失败的回应)。
<8> 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。

正向解析与反向解析
1)正向解析
正向解析是指域名到IP地址的解析过程。
2)反向解析
反向解析是从IP地址到域名的解析过程。反向解析的作用为服务器的身份验证。
DNS查询类型
1.递归查询: 简单的理解就是以最终结果查询,就是返回最终的结果给客户机,而客户机在此阶段是处于等待的状态!(就好比,你在家里地位最高,你都是衣来伸手饭来张口的,最什么事情就只要一句话不用自己亲自动手)

2.迭代查询:简单的理解就是以最佳的结果查询,意思就是如果DNS服务器能解析就直接以最终结果返回给客户机,如果无法解析则就返回上一级DNS服务器的IP给客户机,由客户机完成查询工作直到得到最终结果!(举个例子就是什么事情你去问别人,别人只是告诉你怎么做,你知道后要自己亲自去做)

这里要带权限拷贝,加-p的参数(2个文件都要(正向解析和反向解析))
TTL 生存周期,在红帽5下面默认单位是秒,在红帽6和红帽7下面,它是单位是天。
@ 这里如果是“@”和“空白”都代表是域名,那代表那个域名?dyzx.edu.zone
SOA 这里的SOA叫做起始授权服务器。只有它能和根域服务器交流。它相当于基督教的神父。
Serial 序列号,这个是我们做主从服务器用的,用于我们的主/从同步。就是当我们的主服务器宕机之后,我们的从服务器来接手工作。而且我们的从服务器是没有区域配置文件的,也就是说,从服务器的区域配置文件我们根本不要写,那从服务器的区域配置文件从哪里来?从服务器就是没有区域配置文件。靠什么来做匹配呢?匹配的是什么呢?就根据这个序列号来匹配我们的解析条目。当我们的服务器里面有新的解析条目出现的时候,这个序列号就会+1。这个时候,从服务器就去匹配我们主服务器的解析条目。如果从服务器发现主服务器的这个序列号比自己的序列号还小的话,它就不会去同步主服务器了!
Refresh 刷新时间。从服务器多久刷新一次,这个值是可以修改的。
Retry 重试时间,当我们的从服务器没法连接主服务器的时候,它每个多久重新连接一次
Experi 过期时间,什么意思呢!就是说,当我们的从服务器不断去刷新的时候,这个动作持续多久,1周!如果这一周从服务器都没能连接上主服务器,宣告数据过期,我将不在重试了!
minimum 最小生存周期
NS Name server名称服务器。它是专门做递归查询的。
MX 5 Mail exchange ,邮件交换,级别为5**

注意提示;1.经常出现问题的地方,权限没有满足2.防火墙设置允许3.selinux可以设置为通过比较好