实验环境

三台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. Docker 入门 之基本命令

    3 Docker 入门 首先确保docker 已成功安装在Linux 或windows 系统中 我们可以使用 docker info 查看docker是否成功安装和正常运行 运行我们第一个docker ...

  2. 使用 ReentrantLock 和 Condition 实现一个阻塞队列

    前言 从之前的阻塞队列的源码分析中,我们知道,JDK 中的阻塞队列是使用 ReentrantLock 和 Condition 实现了,我们今天来个简易版的.代码如下: 代码 public class ...

  3. python模块之xlrd

    python处理excel的模块,xlrd读取excel,xlwt写入excel 一.安装 pip install xlrd 二.使用 1. 打开excel,得到Book对象 import xlrd ...

  4. Retrofit2+Rxjava+OkHttp的使用和网络请求

    Retrofit2+Rxjava+OkHttp的使用和网络请求 https://blog.csdn.net/huandroid/article/details/79883895 加入Rxjava 如果 ...

  5. 记一次SQL Server Insert触发器编写过程

    实现功能:新增特定类型的新闻时,自动追加特定的背景图片. 第一版(错误信息:不能在 'inserted' 表和 'deleted' 表中使用 text.ntext 或 image 列),代码如下: - ...

  6. JVM调优命令-jmap

    jmap JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动 ...

  7. Hamming Problem(hdu3199)

    Hamming Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. MapReduce运行原理和过程

    原文 一.Map的原理和运行流程 Map的输入数据源是多种多样的,我们使用hdfs作为数据源.文件在hdfs上是以block(块,Hdfs上的存储单元)为单位进行存储的. 1.分片 我们将这一个个bl ...

  9. 从零开始学习html(十二)CSS布局模型——下

    五.什么是层模型? 什么是层布局模型?层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样, 每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧. ...

  10. 借助form表单向web服务器发送消息

    form表单是常用的,在网页浏览器中 用户点击的请求经htto协议发送回web容器,请求处理 建立用户的页面 <!DOCTYPE html> <html> <head&g ...