zoukankan      html  css  js  c++  java
  • dns服务

    假设我们的dns服务器ip是192.168.1.65 我们网站的域名是hh.com,我们租用了192.168.1这个网段的全部ip地址

    比如www.hh.com的ip是192.168.1.4

    xx.hh.com的ip是192.168.1.8

    特别注意的是,我们的dns服务器是dns.hh.com,ip是192.168.1.65

    首先安装dns服务yum -y install bind

    配置文件,有两处地方:

    第一:

    [root@localhost etc]# ls /etc/named*
    /etc/named.conf /etc/named.iscdlv.key /etc/named.rfc1912.zones /etc/named.root.key

    第二:

    [root@localhost ~]# cd /var/named
    [root@localhost named]# ls
    data dynamic named.ca named.empty named.localhost named.loopback slaves

    首先编辑主配置文件:

    有一个地方要留意,两个地方要修改

    修改:

            listen-on port 53 { 192.168.1.65; };

    这个是dns服务器的dns服务监听哪个端口,当然,最好写成any        listen-on port 53 { any; };顺便把ipv6哪个配置项也改成any listen-on-v6 port 53 { any; };

    修改:

    allow-query { any; };允许哪些ip进行dns请求,这个当然要允许所有的主机

    留意:

    主配置文件最下方,有两段话

    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";

    这个的作用不再多说,有一定经验的应该清楚

    其次编辑 /etc/named.rfc1912.zones 这个配置文件定义了正向解析和反向解析相关的

    在原有基础上添加,或者把原来的配置文件全部删除,重新配置都可以,这里我们是在原有基础上添加

    因为这个dns服务器只负责解析hh.com这一个域和192.168.1这一段ip,所以只需要给这俄格与添加一条正向和一条反向即可

    添加一个正向解析的配置:

    zone "hh.com" IN {
      type master;
      file "hh.localhost";
      allow-update { none; };
    };

    再添加一个反向解析的配置

    zone "1.168.192.in-addr.arpa" IN {
      type master;
      file "hh.loopback";
      allow-update { none; };
    };

    以上,type是配置这个dns是从服务器还是主dns服务器 ,allow-update表示是否允许其他的dns服务器进行跟新,这是针对搭建dns集群时有用,这里我们只建一台,所以我们就配置为master

    allow-update 配置为none

    如果搭建主从dns服务器的时候,那么主服务器就因该类似这样配置:

    zone "hh.com" IN {
      type master;
      file "hh.localhost";
      allow-update { 192.168.1.66;192.168.1.67; };
    };

    从服务器类似这样:

    zone "hh.com" IN {
      type slave;

      masters { 192.168.1.65; };
      file "slaves/hh.localhost";
      allow-update { none; };
    };

    //masters { 192.168.1.65; };注意192.168.1.65;两边要留有空格

    //从服务器约定俗称的把解析记录保存再/var/named/slaves目录下,这个是约定俗称的规矩

    file表示具体的解析记录是在/var/named目录下的什么文件,比如这里我们具体的正向解析记录的文件为/var/named/hh.localhost

    最后就是配置具体的解析记录了:

    /var/named目录下已经为我们准备好了正向和反向的模板,我们就先复制一下,然后再修改

    [root@localhost named]# cp -a named.localhost hh.localhost

    [root@localhost named]# cp -a named.loopback hh.loopback

    编辑正向解析文件 hh.localhost:

    $TTL 1D
    @       IN SOA  hh.com. rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      dns.hh.com.
    dns     A       192.168.1.65
    www     A       192.168.1.4
    xx      A       192.168.1.8

    SOA后面跟dns具体负责解析哪个域

    ns记录代表dns的域名

    注意以上两个,后面都必须带.,不能省略,这个.代表根域,事实上所有的域名后面都带这个,只不过,很多时候我们省略了,比如我在浏览器里键入网址的时候,只不过是浏览器帮我们补全了,这里

    不能省略必须带上

    同时还需要注意的是,解析记录里必须包含dns解析 

    dns A 192.168.1.65

    编辑反向解析

    $TTL 1D
    @    IN SOA    hh.com. rname.invalid. (
                        0    ; serial
                        1D    ; refresh
                        1H    ; retry
                        1W    ; expire
                        3H )    ; minimum
        NS    dns.hh.com.
    65    PTR    dns.hh.com.
    4    PTR    www.hh.com.
    8    PTR    xx.hh.com.

    然后启动dns服务,

    service named  start

    然后我们把windows的dns临时修改为192.168.1.65,以供测试,再ping一下

    配置视图以实现智能dns(本测试例子中,有来自1网段的客户端,和来自二网段的客户端,他们访问www.xx.com,得到的dns解析地址是不同的):

    还是编辑主配置文件,把include "/etc/named.rfc1912.zones";这句话注释掉,然后添加下面的配置,

    view dns1 {//定义视图
    
        match-clients{ 192.168.1.0/24; };//匹配客户端地址列表
    
        match-destinations { any; };
    
        recursion yes;//允许递归查询开关
    
        include "/etc/dns1.zones";//定义解析域,然后定义不同的数据库文件
    
    };
    
    view dns2 {//定义视图
    
        match-clients{ 192.168.2.0/24; };//匹配客户端地址列表
    
        match-destinations { any; };
    
        recursion yes;//允许递归查询开关
    
        include "/etc/dns2.zones";//定义解析域,然后定义不同的数据库文件
    
    };

    然后就能分别编写相应的dns1.zones和dns2.zones以及各自对应的位于/var/named目录下的解析记录文件,步骤和前面相同

  • 相关阅读:
    sublime的ctags安装
    微信授权
    [读码时间] 图片列表:鼠标移入/移出改变图片透明度
    [读码时间] 提示框效果
    [读码时间] 鼠标移入移出改变样式
    [读码时间] 数组求和
    [读码时间] 简易选项卡
    [读码时间] 简易JS年历
    [读码时间] 记住密码提示框
    [读码时间] 函数传参,改变Div任意属性的值
  • 原文地址:https://www.cnblogs.com/saolv/p/12287209.html
Copyright © 2011-2022 走看看