一,简介

相对于存储和大数据领域,CDN是一个相对小的领域,但行行出状元,BIND就是CDN领域的蝉联N届的状元郎。BIND是一款非常常用的DNS开源服务器,全球有90%的DNS用BIND实现。值得一提的是,BIND9.8.1用C语言实现,代码量巨大,其设计实现几乎涵盖了服务器编程的所有细节。

本文简要介绍一下BIND9.8.1最简单配置,其中穿插介绍BIND中的最基本概念,不涉及BIND的安装部署,不涉及BIND架构等话题。

二,Zone文件和资源记录Resource Record

介绍最简配置前需要明确两个配置中的概念:zone和RR。

BIND的配置文件描述了一个域名服务器的所有属性,这些属性BIND的行为和功能。其中的zone文件描述了域名服务器中包含的主机,所提供的服务类型等信息,BIND通过将zone文件中的信息加载到内存数据结构中并有效组织起来,然后对外部的DNS请求提供验证和查询请求。需要注意的是,zone文件的格式不是由BIND制定的,而是DNS标准文档制定的。

通常情况下,一个zone文件描述该DNS服务器服务的一个授权服务器域。例如我有一个DNS服务器可以解析taobao.com的域名和baidu.com的域名,那么我的DNS服务器的配置文件中就可以设置两个zone标签,一个描述taobao.com的域名信息,另一个描述baidu.com的域名信息。

资源记录resource Record记录了一个域(domain)的属性和特性,注意,属性是指共有的特征,特性指特有的特征。例如中国特色社会主义就是一个特性。

三,named.conf文件配置

named.conf是BIND的唯一的主配置文件,当然你也可以自己编写主配置文件,但是需要在BIND主进程named启动的时候用-c选项指定主配置文件的路径。named.conf由一个个子句组成,每个子句都有一个头跟一对大括号组成,大括号里面是该子句中的因子和值(具体见下面的例子)。

下面的代码是named.conf的一个最简配置。其中假设named.conf只负责解析授权域名cobb.com。

其中的key是由rndc-confgen生成的。

key "rndc-key" {algorithm hmac-md5;secret "eoiWMiCwCYPwNLWxl05rNw==";};controls {inet 127.0.0.1 port 953allow { 127.0.0.1; }keys { "rndc-key"; };};options {//域名文件存放的绝对路径directory "/usr/local/named/var";//如果bind启动,自动会在/usr/local/named/var目录生成一个named.pid文件,打开文件就是named进程的IDpid-file "named.pid";};zone "." IN {//根域名服务器type hint;//存放在//usr/local/named/var目录,文件名为named.rootfile "named.root";};//域cobb.com的zone文件zone "cobb.com" IN {type master; //该域名服务器是主域名服务器,这个选项主要用在主备部署中file "cobb.com.zone"; //解析域名cobb.com的zone文件内容,其路径由options中的directory指定allow-update { none; }; //定义了允许向主zone文件发送动态更新的匹配列表};//反向解析zone "1.168.192.in-addr.arpa" in {type master;//存放反向解析的文件file "cobb.com.rev";allow-update { none; };};

上面的代码中,

controls子句定义了服务器的控制通道的一些信息,控制通道是named为外部提供的管理named服务器的接口。通常情况下named都在本机的953端口上监听控制信息;allow表示允许本机上的rndc控制程序控制named服务器,allow出了指定ip地址外,还可以指定acl中的用户地址;keys表示rndc控制named时需要携带的密 钥,这个密 钥由rndc-gen生成,并在named.conf中包含。

接下来的options选项中包含一些全局状态描述,这些描述信息在所有的zone文件和view中可见,但如果zone文件或view中重新定义这些描述信息,则options中的信息被覆盖。上面例子中的directory和pid-file的含义见代码注释。

四 zone文件配置

文件cobb.com.zone文件位于/usr/local/named/var中,其内容如下所示:

$TTL 86400
$ORIGIN cobb.com.
@       IN  SOA ns1 root(2013031901      ;serial12h     ;refresh7200        ;retry604800      ;expire86400       ;mininum)NS  ns1.cobb.com.NS  ns2.cobb.net.MX  10  mail.cobb.com.
ns1     IN  A   192.168.10.1
www     IN  A   192.168.10.10IN  A   192.168.10.11
mail        IN  A   192.168.10.20
ljx     IN  A   192.168.10.30
ftp     IN  CNAME   ljx

上面的配置表示:

1)该zone有两个域名服务器,一个是ns1.cobb.com,ip地址是192.168.10.1,另一个是ns2.cobb.net(它不在本域内);

2)该zone有一个邮件服务器,域名是mail.cobb.com,IP地址是192.168.10.20;

3)该zone有两个对外服务的万维网服务器,其域名是www.cobb.com,IP地址是192.168.10.10和192.168.10.11;

4)该zone有一个对外服务的ftp服务器,其域名是ftp.cobb.com,IP地址是192.168.10.30;

5)该zone有一个主机,其域名是ljx.cobb.com,IP地址也是192.168.10.30;

其中TTL和ORIGIN等标签在BIND中叫做指令。zone文件中的所有指令都以一个$开始,指令主要用来表示zone文件中的一些控制信息。$TTL指令表示一个资源记录在其他DNS服务器中(这个DNS服务器是请求本BIND的服务器,一般情况下是local dns)的缓存时间,在这个缓存时间内,local dns(暂且先这么认为,好举例)不会再请求BIND,而是直接返回域名对应的IP地址。$ORIGIN指令表示该zone文件用来描述的域(domain)名称。

SOA(start of authority)资源记录:它定义了一个域的全局特性,必须是出现在zone文件中的第一个资源记录,而且一个zone文件中必须只有一个SOA资源记录。其中SOA后面的ns1与root分别是域名服务器和管理员邮箱,其全写分别是ns1.cobb.com.和root.cobb.com,因为$ORIGIN指明了域名,所以这个地方可以略去。

NS(name server)资源记录:它定义了为本域(domain)(这个例子中是cobb.com)服务的域名服务器。需要注意的是外部域名服务器(例子中的ns2)必须为zone cobb.com包含一个zone文件。

MX(mail exchanger)资源记录:它定义了本域中的邮件服务器。这个资源记录是可选的,因为一个域中不一定有邮件服务器。

A(Address)资源记录:这是个很关键的记录。它定义了zone文件中提到的主机或服务的IPv4地址(IPv6地址叫AAAA记录),而且这些IPv4地址必须是外部可见的。例如万维网服务器www.cobb.com的IPv4地址是192.168.10.10。

CNAME记录:是一个已经定义了IPv4地址的主机的别名记录。通常用来为已经存在的主机分配一个或多个服务。示例中的主机ljx.cobb.com既做主机又提供ftp服务。从上面的分析可以看出,我们也可以不用CNAME,只需要为不同的服务指定相同的IP地址即可。但是实际上两种情况下必须用CNAME记录:1)真是主机或别名主机在不同的域中,我们不知道外部域中的IP地址,所以必须要用CNAME,例如ftp.cobb.com是ftp.cobb.net的一个别名,但是在域cobb.com中无法知道tp.cobb.net的IP地址,只能用CNAME记录;2)用户希望访问一个站点时用cobb.com产生www.cobb.com的效果,这时我们需要有如下的CNAME定义:

; 定义一个解析cobb.com的IP地址

IN              A              cobb.com

; 为www.cobb.com建立别名cobb.com

www     IN               A              cobb.com.

当然,上面介绍的只是一个最小配置,但是已经包含了大部分情况下我们需要配置的选项。

DNS开源服务器BIND最小配置详解相关推荐

  1. 网站服务器怎么组件,网站服务器搭建与配置详解!

    原标题:网站服务器搭建与配置详解! 服务器大家经常会听说,但是可能大家对个中概念还有些不明白,这里跟大家说说网站服务器的搭建与配置. 网站服务器概念 网站服务器是网络应用的基础硬件设施,简言之即存放网 ...

  2. 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解

    注意:这里不会讲到nginx流媒体模块如何安装的问题,只研究rtmp,hls直播和录制相关的nginx服务器配置文件的详细用法和说明.可以对照这些命令详解配置nginx -rtmp服务 一.nginx ...

  3. CentOS 6.x上搭建vSFTPD服务器搭建与配置详解

    摘要: 手把手教你搭建vsftpd服务器,实现了基于db文件和MySQL数据库文件进行虚拟用户认证,当然了也本文章也包含搭建过程中问题的排查啦,哈哈哈. 另外,我在CentOS 7.x上也进行了搭建测 ...

  4. Centos7 搭建DNS服务器与原理配置详解

    在搭建我们自己DNS服务器之前,先必须了解下DNS服务器的作用和原理. DNS是在互联网上进行域名解析到对应IP地址的服务器,保存互联网上所有的IP与域名的对应信息,然后将我们对网址的访问,解析成IP ...

  5. Linux配置 DNS and BIND服务配置详解--缓存服务器配置 正反向解析配置

    一.DNS简介 一.DNS简介   DNS是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的.域名服务器是 ...

  6. bind日志配置详解

    在默认情况下,BIND把日志消息写到/var/log/messages文件中,而这些日志消息是非常少的,主要就是启动,关闭的日志记录和一些严重错误的消息,所以要详细记录服务器的运行状况,需要自己配置服 ...

  7. kali mysql停止服务器_MySQL主从复制配置详解

    MySQL版本5.5.58 第一步配置主机 主机配置如下: server-id = 1 #服务器id (主从必须不一样) log_bin = mysql-bin #打开日志(主机需要打开), 这个my ...

  8. vue如何配置服务器端跨域_客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解...

    本篇博客主要说明: 前后端框架(本例中是vue和koa)如何发送请求?获取响应? 以及跨域问题如何解决? vue部分: import App from './App.vue' import Axios ...

  9. linux下DNS配置详解

    linux下DNS配置详解 DNS 是域名系统 (Domain Name Server) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务.在Internet上域名与IP地址之间是一一对应的 ...

最新文章

  1. 芝加哥大学24岁华人学霸遇害后,父母赶赴美国,妈妈发表讲话让人泪目...
  2. 《51单片机应用开发从入门到精通》——2.2 跑马灯实例
  3. 时代亿信 认证墙-SID强身份认证产品
  4. oo0ooo0ooo0oo_OoO的完整形式是什么?
  5. delphi中的copy,delete,pos和leftstr,RightStr的用法
  6. 知道接口地址 如何传数据_数据不知道如何可视化?一款工具推荐给大家
  7. linux下python脚本print中文显示不正确_pythoncgi脚本不会在linux上打印希伯来语
  8. 如何断开GitLab远程仓库链接
  9. flash制作文字笔顺_教你如何给GIF动态图片加上文字
  10. python管道_python中管道
  11. Vim激荡30年发展史
  12. 【数据结构--二叉树】--附超详细图解
  13. python xlrd 过滤excel里的隐藏行
  14. Keil 保护视力背景颜色设置和代码的颜色设置
  15. 如何申请屏蔽垃圾短信
  16. 使用R进行VENN_维恩图或韦恩图_的绘制_2020-11-08
  17. 基于51单片机的篮球记分牌设计
  18. 全部希腊字母读音-数学公式中常用
  19. MTK开发之—添加aw21024 i2c设备驱动
  20. 众安在线2018半年报:亏损6.668亿元,综合成本率高达124.0%

热门文章

  1. Go Web开发扩展项-GROM框架
  2. \t\t【体会】敏捷开发 - 固本 + 持续小跑
  3. 尝试使用ArcGISPro中的垂直夸大制图
  4. 史蒂夫·青木主题的 Game Jam
  5. 拥有一把高性价比全单民谣吉他是一种什么体验? VEAZEN费森性价比S88全单系列民谣吉他震撼上线
  6. 巡逻保安───导航守卫
  7. uniapp微信小程序复制电话或者文字
  8. 英特尔携手汉朔、微软,释放“AI + 零售”大招!
  9. 用渣渣示波器窥探MIPI信号的大概样子
  10. 作业调度-先来先服务算法