初学Linux——Day17——DNS

DNS解析的作用:将域名解析为IP地址

  DNS服务器的功能
  正向解析:根据注册的域名查找其对应的IP地址
  反向解析:根据IP地址查找对应的注册域名,不常用

  所有的域名必须以点作为结尾

  域名 = 站点名 . 域名后缀


BIND域名服务
  BIND(Berkeley Internet Name Daemon)

  软件包: bind bind-chroot
  系统服务:named
  默认端口:TCP/UDP 53

  主配置文件:/etc/named.conf   设置本机负责解析的域名 
  地址库文件:/var/named/       记录域名与IP地址的对应关系

搭建基本的DNS服务器

服务端:
1.安装软件包
 yum -y install bind-chroot bind
 bind-9.9.4-29.el7.x86_64          //域名服务包
 bind-chroot-9.9.4-29.el7.x86_64   //提供虚拟根支持

2.修改主配置文件
 vim /etc/named.conf  

 options {
    directory "/var/named";  #指定地址库文件存放位置
 };
 zone "yzy.com"  IN  {          #指定本机负责解析的域名
    type  master;              #指定本机为权威服务器
    file  "yzy.com.zone";      #指定地址库文件名字
 };

3.建立地址库文件

  cp -p  named.localhost   tedu.cn.zone
  vim /var/named/tedu.cn.zone

    yzy.com.  NS    server        #注意域名后面要有 "点"
    server    A     [本服务端IP]
    www       A     [解析www.yzy.com]
    ftp       A     [解析ftp.yzy.com]

4. 重起named服务
  systemctl restart named

客户端:
  echo nameserver [DNS服务器IP]  >  /etc/resolv.conf  
  nslookup  www.yzy.com            #查看域名解析结果

总结:1.总的思路还是装包配置起服务  
2.注意在修改地址库配置文件的时候注意权限问题
3.在填写地址库的时候在写完整域名后面必须有 "点"


多区域DNS服务器
  在原有的DNS服务器上再添加一个模块,里面记录新的域名处理的信息,再创建相应的地址库文件。
服务器:
1.修改主配置文件/etc/named.conf  

2.建立对应的地址库文件

3. 重起named服务


特殊的解析记录

一、DNS解析记录的轮询
   当DNS解析服务器有多个相同的域名解析记录的的时候,默认会轮询访问,也就算说,第一次有客户段请求解析的时候,DNS会返回第一个IP,第二个来的时候会返回第二个,写法如下:

    www       A     192.168.4.1
    www       A     192.168.4.10
    www       A     192.168.4.100

二、泛域名解析
   
   匹配所有站点名 ,写法乳腺癌
   *     A      1.2.3.4
   *作为通配 ,但是在DNS解析的时候,是最后一个适配的

在一定条件下,我们需要创建多个有规律的域名解析,如下:

   pc1.yzy.com -------> 192.168.10.1
   pc2.yzy.com -------> 192.168.10.2
   pc3.yzy.com -------> 192.168.10.3
     .......
   pc50.yzy.com ------> 192.168.10.50

   使用内置函数   $GENERATE造数, 得到连续范围的数字
   在配置文件中书写示例如下:

   $GENERATE 1-50   pc$   A   192.168.10.$


三、解析记录的别名

   [A]       CNAME     [B]

   作用就是站点名是A的时候把B的结果反馈出去


DNS子域授权

            父域:www.yzy.com

            子域:www.cool.yzy.com   

      虚拟机A为DNS服务器,负责解析  父域:yzy.com
      虚拟机B为DNS服务器,负责解析  子域:cool.yzy.com 

虚拟机B搭建DNS服务器
1.安装软件包bind  bind-chroot
2.修改主配置文件
3.在/var/named路径下,建立地址库文件


子域授权:在父域的DNS服务器上,指定子域服务器位置

服务器A(父域):
        vim /var/named/yzy.com.zone
    yzy.com.      NS    serverA
    cool.yzy.com. NS    serverB
    serverA       A     [A的IP]
    serverB       A     [B的IP]
         …………………………

        nslookup www.cool.yzy.com [A的IP]
       解析结果会出现下面的话

    Non-authoritative answer:    #非权威解答


递归解析:由客户端发起请求解析,首选DNS服务器与其他DNS服务交互,最终将答案带回来的过程

  是否允许递归解析
  options {
        directory       "/var/named";
        recursion no;      #禁用递归解析
   };

迭代解析:首选DNS服务器与其他DNS服务交互过程


DNS主机名映射文件
作用:只为本机直接提供解析结果
   /etc/hosts

   
 用户解析域名 www.haha.com:
      1./etc/hosts(优先级最高)
      2./etc/resolv.conf 
      3.寻找DNS服务器


缓存DNS服务器:缓存解析记录,加速解析过程
  
   搭建方式:
      1.全局转发式缓存DNS服务器
      2.根域迭代缓存DNS服务器(一般不用)

构建缓存服务器
1.装包
2.配置,修改配置文件
  vim /etc/named.conf 
  options {
    directory       "/var/named";
    forwarders {  [缓存服务器查找的DNS服务器,一般是网络中的DNS服务器];  };
  };
3.起服务
  systemctl restart named

注意:在写配置文件的时候forwarders后面有大括号,括号中间每个部分都有空格,结尾要有分号


完整的DNS服务的配置文件书写示例

/etc/named.conf 主配置文件
 options {
    directory "/var/named";  #指定地址库文件存放位置
 };
 zone "yzy.com"  IN  {          #指定本机负责解析的域名
    type  master;              #指定本机为权威服务器
    file  "yzy.com.zone";      #指定地址库文件名字
 };
 zone "yzy2.com"  IN  {          #指定本机负责解析的第二个域名
    type  master;              #指定本机为权威服务器
    file  "yzy2.com.zone";      #指定地址库文件名字
 };


/var/named/*.zone 相关地址库文件
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
yzy.com.        NS      serverA
cool.yzy.com.     NS      serverB
serverA         A       [A服务器的IP]
serverB         A       [B服务器的IP]        # 子域服务器的IP,用于递归查找
www             A       [web服务器的IP]
ftp             A       [ftp服务器的IP]
*        A    [通用情况下的IP]
$GENERATE 1-50  pc$    A    [IP]$[IP]    # 这句话中前两个字段代表创建多少范围连续的数字,后面中$代表的就是前面创建的多个数,其中前后的$代表的数都是一样的

猜你喜欢

转载自blog.csdn.net/Yu1543376365/article/details/81952861