DNS2之bind安装、主从配置同步、子域创建、view配置

主DNS配置从服务器:

我们知道,DNS服务器在网络服务中可能出现故障当机等状况,会导致DNS服务瘫痪,显然在实际的网络应用中我们不希望出现这种状况,所有我们就要配置从服务器来在主DNS服务器出现故障时代替他来工作,然而作为价格昂贵的服务器本身你又不希望出现这种极大的浪费,所有从服务器在实际工作中是和主服务器共同分担DNS解析任务的,这样既解决了服务器故障导致的问题,还可以缓解DNS服务器的压力。

那么要配置一个从服务器我们又该怎么做呢?

前提:我们要为本地配置一个从服务器aolens2。从服务器的IP 172.16.249.125

所以aolens2中也需要安装bind,zone,但无需解析库,可以直接去主服务器去同步。

1)首先,我们需要在主服务器配置文件中(/etc/named.conf)配置一个从服务器的定义

先去域名注册商(.com)哪里添加一个NS记录,指向从服务器节点。并添加到父域 的解析库中。

还需要在本地回应上级的NS记录,保持一致。主服务器中配置/var/named/aolens.com.zone文件。是主服务器的配置文件。

为什么要添加多个NS呢?那是应为主服务器发生变化时只通知NS定义的节点。要使从服务器得到同步就需要添加NS记录。

改变以后,版本号需要改变。。。

zone "ZONE_NAME" IN{

type slave;

file "slaves/ZONE_NAME.zone";

master{  172.16.249.138;  };

}

2)为从服务器提供解析库

从服务器的解析库不是自己定义的,而是主服务器定义,自己去从主服务器上同步过来,不能手动修改和创建。

而Linux又有一种特性:只有管理员才能使用小于1024的端口。

所有 named的启动方式:是由root启动,启动完成后切换为以named系统用户的身份运行。

然而我们可以看到,/var/named/目录的权限在named用户下是没有写权限的,而为了安全我们又不能为named目录添加写权限,那怎么办呢?

实际上,从服务器从主服务器上同步数据时不是直接放到/var/named/目录下的,而是放在/var/named/slaves/目录下。可以看到slaves是具有写权限的哦!

3)DNS从服务器在去主服务器同步数据时,我们首先要保证时间同步

所有我们首先要有一个时间服务器,最好将时间服务器直接指向网络上的时间服务器,以确保时间的准确。

我们实验的环境中时间服务器放在172.16.0.1上,我们便去同步一下本机的时间。

ntpdate  172.16.0.1

或者crontab服务,每隔3分种同步一次。

*/3 * * * * /usr/sbin/ntpdate 172.16.0.1 &> /dev/null

其二:要保证二者的版本号相同或者从服务器的版本号比主服务器的版本号高,以便兼容主服务器的功能。

4)为从服务器安装bind

编辑从服务器的主配置文件/etc/named.conf

named-checkconf检测是否有错误!

启动服务!

service named start   第一次启动会创建/etc/rndc.key文件。如果卡拿了需要获取熵池中的随机说或者指定/dev/urandom

rndc.key文件也可以自己手动生成:rndc-confgen

自己生成还需要修改权限为640,属组为named

ss -tunl 查看是否监听在53号端口。

同时确保防火墙是关闭的,应为防火墙默认是拒绝53号端口的

iptables -L查看防火墙规则

iptables -L 清除防火墙规则

service iptables  stop停止防火墙。

到此时,从服务器的环境配置就ok了。

5)配置从服务器的区域了

打开从服务器的主配置文件/etc/named..rfc1912.zones

named-checkconf检测有无错误;

确保有/var/named/slaves/目录。

前边我们已经启动了,现在用rndc reload加载就可以了。

启动成功后我们就会发现,/var/named/slaves/目录下就会有我们主服务器的解析库文件,aolens.com.zone

dig -t A www.aolens.com @127.0.0.1    测试一下

OK!

如果修改主服务器的配置,需要先配置主服务器,修改序列号,rndc reload 加载。

从服务器就可以获取到了。

6)添加反解zone。

配置文件1.16.192.zone也修改为。

版本号修改:

service named restart  重启named服务

从服务器上就可以反解出主服务器的名字了。

查询正向NS记录

dig -t NS aolens.com @172.16.249.138

反向查询NS记录。

dig -t NS 249.16.172.in-addr.arpa @172.16.249.138

dig -t AXFR aolens.com @172.16.249.138     :获取所有节点

7)如果单单这样就可以获取服务器数据那就太危险了,别人可以通过模拟从服务器IP的方式获取主服务器的数据。所以我们要控制主服务器,让他只能同步给从服务器,而从服务器给谁都不同步。这样就相对安全了很多。

在bind中有内置的acl(访问控制列表)

none:表示死所有都不同步

any:表示所有都同步

localhost:只给本机同步

localnet:给同步给同网络

allow-update:允许更新

allow-transfer { ip; ip; ip; ... };         none|any|localhost|localnet     都是allow-transfer的参数

我们该从服务器的配置文件vim /etc/named.rfc1912.zone中添加allow-transfer { none; };表示不允许任何人同步

结果:rndc reload  加载后在主从服务器上都是无法同步的。

而主服务器则需要让从服务器同步:

配置文件vim /etc/named.rfc1912.zone

主服务器同步自己

从服务器同步主服务器:

即使这样IP以明文的方式传输还是很危险,所以,实际应用中是以加密IP 的方式发送密钥去请求,而接受服务器也是接受密钥来解析的。

所以我们建设的区域一般是不允许任何人更新的。需要在我们自己创建的zone中加上allow-update { none; };

/etc/named.rfc1912.zones

DNS的权限控制就这样配置了,

8)我们前边用了那么多rndc命令,那我们来了解一下rndc命令。

rndc reload:装在配置文件

rndc reload zone [class [view]] :装在一个区域。

rndc retransfer zone [class [view]]:让主服务器重新给从服务器发送数据的,执行端在从服务器

rndc flush :清空缓存。

rndc status:显示配置详细信息

9)DNS子域创建授权

我们基于aolens.com.创建它的子域op.aolnes.com.

而子域下存在www.op.aolens.com.主机

创建子域dev.aolens.com.   主机为www.dev.aolens.com.

向子域授权:只需要在父域的区域解析库中添加“胶水记录”,glub record

胶水记录:就是在父域的解析库中加上

子域名称     IN    NS    子域的名称服务器

ops.aolens.com.    IN    NS     ns.ops.aolens.com.

ns.ops.aolens.com.    IN    A    172.16.18.18

dev.aolens.com.    IN    NS    ns.dev.aolens.com.

ns.dev.aolens.com.    IN    A    172.16.18.19

我们现在父域中建立子域NS配置:假如我们就只有一条

ops.aolens.com.    IN    NS     ns.ops.aolens.com.

ns.ops.aolens.com.    IN    A    172.16.249.125

named-checkconf 检测

rndc reload 加载

dig -t NS ops.aolens.com @172.16.249.138我们会发现无法响应,那是因为我们还没有在将子域建立起来。所以无法响应父域请求。

10)下面我们就来创建子域。

步奏呢也是先安装bind

修改/etc/named.conf文件。将无用的注释掉。

service named start   启动,并生成rndc.key文件。

启动起来后去编辑/etc/named.rfc1912.zones

添加子域空间配置。

而ops.aolens.com.zone文件需要我们自己去建立

vim /var/named/ops.aolens.zone

在子域上测试。    dig -t A www.ops.aolens.com @172.16.249.125

我们的测试主机是没有在网上注册的,所以子域去根解析出来的不是本服务器。那么我们能不能告诉子域,遇到这个服务器后直接去父域请求,由父域给解析。

所以子域就作为转发器来工作。

11)转发器转发非本机负责的区域的请求至指定的DNS服务器。

配置/etc/named.conf

添加options {

...

forward {only|first};      only表示告诉没答案就相信, first没答案自己去找。

forwarders { IP; };

}

递归白名单:

allow-recursion {}; :允许谁来我这递归。一般必须包含主机IP

recursion yes:表示允许任何人递归。

编辑子域的/etc/named.conf   在options中添加

在子域dig -t A www.aolens.com @172.16.249.138

然而你本地可以解析一个外部域名,而你的子域的主机不一定也可以解析,那么作为服务器的作用就是帮助本地主机解析外部主机域名,所以我们的服务器配置中forwarders中应该指向一个可以联接外部网络的IP,将主机的请求转发出去。

12)bind 的acl访问控制列表。

bind内置的acl:nona ,any , localhost, localnet.

acl的自定义:

acl acl_NAME {

IP;

IP;

}

例如:acl localnetwork {

172.16.0.0/16;

192.16.0.0/24;

}

任何调用的localnetwork的都是定义的主机。而acl需要先定义才能使用,所以要放在/etc/named.conf文件的最上方。

13)bind view 视图:

功能:由于主机解析查询时会轮询使用解析到的服务器,而bindview则根据客户端的来源不同,将同一个名称解析至不同的值,不做轮询。

鉴于我国的各地既有联通网络,又有电信网络,而联通电信之间的连接靠的是北京机房的中转,那么可以想象,如果你处在电信网络下,向联通服务器发起请求的速度会有多慢。为了解决这种状况,边出现了bind view 这种功能,让联通用户至访问联通服务器,电信只访问电信。这样速度就会快很多了。

格式:view VIEW_NAME {

match-clients { 客户端地址,如果客户端很多,则用cal定义 ; };   ------》说明本view对应那些客户端的

zone " " IN {

};

};

不同的zone可以定义多个view来定义不同网络,

match-clients {any;};

下面我们来配置view

首先将/etc/named.conf中的

zone "." {

type hint;

file "named.ca";

};

这四行剪贴到/etc/named.rfc1912.zones中,

将里面所有的zone都括起来,下边我用zones.*来代表文件里边所有的zone配置数据。

view ints {

match-clients { 172.16.0.0/16; 127.0.0.1; };

zone "." {

type hint;

file "named.ca";

};

zone.*

};       --------------->里边是配置了的zone

view outs {

match-clients { any; };

zone "aolens.com" IN {

type master;

file "aolens.com.outs";

};

};---------------------->代表除了上边配置的,其他的都是在这个zone中。

named-checkconf检测是否有错误

cd到/var/named/下创建aolens.com.outs

该其属组为named,权限为640

然后找一个IP地址段不为定义段的主机,我们实验用

dig -t A www.aolens.com @172.16.249.138    可以看到,解析出来的地址为11.11.11.11

使用view注意事项:

1、通常只为内网客户端提供递归功能,提供根区域等;

2、通过只为外网客户端提供本机所负责的区域的解析;



end

DNS2之bind安装、主从配置同步、子域创建、view配置,布布扣,bubuko.com

时间: 2024-10-11 16:46:23

DNS2之bind安装、主从配置同步、子域创建、view配置的相关文章

Logstash配置同步mysql到es配置

关于logstash安装:https://www.cnblogs.com/toov5/p/10301727.html Logstash是一个开源数据收集引擎,具有实时管道功能.Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地 下面进一步详细说配置: jdbc_driver_library: jdbc mysql 驱动的路径,在上一步中已经下载 jdbc_driver_class: 驱动类的名字,mysql 填 com.mysql.jdbc.Driver

Anaconda配置环境变量+创建虚拟环境

Anaconda配置环境变量+创建虚拟环境 配置环境变量 没有添加系统变量,所有系统根本识别不了conda命令,找不到位置,所以添加以下系统变量: 添加对应Anaconda环境变量:(以自己的安装路径为准) D:\programe\anaconda; D:\programe\anaconda\Library\mingw-w64\bin; D:\programe\anaconda\Library\usr\bin; D:\programe\anaconda\Library\bin; D:\progr

DNS主从服务,子域授权,view视图,日志系统,压力测试rsync配置

DNS主从服务,子域授权,view视图,日志系统,压力测试 DNS性能测试工具queryperfDNS查询过程: DNS主从建立: 环境: 主服务器:10.140.165.93 从服务器:10.140.165.169 关闭防火墙,关闭selinux. 主服务器建立: [[email protected] ~]# yum -y install bind-util bind #安装bind服务 [[email protected] ~]# vim /etc/named.conf #编辑主配置文件 o

DNS安装&主从配置

DNS是什么? DNS 为Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种服务机制. 其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析. DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,服务器之间备份使用TCP. 全世界只有13台"根"服务器,1个主根服务器放在美国,其他12台为辅根服务器 DNS服务器根据角色可以分为:主DNS, 从DNS, 缓存DNS服

MySQL主从同步、读写分离配置步骤

现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i686) using readline 5.1 1.登录Master服务器,修改my.cnf,添加如下内容: server-id = 1 //数据库ID号,

MySQL主从同步、读写分离配置步骤、问题解决笔记

根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用.       为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master)           192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i6

Bind安装配置及应用

Bind安装配置及应用 BIND:Berkeley Internet Name Domain ,ISC.org ? ? DNS服务的实现: ? ? 监听端口:53/UDP , 53/TCP ? ? 程序包:bind 服务器程序:named 客户端工具程序:dig,host ,nslookup [[email protected] ~]# yum repolist Loaded plugins: fastestmirror, refresh-packagekit, security Loading

MySQL 主从数据同步配置

1:需要两台MySQL服务器,如:master:192.168.1.120slave:192.168.1.121确定MySQL的版本是相同的,可以登录到MySQL CLI界面,输入:select version();此实验MySQL版本是5.6的 2:主服务器要授权从服务器,登录到master的MySQL CLI,输入:grant all on *.* to "test"@"%" identified by '123456'; 3:配置主从服务器的bin-log日志

Bind安装配置

DNS服务是互联网中的基础性服务,在Linux系统中提供DNS服务的软件是Bind,能够使用Bind配置DNS服务,是运维工程师必备的技能,Bind的安装配置过程如下: 测试过程中使用的主机: DNS服务器,IP:192.168.1.132 MAIL服务器 IP:192.168.1.135 WWW服务器  IP:192.168.1.128 首先安装Bind,# yum install -y bind 修改配置文件: 在options中listen on port默认监听的是本机的127.0.0.