DNS的基本配置、子域授权与bind编译(第十八九天)

    DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。

    DNS利用类似于树形目录的结构,将主机名的管理分配在不同层级的DNS服务器中,并进行分层管理。

    DNS使用TCP与UDP的53端口。

    DNS的相关概念有:

        FQDN(full qualified domain name):中文为完整主机名。由主机名与域名组成。

以www.baidu.com为例,www是主机名,baidu.com是域名

        TLD顶级域名或一级域名:常见的顶级域名有.com\.net\.org\.edu等,树形结构图如下:

blob.png

全球共有十三台根域名服务器,存储在/var/named/namad.ca这个文件中:
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.

    DNS服务器的分类:有主服务、从服务、缓存服务器与转发服务器

         缓存服务器:只有缓存的功能,本身没有任何域名区域的配置,缓存的结果完全由用户请求解析—-》根域名返回的结果。

         转发服务器:把用户的请求转发给上一层的解析服务器,起到中转的功能。分有全局转发与局部转发

              linux系统上,dns的主配置文件是/etc/named.conf,域名区域的配置是/etc/named.rif1912.zones

    DNS有正解与反解的概念:

        正解:把FQDN——(解析)—》IP    

        反解:把IP—–(解析)—》FQDN

  区域解析库:由众多RR组成      

     DNS的资源记录:Recsource Record ,简称为RR,资源记录的类型有A、CHAME、PTR、SOA、NS、MX。

SOA:start of authority 起始授权记录:一个资源解析库有且只能有一个SOA记录,且必须 为解析库的第一条。
A:internet address,作用:FQDN--->IP
AAAA:PQDN--->IPV6
RTP:PoinTeR(指针),作用IP---->FQDN
NS:Name Server,专用于标明当前区域的DNS服务器
CHAME:Canonical name 别名记录
MX:Mail eXchanger 邮件交换器
SOA:
  name:当前区域的名称,例如“163.com”
  value:有多部分组成
     (1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
     (2)记录当前区域管理员的邮箱地址,但地址不能使用@符号,一般用.(点号)替换,例如linuxedu.magedu.com
      (3) (主从服务器协调属性的定义以及否定答案的统一TTL)默认单位是S(秒),其中有H(小时)、D(天)、M(月)、W(周)
NS:
  name:当前区域的名字
  value:当前区域的某DNS服务器的名字,例如ns.magedu.com; 一个区域可以多个NS记录 
例如:magedu.com. (TTL可省略)  IN NS ns1.magedut.com.  或   magedu.com. (TTL可省略)  IN NS ns2.magedut.com.
注意:
  (1)相邻的两个资源记录的name相同时,后续的可省略
  (2)对NS记录而言,任何一个NS记录后面服务器名字,都应该在后续有一个A记录
MX记录:
  name:当前区域的名字
  value:当前区域的某邮箱服务器(smtp服务器)的主机名;value之前应该有一个数字(0-99),表示此服务器的优先级,数字越小优先级越高。一个区域内,可有多个MX记录
例如:magedu.com    IN  MX 10 mx1.magedu.com.   或    magedu.com    IN   MX 20 mx2.magedu.com.

注意:对MX记录而言,任何一个NS记录后面服务器名字,都应该在后续有一个A记录
A记录
  name:某主机的FQDN,例如www.magedu.com
  vulue:主机对应的主机IP地址
例如:www.magedu.com.    IN   A 1.1.1.1    或  www.magedu.com.     IN  A  1.1.1.2
PTR:
  name: ip,有特定格式,把IP地址反过来写,1.2.3.4 要写成 4.3.2.1; 而有特定后缀:in-addr.arpa. 所以完整写法为4.3.2.1.in-addr.arpa.
  value:FQDN
例如:4.3.2.1.in-addr-arpa.   IN  RTP   www.magedu.com 可以简写为  4     IN RTP www.magedu.com

注意:网络地址及后缀可省略,主机地址需要反着写
CHAME
  name:别名的FQDN
  value:正式名字的FQDN
例如:web.magedu.com.   IN   CHAME www.magedu.com

   
DNS的基本配置

使用bind这个程序,安装完成后,区域文件存储在/var/named/目录下

    1、配置为缓存服务器,修改/etc/named.conf这个文件

blob.png

blob.png

     完成上面的配置后,service named start启动服务,并查看53端口是否已经被监听,若在监听,则启动缓存成功,把电脑的DNS指向此服务,便可正常正解析

blob.png

blob.png

  

  2、配置DNS正解。测试使用域名为teset123.com,ns1(192.168.1.11),ns2(192.168.1.9)。正解中不需要配置RTP

    在/etc/named.rfc1912.zones配置文件上配置区域

blob.png

    在/var/named/目录下创建test123.com.zone文件,并配置。完成配置后,需要把文件的权限改为640、属组为named

blob.png

    检测zone配置文件及主配置文件是否正确,若正确,重新载入配置文件rndc reload

blob.png

    使用dig -t A test123.com @192.168.1.11测试是否能解析,以下解析成功。

blob.png

blob.png

3、DNS反解配置

    配置/etc/named.rfc1912.zone

    说明:测试的www.test123.com解析的IP是192.168.1.254 。反解时是通过IP地址解析出对应的域名。在配置进反解的区域名称是反写IP地址.in-addr.arpa,本例中192.168.1.254是24位掩码,192.168.1.是固定不变的,因此写成1.168.192.in-addr-arpa

blob.png

    在/var/named/目录下创建 1.168.192.in-addr.arpa.zone文件,并配置。反解时主要配置RTP便可

blob.png

    使用named.checkzone、named.checkconf、rndc reload命令检测及重载配置文件后,测试

blob.png

4、从服务器配置

    在上面的配置,ns2 的IP地址是192.168.1.9,把此服务器配置为从服务器。注意:从服务器一定要在主服务器上通过ns 体现出来,否则更新配置时,主服务无法主动通知从服务器。

   从服务器不需要区域文件,只要在named.rfc1912.zone文件中配置区域,指定为slave ,并指定masters的IP地址便可。同步成功后,自动会在/var/named/slaves/目录下创建区域的文件

   以下为正解从服务器配置

blob.png

        通过查看日志文件 /var/log/messages,是否同步成功,以下已成功同步

blob.png

        反解从服务器的配置,思路与正解一样,只需要配置/etc/named.rfc1912.zone便可

blob.png

    查看日志  

blob.png
    查看从服务器同步过来的区域配置文件

blob.png


子域授权

    子授权的配置要点:

在没有认证的时间下,父域与子域要关闭dnssec
dnssec-enable no;
dnssec-validation no;

在父域的zone配置文件中,指定子域的ns A记录 
为了子域以最理想的路径解析父域,需要配置全局转发或局部转发功能,并指上一层为父域的NS ip地址

    本次实验中,父域是test123.com,NS是192.168.1.11,www主机192.168.1.254;子域是test.test123.com,NS是192.168.1.9,www主机是192.168.1.253。

    父域的配置

        主配置文件的配置:通过forward启用全局转发,转发给上层192.168.1.1。如果,此父域能够访问根域服务器,此可配可不配。

blob.png

    zone配置文件中添加授权子域

blob.png

    子域的配置:

       关于转发的配置,如果子域想依赖父域解析,可以做全局转发配置,并转发给父域。若只是把父域的域名转发给父域,而其他的仍由根域解析,则可配置局部转发。

blob.png

blob.png

blob.png    

blob.png

    测试

        父域测试子域

blob.png

    子域测试父域

blob.png


bind编译安装

    本次安装版本的是 bind-9.6.1.tar.gz

1、解压后,指明安装路径、配置文件路径及其他参数并进行编译安装

 ./configure  --prefix=/usr/local/bind9 --sysyconfdir=/etc/named --disable-ipv6 --disablie-chroot --enable-threads  
   \\安装路径是/usr/lcoal/bind9,配置文件是/etc/named,关闭ipv6与根切换,开启多线程功能
make 
make install

2、编辑环境变量、库文件、头文件及帮助文档。

编辑变量,在/etc/profile.d目录下创建named.sh脚本,输入以下内容,并执行一个。
     export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH
     完成后:
[root@localhost profile.d]# 
echo $PATH/usr/local/bind9/bin:/usr/local/bind9/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

编辑库文件
在/etc/ld.so.conf.d目录创建named.conf,并在文件中输入/usr/local/bind9/lib
然后ldconfig ,重新生成动态库文件
 
生成链接include文件
ln -sv /usr/local/bind9/include/ /usr/include/named
 
编辑/etc/man.conf

blob.png

2、创建并配置/etc/named/named.conf的主配置文件、以及/var/named目录下多个文件

        在/etc/named/目录下创建 named.conf并完成如下配置

blob.png

     使用dig -t ns . @192.168.1.1 >> /var/named/named.ca自动生成根域名的文件,192.168.1.1是我网络里的路由器,.(点号)代表根,自动把结果保存到named.ca文件中。

blob.png

    在/var/named目录下创建named.loopback  named.localhost与named.com.zone文件,并完成如下配置

blob.png

blob.png

    3、递归修改/usr/local/named/var目录的属组为named,并给named写与执行的权限。若不修改此项,在使用named -u named -f -g -d 3是会有如下提示

blob.png

    4、使用named -u named 运行后,查看及测试是否成功

blob.png

        已运行成功!

    5、使用 rndc-confgen,生成rndc的配置文件,完成后便可使用rndc命令管理bind了

blob.png

blob.png

    便可正常使用rndc命令了

blob.png

原创文章,作者:Net20-deamon,如若转载,请注明出处:http://www.178linux.com/18137

(2)
Net20-deamonNet20-deamon
上一篇 2016-06-11
下一篇 2016-06-12

相关推荐

  • bash编程初体验(三)

    bash编程初体验之for for while until 概述 本文将介绍以for为代表的循环语句在shell 脚本中的应用,常见的循环语句有for, while,until,作为循环语句,顾名思义,它就是重复地做一件事,直到满足某一条件而退出;另外,还有两个循环控制语句continue与break来配合循环语句,以实现临时中断或跳出循环的功能;以下为fo…

    Linux干货 2016-08-24
  • mitaka版本openstack网络之open vSwitch

    作者:【吴业亮】 博客:http://blog.csdn.net/wylfengyujiancheng 一、硬件配置及服务拓扑1. controller节点:一块网卡2. 网络节点:四块网卡。3. 计算节点:三块网卡 controller节点1. 运行 neutron数据库2. 运行消息队列服务3. 运行认证。4. 运行OpenStack计算nova相关网络…

    2018-01-22
  • 运维的危险命令,用了必死(1)

    Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。这篇文章并不打算引来你对Linux或linux 命令行的愤怒。我们只是想让你意识到在你运行某些命令时应该三思而后行。(译注:当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药;在普通用户身份下,破坏的只是自己的一亩三分地。)

    2017-11-16
  • 第一周学习内容

    1、LINUX的三大主流版本:debian slackware redhat 2、一个完整的操作系统是由内核+运行在内核之上的应用程序组成。      LINUX操作系统是由linux内核+GNU开源组织编写的应用程序组成(GNU/Linux) 3、CPU架构:X86(X64)、摩托罗拉的m68k、arm、IBM的POWER(性…

    Linux干货 2016-12-03
  • 计算机的组成及其功能

    1.计算机的组成及其功能 1.1计算机的硬件基本结构 从ENIAC到当前最先进的计算机都采用的是冯·诺依曼体系结构分别是:控制器,运算器,存储器,输入与输出设备 控制器:将指令逐条从存储器中取出,经译码分析后向全机发出相应         的操作控制信号作用于其他部件,使各部件有…

    Linux干货 2016-10-28
  • 马哥Linux第四周作业

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 ~]# cp -r /etc/skel/ /home/user1 ~]# chmod -R g0-rwx /home/user1/ 2.编辑/etc/group文件,添加组hadoop 编辑/etc/group 写入:hado…

    2018-01-07