实验环境

三台centos7虚拟机,一台ip为192.168.52.130,一台为192.168.52.131,最后一台为192.168.52.132

安装bind

使用yum -y insall bind bind-libs bind-utils来安装bind

使用rpm -ql bind来查询bind的生成了哪些工具,比如dig等等

备份文件

之后的文件,比如/etc/named.conf等等,都是安装bind的之后有的,建议在实验前,使用mv 文件 文件.backup备份一下,等学习完后,在去看看默认文件是怎么样的

另外bind的sample配置文件在/usr/share/doc/bind-*/sample下,可以进行参考

配置bind

单台dns服务器

操作包含3个文件

/etc/named.conf # 整个dns服务器配置

/etc/named.rfc1912.zones # 上面的文件通过include命令导入此文件,bind的sample里面注释写着这个文件包含的zone应该包含所有localhost名称和地址的定义,如RFC1912中所建议的那样,并且不应该泄漏给别的nameserver(这只是一个规范,不是强制要求)

/var/named/test.com.zone # 具体某个zone的配置,后面详细说明

使用单台虚拟机ip为192.168.52.130

配置文件

/etc/named.conf

options{
directory "/var/named"; # 指定之后单独zone文件的路径
}; # 所有这个文件都有这样的配置,好像是root域的配置
zone "." IN {
type hint;
file "named.ca";
}; include "/etc/named.rfc1912.zones"; # 符合rfc要求的一类zone
include "/etc/named.root.key"; # 暂不清楚,应该和加密相关

/etc/named.rfc1912.zones

zone "test.com" IN {
type master; # 主从设置,如果是从(slave),还要设置字段masters
file "test.com.zone";
};

/var/named/test.com.zone

该文件和前面2个不一样,使用;为注释,前面2个可以#///**/

$TTL 600 ;全局ttl设定
; 配置soa,必须要有一个,且要在开头,@表示当前域,也就是test.com,IN表示internet,soa为类型,test.com.暂不确定,好像是该域的ns的名称,root.qq.com为管理者邮箱,第一个.表示@,因为和当前域@重复,所以写成.
@ IN SOA test.com. root.qq.com(
1811201955 ; 序列号,在主从中有作用(serial)
1H ; 刷新时间(refresh)
5M ; 重试时间(retry)
1W ; 超时时间(expire)
10M) ; 否定答案缓存时间(minimum),以上中文来源于网络,英文来源于文档注释,单位不确定什么意思,比如那个w ; 配置ns服务,至少要有一个,且必须配套要有ns的a记录
IN NS ns1
ns1 IN A 192.168.52.130 ; 上面的写法可以这样,补全后缀,注意要加.,选择一个就好
; IN NS ns1.test.com.
; ns1 IN A 192.168.52.130 ; @表示当前域,即test.com,第二行名称为空,表示同上,即还有一个test.com,ip为2.2.2.2
@ IN A 1.1.1.1
IN A 2.2.2.2 ; 表示www.test.com的ip为3.3.3.3
www IN A 3.3.3.3 ; 通配符,都指向255.255.255.255
* IN A 255.255.255.255

使用指令进行检测语法错对

named-checkconf检测conf文件,自然也会检查include进去的文件

named-checkzone "test.com" /var/named/test.com.zone检测zone文件

启动dns

service named start启动服务,其实就是systemctl start named.service

service named stop关闭服务

rndc reload用于在不关闭服务的情况下,更新配置,但是这个配置在配置文件有错误的情况下,也是显示更新成功,但是不会生效,使用要注意(todo)

检查

使用host -t a www.test.com 192.168.52.130来测试,如果没错,按照设置会输出1.1.1.12.2.2.2

两台服务器测试主从同步设置

主从服务器以zone为粒度,也就是这里这里的主从是相对于zone来说的,一个主服务器在这个zone里是主,在另一个就可能是从了

就只操作test.com为例,进行操作,

test.com的主服务器IP为192.168.52.130

test.com的从服务器ip为192.168.52.131

操作的文件

主:

修改/var/named/test.com.zone

从:

新增/etc/named.conf

新增/etc/named.rfc1912.zones

/var/named/slaves/test.com.zone(这个文件不用新建,bind在同步过程中,自动生成)

配置文件

主服务器/var/named/test.com.zone

$TTL 600
@ IN SOA test.com. root.qq.com(
1811201955
1H
5M
1W
10M) IN NS ns1
;新增ns记录,注意新增的名称为空,即为默认的test.com.
IN NS nsSlave
;新增对应的a记录
nsSlave IN NS 192.168.52.131 ns1 IN A 192.168.52.130
@ IN A 1.1.1.1
IN A 2.2.2.2
www IN A 3.3.3.3
* IN A 255.255.255.255

从服务器/etc/named.conf

options{
directory "/var/named";
}; zone "." IN {
type hint;
file "named.ca";
}; include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

从服务器/etc/named.rfc1912.zones

zone "test.com" IN {
type slave; # 这里为slave
masters {192.168.52.130;}; # 这里注意加s和;
masterfile-format text; # 默认生成的zone文件是乱码的,加上这个设置,输出就不会乱码了
file "slaves/test.com.zone"; # 同步文件的路径
};

启动服务

在检查完配置文件的准确性后,分别启动主和备服务器,可以看到从服务器在/var/named/下生成了zone文件

使用host -t a www.test.com 196.128.52.131,如果没错误,在主从服务器下都会输出1.1.1.12.2.2.2

防火墙

使用centos7默认防火墙开启,只有22端口是开放的,如果在非本机测试,要开启端口53,这里我直接关闭了防火墙,使用systemctl stop firewalld

测试增量传送

修改主服务器的/var/named/test.com.zone文件,来进行增量修改

$TTL 600
@ IN SOA test.com. root.qq.com(
1811201955
1H
5M
1W
10M) IN NS ns1 ;新增ns记录,注意新增的名称为空,即为默认的test.com.
IN NS nsSlave
;新增对应的a记录
nsSlave IN NS 192.168.52.131 ns1 IN A 192.168.52.130
@ IN A 1.1.1.1
IN A 2.2.2.2
www IN A 3.3.3.3 ; 增量传送
; 新增一个,放在通配符前面,同时修改序列号为1811202031,使用rndc reload在不用关闭服务器服务下来更新配置
hello IN A 4.4.4.4 * IN A 255.255.255.255

在新增域名和更新序列号后,更新配置,可以看到从服务器的配置文件也会很快更新

测试

再次使用之前的命令host -t a hello.test.com 196.128.52.130host -t a hello.test.com 196.128.52.131进行测试,应该都会输出一样的4.4.4.4

两台服务器进行子域授权

将一台dns服务器的子域授权给另一台dns服务器管理

以sub.test.com为例

父dns服务器为192.168.52.130

子dns服务器为192.168.52.132

配置文件

修改父dns的/var/named/sub.test.com.zone

新增子dns的/etc/named.conf

新增子dns的/etc/named.rfc1912.zones

新增子dns的/var/named/sub.test.com.zone

配置文件

父dns的/var/named/test.com.zone

$TTL 600
@ IN SOA test.com. root.qq.com(
1811201955
1H
5M
1W
10M) IN NS ns1
IN NS nsSlave ; 添加新的ns记录,第一个代表要授权的子域
sub IN NS nsSub
; 为ns记录设置a记录,指向子dns服务器
nsSub IN A 192.168.52.132 nsSlave IN NS 192.168.52.131
ns1 IN A 192.168.52.130
@ IN A 1.1.1.1
IN A 2.2.2.2
www IN A 3.3.3.3
hello IN A 4.4.4.4
* IN A 255.255.255.255

子dns的/etc/named.conf

options{
directory "/var/named";
}; zone "." IN {
type hint;
file "named.ca";
}; include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

子dns的/etc/named.rfc1912.zones

zone "sub.test.com" IN {
type master;
file "sub.test.com.zone";
};

子dns的/var/named/sub.test.com.zone

$TTL 600
@ IN SOA sub.test.com. root.qq.com(
1811201031
1H
5M
1W
10M)
IN NS ns1
ns1 IN A 192.168.52.130
@ IN A 11.11.11.11
hello IN A 22.22.22.22

测试

在检查后配置文件没有错误后,对父dns输入rndc reload重新装载配置,对子dns输入service named start启动服务

host -t A sub.test.com 192.168.52.130host -t A sub.test.com 192.168.52.132进行测试,如果配置没有出错,输出11.11.11.11

参考文档

配置:http://blog.51cto.com/anyisalin/1753638

配置:http://cn.linux.vbird.org/linux_server/0350dns_3.php

记录类型:http://www.178linux.com/67851

乱码解决:https://yq.aliyun.com/articles/507346

官方文档:https://bind.isc.org/doc/arm/9.13/Bv9ARM.html

待完成

1.view的使用

2.主从的原理,是主提醒,还是从去取

3.文档的一些阅读,比如序列号的范围,比如序列号自动策略

dns bind配置教程的更多相关文章

  1. DNS BIND配置 配置基本缓存服务器 DNS正向解析 DNS反向解析

    一. 缓存服务器配置 1.DNS:BIND    Berkeley Internet Name Domain    版本bind97: RPM服务器端包的名字  安装bind-libs    bind ...

  2. BIND简易教程(3):DNSSec配置

    目录:BIND简易教程(1):安装及基本配置BIND简易教程(2):BIND视图配置BIND简易教程(3):DNSSec配置 (本篇) DNSSec,有个半英半中的名字叫DNS安全扩展.说的好听一点, ...

  3. BIND简易教程(2):BIND视图配置

    目录:BIND简易教程(1):安装及基本配置BIND简易教程(2):BIND视图配置(本篇)BIND简易教程(3):DNSSec配置 上文书说到,我们把aaa.apple.tree解析到192.168 ...

  4. BIND简易教程(1):安装及基本配置

    首先,为什么说是简易教程呢?因为BIND的功能实在太多,全写出来的话要连载好久,我觉得我没有那么多精力去写:而我了解的仅仅是有限的一点点,不敢造次.百度上的文章也是一抓一大把呐!所以,教点基本使用方法 ...

  5. DNS(bind)服务器安装和配置

    一.前言 DNS 域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP ...

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

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

  7. 基于Bind实现的DNS正反向解析及主从DNS的配置

    一.什么是DNS? 1.1 简单的理解,Domain Name System,是互联网一项核心的服务,他作为一个桥梁可以将域名和IP地址相互因素的一个分布式数据库,能够使人更加方便的访问互联网,而不用 ...

  8. DNS和Bind配置指南

    /////////////////////////////目录//////////////////////////////////////一.DNS原理相关二.使用bind搭建最简单的DNS服务器三. ...

  9. VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程

    VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程 在VMware Workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境 ...

随机推荐

  1. mysql日志查看

    https://www.2cto.com/database/201201/116116.html 是否启用了日志mysql>show variables like 'log_bin'; 怎样知道 ...

  2. jQuery UI的datepicker()与变更格式

    继续MVC应用程序的练习,刚刚练习了jQuery的UI中的datepicker()的方法,它是为了让用户能在文本框中快捷输入日期. 代码简洁与简单. 打开以前练习的一个视图Views\Home\Ind ...

  3. 自动加载的iframe高度自适应

    动态产生iframe,自动加载至body中,还有一个功能就是iframe的高度自适应,下面代码测试于IE和Firefox,Chrome:

  4. AssemblyInfo.cs 详解

    前言 ? .net工程(包括Web和WinForm)的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件.但我们实际上通过另一个形式操作 ...

  5. 9.C#知识点:线程初识及Thread初识(一)

    知识点目录==========>传送门 线程和进程的简单概括. 1.进程就是"活动中"的程序,一个.程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实 ...

  6. PHP DDos的几个防御方法详解

    这类攻击有一个最大的特性,就是上传流量霎时增大,通常流量高达数十以至近百M,将整台效 劳器,以至将整台机柜的宽带堵住,使网站无法运转,而这样的攻击,我们无法从远程处理,一但那个phpshell运转,你 ...

  7. DNS协议详解

    DNS协议详解 简介 DNS(Domain Name System)域名系统,主要实现的功能是将域名转换成ip地址的一个服务.它是由一个分层的DNS服务器实现的分布式数据库,同时.他也是一个使得主机能 ...

  8. AsyncTask POST请求

    布局: <?xml version="1.0" encoding="utf-8"?> <android.support.constraint. ...

  9. ionic安卓tab栏跑到顶部

    安卓下的ionic的tab会在顶部显示,而不是在底部 解决办法如下: 在app.js文件中的.config代码块里中添加以下代码: 注意依赖注入$ionicConfigProvider $ionicC ...

  10. Core Animation-1:图层树

    图层的树状结构 >巨妖有图层,洋葱也有图层,你懂吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命名.你可能认为它只是用来做动画的,但实际上它是从一个叫做*Lay ...