实验环境

三台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. 高并发之 - 全局有序唯一id Snowflake 应用实战

    前言 本篇主要介绍高并发算法Snowflake是怎么应用到实战项目中的. 对于怎么理解Snowflake算法,大家可以从网上搜索‘Snowflake’,大量资源可供查看,这里就不一一详诉,这里主要介绍 ...

  2. Tomcat Connector原理

    Tomcat工作原理 要了解其中的工作原理我们首先看如下两个图 Tomcat基本架构图: Tomcat请求示意图: 客户端的请求通过Connector接受处理后在到容器Engine->Host- ...

  3. java 非阻塞算法实现基础:unsafe类介绍

    一.为什么要有Unsfae.我们为什么要了解这个类 1. java通常的代码无法直接使用操作底层的硬件,为了使java具备该能力,增加了Unsafe类 2.java的并发包中底层大量的使用这个类的功能 ...

  4. linux_shell_数组

    shell数组类似与C语言,数组下标由0开始编号.想要获取数组中的元素要利用下标. 1.首先定义数组 在shell中,用括号来表示数组,数组元素用“空格”符号分割开.列: name=("d& ...

  5. macbook 外接显示器黑屏,不显示

    我的mac本有点老了,11年底的那款 整了个显示器,刚开始连上没问题,后来开机状态拔了雷电线,再插  或者关机后莫名的原因再启动,显示器黑屏 网上好多方法都不行,自己总结了一个方法 拔掉连接线,关闭m ...

  6. 解决ubuntu 16.04+ Qt 5.7.1无法输入中文的问题

    解决方法: 1.命令行安装fcitx-frontend-qt5 sudo apt-get install fcitx-frontend-qt5 结果显示如下图,说明我的fcitx-frontend-q ...

  7. OSGI企业应用开发(十三)OSGI Web应用开发(二)

    上篇文章介绍了OSGI Web应用的两种开发模式,并把Jetty应用服务器以Bundle的形式整合到Equinox容器中,已这种模式开发Web应用,所有的应用程序资源,例如Servlet.JSP.HT ...

  8. apktool逆向apk包

    在AndroidStudio创建so一节里创建了so,并且在java里面调用so的HelloWorld方法,编译Android Studio后生成包app-debug.apk. 在逆向apk时如果该a ...

  9. Web Api通过文件流下载文件到本地实例

    最近项目里面需要和C++的客户端互动,其中一个接口就是需要提供文件下载的接口,保证C++项目调用这个接口的时候能够正常下载文件到本地.参考了一下网上的代码,其原理就是读取服务器上指定路径的文件流,并将 ...

  10. 【前端】NodeJs包管理工具NPM

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS部署上的很多问题. 测试是否安装成功,出现版本提示表示安装成功. npm -v NPM常用命令 官方文档:https://www.npm ...