• Centos 6 DNS Server 配置


    安装bind

    yum install -y bind bind-chroot bind-utis

    如果是Centos 5

    # yum -y install bind caching-nameserver

    文件结构

    # ll /etc/named.*
    -rw-r----- 1 root named 1021 May  8 16:39 /etc/named.conf
    -rw-r--r-- 1 root named 2389 Mar 10 23:55 /etc/named.iscdlv.key
    -rw-r----- 1 root named 1073 May  9 11:27 /etc/named.rfc1912.zones
    -rw-r--r-- 1 root named  487 Jul 19  2010 /etc/named.root.key

    # tree /var/named/
    /var/named/
    ├── chroot
    │   ├── dev
    │   │   ├── null
    │   │   ├── random
    │   │   └── zero
    │   ├── etc
    │   │   ├── localtime
    │   │   ├── named
    │   │   ├── named.conf
    │   │   ├── named.iscdlv.key
    │   │   ├── named.rfc1912.zones
    │   │   ├── named.root.key
    │   │   ├── pki
    │   │   │   └── dnssec-keys
    │   │   └── rndc.key
    │   ├── usr
    │   │   └── lib64
    │   │       └── bind
    │   └── var
    │       ├── log
    │       ├── named
    │       │   ├── 199.168.192.zone
    │       │   ├── app.com.zone
    │       │   ├── chroot
    │       │   │   ├── dev
    │       │   │   │   ├── null
    │       │   │   │   ├── random
    │       │   │   │   └── zero
    │       │   │   ├── etc
    │       │   │   │   ├── localtime
    │       │   │   │   ├── named
    │       │   │   │   ├── named.conf
    │       │   │   │   ├── named.iscdlv.key
    │       │   │   │   ├── named.rfc1912.zones
    │       │   │   │   ├── named.root.key
    │       │   │   │   ├── pki
    │       │   │   │   │   └── dnssec-keys
    │       │   │   │   └── rndc.key
    │       │   │   ├── usr
    │       │   │   │   └── lib64
    │       │   │   │       └── bind
    │       │   │   └── var
    │       │   │       ├── log
    │       │   │       ├── named
    │       │   │       ├── run
    │       │   │       │   └── named
    │       │   │       │       ├── named.pid
    │       │   │       │       └── session.key
    │       │   │       └── tmp
    │       │   ├── data
    │       │   │   └── named.run
    │       │   ├── dynamic
    │       │   │   ├── managed-keys.bind
    │       │   │   └── managed-keys.bind.jnl
    │       │   ├── named.ca
    │       │   ├── named.empty
    │       │   ├── named.localhost
    │       │   ├── named.loopback
    │       │   └── slaves
    │       ├── run
    │       │   └── named
    │       │       ├── named.pid
    │       │       └── session.key
    │       └── tmp
    ├── data
    │   └── named.run
    ├── dynamic
    │   ├── managed-keys.bind
    │   └── managed-keys.bind.jnl
    ├── named.ca
    ├── named.empty
    ├── named.localhost
    ├── named.loopback
    └── slaves

    BIND配置文件保存在:

    /etc/named.conf    主配置文件

    /var/named/         域zone文件位置

    配置修改:

    vim /etc/named.conf

    image

    vim /etc/named.rfc1912.zones

    image

    vim /var/named/app.com.zone

    image

    SOA表示授权开始
    /*上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表app.com,即表示一个域名记录定义的开始。而ns.app.com则是这个域的主域名服务器,而root.app.com.则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
    */
    1 ; serial (d. adams) /*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
    */
    1D ; refresh
    /*定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
    */
    1H ;retry
    /*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
    */
    1W ; expiry
    /*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
    */
    3H )
    /*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记
    录
    */

    @               IN     NS   ns.app.com.
    ns.app.com.             IN     A    192.168.199.61
    www.app.com.            IN     A    192.168.199.60
    mail.app.com.           IN     MX 5  ns.app.com.
    nginx1          IN     CNAME    www

    /*上面的第一列表示是主机的名字,省去了后面的域。
    NS:表示是这个主机是一个域名服务器,
    A:定义了一条A记录,即主机名到IP地址的对应记录
    MX 定义了一邮件记录
    CNAME:定义了对应主机的一个别名
    
    

    vim /var/named/199.168.192.zone

    image

    @ IN SOA ns.app.com. root.app.com. (
    12 ; Serial
    28800 ; Refresh
    14400 ; Retry
    3600000 ; Expire
    86400 ) ; Minimum
    IN NS ns.app.com. 
    /*以上的各关键字的含义跟app.com是相同的
    @       IN NS   ns.app.com.
    61      IN PTR  ns.app.com.
    60      IN PTR  www.app.com.
    60      IN PTR  nginx1.app.com.
    /* 上面的第二列表示的是主机的IP地址。省略了网络地址部分。如61完整应该是: 192.168.199.61
    PTR:表示反向记录
    最后一列表示的是主机的域名。
     
    语法检测:
    named-checkconf /etc/named.conf #配置文件检测
    named-checkzone app.com /var/named/app.com.zone #zone文件检测
    image

    防火墙设置:

    vim /etc/sysconfig/iptables #配置防火墙端口

    -AINPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT

    -AINPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

    -AINPUT -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT

    客户端测试:

    # cat /etc/resolv.conf
    nameserver 192.168.199.61

    # yum install bind-utils

    nslookup
    image

    image

    dig

    image

    image

    host

    image

    故障排查

    #  tail -f /var/log/messages  | grep named
    #  service named restart

    zone xxx.xxx/IN: loading from master file xxx.xxx.xxx failed: permission denied
    named[4089]: zone xxx.xxx /IN: not loaded due to errors.

    image

    报此错误是因为 named 服务是通过 named用户身份运行的没有读取/var/named下配置文件的权限

    image

    执行 chmod +r /var/named/* 即可

    参考:

    Linux下搭建DNS服务器和配置文件(named.conf)祥解

    错误集合

    Centos6.4环境下DNS服务器的搭建

  • 相关阅读:
    nginx http子模块conf的初始化
    tt2mysql —— 一个异构数据库同步方案
    libmemcached 0.39 故障转移无效
    TT数据到MYSQL的同步方案
    SuperPutty 1.3 special version
    Memcached遍历Key
    Nginx开发小记
    Spanner——Google的全球化分布式数据库
    淘宝的Tengine都改了什么
    c# 操作文件存入数据库(以二进制形式存入)
  • 原文地址:https://www.cnblogs.com/storymedia/p/4490336.html
Copyright © 2020-2023  润新知