设为首页 收藏本站
查看: 1164|回复: 0

[经验分享] Centos7系统DNS服务

[复制链接]
YunVN网友  发表于 2019-4-17 18:17:50 |阅读模式
  DNS服务介绍:

  DNS(domain  name  system): 域名系统 , 记录的是域名 和 IP的对应关系 , 实现将域名解析成IP , IP解析成域名 .
  正向解析 : 实现将域名解析成IP
  反向解析 : 实现将IP解析成域名
  DNS服务器的身份:
  1. 主DNS服务器(master): DNS系统中用来记录域名和IP地址对应关系(资源配置文件)的权威服务。
  2. 辅助DNS服务器(slave备):辅助DNS服务器上的资源配置文件来源于主DNS服务器。会自动从主DNS服务器上下载资源配置文件,或定期跟主DNS服务器同步资源配置文件数据。辅助DNS服务器可以帮助主DNS服务器分担一定的域名解析压力。
  3. 缓存DNS服务器(cache缓存):用来缓存域名解析的数据。可以用来作为DNS解析加速器。
  4. 端口号 : 53
  

  域名的命名规则:
  格式: 主机名 . 二级域名 .一级域名.[根域]       例如: www.baidu.com
  根域:用.点表示。根域是域名系统的最顶层。全球有13台根域服务器。大部分的根域服务器在美国。
  一级域名:用于标识组织机构的类别。例如:
  com企业、公司       net网络机构      org非盈利组织    cn中国     hk香港     gov政府机构       edu教育机构   
   二级域名:用于标识组织机构名称。通常有公司或个人向域名系统管理机构申请一个用于标识身份的名称。常见的互联网公司二级域名代号例如:
  阿里:ali     淘宝 taobao     58同城 58     腾讯 qq、tencent    网易163    新浪sina
   三级域名(或主机名):集团公司通常用于标识不同地区的公司。如58同城的公司有:
  wh.58.com、hz.58.com、bj.58.com。(wh武汉 ,hz 杭州 ,bj 北京)
  

  

  DNS工作原理及解析过程:

  

  1、client客户机向本地的DNS 服务器发出解析请求:“你知道www.baidu.com”的IP地址吗?服务器就在自己的DNS数据库中查询是否有www.baidu.com的区域记录和资源记录。
  2 、如果本地的DNS服务器上有记录,则直接将www.baidu.com的IP地址告诉给客户机。否则,本地DNS服务器就回去问“根”DNS服务器。
  3、根DNS服务器告诉本地DNS服务器.com的DNS服务器IP地址。
  4、本地DNS服务器向.com服务器发出请求:“你知道www.baidu.com”的IP地址吗?
  5、.com的DNS服务器告诉本地DNS服务器baidu.com的DNS服务器IP地址。
  6、本地DNS服务器向baidu.com服务器发出请求:“你知道www.baidu.com”的IP地址吗?
  7、baidu.com的DNS服务器告诉本地DNS服务器www.baidu.com的服务器IP地址。
  8、本地DNS服务器告诉Client客户机:"www.baidu.com"的IP地址是180.97.33.107。
  

  

  DNS服务器的部署流程:
  环境 : systemctl  stop  firewall    #关闭防火墙     setenforce     #关闭selinux
  1. 查看软件是否安装 : rpm  -q  bind  bind-utils
  2. 安装DNS服务器所需要的软件: yum  install  -y  bind  bind-utils(客户端软件)
  3. 启动服务并设置开机自启动: systemctl   restart  named && systemctl  enable  named
  4. 查看配置文件: rpm  -qc  bind

  其中, /etc/named.conf 为主配置文件 , /etc/named.rfc1912.zones  为DNS的区域配置文件(正向解析、反向解析的区域设置)
  

  

  主配置文件 /etc/named.conf 内容:
  

  options {
        listen-on port 53 { any; };                                                              # 监听端口为 53 , any 允许为ipv4 的任意IP访问
  listen-on-v6 port 53 { ::1; };
        directory       "/var/named";                                                         # DNS服务的工作目录
  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";
  recursing-file  "/var/named/data/named.recursing";
  secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };                                                                  # 允许查询,localhost表示仅允许本机自己查,如果要让网络中的任何主机查询就用any。(白名单)
        recursion yes;                                                                                # 允许递归查询
  

  dnssec-enable  yes;                                                                       # 启用DNS安全功能
  dnssec-validation  yes;
  

  /* Path to ISC DLV key */
  bindkeys-file "/etc/named.iscdlv.key";
  

  managed-keys-directory "/var/named/dynamic";
  

  pid-file "/run/named/named.pid";                                               # DNS的pid文件
  session-keyfile "/run/named/session.key";
  };
  

  logging {
  channel default_debug {
  file "data/named.run";
  severity dynamic;
  };
  };
  

  zone "." IN {                                                                                   # 根域设置                                                   
          type hint;                                                                               #类型为hint                                               
          file "named.ca";     文件路径是/var/named/named.ca           #主机名和IP映射关系的资源记录文件名 
  };

  

  include "/etc/named.rfc1912.zones";                                           # 指定包含的配置文件 , 区域配置文件      
  include "/etc/named.root.key";
  

  区域配置文件内容, 以/var/named/named.localhost 为例:
  $TTL 1D                                                                                 #缓存数据的生命周期值为一天
  @       IN SOA  @ rname.invalid. (                                         #soa记录 , 指权威的DNS服务器名称和管理员邮箱
  0       ; serial                                   #文件的版本编号 , 通常用年月日来编写 , 例20190218001
  1D      ; refresh                               #刷新时间为一天
  1H      ; retry                                  #重试时间为一小时
  1W      ; expire                               #过期时间为一周                               
  3H )    ; minimum                          #默认缓存时间为三分钟
  NS      @                                                                        #ns记录 ,即name server记录 ,记录是dns服务器的名称
  A       127.0.0.1                                                               # A 记录指定域名对应的IP
  AAAA    ::1
  

  配置DNS服务的正向解析(域名-->ip):

  以自身IP为例(192.168.11.11) , 搭建一个名称为gj.com的正向解析服务
  第一步 : 首先将主配置文件 /etc/named.conf 中的localhost 和 127.0.0.1 改为 any

  第二步 : 编辑区域配置文件 /etc/named.rfc1912.zones , 创建 gj.com 的正向解析配置文件 ,在文件最后一行写入如下所示:
       
                      zone "gj.com" IN {                             # 配置名称区域                                                                 
                           type  master;                                # 类型为master 主                                                             
                           file  "gj.com.zone";                      #资源记录文件名 , 完整路径为 /var/named/gj.com.zone
                           allow-update { none; };                # 允许跟新 , none 为不允许跟新                                       
                                 };
  第三步 : 创建qf.com正向解析区域的资源记录(域名和IP地址的映射关系)文件gj.com.zone。
  cd  /var/named                                         # 进入到 /etc/named 目录下面
  cp  -av   named.localhost   gj.com.zone    #复制 named.localhost 文件里面的内容到 gj.com.zone 文件中
  vim   gj.com.zone                                       #编辑此文件 ,添加图中最后四行内容

  第四步 : 重启服务 ,用nslookup 命令进行本地检测:

  mail.gj.com 同上www.gj.com  , 解析出来的IP为192.168.11.22
  *在区域配置文件 /var/named/gj.com.zone 中添加 *  A  192.168.11.23  , 即为泛域名解析 , * 代表任意主机名
  

  

  

  

  配置DNS服务的反向解析(ip-->域名):
  第一步 : 同上正向解析
  第二步 : 编辑区域配置文件 /etc/named.rfc1912.zones , 创建 gj.com 的反向解析配置文件 ,在文件最后一行写入如下所示:
                    zone "12.168.192.in-addr.arpa" IN {              #配置ip区域 , IP反正写
                         type  master;                                              #类型为master 主
                         file  "192.168.12.zone";                                 #资源记录文件名 , 完整路径为 /var/named/192.168.12.zone
                         allow-update { none; };                               # 允许跟新 , none 为不允许跟新
                              };
https://s1.运维网.com/images/20190220/1550661638706403.png 
第三步 : 创建gj.com反向解析区域的资源记录(域名和IP地址的映射关系)文件192.168.12.zone。
                   
cd  /var/named                                                 # 进入到 /etc/named 目录下面
cp  -av   named.localhost   192.168.12.zone    #复制 named.localhost 文件里面的内容到 192.168.12.zone 文件中
 vim   192.168.12.zone                                      #编辑此文件 ,添加内容如图所示:
https://s1.运维网.com/images/20190220/1550661964338787.png
 第四步 : 重启服务 , 用nslookup 进行本来检测 :
https://s1.运维网.com/images/20190220/1550662109787640.png
使用nslookup 切换服务器到192.168.11.11 上 , 输入IP:192.168.12.2 ,从图看出成功解析出www.gj.com , ip:192.168.12.3 解析出相对应的 mail.gj.com




辅助DNS服务器配置:


       功能及作用 : 辅助DNS服务器上的资源配置文件来源于主DNS服务器。会自动从主DNS服务器上下载资源配置文件,或定期跟主DNS服务器同步资源配置文件数据。辅助DNS服务器可以帮助主DNS服务器分担一定的域名解析压力 .


部署实验环境 : 准备第二台虚拟机主机(IP:192.168.11.13) , 按上述文章内容创建好正向解析区域和反向解析区域并测试成功之后 , 在192.168.11.13开始部署辅助DNS服务: 
第一步,安装软件:
  rpm  -q  bind  bind-utils
  yum  install  -y  bind  bind-utils
  systemctl  restart  named  &&  systemctl  enable  named
  rpm  -qc  bind
   第二步,备份指定的配置文件:
  cd  /etc
  ls   named*
  cp  -v  named.conf{,.bak}
  cp  -v  named.rfc1912.zones{,.bak}
  第三步,修改/etc/named.conf主配置文件,将文件中的127.0.0.1和localhost全部改成any。
  vim   /etc/named.conf    修改如下两行内容的{}中的内容为any
  listen-on  port  53  { any; };
  allow-query  { any; };
  ------- 以上操作不做过多解释 , 上文有详细解释-----------------------------------
  第四步 : 编辑区域配置文件 /etc/named.rfc1912.zones , 创建 gj.com 的辅助DNS解析配置文件 ,在文件最后一行写入如下所示:

  type   slave                              #设置类型为从
  file "slaves/gj.com.zone"         #声明辅助配置区域文件
  masters  { 192.168.11.11;};      #声明主DNS服务器为192.168.11.11这台机器  
   第五步 : 重启服务 , 查看 /var/named/slaves 下面是否存在文件:

  可以看出一开始没有 , 重启服务后 , /var/namd/slaves 下面存在 gj.com.zone 区域配置文件 , 这个文件是从主DNS服务器192.168.11.11下载过来的

  从辅助DNS服务器检测也能解析出www.gj.com ,如上图
  

  DNS服务器视图功能及部署:

  视图功能作用 : 通过视图功能可以实现内网、外网解析出不同的IP地址。即解析同一个域名时,对于不同网段的客户机查询出不同结果的IP地址
  (警告:在使用DNS视图功能的 DNS服务器上要在/etc/named.conf中删除或注释掉根域的配置信息,注释掉named.rfc1912.zones和root.key这些代码.否则会出错.)
  ---------------------------------------------------------------------------------------------------------------------      
  附:   dns视图配置代码:
               acl   dianxin  {                                        #定义访问控制列表名称为dianxin电信
                  192.168.11.0/24;                    #指定网络地址和子网掩码,24是255.255.255.0这个子网掩码
               };

               view  "dianxin" {                                      # 定义视图名称为dianxin电信
                   match-clients { dianxin; };                #匹配客户端的网段为dianxin(即acl定义的名称)
                   recursion  yes;              # 启用递归查询
                   zone "test.com" IN {         # 登记test.com匹配配置
                  type master;            #类型为master主DNS服务器
                  file "dianxin.test.com.zone";             #区域的解析资源配置文件
              };
              };
  -----------------------------------------------------------------------------------------------------------------
  实验:给192.168.11.11[电信]这台主机的ens33网卡临时添加2个IP地址(192.168.100.7[移动]、192.168.110.7[联通])。创建一个dianxin的视图,在视图中定义test.com区域,并创建解析资源记录文件,主机名和IP地址随便定,但IP必须是192.168.11.0这个网段的。做解析测试。
  

  部署如下: 
  首先 ,修改主配置文件 : /etc/named.conf , 如图所示 ,注释文件并添加视图代码:

  临时添加网卡并用ifconfig 查看::
  ifconfig  ens33:1   192.168.100.9  up
  ifconfig  ens33:1   192.168.110.9  up 

  创建/var/named/dianxin.test.com.zone这个解析区域配置文件:
  cd  /var/named
  cp -av   named.localhost    dianxin.test.com.zone
  vim  dianxin.test.com.zone  编辑此文件输入以下内容 ,如图:

  本地测试 : nslookup  dns1.test.com   192.168.11.11

  而其他网段解析不了 , 同上原理可创建移动dns , 联通dns服务 ,实现不同网段解析不同网段的功能
  DNS子域授权:

  子域 : 出了根域之外的服务器都称为子域 ,一般在公司内部使用 ,
  为什么使用子域? 为的是能够减轻父域的负担 , 且不受dns服务商的影响
  父域只需解析出自己的子域即可 , 子域解析的是子域中的所有主机 . 
  实验 : 搭建父域和子域
  实验拓扑 : 配置二级域名(子域)服务器 qq.com . (ip:192.168.11.13)
  配置一级域名(子域)服务器 www. (ip:192.168.11.11)
  首先 , 在两台虚拟主机(192.168.11.11  192.168.11.12)上安装好DNS服务 , 安装详细部署见上文(记得关闭防火墙和seLinux):
  配置二级域名: vim /etc/named.rfc1912.zones  编辑此文件添加内容如图:

  再创建区域配置文件 /var/named/qq.com.zone , 内容如下

  重启服务 , 用nslookup www.qq.com 192.168.11.13 检测是否解析成功
  配置一级域名服务器:
  vim /etc/named.rfc1912.zones  编辑文件添加如图所示内容:

  再创建区域配置文件 /var/named/com.zone , 内容如下

  重启服务 , 再父域上检测 : nslookup www.qq.com 192.168.11.13

  到此 ,子域授权结束
  

  

                                           

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-828464-1-1.html 上篇帖子: centos7 dmidecode 信息采集 下篇帖子: centos7 网络配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表