安装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

vim /etc/named.rfc1912.zones

vim /var/named/app.com.zone

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

@ 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文件检测

防火墙设置:

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

dig

host

故障排查

#  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.

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

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

参考:

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

错误集合

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

Centos 6 DNS Server 配置的更多相关文章

  1. dns server 配置

    # cat /etc/named.conf//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND ...

  2. CentOS 7 samba server 配置

    samba是linux上的文件共享服务软件,相当与Windows上的共享文件夹,当然也是要在同一网段上的. 当前用的版本是4.4.4,好吧!下面介绍怎么去安装配置它,here we go! 1. 安装 ...

  3. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  4. Centos 6 DNS 配置 解决 Unknown host

    测试服务器Maven 打包时遇到了如下的错误 maven.aliyun.com: Name or service not known: Unknown host maven.aliyun.com: N ...

  5. CentOS 6.4安装配置ldap

    CentOS 6.5安装配置ldap 时间:2015-07-14 00:54来源:blog.51cto.com 作者:"ly36843运维" 博客 举报 点击:274次 一.安装l ...

  6. DNS 安装配置

    DNS 安装配置 实验环境 一台主机:Linux Centos 6.5 32位 安装包: DNS服务:bind.i686 DNS测试工具:bind-utils DNS 服务安装 1.yum安装DNS服 ...

  7. centos搭建dns服务

    原文:(https://www.myjinji.top/articles/2020/04/02/1585800289945.html)[https://www.myjinji.top/articles ...

  8. CentOS防火墙iptables的配置方法详解

    CentOS系统也是基于linux中的它的防火墙其实就是iptables了,下面我来介绍在CentOS防火墙iptables的配置教程,希望此教程对各位朋友会有所帮助. iptables是与Linux ...

  9. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/s ...

随机推荐

  1. Kinect 开发 —— ColorBasic

    创建一个Kincet项目通常需要: 1. 创建一个VS项目,一般为了展示通常创建一个wpf项目. 2. 添加Microsoft.Kinect.dll引用,如果是早期版本的SDK,这个名称可能不同. 3 ...

  2. 计算加班类型以及小时数(js)

    function GetDateDiff(startTime, endTime, diffType) { //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 startTime ...

  3. vmstat---有关进程、虚存、页面交换空间及 CPU信息

    虚拟内存运行原理 在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间.当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存 ...

  4. python爬虫之『入门基础』

    HTTP请求 1.首先需要了解一下http请求,当用户在地址栏中输入网址,发送网络请求的过程是什么? 可以参考我之前学习的时候转载的一篇文章一次完整的HTTP事务过程–超详细 2.还需要了解一下htt ...

  5. nginx配置静态文件服务器的一个特殊需求的探索和分享, nginx处理不同路径返回统一文件,nginx改写,跳转请求.

    最近在做一个前后端分离的个人博客,在做自己博客的时候有个想法,本来是打算用nginx作为静态文件服务器使用,django做后端程序. 我的前端页面用vue写的,结果用组件用嗨了,发现页面列表和 详情都 ...

  6. 执行异步UI更新

    异步更新UI的几种方法①.使用Control.Invoke方式来更新数据                     foreach (DataGridViewRow dgvr in this.dgv_s ...

  7. 关于Blocking IO,non-Blokcing IO,async IO的区别和理解

    来源:http://shmilyaw-hotmail-com.iteye.com/blog/1896683 概括来说,一个IO操作可以分为两个部分:发出请求.结果完成.如果从发出请求到结果返回,一直B ...

  8. 《深入理解java虚拟机》:类的初始化

    深入理解java虚拟机>:类的初始化 类从被载入到虚拟机内存中開始.到卸载出内存为止,它的整个生命周期包含:载入.验证.准备.解析.初始化.使用和卸载七个阶段.当中验证.准备.解析3个部分统称为 ...

  9. system.setting-全局变量数据监听

    今天在setting里添加了一个新的变量,想要实现对这个变量的监听.现在记录下方法 首先就是明白一点,我们在system.setting里添加的变量,都会被保存在data/data/com.andro ...

  10. mysql 批量删除数据

    批量删除2000w数据 使用delete from table太慢 //DELIMITER DROP PROCEDURE if EXISTS deleteManyTable; create PROCE ...