Linux下搭建DNS 服务器
CentOS6.6下DNS服务器的搭建
Linux下的DNS的软件包为bind,有如下几个软件包:
bind #DNS服务的主程序
bind-utils # 工具,包含dig,nslookup等网络诊断工具。
bind-chroot # 修改named 的root目录,这样named被***后,***也被限制在指定的目录下,不能切换到/,避免造成更大的破坏。【下面的演示中,为了简单起见就没安装该组件】
# 安装bind软件包
yuminstall bind bind-utils -y
# 查看bind 、bind-utils生成哪些文件(仅列出部分文件)
[root@Master ~]# rpm -ql bind
/etc/named
/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #事先定义好的区域文件
/etc/named.root.key # 实现事物签名的秘钥文件
/var/named # 默认DNS解析记录的数据文件
/var/named/slaves # 从DNS的配置文件目录
[root@Master ~]# rpm -ql bind-utils
/usr/bin/dig # 域信息搜索器
/usr/bin/host
/usr/bin/nslookup
说明:dig(DNS lookup utility)域信息搜索器命令。
dig的常用命令格式:
dig –t 资源记录类型名称@server-ip
dig –x IP @DNS_IP 反向解析
dig –t axfr zone 验证完全区域传送
dig –t ixfr zone 验证增量区域传输(通常需要指定序列号)
named-checkconf工具
格式:named-checkconf [主配置文件]
例如:named-checkconf /var/named/named.conf
named-checkzone工具
格式:named-checkzone <域名> <区域数据文件>
例如:named-checkzone /var/named/student.com
实验一:本地搭建DNS服务器,实现指定域名的解析
vi/etc/named,conf 内容如下:
options {listen-onport 53 { 192.168.2.7; }; # 在本机192.168.2.7的53端口监听
// listen-on-v6 port 53 {::1; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";
// statistics-file"/var/named/data/named_stats.txt";
// memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query { 192.168.2.0/24; };#any表示允许所有,这样会导致网络结构泄露。一般不建议这样设置#192.168.2.0/24表示网段,192.168.2.112表示指定IPrecursion yes; #是否允许为客户机进行递归查询dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;/* Path to ISC DLV key*/bindkeys-file"/etc/named.iscdlv.key";managed-keys-directory"/var/named/dynamic";
};logging {channel default_debug{file"data/named.run";severitydynamic;};
};zone "." IN {type hint;file"named.ca";
};zone "stu13.com." IN { #区域名称为stu13.com,后面的配置中就是用@代替这个区域的typemaster;file"stu13.com.zone";
};zone "2.168.192.in-addr.arpa" IN {typemaster;file"2.168.192.arpa";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
# 编写名称解析数据文件
cd/var/named/
touch stu13.com.zone 2.168.192.arpa
chownroot:named /var/named/2.168.192.arpa
chownroot:named /var/named/stu13.com.zone
chmod644 /var/named/2.168.192.arpa
chmod644 /var/named/stu13.com.zone
注意:
必须要修改解析库文件的属组为named
vistu13.com.zone ,正向解析的文件内容如下:
$TTL 1D
@ IN SOA stu13.com. admin.stu13.com. (20150920101M5M1H1D)IN NS ns1.stu13.com.IN MX 10 mail
ns1 IN A 192.168.2.7
mail IN A 192.168.2.7
www IN A 192.168.2.7
www IN A 192.168.2.9
ftp IN CNAME 192.168.2.8
www0 IN CNAME www
www1 IN CNAME www
# 说明:上面的www 有2条A记录,DNS解析到192.168.2.7和192.168.2.9,可以达到负载均衡的效果。
正向解析的文件格式如下:
$TTL 1D ;定义TTL为1天
; 必须首先定义一个SOA记录,@代表相应的区域,每个区域数据文件只能有一个SOA。SOA后面跟的是这个区域的授权主机名称,和管理者的邮箱。
@ IN SOA demo.com. Admin.demo.com. ( # 注意区域地址、管理员邮箱地址 的 点号不能忘掉
20150914027 ; 序列号,该序号不更新的话,任何所做的更改都不会同步到其他DNS服务器上【不超过10位】
1M ; 定义辅助DNS每隔多久检查一次主DNS服务器的版本号
5M ; 同步失败后,再次重试需要的间隔时间
1H ; 过期时间(超过该时间主DNS还没有响应,辅助DNS也停止工作)
1D) ; 否定答案的缓存时长
说明: M分钟、H小时、D天、W周。默认是秒
vi2.168.192.in-addr.arpa,反向解析的文件内容如下:
$TTL 1D
@ IN SOA stu13.com. admin.stu13.com. (20150323121M5M1H1D)IN NS ns1.stu13.com.
7 IN PTR www.stu13.com.
9 IN PTR www.stu13.com.
7 IN PTR www0.stu13.com.
8 IN PTR ftp.stu13.com.
7 IN PTR mail.stu13.com.
7 IN PTR www1.stu13.com.
说明
反向区域文件基本结构和正向区域数据文件基本完全相同,只不过这里多出了一个PTR选项。
PTR用来定义一个反向记录,也就是通过IP可以查到对应的域名信息。最后几行的第一列表示是主机的IP地址,只不过省略了网络地址部分,系统会自动补全,如13对应的是192.168.2.13
service named start #启动dns服务器
# dig命令进行访问测试
1.正向解析:
dig -t a www1.stu13.com @192.168.2.7
dig -t a ftp.stu13.com @192.168.2.7
2.反向解析
DNS服务器本机上测试
windows7 上测试:
实验二:构建主从DNS服务器,实现指定域名的解析
在实验1的基础上,
修改Master服务器的/etc/named.conf文件,
options {listen-onport 53 { 192.168.2.7; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";allow-query { 192.168.2.0/24; };recursion yes; ........zone "." IN {type hint;file"named.ca";
};zone "stu13.com" IN {typemaster;allow-transfer{ 192.168.2.12;};file"stu13.com.zone";
};zone "2.168.192.in-addr.arpa" IN {typemaster;allow-transfer{ 192.168.2.12;};file"2.168.192.arpa";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
vi /var/named/stu13.com.zone内容如下:
$TTL 1D
@ IN SOA stu13.com. admin.stu13.com. (20150920101M5M1H1D)IN NS ns1.stu13.com.IN NS ns2.stu13.com. ;Slave也要在这里配置个NS记录IN MX 10 mail
ns1 IN A 192.168.2.7
ns2 IN A 192.168.2.12 ; Slave也要在这里配个A记录
mail IN A 192.168.2.7
www IN A 192.168.2.7
www IN A 192.168.2.9
ftp IN CNAME 192.168.2.8
www0 IN CNAME www
www1 IN CNAME www
编辑/var/named/2.168.192.arpa ,内容如下:
$TTL 1D
@ IN SOA stu13.com. admin.stu13.com. (20150323151M5M1H1D )IN NS ns1.stu13.com.IN NS ns2.stu13.com.
7 IN PTR www.stu13.com.
7 IN PTR ns1.stu13.com.
12 IN PTR ns2.stu13.com.
9 IN PTR www.stu13.com.
7 IN PTR www0.stu13.com.
7 IN PTR www1.stu13.com.
8 IN PTR ftp.stu13.com.
7 IN PTR mail.stu13.com.
# 配置SlaveDNS服务器
vi/etc/named.conf
options {listen-onport 53 { 192.168.2.12; }; # 本机地址directory "/var/named";dump-file "/var/named/data/cache_dump.db";allow-query { 192.168.2.0/24; };recursion yes;dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;/* Path to ISC DLV key*/bindkeys-file"/etc/named.iscdlv.key";managed-keys-directory"/var/named/dynamic";
};logging {channel default_debug{file"data/named.run";severitydynamic;};
};zone "." IN {type hint;file"named.ca";
};zone "stu13.com." IN {typeslave;masters{ 192.168.2.7; };file"slaves/stu13.com.zone";
};zone "2.168.192.in-addr.arpa" IN {typeslave;masters{ 192.168.2.7; };file"slaves/2.168.192.arpa";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
servicenamed restart # 重启named服务即可
ls/var/named/slaves # 查看目录下是否同步到了dns数据库文件,正常同步后,目录下应该有类似下图的2个文件生成。
# 如果无法正常工作,请tail查看日志 :tail -n 50 /var/log/messages | grep named
补充:
Slave端DNS服务首次启动,可以先执行一次dig axfrstu13.com @192.168.2.7,完全区域传输一下解析文件。
# 然后在slave上执行dig命令测试
# 修改主配置,查看从能同步
修改下Master的解析库文件(修改主的解析条目的时候,必须一并将serial改大些,否则Slave检测到serial数值未变大,不会更新)
然后再在Slave上执行rndc reload,发现Slave的解析库文件内容也同步了,说明主从同步实验成功。
# 还可以将Master的服务暂时停掉,测试slave能否工作:
dig -t a www1.stu13.com @192.168.2.12
如下图,dig命令仍然返回结果,说明我们的slave在工作中:
实验三:缓存DNS服务器的搭建
缓存服务器的构建,比较简单,就是在最原始的配置文件中修改:
listen-onport 53 { ***.***.***.***; };
allow-query { ** };
然后在options {};容器里面加入forwarders { IP(这是主域名服务器的ip地址);};
例如:
options {listen-on port 53 {***.***.***.***; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";allow-query { **; };recursion yes;forwarders{192.168.2.7;192.168.2.12; }; #格式: forwarders{ IP(这是主域名服务器的ip地址);};....下面都是最原始的文件named.conf ......
}
然后执行service named start即可。
实验四:单台DNS构建分离解析
# 配置过程中主从+分离解析一直出现问题。因此这里先以单台DNS构建分离解析。
Client_1:192.168.2.10/24
Client_2:192.168.2.11/24
DNS_Server:192.168.2.7/24
具体操作如下:
vi /etc/named.conf 编辑内容如下:
options {listen-on port 53 {192.168.2.7; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";allow-query { 192.168.2.0/24; };recursion yes;dnssec-enable yes;dnssec-validation yes;dnssec-lookaside auto;/* Path to ISC DLV key*/bindkeys-file"/etc/named.iscdlv.key";managed-keys-directory"/var/named/dynamic";
};logging {channel default_debug{file"data/named.run";severitydynamic;};
};view "local" {
match-clients {192.168.2.10; }; # 客户端地址是192.168.2.10的匹配local规则zone "." IN {type hint;file "named.ca";
};
zone "stu13.com." IN {type master;file"stu13.com.zone.local";
};
zone "2.168.192.in-addr.arpa" IN {type master;file"2.168.192.arpa.local";
};};view "others" {
match-clients { any; }; # 客户端地址非192.168.2.10的匹配others规则zone "." IN {type hint;file"named.ca";
};
zone "stu13.com." IN {type master;file"stu13.com.zone.others";
};
zone "2.168.192.in-addr.arpa" IN {
zone "2.168.192.in-addr.arpa" IN {type master;file"2.168.192.arpa.others";
};
};# include "/etc/named.rfc1912.zones"; # 注释掉这一行
include "/etc/named.root.key";
# 配置区域解析文件
cd/var/named/
# 简单起见,我先只配置了最基本的www解析
# 配置匹配local的解析文件:
vistu13.com.zone.local
$TTL 86400
@ IN SOA stu13.com. admin.stu13.com. (20150920191M5M1H1D)IN NS ns1.stu13.com.
ns1 IN A 192.168.2.7
www IN A 192.168.2.9
vi2.168.192.arpa.local
$TTL 1D
@ IN SOA stu13.com. admin.stu13.com. (20150323151M5M1H1D)IN NS ns1.stu13.com.
7 IN PTR ns1.stu13.com.
9 IN PTR www.stu13.com.
# 配置匹配others的解析文件:
vistu13.com.zone.others
$TTL 86400
@ IN SOA stu13.com. admin.stu13.com. (20150920191M5M1H1D)IN NS ns1.stu13.com.
ns1 IN A 192.168.2.7
www IN A 192.168.2.3
vi2.168.192.arpa.others
$TTL 1D
@ IN SOA stu13.com. admin.stu13.com. (20150323151M5M1H1D)IN NS ns1.stu13.com.
7 IN PTR ns1.stu13.com.
3 IN PTR www.stu13.com.
chownroot:named 2.168.192.arpa* stu13.com.zone* #修改数据文件的属组
named-checkconf # 检查下语法
rndcreload # 重启named服务
# 在不同的客户端进行访问测试
在Client1和Client2上执行dig -t A www.stu13.com @192.168.2.7
结果如下图,可以看到不同IP访问相同的域名,会自动转到不同的IP上。
转载于:https://blog.51cto.com/lee90/1697346
Linux下搭建DNS 服务器相关推荐
- Linux ENSP 搭建DHCP服务器并实现中继和Linux 下搭建DNS服务器(2个实验可跟做)
文章目录 DHCP服务 了解DHCP服务 使用DHCP的好处 Linux 下搭建DNS服务器 实验环境 实验过程 修改DHCP配置文件 更改dns服务器名称 更改win10的IP地址 Linux &a ...
- linux dns服务无效,Linux下搭建DNS服务器及踩坑
DNS服务 域名系统(DNS)是建立在分布式数据库上的分层命名系统.该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何. 说白了就是:域名与IP之间的相 ...
- Linux下搭建DNS服务器
1.安装服务 yum –y install bind #安装DNS 服务 yum install bind-utils –y #安装DNS 检测工具 2.编辑配置文件 vi /etc/named.co ...
- linux mysql dns_Linux下搭建DNS服务器及踩坑
DNS服务 域名系统(DNS)是建立在分布式数据库上的分层命名系统.该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何. 说白了就是:域名与IP之间的相 ...
- Linux下的DNS服务器搭建
Linux下的DNS服务器搭建 一.DNS介绍 1.dns域名系统 2.正向解析和反向解析 二.检查环境 三.搭建主DNS 1.安装dns相关包 2.设置服务开机自启 3.编辑DNS主配置文件 4.编 ...
- Linux下的DNS服务器的搭建实战
Linux下的DNS服务器的搭建 DNS(Domain Name Server,域名服务器) 是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器. DNS ...
- linux 子域dns,linux下搭建DNS子域及相关授权详解
linux下搭建DNS子域及相关授权详解forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 for ...
- linux下搭建DNS子域及相关授权详解
linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...
- Linux下搭建Apache服务器
Linux下搭建Apache服务器(完整版) 什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权, ...
- linux做子域dns,linux下搭建DNS子域及相关授权详解
linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...
最新文章
- 优化内核报错及解决方法
- [云炬python3玩转机器学习]4-3 训练数据集,测试数据集
- 无埋点数据收集和adb monkey测试屏蔽通知栏
- C# 系统应用之鼠标模拟技术及自动操作鼠标
- Spring 3 MVC异常处理程序
- 黑白极简设计行业企业官网模板
- 谷歌研究员发现新的 iOS 安全系统
- 卸载mysql的步骤_卸载MySQL数据库的完整步骤(图)
- linux pbs 用户时间,Linux/超算中PBS常用命令
- html图片、背景音乐、滚动文字
- 【Shell】Shell脚本中调用另一个脚本的三种方式(fork/exec/source)
- 我所理解的SOLID原则
- 东南西北十字图_怎么辨别东南西北的方向 分清东南西北口诀与窍门技巧(图)...
- python基本符号怎么打_Python入门篇基础语法
- Python3,WIFI 万(破) 能 (解) 钥 (神) 匙 (器)的 GUI版本来了,果断收藏。
- java Jxl 操作Excel
- 十六、MDT 2013 Update 1批量部署-应用程序导入及自动安装(含OFFICE 2007安装)
- 解析 cifar10 的压缩包到图片
- WuThreat身份安全云-TVD每日漏洞情报-2023-05-19
- 【寒假每日一题】十三号星期五(个人练习)详细题解+推导证明(第十三天)
热门文章
- Atitit.dart语言的特性 编译时js语言大总结
- Atitit.java 反编译 工具 attilax 总结
- atitit.提升兼容性最佳实践 p825.doc
- paip.hibernate list 返回位null的解决
- paip.python php的未来预测以及它们的比较优缺点
- paip.Java Annotation注解的作用and 使用
- paip.语义分析--单字词形容词表180个
- paip.slap工具与于64位win7与JDBC的性能对比
- paip.c++ 常用类库attilax总结
- paip.最土团购在SHOPEX下安装总结