使用BIND搭建内部DNS服务

企业内部经常需要搭建内部的DNS服务器,现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet Systems Consortium)编写和维护。BIND支持先今绝大多数的操作系统(Linux,UNIX,Mac,Windows),BIND服务的名称称之为named。DNS默认使用UDP、TCP协议,使用端口为53(domain),953(mdc,远程控 大专栏 使用BIND搭建内部DNS服务制使用)。 本文介绍了如何使用BIND软件轻松构建一套私有的DNS服务。
名词解析
- DNS
域名解析服务(Domain Name System),是用于解析域名与IP地址对应关系的服务。
- 正向解析
根据主机名(域名)查找对应的IP地址。
- 反向解析
根据IP地址查找对应的主机名(域名)。
部署过程
- 安装BIND服务,其二进制命令名称为named
yum -y install bind-chroot bind bind-utils bind-devel
- 编辑主配置文件
/etc/named.conf,需要修改的行数如下:(下面显示的是修改之后的配置)
[root@internal-dns]# vim /etc/named.conf
13 listen-on port 53 { any; }; //127.0.0.1修改为any,代表允许监听任何IP地址。
14 #listen-on-v6 port 53 { ::1; }; //注释掉这行
19 allow-query { any; }; //localhost修改为any,代表允许任何主机查询。
- 配置区域数据信息,文件名为
/etc/named.rfc1912.zones,在该文件最下面追加以下内容:
vim /etc/named.rfc1912.zones
# 正向解析
zone "linux.com" IN {
type master;
file "linux.com.zone";
allow-update { none; };
};
# 反向解析
zone "15.168.192.in-addr.arpa" IN {
type master;
file "1.0.0.127.zone";
};
- 配置解析数据信息
复制正向解析配置模板文件,填写相关记录值:
cp /var/named/named.localhost /var/named/linux.com.zone
修改后的正向解析文件内容如下:
[root@localhost named]# cat linux.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.linux.com.
dns IN A 192.168.15.150
www IN A 192.168.15.150
hehe IN A 192.168.15.150
复制反向解析配置模板文件,填写相关记录值:
cp /var/named/named.loopback /var/named/1.0.0.127.zone
修改后的反向解析文件内容如下:
[root@localhost named]# cat 1.0.0.127.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.linux.com.
150 IN PTR dns.linux.com.
150 IN PTR www.linux.com.
150 IN PTR hehe.linux.com.
检验配置文件语法是否正确:
named-checkconf /etc/named.conf
named-checkzone linux.com /var/named/linux.com.zone
named-checkzone 1.0.0.127.in-addr.arpa /var/named/1.0.0.127.zone

重启named服务:
systemctl restart named
- 检验解析结果
将本机DNS地址设置为本机IP:
[root@ineteral-dns named]# cat /etc/resolv.conf
nameserver 192.168.15.150
使用host/nslookup/dig等命令测试解析是否生效。

常见报错
在测试的时候,可能会遇到下面一些报错。
一、Host not found
Host www.linux.com not found: 2(SERVFAIL)
报错原因可能是配置文件的权限问题,检查配置文件的属性:
[root@ineteral-dns named]# ll
总用量 24
-rw-r----- 1 root root 475 5月 7 13:26 1.0.0.127.zone
-rw-r----- 1 root root 248 5月 7 13:26 linux.com.zone
修改域文件的属性:
chmod 640 *.zone
chgrp named linux.com.zone
chgrp named 1.0.0.127.zone
再次测试,即可返回正确的解析结果。
[root@ineteral-dns named]# host www.linux.com
www.linux.com has address 192.168.15.150
二、正向解析正常,反向解析错误
反向解析的时候,出现以下报错:
** server can't find 150.15.168.192.in-addr.arpa.: NXDOMAIN
可能的原因是反向解析文件的区域配置错误,检查区域信息配置:
zone "15.168.192.in-addr.arpa" IN {
type master;
file "1.0.0.127.zone";
};
再次测试,成功解析:
[root@ineteral-dns named]# nslookup
> 192.168.15.150
Server: 192.168.15.150
Address: 192.168.15.150#53
150.15.168.192.in-addr.arpa name = www.linux.com.
150.15.168.192.in-addr.arpa name = dns.linux.com.
150.15.168.192.in-addr.arpa name = hehe.linux.com.
>
The End.
使用BIND搭建内部DNS服务的更多相关文章
- Kubernetes 部署集群内部DNS服务
Kubernetes 部署集群内部DNS服务 部署官网:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns/ ...
- Centos 搭建named dns服务无法解析外网地址
搭建了DNS服务器来解析自定义的域名,但是在遇到非自定义的域名时,不会去自动解析.使用nslookup 会提示 ** server can't find xxxx: NXDOMAIN 网上找了说要配置 ...
- CentOS6.7搭建部署DNS服务 (详解主配置文件)
-DNS服务器的基本原理 域名简介:使用tcp/udp协议,默认使用53端口号 默认情况下,客户端发起的查询请求都是用UDP/53查询的. 默认情况下,从从服务器到主服务器传输数据用的是TCP/53. ...
- 搭建内部NuGet服务
简介 NuGet相当于Python中的pip,nodejs中的npm,用来管理.net/.net core的程序集版本,也叫包管理器.在框架化.模块化开发中使用nuget服务必不可少,尤其是在abp开 ...
- 用sinopia搭建内部npm服务
sinopia搭建 这里默认你已经有node环境了,执行下面命令,全局安装 sinopia npm install -g sinopia 安装好后,执行下面命令启动 sinopia sinopia 你 ...
- 云原生学习筑基 ~ 组网必备知识点 ~ DNS服务
@ 目录 一.为啥写这篇文章? 二.DNS的作用 三.域 四.DNS工作原理 五.搭建DNS服务器 5.1.Bind 5.2.系统环境准备 5.3.安装 5.4.查看bind的相关文件 5.5.查看b ...
- Linux下DNS服务(Bind9)之Web管理利器-NamedManager部署说明
NamedManager 是一个基于Web的DNS管理系统,可用来添加.调整和删除DNS的zones/records数据.它使用Bind作为底层DNS服务,提供一个现代Ajax的Web界面,支持 IP ...
- Windows中的DNS服务——正向解析&反向解析配置 分类: AD域 Windows服务 2015-07-16 20:21 19人阅读 评论(0) 收藏
坚信并为之坚持是一切希望的原因. DNS服务是AD域不可或缺的一部分,我们在部署AD域环境时已经搭建了DNS服务(windows server 2008 R2域中的DC部署),但是DNS服务的作用还是 ...
- LINUX中的DNS服务---高速缓存DNS
一.什么是DNS Domain Name System,域名系统. 万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网.他主要负责把域名和IP的相互转换 ...
随机推荐
- jest 测试入门(一)
说实话,作为前端来说,单元测试,并不是一种必须的技能,但是确实一种可以让你加法的技能 之前我一个库添加了单元测试,加完之后感悟颇深,所以写下这篇文章来记录 环境搭建 一般来说,普通的库,如果没有添加 ...
- 10)global预定义变量
代码展示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- 吴裕雄--天生自然Linux操作系统:Linux常用命令大全
系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) ...
- android studio 3.2 bundle.gradle 与2.2区别
参考:https://blog.csdn.net/MakerCloud/article/details/82898305
- S5P4418开发板android源码下uboot和内核缺省文件的配置
uboot 需要配置缺省文件,进入解压的源码目录 android,然后进入 u-boot 目录,如下图所示.如上图所示,如果是 1G 核心板,则使用“cp nsih-1G16b-4418.txt ns ...
- Android recycleview item水波纹效果
item的xml 根标签下添加如下三个属性 android:clickable="true" android:focusable="true" android: ...
- java通过jdbc插入中文到mysql显示乱码(问号或者乱码)
对于很多初学者来说,中文字符编码不相同的问题,是一个很烦躁的问题!! 因为很多时候,我们并不知道,到底是哪一层出现了问题? 在这里稍微做个总结~也怕自己今后忘了!! 其实也就三层: 1.前端页面 2. ...
- [LC] 429. N-ary Tree Level Order Traversal
Given an n-ary tree, return the level order traversal of its nodes' values. Nary-Tree input serializ ...
- 68)PHP,cookie的详细属性和有效期
(1)cookie的有效期: 默认:会话周期结束(就是浏览器关闭),默认情况下,cookie会在浏览器关闭时失效,这种cookie是 临时cookie或者叫会话. 支持设置有效期,setcookie的 ...
- 2019牛客多校(第十场)F Popping Balloons —— 线段树+枚举
https://ac.nowcoder.com/acm/contest/890/F 题意:二维平面中有n个气球,你可以横着社三法子弹,竖着射三发子弹,且横着子弹的关系是y,y+r,y+2*r,竖着是x ...