此次我们的口号是:简单、有趣上手DNS服务
博主是一个言出必行de好人,(正经脸)上次转载了有关DNS的基础介绍,此次我们来通过实验搭建DNS服务器从而更好的了解DNS搭建过程
如何开始,且听我细细道来
首先我们通常使用bind来配置DNS服务器,何为bind,某百科曰:
BIND(Berkeley Internet Name Domain)
是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
懂了吧,bind是一个软件,我们需要安装使用....(路人:博主,我们不瞎,谢谢!)
咳咳,来,来点值钱的
实验一:主DNS服务器搭建(正向解析,反向解析)
实验环境:两台VMware下的虚拟机,
以CentOS7作为DNS服务端,用于配置DNS服务
以CentOS6作为DNS客户端,用于测试DNS服务
呃...不行,正经不过三行,哈哈哈
实验步骤:
1、安装DNS服务软件bind,
推荐使用yum安装方法可以将bind及其所需组件一次性全部安装。声明一下,不是博主懒,这叫优化
[root@centos7 ~]#yum install bind -y ..................... ..................... ..................... Installed: bind.x86_64 32:9.9.4-37.el7 Complete! ###成功安装bind
注意:安装完bind会自动创建named系统用户,以named用户运行服务而不是以root用户运行,目的是为了防止***的***服务从而获取权限,这样的话遭受******只会获取named用户的低权限,不会获取root用户的管理员权限。许多服务软件都会这样来保护系统的安全。
2、配置文件的处理
安装bind后会有许多DNS服务配置文件,(不是博主不懂那啥,而是..而是只介绍实验相关的,其他..其他不考虑了,嘿嘿)
首先我们打开主配置文件:
[root@centos7 ~]#vim /etc/named.conf //.......... //.......... options { ............ } logging { ............ } zone "." IN { type hint; file "named.ca"; }; ##我们可以直接在主配置文件里面模仿文件中的zone来写自己所需要的zone域 include "/etc/named.rfc1912.zones"; ##或者可以在此处/etc/named.rfc1912.zones中编辑自己所需要的zone域 include "/etc/named.root.key";
注意:其中:// 后面接的都是注释语句,类似于普通配置文件中的#
options 后面接的是全局配置选项,dns全局参数都在这里配置。
logging 定义日志的记录范围,一般默认不修改。
zone 定义一个区域声明,比如区域文件名,类型等。
DNS服务的端口号为53,我们必须确定端口的监听问题,才可以让客户机来进行测试。
options { // listen-on port 53 { 127.0.0.1; }; ##原端口的监听 listen-on port 53 {localhost;}; ##修改端口的监听,localhost为DNS自带关键字,表示本机的所有IP 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 { localhost; }; ##原允许查询的IP allow-query { any; }; ##修改为允许所有IP均可查询,any也是DNS自带关键字,表示所有IP地址
为了更好的说明我们将正向解析(将域名解析为IP地址)的区域信息写在主配置文件中
是这个样子滴:
zone "." IN { type hint; file "named.ca"; #区域解析库文件存放于/var/named/下 }; #模仿文件中的zone来编写我们需要解析的zone zone "magedu.com" { #此处键入需要解析的域名,域名,域名,(剩下的一遍自己说) type master; #类型master表示此服务器为主服务器,稍后会介绍辅助DNS服务器 file "magedu.com.zone"; #定义区域正向解析库文件 };
将反向解析(将IP地址解析为域名)的区域信息写在包含的配置文件/etc/named.rfc1912.zones中
这样这样滴:
[root@centos7 ~]#vim /etc/named.rfc1912.zones ............. zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; #许多配置我们都可以模仿着来写:模仿上文来写自己需要反向解析的区域信息 zone "136.168.192.in-addr.arpa" IN { #此处键入需要反向解析的IP地址段 type master file "192.168.136.zone" #定义反向解析库文件 };
接下来就是处理正向和反向解析库文件
区域解析库是由众多RR(Resource Record资源记录) 组成的,其中有这样几种类型
敲黑板、啪啪啪
SOA :Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA 记录,必须位于解析库的第一条记录
A :internet Address ,将完整域名解析为IPv4地址
AAAA: 将完整域名解析为IPv6地址
PTR: PoinTeR ,将IP地址解析为完整域名
NS: Name Server ,专用于标明当前区域的DNS 服务器
CNAME :Canonical Name ,别名记录
MX: Mail eXchanger ,邮件交换器
在/var/named下已经有许多区域解析库文件,我们可以拷贝一份,然后进行必要的修改,也可以自己创建解析库文件
注意:拷贝模板或者自己创建解析库文件时注意权限问题,单纯cp或者手动创建时文件的所属组为root,named用户无法访问,就会报错,错误详情:server can't find XXX mailmagedu.com :SERVFAIL
为了简单我们拷贝一份模板,(加上选项-p,保留原有属性)
正向解析库文件是这个样子滴:
[root@centos7 named]#cp -p named.localhost magedu.com.zone ##注意文件名与配置文件里面定义的保持一致 [root@centos7 named]#vim magedu.com.zone $TTL 1D ##TTL值:域名解析记录在服务器中的存留时间 @ IN SOA dns1 mail.magedu.com. ( ##@可以引用当前区域的名字 0 ; serial ##此文件中;表示注释,serial:序列号,与从DNS服务器有关 1D ; refresh ##刷新时间 1H ; retry ##重试时间 1W ; expire ##过期时间 3H ) ; minimum ##否定答案的TTL值 NS dns1 dns1 A 192.168.136.132 www A 192.168.136.123 websrv A 192.168.136.125
反向解析库文件这样滴:
[root@centos7 named]#cp -p named.localhost 192.168.136.zone [root@centos7 named]#vim 192.168.136.zone $TTL 1D @ IN SOA dns1 mail.magedu.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1 dns1 A 192.168.136.132 123 PTR www.magedu.com. 125 PTR websrv
文件保存,配置全部完成(开心)
实际上,还有专门的检查配置文件语法错误的命令,语法错误会导致服务启动失败:
[root@centos7 named]#named-checkconf ##检查主配置文件/etc/named.conf文件的语法错误 ....... ##无错误的话什么都不显示,只会显示错误信息 [root@centos7 named]#named-checkzone magedu.com /var/named/magedu.com.zone ##检查区域解析库文件,格式为:named-checkzone zone filename zone magedu.com/IN: loaded serial 3 OK ##检查无误
3、测试环节
利用CentOS6客户机进行测试,为确保实验正确,我们网络选择仅主机模式,不连接互联网,并且客户机的DNS须指向服务器端,如何指向服务器端呢??给个赞就告诉你(路人肌肉男:你再说一遍,你说什么??)
我说..我说确保客户机的DNS指向有两种方法:
(1)
[root@centos6 ~]# vim /etc/resolv.conf # Generated by NetworkManager search 9magedu.com nameserver 192.168.136.132 ##直接在此处添加域名解析服务的IP地址,不需要重启网络,立即生效 [root@centos6 ~]# host www.magedu.com ##host测试命令,用于专门测试DNS域名,或者dig命令,显示的信息更为详细 www.magedu.com has address 192.168.136.123
(2)
[root@centos6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 ........ ........ DNS1=192.168.136.132 ##在此处指定DNS指向 ........ [root@centos6 ~]# service network restart ##需要重启网络服务 ........ [root@centos6 ~]# host www.magedu.com www.magedu.com has address 192.168.136.123 [root@centos6 ~]# dig -x 192.168.136.125 ##dig命令测试反向解析需要加-x ........
实验成功,是不是很值钱,啊,谁不服,不服搭建个(冯小刚状(嚣张):还有谁)
来,再来五毛的
倘若主服务器不小心宕机,那么就需要一个副手(辅助DNS服务器)
主DNS服务器就像上述一样配置,主要介绍配置从DNS服务器
实验二:辅助DNS服务器(从DNS服务器)搭建
实验环境:以CentOS7为主DNS服务器,CentOS6为从DNS服务器
实验步骤:
1、从DNS服务器端安装bind软件包
2、配置文件处理
方便客户机测试:
[root@centos6 ~]# vim /etc/named.conf ............. ............. options { // listen-on port 53 { 127.0.0.1; }; ##可以将其注释掉,默认监听本机IP ............. // allow-query { localhost; }; ##注释掉,默认允许任何IP查询 .............
修改配置文件:
[root@centos6 ~]# vim /etc/named.conf ............. zone "." IN { type hint; file "named.ca"; }; zone "magedu.com" IN { type slave; ##类型:slave(奴隶),同步主服务器解析库文件 masters { 192.168.136.132; }; ##标明主DNS服务器地址 file "slaves/magedu.com.zone.slave"; ##从DNS服务器区域解析文件放在/var/named/slavesxia }; include "/etc/named.rfc1912.zones"; ##也可以修改此配置文件,效果一样
我们也需要对主DNS服务器区域解析库文件进行修改
[root@centos7 named]#vim /var/named/magedu.com.zone $TTL 1D @ IN SOA dns1 mail.magedu.com. ( 3 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1 NS dns2 ##添加从DNS服务器IP dns2 A 192.168.136.131 dns1 A 192.168.136.132 www A 192.168.136.123 websrv A 192.168.136.125
配置完成,接下来....
[root@centos6 ~]# service named restart ##重启服务 Stopping named: [ OK ] Starting named: [ OK ] [root@centos6 ~]# ls /var/named/slaves/ ##从主DNS服务器上同步过来的区域解析库文件 magedu.com.zone.slave
之前区域数据库文件的序列号用于表示主从服务器文件的不同,主服务器文件发生修改,主服务器序列号发生变化,从服务器也会随之更新同步
3、测试环节
找寻客户机进行测试:
[root@centos6 ~]# host websrv.magedu.com 192.168.136.131 ##指定DNS服务器地址 Using domain server: Name: 192.168.136.131 Address: 192.168.136.131#53 Aliases: websrv.magedu.com has address 192.168.136.125 [root@centos6 ~]# host websrv.magedu.com 192.168.136.132 ##指定DNS服务器地址 Using domain server: Name: 192.168.136.132 Address: 192.168.136.132#53 Aliases: websrv.magedu.com has address 192.168.136.125
测试成功,怎么样,值钱不,(可把我NB坏了,叉会腰)
好了,实验就此结束了,没有细细进行排错(因为博主没有出错(傲气)),倘若大家实验过程中出错,下方评论键,博主一定及时尽最大努力为其解决回复
转载于:https://blog.51cto.com/mozart/1972337