BIND简介

DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:

  正向解析:根据主机名(域名)查找对应的IP地址反向解析:根据IP地址查找对应的主机名(域名)

工作形式上又分主服务器、从服务器和缓存服务器。

  主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系从服务器:从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率

bind是一款代码的DNS服务器软件,它是由伯克利大学编写,全名(Berkeley Internet Name Domain)伯克利英特网域名,是目前世界上使用最为广泛的DNS服务器软件

bind相关

  • 包名: bind
  • 进程: named
  • 协议: DNS
  • 使用端口: 53/tcp , 53/upd

named程序

  • 主程序文件 /usr/sbin/named
  • 主配置文 /etc/named.conf
  • 区域配置文件 /etc/named.rfc1912.zones

bind相关的安装包

  • bind : 主程序包
  • bind-chroot : 将named进程的活动范围限定在chroot目录,保证安全性
  • bind-devel : 与开发相关的头文件和库文件(编译安装bind时所需)
  • bind-libs : bind服务器端和客户端都使用到的公共库文件
  • bind-utils : bind客户端工具 bind的客户端

bind客户端

~]# rpm -ql bind-utils
/etc/trusted-key.key
/usr/bin/dig    #最常用的DNS服务器测试工具
/usr/bin/host    #一款轻量级DNS测试工具
/usr/bin/nslookup    #DNS查询工具,在众多平台上都有实现(windows上也有),可交互式查询
/usr/bin/nsupdate     #更新工具
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/host.1.gz
/usr/share/man/man1/nslookup.1.gz
/usr/share/man/man1/nsupdate.1.gz

dig命令

dig [-t type] name [@SERVER] [query options]query options:
+[no]trace:跟踪解析过程
+[no]recurse:进行递归解析测试反向解析:
dig -x IP @SERVER模拟区域传送:
dig -t axfr ZONE_NAME @SERVERTips:(1)dig用于测试dns系统,因此,不会查询hosts文件进行解析(2)不加”@server-ip”,根据/etc/resolv.conf配置的解析文件来查询(3)dig命令不会查缓存,而是直接查服务器

eg:
解析百度的地址

反向解析114DNS的域名

追踪www.qq.com的过程

host命令

  host [-t type] name [SERVER]

eg:

nslookup命令

  nslookup domain [dns-server]nslookup -qt=type domain [dns-server]也可以用交互式模式nslookup>server IP: 指明使用哪个DNS server进行查询set q=RR_TYPE: 指明查询的资源记录类型NAME: 要查询的名称

eg:

bind服务器配置

  • 配置正向解析的bind
  • 配置反向解析的bind
  • 配置辅助bind
  • 实现主辅DNS之间的区域传送

实验环境:2台CentOS 7.4 x64虚拟机(selinux和firewall已关闭)

  Domain Name: example.com.          10.0.0.0/24主DNS服务器: mster.example.com.     10.0.0.10辅DNS服务器: slave.example.com.     10.0.0.11WEB服务器: www.example.com.         10.0.0.10,10.0.0.11FTP服务器: ftp.example.com.   CNAME   www.example.comMX服务器: mx.example.com.          10.0.0.10

具体过程如下:

两台虚拟机都通过yum安装bind

~]# yum install bind bind-libs bind-utils -y

两台虚拟机都修改主配置文件(/etc/named.conf)

主配置文件包含以下内容

  全局配置:options {}日志子系统配置:logging {}区域定义:本机能够为哪些zone进行解析,就要定义哪些zone;格式为  zone "ZONE_NAME" IN {}
~]# vim /etc/named.conf
listen-on port 53 { any; };    监听任意ip地址
allow-query     { any; };      允许任何主机查询
dnssec-enable no;              关闭dnssec功能
dnssec-validation no;

两台虚拟机都启动named服务,设置开机自启动

~]# systemctl start named.service
~]# systemctl enable named.service
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

两台虚拟机都查看named服务是否启动

~]# ss -tunl | grep :53
udp    UNCONN     0      0      10.0.0.10:53                    *:*
udp    UNCONN     0      0      127.0.0.1:53                    *:*
udp    UNCONN     0      0       ::1:53                   :::*
tcp    LISTEN     0      10     10.0.0.10:53                    *:*
tcp    LISTEN     0      10     127.0.0.1:53                    *:*
tcp    LISTEN     0      10      ::1:53                   :::*      

这样,缓存DNS服务器就设置好了

1.配置主DNS服务器正向解析

(1)配置区域数据信息

[root@master ~]# vim /etc/named.rfc1912.zones zone "example.com" IN {type master;file "example.com.zone";allow-update { none; };
};

(2)创建区域数据文件(/var/named/ZONE_NAME.zone)

[root@master ~]# vim /var/named/example.com.zone$TTL 86400
@        IN    SOA    master.example.com. admin.example.com. (20171210011D1H1W3H )IN    NS    masterIN    MX 20 mx
master   IN    A     10.0.0.10
www      IN    A     10.0.0.10IN    A     10.0.0.11
mx       IN    A     10.0.0.10
ftp      IN    CNAME www

(3)更改区域解析库文件的权限为640,属主为root,属组为named

[root@master ~]# chown :named /var/named/example.com.zone
[root@master ~]# chmod 640 /var/named/example.com.zone

(4)使用named-checkconf,named-checkzone命令检测配置文件及区域文件是否存在语法错误

[root@master ~]# named-checkconf
[root@master ~]# named-checkzone "example.com" /var/named/example.com.zone
zone example.com.zone/IN: loaded serial 2017121001
OK

(5)重启或者重载named服务

[root@master ~]# systemctl reload named.service

(6)检验正向解析结果


这样bind正向解析就配置好了

2.配置主DNS服务器反向解析

(1)添加反向解析区域配置文件

[root@master ~]# vim /etc/named.rfc1912.zones zone "0.0.10.in-addr.arpa" IN {type master;file "10.0.0.zone";allow-update { none; };
};

(2)创建反向区域解析文件

[root@master ~]# vim /var/named/10.0.0.zone $TTL 86400
@      IN    SOA    master.example.com. admin.example.com. (20171210011D1H1W3H )IN    NS    master.example.com.
10     IN    PTR   master.example.com.IN    PTR   mx.example.com.IN    PTR   www.example.com.
11     IN    PTR   www.example.com.

Tips:反向解析不需要CNAME记录,MX记录不允许出现在反向解析里

(3)更改反向解析区域解析库文件的权限为640,属主为root,属组为named

[root@master ~]# chown :named /var/named/10.0.0.zone
[root@master ~]# chmod 640 /var/named/10.0.0.zone

(4)使用named-checkconf,named-checkzone命令检测配置文件及反向解析区域文件是否存在语法错误

[root@master ~]# named-checkconf
[root@master ~]# named-checkzone "10.0.0" /var/named/10.0.0.zone
zone 10.0.0.zone/IN: loaded serial 2017121001
OK

(5)重启或者重载named服务

[root@master ~]# systemctl reload named.service

(6)检验反向解析结果

这样bind反向解析就配置好了

3. 配置辅助DNS服务器并实现主从复制

(1)在slave服务器上的添加解析配置文件

[root@slave ~]# vim /etc/named.rfc1912.zoneszone "example.com" IN {type slave;masters { 10.0.0.10; };file "slaves/example.com.zone";
};zone "0.0.10.in-addr.arpa" IN {type slave;masters { 10.0.0.10; };file "slaves/10.0.0.zone";
};

检查slave服务器的配置文件是否有语法错误

[root@slave ~]# named-checkconf

重载slave服务器的named服务

[root@slave ~]# systemctl reload named.service

(2)编辑master服务器的区域文件,添加slave服务器的记录(正向解析文件添加NS和A记录,反向解析文件添加NS和PTR记录)

[root@master ~]# vim /var/named/example.com.zone 

[root@master ~]# vim /var/named/10.0.0.zone

检查master服务器上语法和区域文件是否有错误

[root@master ~]# named-checkconf
[root@master ~]# named-checkzone "example.com" /var/named/example.com.zone
zone example.com/IN: loaded serial 2017121001
OK
[root@master ~]# named-checkzone "10.0.0" /var/named/10.0.0.zone
zone 10.0.0.zone/IN: loaded serial 2017121001
OK

重载master服务器的named服务

[root@master ~]# systemctl reload named.service

查看master服务器的日志,检验主辅DNS之间的区域传送

slave服务器的/var/named/slaves/目录下多了example.com.zone和10.0.0.zone文件,正式从master服务器上自动复制而来的

[root@slave ~]# ll /var/named/slaves/
total 8
-rw-r--r-- 1 named named 417 Dec 10 16:31 10.0.0.zone
-rw-r--r-- 1 named named 485 Dec 10 16:31 example.com.zone

检验slave服务器的解析功能

Tips:

  1.主服务器的区域解析库文件中必须有一条NS记录是指向从服务器2.从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中3.主服务器得允许从服务器作区域传送4.主从服务器时间应该同步,可通过chrony进行5.bind程序的版本应该保持一致;否则,应该从高,主低

rndc命令

rndc(Remote Name Domain Controllerr)是一个远程管理bind的工具,通过这个工具可以在本地或者远程了解当前服务器的运行状况,也可以对服务器进行关闭、重载、刷新缓存、增加删除zone等操作。安装bind时默认安装了rndc,rndc默认监听在953/tcp端口,只监听127.0.0.1这个地址,也就是默认只允许本机使用rndc

语法格式:rndc COMMAND

    COMMAND:reload: 重载主配置文件和区域解析库文件reload zone: 重载区域解析库文件retransfer zone: 手动启动区域传送过程,而不管序列号是否增加;notify zone: 重新对区域传送发通知;reconfig: 重载主配置文件querylog: 开启或关闭查询日志;trace: 递增debug级别;trace LEVEL: 指定使用的级别;
~]# rndc status
version: 9.9.4-RedHat-9.9.4-51.el7_4.1 <id:8f9657aa>
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 103
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

BIND的安装与配置相关推荐

  1. Portainer 安装与配置

    文章目录 Portainer 安装与配置 一.介绍 二.安装使用 1.单机运行 2.基于swarm集群方式运行 Portainer 安装与配置 一.介绍 ​ Portainer 是一个开源.轻量级Do ...

  2. Flume的安装与配置

    Flume的安装与配置 一.       资源下载 资源地址:http://flume.apache.org/download.html 程序地址:http://apache.fayea.com/fl ...

  3. fastDFS安装及配置

    FastDFS 安装 一.环境预约 服务器 IP 组 端口 作用 Tracker1 192.168.8.235 无 22122 Tracker Tracker2 192.168.8.236 无 221 ...

  4. CentOS 7.4下Redis及集群的安装及配置

    (一)Redis概述 Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完 ...

  5. redis 服务器/客户端安装与配置

    redis 服务器/客户端安装与配置 1 redis server 1.1 获取redis源码包 //官网 http://redis.io/ wget -c http://redis.googleco ...

  6. 烂泥:centos安装及配置DNS服务器

    本文首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过DNS软件BIND为例, ...

  7. centos7中安装、配置、验证、卸载redis

    本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...

  8. Opencms安装和配置

    Opencms安装和配置 一:安装JDK 版本要求是version5,必须安装JDK,而JRE不是必须的.OpenCms8.5.1是在JDK5和JDK6上进行测试的. 二.安装Tomcat OpenC ...

  9. Haproxy安装与配置

    Haproxy安装与配置 有关高负载均衡的软件,目前使用比较多的是haproxy.nginx和lvs.下面我们就开始学习haprxoy这款软件. 1.Haproxy概念 1.1.haproxy原理 h ...

最新文章

  1. 结构化数据不应该被人工智能忘之脑后 !
  2. 计算机基础知识自考真题,自考《计算机应用基础》基础试题
  3. 600W个微信红包封面,人人都能领取到!!!
  4. linux网络编程(四)线程池
  5. python iterableiterator
  6. requestmapping配置页面后_第004课:Spring Boot 项目属性配置
  7. 中国无人车第一案剧情突变:景驰投入百度Apollo怀抱,下周或和解收场
  8. 【C#】[窗体]渐变窗口背景
  9. HttpURLConnection模拟form表单提交文件
  10. 74HC595在【8x8LED点阵】中的运用
  11. 注册石墨文档无法连接服务器,石墨文档没有访问权限的解决方法
  12. 利用函数wavread对语音信号进行采样_信号时间采样
  13. 数学之美——自然常数e小故事和宇宙第一公式
  14. Golang开发环境LiteIDE的设置
  15. 只有10分,5分,2分,1分的硬币;顾客付款x分,商品价格y分。如何找零所使用的硬币最少(递归实现)
  16. Ubuntu两种桌面管理器
  17. 基于Ubuntu(x86)系统和STM32(Keil)编写C程序分别进行编程、验证
  18. 【Lua从青铜到王者基础篇】第十二篇:Lua错误处理
  19. Winsock 函数简介
  20. OpenGLGLUT入门学习

热门文章

  1. Winform的内容
  2. 准时制生产方式(Just In Time简称JIT)
  3. Could not transfer artifact (https://repo.maven.apache.org/maven2): Received fatal alert: protocol_v
  4. 你告诉我,读书没有用
  5. 最美情侣怎么用计算机,最美情侣参赛宣言
  6. 制作几个最简单的网页,需要学习HTML与CSS就好了,通过hbuilder写代码就好了,易迅达 精心推荐
  7. mysql sql stuff函数_SQL常用函数之一 Stuff()
  8. 使用excel万金油公式的注意事项
  9. 本地项目如何被外网访问(外网穿透工具一——natapp)
  10. leetcode 最佳买卖股票时机含冷冻期(Java)