【运维工程师学习七】DNS底层原理及搭建自己的DNS服务器

DNS原理与Bind服务器部署教程
这篇文章详细介绍了DNS的基础知识,包括域名的由来、级别和命名规则,以及DNS的解析原理。接着,它演示了如何在Linux上搭建和配置BindDNS服务器,包括安装、启动服务、配置文件详解以及DNS记录类型。最后,提供了验证DNS服务器搭建成功的步骤和方法。

0、前言

DNS的全称是Domain Name System,域名系统。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53
通过上面的解释可以看出,域名系统(DNS)是为域名服务的,因此在介绍DNS之前,我们先来认识一下域名。

1、域名(Domain)的由来

  • 为什么会有域名?因为IP地址不易记忆。

我们都知道网络是基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的IP地址),以区别在网络上成千上万个用户和计算机。网络在区分所有与之相连的网络和主机时,均采用了一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派了一个独一无二的地址。为了保证网络上每台计算机的IP地址的唯一性,用户必须向特定机构申请注册,分配IP地址。网络中的地址方案分为两套:IP地址系统和域名地址系统。这两套地址系统其实是一一对应的关系。IP地址用二进制数来表示,每个IP地址长32比特,由4个小于256的数字组成,数字之间用点间隔,例如100.10.0.1表示一个IP地址。由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。

2、域名(Domain)的级别

  • 域名是以 . 这个符号分级别的,有顶级、二级、三级等等。但在规则与现实中会有区别。
  • 通过上面的域名例子可见,高级别在右边,越往左级别越低。如www.wy.cn是wy.cn下的三级域名,soft.wy.cn也是三级,dg.soft.wy.cn是四级。
  • 上面介绍的分级是域名规范中制订的规则。但现实中,这种级别要各减一级,如wy.cn是顶级。这是为什么呢。因为.cn(包括其它的.com.net一样)任何人都可以注册,所以只有wy.cn才是属于单个主体,.cn是属于国家的(或者说是管理机构的)。因此现实工作中,规范中所说的顶级一般是被叫做域名后缀,而主体部分才被叫做顶级域名
  • 二级,标示服务器功能。
    如www表示网站;
    mail表示邮箱系统;
    Soft表示软件站。
    有人会说,为什么华军软件站(www.onlinedown.net)却又是www开头的。其实二级域名是本顶级域名所有者自己安排的。假如你拥有一个域名叫loveu.com,则你一样可以把mail.loveu.com这样的二级域名用在软件下载站上。只要你喜欢,但不符合主流认知而已。

3、域名(Domain)的命名规则

由于Internet上的各级域名是分别由不同机构管理的,所以,各个机构管理域名的方式和域名命名的规则也有所不同。但域名的命名也有一些共同的规则,主要有以下几点:

  • 域名中只能包含以下字符:
  1. 26个英文字母
  2. “0,1,2,3,4,5,6,7,8,9”十个数字
  3. “-”(英文中的连词号)
    字符组合规则
  4. 在域名中,不区分英文字母的大小写
  5. 对于一个域名的长度是有一定限制的,由多个标号组成的完整域名总共不超过255个字符。

4、域名(Domain)的后缀有哪些

在国内主要有com、net、cn、org等主流后缀的域名,每个域名的含义如下:

.com后缀:国际通用顶级域名,也是目前使用最为广泛的域名,它后缀的含义是代表商业组织机构;

.net后缀:国际通用域名,也是目前国际广泛流行的域名,后缀代表网络服务机构;

.cn后缀:中国国家级顶级域名,也是在国内广泛使用的域名 ,后缀表示含义为中国企业互联网标识;

.org域名:国际顶级域名,是目前国际广泛使用的域名,后缀含义代表是非盈利性组织;

.top域名:国际顶级域名,作为目前最流行的最热闹的新型后缀域名,.top寓意为顶级排名、高端、突破,可以用于任何组织和个人。

5、域名(Domain)解释商

域名注册商本身提供域名解释服务,一般在哪个域名注册商注册域名就使用哪个注册商提供的解释服务,但随着行业的发展及市场的细分,专门的域名解释商开始出现,专注智能解释及DNS防御服务,代表性的公司有dns.com,dnspod.com,后者已被腾讯收购。举个例子,你在某个注册商那注册的域名,你可以在注册商的后台修改该域名的NS服务器地址,比如你修改为dns.com公司提供的,则修改之后,你对域名的所有解释记录的管理(添加、删除、修改)都只需在dns.com的域名管理后台操作即可,享受着专门解释公司的特色服务,如多线智能解释,dns攻击防御等等。

6、DNS的基本原理

DNS的作用是负责将域名转换为IP,这个过程可以很简单,也可以很复杂,但不论简单还是复杂,对于用户来说都是透明的,即上网者是感受不到这个过程的。
之所以说简单,那是因为DNS服务端可以理解为就只是一个保存着域名与IP对应的数据库,所以你电脑里面设定的DNS服务器刚好有这个记录,则很快地DNS服务器就向你的电脑程序返回了该域名的IP地址。
但如果刚好你电脑里设定的DNS服务器没有这个域名的记录,则会有不断在查询在进行着,直到查到记录,这个查询过程有两种:递归查询、迭代查询

7、DNS的基本原理

在这里插入图片描述

  • 看着这图好像查询过程很复杂,但还是那一句,用户是感受不到这个过程的。
  • 各大运营商为了其宽带用户更快的上网体验(更快速查询到IP)都会在地市级本地建立DNS缓存,但这几年地市级的很少维护了,基本都使用省级的DNS服务器了。
  • CDN公司或大型的视频网站为了方便调度用户至最近区域服务器也会建立DNS服务器,通过识别访问用户的来源IP将用户的请求调度到最适合的服务器。但这些DNS服务器都是他们内部使用的。

8、最简单的域名“解释器”

  • windows系统
C:\Windows\System32\drivers\etc

在这里插入图片描述

  • 为什么说最简单?因为这只是一个文本级的“数据库”,一行一条记录,格式是“IP在前,域名在后,通过空格分隔”。正因为是文本,所以它是静态的,你不往里面添加记录,则它“知道”的就只有这么多,因此它只适合调试时使用,而不适合正常上网时需要的域名解释。
  • 上图中www.test.com这个域名的记录就是我手动添加的,是我上次部署网站为了演示如果给web服务器配置域名添加的。
  • linux系统

在这里插入图片描述

9、DNS的记录类型

上一节演示的“192.168.xxx.xxx www.test.com”是最简单的一条A记录。DNS的记录类型除了A记录,还有如下的记录类型:
在这里插入图片描述
在这里插入图片描述

  • @www都是解释到相同的记录值,因此访问agenet.cn及www.agenet.cn是一样的内容。
  • wan.agenet.cn是另外一个不同的网站。

10、DNS服务端的部署

一个完整的DNS服务器应包含后端负责域名解释以及前端管理域名的解释(如添加删除域名的各种记录)。能实现DNS解释的后端程序有很多,最经典常用的便是Linux平台下的Bind。开源中国社区上收录的DNS相关程序(含后端及前端)合计有77款。详情请参考http://www.oschina.net/project/tag/108/dnsserver?

部署一个对外的公共DNS是一个十分庞大的工程,而且涉及的知识相当广,下面仅演示以Bind为例部署一个能为局域网内其它机器提供DNS代理的服务器(仅后端程序不部署前面WEB程序)。

11、Bind的部署(DNS代理)

(1)安装Bind

yum install bind bind-utils

在这里插入图片描述

(2)执行以下命令以启动Bind服务并设置它在系统引导时自动启动并查看当前状态

systemctl start named
systemctl enable named
systemctl status named

在这里插入图片描述

(3)打开防火墙端口以允许Bind服务

  • 这将打开DNS端口(TCP和UDP 53)以允许BIND服务。
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
  • 现在,已经成功安装和配置了Bind域名服务器。您可以使用Bind来配置和管理自己的DNS域名解析服务。

(4)配置named(bind)

  • 找到主配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallFatMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值