使用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的相互转换 ...
随机推荐
- 17.3.13---socket网络套接字介绍--函数和数据类型
1----Socket类型 套接字格式:socket(family,type[,protocal])使用给定的地址族,套接字类型,协议编号(默认为0)来创建套接字 socket类型 描述 socket ...
- dsp
- linux下 c语言调用c++
/*****************************g++编译cpp 文件为库文件.编译C文件时gcc 要链接 -l stdc++ 这个库**(非常重要)*///定义c++ class 头文件 ...
- [ZJOI2019]麻将(DP+有限状态自动机)
首先只需要考虑每种牌出现的张数即可,然后判断一副牌是否能胡,可以DP一下,令f[i][j][k][0/1]表示到了第i位,用j次i-1,i,i+1和k次i,i+1,i+2,是否出现对子然后最大的面子数 ...
- 4418开发板Android源码整体&单独编译
内核缺省文件配置之后,Android 目录,运行一键编译脚本“build_android.sh”,如下图所示.注意:本篇文章基于iTOP-4418开发板,编译 Android 必须保证给 Ubuntu ...
- 邪恶的csrf
关于csrf是啥我就不多说了 进入正文 场景模拟 场景一 在一个bbs社区里,用户在发言的时候会发出一个这样的GET请求: #!html GET /talk.php?msg=hello HTTP/1. ...
- day26-socket(server和client通信)
# socket是应用层与TCP/IP协议通信的中间软件抽象层,它是一组接口.它把复杂的TCP/IP协议隐藏到socket #接口的后面,让socket去组织数据,以符合指定的协议. # socket ...
- python通过ssh读写远程数据
1.适用场景 需要读取(写)多台远程机器下的一个或多个文件,如果要通过 os.system('scp ......')来完成就必须配置免密登陆,比较麻烦 2.准备工作, 安装依赖 pip instal ...
- 计划任务crond
计划任务服务程序 计划任务分为以下两种情况:1.系统级别的定时任务:清理系统缓存临时文件清理系统信息采集日志文件切割 2.用户级别的定时任务:定时同步互联网时间定时备份系统配置文件定时备份数据库文件 ...
- java高并发之线程池
Java高并发之线程池详解 线程池优势 在业务场景中, 如果一个对象创建销毁开销比较大, 那么此时建议池化对象进行管理. 例如线程, jdbc连接等等, 在高并发场景中, 如果可以复用之前销毁的对 ...