【Linux】DNS服务器配置

配置DNS服务器

目录

理论内容:

一、DNS

二、bind搭建DNS服务器

一、DNS

1、域名系统概述

2、域名的结构

3、域名服务器

4、域名解析过程

5、域名服务器的资源记录

一 安装/卸载DNS软件包

二.修改DNS主配置文件

三 创建正向解析和反向解析区域文件

四、检查配置是否有误

五、开启named服务

六、测试


理论内容:

一、DNS

1、域名系统概述

2、域名的结构

3、域名服务器

4、域名解析过程

5、域名服务器的资源记录(resource record RR)

二、bind搭建DNS服务器

1、bind的安装

2、搭建DNS服务器

3、搭建主从DNS服务器

4、实现DNS子域

5、实现DNS视图view(智能DNS)

一、DNS

1、域名系统概述

域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。

域名到IP地址的解析过程的要点如下:当某一个应用需要把主机名解析为IP地址时,该应用进程就调用解析程序,并称为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。应用程序获得目的主机的IP地址后即可进行通信。所以DNS通信是基于UDP协议。

几个名词:

FQDN:full qualified domain name,完全控制域名,它包含了域和主机名,如:www.baidu.com是一个FQDN

IP:ip地址,包括IPv4、IPv6

Resolve:解析,转换

域名解析的过程其实就是:FQDN <-----> IP ,这两者间的转换过程

2、域名的结构

在互联网初期,由于主机较少,解决DNS的办法就是在本机创建一个hosts文件,里面记录了IP----FQDN的记录,但是随着互联网的快速发展,显然这种方法已经行不通

因此,早在1983年因特网开始采用层次树状结构的命名方法,并使用分布式的域名系统DNS。并采用客户服务器方式。DNS使大多数名字都在本地解析(resolve),仅有少量解析需要在因特网上通信,因此DNS系统的效率很高。由于DNS是分布式系统,即使单个计算机除了故障,也不会妨碍整个DNS系统的正常运行。

几个名词:

根域(root domain):由于采用树状的分布式结构,显然根域值得是一个结构开始的节点,这里的根域用“.”表示,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。根域全球有13台,这些主机的内容都保持一致性。

顶级域(top level domain):根域下来就是顶级域或者叫一级域,有两种划分方式,一种互联网刚兴起时的按照行业性质划分的com.,net.等,一种是按国家划分的如cn.,jp.,等。

  二级域:这个比较好理解,比如,baidu.com,baidu就是一个二级域名

3、域名服务器

上面已经介绍,域名解析的过程其实就是FQDN和IP之间的转换,而这些转换关系就是一个数据库,由于互联网的蓬勃发展,需要使用一些专门的服务器来存储这些数据,当用户来访问请求解析时,可以查找自身的数据库,并把相关的信息反馈。

一个服务器所负责管辖(或有权限)的范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机到域名IP地址的映射。总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是DNS服务器实际管辖的范围。区 <= 域。

根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

权限域名服务器:负责一个“区”的域名服务器。

本地域名服务器:本地服务器不属于下图的域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

4、域名解析过程

前面已经介绍,域名解析其实就是FQDN和IP之间的转换

几个名词:

递归查询:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

迭代查询:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

因此,一个主机查询的过程分为两个部分,主机到本地DNS服务器之间是递归查询,本地服务器向根和相关服务器查询是迭代查询

正向解析:FQDN-->IP,这个比较好理解,通过主机名获取其对应的广域网IP地址

反向解析:IP-->FQDN,反向解析一般用于邮件服务器,IP反向解析主要应用到邮件服务器中来阻拦垃圾邮件,特别是在国外。多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。

比如你用 xxx@name.com 这个邮箱给我的邮箱 123@163.com 发了一封信。163邮件服务器接到这封信会查看这封信的信头文件,这封信的信头文件会显示这封信是由哪个IP地址发出来的。然后根据这个IP地址进行反向解析,如果反向解析到这个IP所对应的域名是name.com 那么就接受这封邮件,如果反向解析发现这个IP没有对应到name.com,那么就拒绝这封邮件。

为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的IP地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名"in-addr.arpa"结尾。

例如一个IP地址:222.211.233.244,其逆向域名表达方式为:244.233.221.222.in-addr.arpa

5、域名服务器的资源记录

这里常用资源记录的类型有这几种:记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

SOA(start of authority):起始授权机构,此记录指定区域的起点。它所包含的信息有区域名、区域管理员电子邮件地址,以及指示辅 DNS 服务器如何更新区域数据文件的设置等。

A(address):是用来指定主机名(或域名)对应的IP地址记录。也就是 FQDN---IP

NS(name server):此记录指定负责给定区域的名称服务器。DNS服务器NS记录地址一般以以下的形式出现: ns1.domain.com、ns2.domain.com等。 简单的说,NS记录是指定由哪个DNS服务器解析你的域名。

MX(mail exchange):记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。 

CNAME(Canonical Name):别名记录,允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录),它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL, 这两个别名的全称就“www.mydomain.com”和“mail.mydomain.com”,实际上他们都指向 “host.mydomain.com”。

PTR(pointer):反向查询IP--->FQDN,IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-add.arpa.

TXT:一般指某个主机名或域名的说明,如:admin IN TXT "管理员, 电话:XXXXXXXXXXX",mail IN TXT "邮件主机,存放在xxx , 管理人:AAA",Jim IN TXT "contact: abc@mailserver.com",也就是您可以设置 TXT 内容以便使别人联系到您。 

TTL(time to live):简单的说,TTL就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录,而这个记录在DNS服务器上保留的时间,就是TTL值。

泛域名解析:泛域名是指在一个域名根下,以 *.Domain.com的形式表示这个域名根所有未建立的子域名。 泛解析是把*.Domain.com的A记录解析到某个IP 地址上,通过访问任意的前缀.domain.com都能访问到你解析的站点上。

域名转向:域名转向又称为域名指向或域名转发,当用户地址栏中输入您的域名时,将会自动跳转到您所指定的另一个域名。一般是使用短的好记的域名转向复杂难记的域名。

资源记录格式:

语法:name[TTL]IN rr_type value

注意:

(1) TTL可从全局继承

(2) @可用于引用当前域的名字

(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应

(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

具体配置步骤

一 安装/卸载DNS软件包

yum install -y bind*   安装

yum erase bind*    卸载

二.修改DNS主配置文件

可以查看/usr/share/doc/bind-9.9.4/sample/下有各种例子可以参考:

vi /etc/named.conf

三 创建正向解析和反向解析区域文件

 (1)创建并编辑正向解析文件

Vi /var/named/glsecu.com.zone   (文件名一定要与主配置文件一致)

进入末行模式,输入 :r /var/named/named.localhost

编辑完成后,保存退出;

然后创建并编辑反向解析文件:

vi  /var/named/192.168.200.arpa   (文件名一定要与主配置文件一致)

进入末行模式,输入 :r /var/named/glsecu.com.zone ,把glsecu.com.zone文件内容拷贝过来,编辑后如下图:

四、检查配置是否有误

named-checkconf –z /etc/named.conf ,下图所示,说明配置无误。

五、开启named服务

systemctl start named.service

六、测试

Iptables -F  ---关闭防火墙

vi /etc/resolv.conf

DNS1= 192.168.100.128

systemctl restart network :

nslookup

或参照:https://blog.51cto.com/u_14154700/2357252(优秀简洁)

bind(named)配置文件_bind named.conf-CSDN博客(内容更详尽)

易错点:

1. 主配置文件/etc/named.conf 不要去从别处拷贝,内容过多容易报错;

2. 区域文件配置,容易丢掉符号或者其他错误,多多检查。

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值