bind是配置DNS服务的一个软件或者叫工具也行,要说清bind的首先得说清DNS.
1.DNS(Domain Name Service)是什么?
DNS是一种协议,同时监听在UDP和TCP的53号端口.计算机和计算机之前的通信靠的是IP地址,但是不方便管理人员记忆,所以就得有一种方法把IP地址转换成方便记忆的主机名,这就是DNS服务.DNS服务中有几个必须要了解的概念,
2.DNS的授权模式:
总的来说DNS有一个根节点(但是不止一个根服务器),根节点下又分很多个子域,如:.com;.net等..com又可向下分为baidu.com或者sina.com等等;每个下一级需要解析域名都要向上一级申请,上一级就会授权给下一级,相对来说,上一级就叫下一级的父域,下一级就叫做子域,如:根是.com;.net的父域;.com是baidu.com,sinna.com的父域.如果子域要解析他的域名,就需要父域授权.
3.正向解析和反向解析:
把IP解析成主机名的就是正向解析,把主机名解析成IP的就是反向解析
4.DNS的域和区域:
DNS的配置文件有正向解析和反向解析,他们的配置文件就分别是一个区域,正向区域文件和反向区域文件,域你就理解成是包含了正向区域和反向区域以及在你正反向区域中的各种服务器就行了.
5.DNS的查询模式
DNS的查询模式有两种,一是递归查询,二是迭代模式.客户端发起一个查询申请,接收端一个个帮他找,直到找到最终的结果,叫做递归查询.客户端发起一个查询申请,接收端告诉他,我不知道,但是我知道哪个人知道,你去找他查询,这叫迭代查询.(或者你理解为,客户端发起一个查询申请,接收端直接不理他,也差不多的)
6.DNS cache:
客户端发起一个查询请求,DNS服务器会去帮他查找相应的数据,然后缓存到本DNS服务器上,这样其他的客户端再发起这个请求的时候,就会直接从DNS服务器请求这个数据,这样查询的速度就会快很多,但是如果这个DNS服务器的数据一直不更新,若是这个数据的原始数据发生了变化,那就会出现错误了,所以DNS对这个缓存有一个过期时间.就是我们下面配置文件中的 $TTL.
2.BIND(服务是DNS,程序名称是:BIND,在Linux中的进程名是:named)
2-1.首先来看看/etc/named/config的配置文件信息
2-2.看看/etc/named.rfc1912.zones的配置信息,也就是上图引用的文件
2-3.接下来看看上图中配置的文件,在目录/var/named/slaves/lidefu.com.zone
3.配置DNS服务器,
假设我们有一个域名是lidefu.com,并且dns服务器的ip是192.168.1.107,辅助dns服务器的ip是192.168.112.132.www服务的ip是192.168.1.101,mail的服务器是192.168.1.102.下面我们来看看怎么搭这个环境,注:SELinux和iptables不影响从服务器,但是影响子服务器.做子域授权的时候注意关闭.
3-1.先配置主配置文件
3-2.配置/etc/named.rfc1912.zones ,
这个文件中添加的都是区域文件,包括正向区域和反向区域,我先添加lidefu.com这个的正向区域,区域名称是lidefu.com,这个要注意,后面会用到的
3-3.配置name.master,
它在/var/named/name.master,这个文件比较复杂了.他主要有SOA,NS,MX,A,CNAME
先看看图: (注:第二个dns服务器暂时别写,没配的话会出错)
SOA:一定是每个区域配置文件的第一行内容,每个配置文件只能有一个这种内容,@表示区域名,IN是固定格式,SOA代表就是SOA,上图就是他的固定格式啦.
NS:第8行,第一个字段是区域名,为空他会自动引用区域名称,IN是固定格式,NS代表是NS(DNS服务器),dns表示dns.lidefu.com,
MX:第9行,第一个字段为空会引用区域名,IN固定格式,MX就是MX(邮件服务器),mail表示mail.lidefu.com
3-3.检查语法错误并启动服务:
使用命令:named-checkconf和service named start
3-4:测试是否可以解析
使用命令 dig –t MX lidefu.com @192.168.1.107
3-4:搭建辅助dns:
首先向区域配置文件里面添加辅助dns的NS记录和A记录
3-5:配置辅助dns的/etc/named.rfc1912.zones文件
我的辅助dns服务的ip的192.168.112.132,上面已经说过了
3-6:检查语法,启动named
使用命令:Service named configtest
3-7:跟新主dns同步到从dns
3-8:重新加载一下主dns文件的配置信息
使用命令: service named reload
这一步骤同步的有点慢,请耐心等待,目前我也不知道原因
3-9: 到辅助DNS服务器查看3-5步骤中的文件存放的位置,以及查看文件的内容
3-10:试试能不能用辅助dns解析
使用命令:dig-t A www.lidefu.com @192.168.112.132
3-11:配置反向解析
首先配置主dns的/etc/named.rfc1912.zones文件
3-12:配置主dns的反向解析区域名称
配置文件:/etc/var/named/192.168.1.zone
3-13:配置/var/named/192.168.1.zone文件
大家配置完每个文件都记得使用named-checkconf检查下语法
3-14:配置辅助dns的/etc/named.rfc1912.zones
配置完成后重启下服务
3-15:查看是否有fudeli.com这个文件
3-16:尝试使用辅助dns反解
使用命令:dig –x 192.168.1.102
在使用该(反解)命令的时候,记得配置/etc/resolv.conf的nameserver为当前主机地址
4.子域授权
主dns服务器为192.168.1.107,子dns服务器的地址为192.168.1.105,名称为dns.tech.lidefu.com
4-1.首先是子域授权,在主dns的正向区域配置文件中添加
4-2.检查区域配置文件
4-2.添加子域服务器的配置文件
注释子dns服务器的/etc/named.conf中的不需要的文件,参照3-1,在/etc/named.rf1912c.zones中添加一个正向区域文件tech.lidefu.com.zone.进入/var/named下编辑tech.lidefu.com.zone,编辑完后记得要修改他的权限哦.不然可能跑不动
4-3.测试子域能否解析自己
4-4.尝试是否能用父域解析子域,解析成功
4-5.子域解析父域
大家要注意,子域如果没有定义是解析不了父域的,所有的dns服务器如果没有定义,只要碰到他解析不了的FQDN,都会转发给根,但是这里子域和父域都在同一个网域内,就不需要转发给根了,所以要定义子域的转发域,在子dns的主配置文件中定义,如图:
4-5.重启服务后看看是否能解析父域
如下图,解析成功
4-5.配置子域的反解
4-6父域反解子域,子域反解父域.好像我也不会,有时间再弄吧....
5.view,视图,什么是view呢?
简单来说,就是对来至不同的运营商或其他你想分类的的客户端解析给不同的服务器
实验数据.对于192.168.0.0进来的网段全部解析到192.168.0.0的服务器,对于172.16.0.0的网段全部解析到172.16.0.0
5-1.首先注释掉不需要的文件
5-2.配置/etc/named.rfc1912.zones的view视图
下面第一张图的ip纠正一下,纠正为(192.168.0.0/16)
5-3.老样子,配置区域文件/var/named/lidefu.com.zone.left和/var/named/lidefu.com.zone.right
5-4.配置本地ip
5-4.重启服务,测试解析是否成功
暂时就写到这吧....................