ubuntu搭建DNS
ubuntu搭建DNS
一、 bind简介:
BIND是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,主要包括以下三种:
*域名服务器
*DNS解析库函数
*DNS服务器运行调试所用的工具
它是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的
DNS_server主要有以下三种应用模式:
*主域名服务器
*辅助域名服务器
*缓存域名服务器
Bind使用TCP和UDP端口53
二、 DNS-bind软件的相关资源:
官方网站:http://www.bind.com/
帮助文档:http://www.isc.org/sw/bind/
配置文件样例:http://www.bind.com/bind.html
三、 DNS搭建创建环境:
系统环境:Linux_Ubuntu12.04_X64
软件版本:BIND9
搭建测试主机:
*192.168.5.101缓存域名服务器、主域名服务器
*192.168.5.102缓存域名服务器、辅助/从域名服务器
*192.168.5.103 测试客户机
四、 软件安装和主要配置文件解析:
sudo apt-get install bind9 bind9utils -y
dns@dns2:/etc/bind$ ll
total 60
drwxr-sr-x 2 root bind 4096 Sep 10 16:49 ./
drwxr-xr-x 91 root root 4096 Sep 1014:06 ../
-rw-r--r-- 1 root root 2389 Jul 27 11:17 bind.keys
-rw-r--r-- 1 root root 237 Jul 27 11:17 db.0
-rw-r--r-- 1 root root 271 Jul 27 11:17 db.127
-rw-r--r-- 1 root root 237 Jul 27 11:17 db.255
-rw-r--r-- 1 root root 353 Jul 27 11:17 db.empty
-rw-r--r-- 1 root root 270 Jul 27 11:17 db.local
-rw-r--r-- 1 root root 2994 Jul 27 11:17 db.root
-rw-r--r-- 1 root bind 463 Jul 27 11:17 named.conf
-rw-r--r-- 1 root bind 490 Jul 27 11:17 named.conf.default-zones
-rw-r--r-- 1 root bind 301 Sep 10 16:43 named.conf.local
-rw-r--r-- 1 root bind 890 Sep 10 14:06 named.conf.options
-rw-r----- 1 bind bind 77 Sep 10 14:06 rndc.key
-rw-r--r-- 1 root root 1317 Jul 27 11:17 zones.rfc1918
named.conf
主配置文件,设置一般的named参数,指向该服务器使用的域数据库的信息源,注意里面的include语句
named.conf.options
全局配置文件,全局选项配置
db.root
根服务器指向文件,由Internet NIC创建和维护,无需修改,但是需要定期更新
db.local
正向区域数据库,用于将域名解析为对应的IP地址
db.127
反向区域数据库,用于将ip解析为对应的域名
named.conf.local
用于定义解析域,一般是在named.conf里的include语句中囊括,单独在该文件中划定解析域,也可以直接在named.conf中直接划定解析域
其中:主配置文件/etc/bind/named.conf的配置语句:
命令 用法
acl 定义ip地址的访问控制清单
#control 定义ndc使用的控制通道
include 把其他文件包含到主配置文件中
key 定义授权的安全密钥
logging 定义日志写什么,写到那里
options 定义全局配置选项和缺省值
#server 定义远程服务器的特征
.....
五、 服务器搭建:
1. 缓存域名服务器
77
cd/var/cache/bind/
sudomkdir data
cd data
sudotouch cache_dump.db
sudotouch 秒,也就是1周
第二行的SOA记录,指定授权主机和管理员信箱
包含几个子参数,用于和辅助域名服务器同步的:
serial-->相当于一个id号,很重要,只有比辅助服务器的值大,才会更新,一般用当前日期并加上两位序号来表示
refresh-->这里是要告诉从服务器多久进行资料同步
retry-->如果从在更新时失败,要隔多久有进行重试
expire-->这里是记录逾期时间,当从服务器一直都未能成功与主取得联系,到这个时间后就放弃了
Minimum--> 默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准
第三行的NS记录,表明负责example.com这个域的Name server
第四行的A记录,就是域名和ip的映射记录
sudo vim db.192.168.5
$TTL 7D
@ IN SOA example.com. root.example.com. (
2013091004 ; Serial
7D ; Refresh
1D ; Retry
28D ; Expire
7D ) ; Negative Cache TTL
;
@ IN NS example.com.
@ IN PTR example.com.
71 IN PTR www.example.com.
3. 辅助域名服务器搭建
先按照缓存服务器的搭建方法配置此服务器
a) 定义解析域
和主域名服务器有几点不同的地方:
编辑/etc/bind/named.conf.local文件
辅助服务器不需要创建域库文件,因为是从主服务器上同步过来
sudo vim named.conf.local
############################################
zone "example.com" IN {
type slave;
file "/etc/bind/slave/db.example.com";
masters { 192.168.5.101; };
allow-notify { 192.168.5.101; };
};
zone "5.168.192.in-addr.arpa" IN {
type slave;
file "/etc/bind/slave/Sdb.192.168.5";
masters { 192.168.5.101; };
allow-notify { 192.168.5.101; };
};
############################################
slave是标明该服务器为辅助域名服务器
file是指定存放域库文件的位置,我自定义了一个slaves目录来存放master传过来的文件,相对安全些
sudo mkdir /etc/bind/slave
sudo chmod g+w /etc/bind/slave
masters指明主域名服务器地址
b) 创建域数据库文件
辅助服务器不需要创建域库文件,因为是从主服务器上同步过来
c) 配置权限
注意:创建的slaves是在根目录下面,而根目录(/etc/bind/)默认是只读权限的,所以需要开放权限
但是又不能和平时加权限一样,如用:chown bind:bind 类似的办法
只有如下操作就能正确访问:
sudo vim /etc/apparmor.d/usr.sbin.named
############################################
/etc/bind/** r,
改成
/etc/bind/** rw,
############################################
然后重启服务生效:
sudo /etc/init.d/apparmor restart
六、 重启服务器
重启主从服务器上的BIND服务
sudo /etc/init.d/bind9 restart
最好进行以下几步检查:
sudo netstat -tnlp | grep 53-->检查开启端口
sudo tail -f /var/log/syslog-->查看一下启动日志
查看从服务器上库文件
cd /var/cache/bind
ls
从这里可以直观的看见从主复制过来的库文件,更重要的是看日志,能够很清楚的看到主和从传输的过程
在客户机上测试,就是本机,修改本机的dns,编辑/etc/resolvcond/resolv.conf.d/tail
nameserver 192.168.5.101
需要重启生效
sudo /etc/init.d/resolveconf restart
七、 语法检测工具,检测配置是否有语法错误:
named-checkconf
检查named.conf和include里包含的文件
eg:named-checkconf --help
eg:named-checkconf -t etc/bind/
没有任何输出代表语法没有问题
named-checkzone
检查zone
eg:named-checkzone -t etc/bind/
八、 RNDC管理BIND
Bind 9之后提供新的功能为”rndc”(remote name daemon control),可视为Bind旧版ndc的延伸,它可使系统管理者利用rndc command远端或本端(localhost)控制管理Bind,並以加密方式來传送资料,以防止其他非授权使用者控制Bind。
rndcflush 清空本地DNS缓存
rndcflushname name刷新指定域名的缓存
rndcreload重载DNS服务器
rndc status 查看目前DNS服务器状态
rndc stop 停止DNS服务器
rndc restart 重新启动DNS服务器
rndc stats 生成DNS统计报表到statistics-file
rndc dumpdb 将所有缓存输入文件named_dump.db,以查看DNS缓存,DNS缓存是在内存中的
success:成功查询的次数
referral:就是非recursion的查询次数
nxrrset:有这个域名,但找不到解析记录
nxdomain:就是域名都找不到
recursion:递归查询 failure:除上面那些之外的查询失败响应次数
设置DNS Cache 的时间
在 bind 9 中,使用 TTL 参数来设置 DNS 默认的缓存时间,但要记住这个是你解析的域名在别人的 DNS 中的缓存时间。
rndc配置
参考:http://dns-learning.twnic.net.tw/bind/security.html#two-one
九、 报错
1. 如果用户bind对于/etc/bind/slaves目录没有写权限, 则查看 /var/log/syslog 会出现如下类似错误:
tonybox:~# tail/var/log/syslog
Aug 15 15:50:12 ubuntu kernel:[12575.839327] type=1400 audit(1376553012.724:18): apparmor="DENIED"operation="mknod" parent=1 profile="/usr/sbin/named"name="/etc/bind/tmp-MosmnKMJxa" pid=2440 comm="named" requested_mask="c"denied_mask="c" fsuid=107 ouid=107
Aug 15 15:50:12 ubuntunamed[2439]: dumping master file: /etc/bind/tmp-MosmnKMJxa: open: permissiondenied
ubuntu搭建DNS的更多相关文章
- centos搭建dns服务
原文:(https://www.myjinji.top/articles/2020/04/02/1585800289945.html)[https://www.myjinji.top/articles ...
- 如何搭建DNS服务
继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...
- ubuntu的dns设置
ubuntu的dns设置为: dns-nameservers 8.8.8.8 注意不要少s
- Ubuntu 搭建PHP开发环境
Ubuntu确实很好玩.有喜欢的命令行,简洁的界面,不同于Window要的感觉.偶尔换换环境工作,学习Linux的思维方式,是一种不错的做 法.之前也折腾过Ubuntu,不过,因为网络的问题,一直没有 ...
- 《搭建DNS负载均衡服务》RHEL6
搭建DNS负载均衡环境: 1.至少三台的linux虚拟机,一台主的DNS服务器,1台副的(可以N台),1台测试机. 负载均衡有很多种,apache那样的是为了缓解人们访问网站时给服务器造成太大的压力, ...
- 《搭建DNS内外网的解析服务》RHEL6
首先说下: 搭建的这个dns内外网的解析,是正向解析,反向解析自己根据正向解析把文件颠倒下就ok了 第一步我们先搭建一个DNS的正反向解析(参考上篇DNS正反向解析,这是上篇做过的) 第二部才是搭建内 ...
- 如何搭建DNS服务(转)
继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...
- Linux 搭建DNS
Linux 搭建DNS 使用yum源安装 yum -y install bind* 修改主配置文件 [root@localhost ~]# cp /etc/named.conf /etc/named. ...
- ubuntu搭建svn服务器并htpp访问版本库并svn与web同步
Ubuntu搭建SVN服务器多版本库 1 介绍 Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可 ...
随机推荐
- 如何用 Parse 和 Swift 搭建一个像 Instagram 那样的应用?
[编者按]本篇文章作者是Reinder de Vries,既是一名企业家,也是优秀的程序员,发表多篇应用程序的博客.本篇文章中,作者主要介绍了如何基于Parse特点,打造一款类似Instagram的应 ...
- 在 Java EE 组件中使用 Camel Routes
摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE 组件中开始使用 Apache Camel Routes. [编者按]作者 ...
- HDU 1397 Goldbach's Conjecture(二分,查找素数)
题目意思很简单,就是找n=p1+p2的种类数,具体看题目吧. 次重点是查找一定范围内的素数: 重点是用二分查找,不然会超时!!! #include<stdio.h> #include< ...
- ios下划线变量:为什么变量前要加下划线才有用?
先看一段代码. 复制代码 appdelegate.h @property (weak) IBOutlet NSMatrix *StockType; @property (weak) IBOutle ...
- 无限互联IOS电影项目视频笔记
下面是该iOS项目视频教程的内容大纲: 观看指南 (1)项目为第一阶段内容 (2)需要熟练掌握OC语言 (3)UI部分需要学习到第十节课 (4)项目适合刚入门的iOS开发者 1.第一天 (1)iOS ...
- HDU 1142 A Walk Through the Forest(SPFA+记忆化搜索DFS)
题目链接 题意 :办公室编号为1,家编号为2,问从办公室到家有多少条路径,当然路径要短,从A走到B的条件是,A到家比B到家要远,所以可以从A走向B . 思路 : 先以终点为起点求最短路,然后记忆化搜索 ...
- listview优化 汇总
1,listview加载性能优化ViewHolder 转自: http://blog.csdn.net/jacman/article/details/7087995 在android开发中Listvi ...
- linux下top命令查看cpu占用情况
可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等.退出 top 的命令 ...
- shape和selector的结合使用
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和 ...
- iOS在线音乐播放SZKAVPlayer(基于AVPlayer的封装)
由于最近闲着没事,想找有关在线音乐播放的demo学习一下,在gitHub跟code4APP上面查找了很多帖子,结果很多在线音乐都是基于AudioStream实现的,我感觉用起来不太方便.后来突然发现, ...