DNS服务
今天来简单聊一聊DNS服务,众所周知,在网络中计算机之间是通过IP地址进行互相访问的,当我们访问某个域名时,其背后是DNS服务器进行了域名解析,并得到对应的IP地址。域名相比于IP地址而言,更加简单易记,从而可以更方便地访问。
一、背景引入及DNS概述
我们先从背景出发,然后具体介绍什么是DNS,最后通过搭建DNS服务器进行上手实战。
1、背景引入
公司内网中需要通过域名访问到开发的web应用,以获得更好的访问体验。为此需要在内网中搭建DNS服务器解析域名,通过内网DNS服务,访问到公司内部应用。
如下图例,我们PC端在访问某个域名时,其实背后是DNS服务器先进行了域名解析,得到对应的IP地址,域名只是一种访问的形式,其底层还是IP地址。
2、DNS概述
DNS(domain name system),即域名管理系统。域名由特定的格式组成,用来表示互联网中某一台计算机或者计算机组的名称
,域名的好处是实现更方便的访问,而不用去记复杂的IP地址。
互联网中,计算机都是通过IP地址进行互相访问的。计算机 => IP地址
。
由于IP地址复杂难记,如192.168.91.10,所以一般使用域名进行访问
域名:代替IP实现计算机的访问(域名可以看作一种上层应用,其底层还是IP地址)
每个域名 => DNS服务器 => 对应的IP地址
二、DNS解析
1、DNS正向解析
域名的正向解析:域名 => IP(A记录)
将主机域名转换为对应的IP 地址,以便网络程序能够通过主机域名访问到对应的服务器主机
2、DNS反向解析
域名的反向解析:IP => 域名(PTR记录)
将主机的IP地址转换为对应的域名,以便网络(服务)程序能够通过IP地址查询到主机的域名
三、DNS结构
域名:如 www.baidu.com
DNS结构:www.baidu.com. => 从右向左解析
1、根域(.)
- 在整个 DNS 系统的最上方一定是 . (小数点),这个 DNS 服务器称为 root或“根域”。
- 根域 (全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本)
2、一级域名
常见的顶级域名如:com,cn,net,edu,gov,org,io等。
3、二级域名
需要自己购买管理,如 google.com.
四、DNS工作原理简述
1、工作原理概述
如下图例,当我们在PC端访问某个地址时,该访问请求首先会转到DNS服务器,并会在缓存cache中查找。如果该域名之前已经被访问过了,则缓存中就会有记录,此时直接把域名转换为IP而不用进行后续的步骤;如果在缓存中找不到对应的IP地址,就需要对其进行解析,有递归查询和迭代查询。顾名思义递归查询就是从根域开始查,逐步往下,只需查询一次便能得到结果,但比较耗时。
如果询问一次得到结果 => 递归查询
如果询问多次得到结果 => 迭代查询
一次递归,多次迭代。由于递归查询非常耗时,所以一般情况下使用迭代查询。
2、dig工具
使用dig工具来追踪DNS的解析过程
1 | # 追踪DNS的解析过程 |
五、DNS服务器搭建
1、Bind概述
Bind(Berkeley Internet Name Domain)是一款开放源码的DNS服务器软件,由美国加州大学Berkeley(伯克利)分校开发和维护,是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
如下图例,搭建了两台DNS服务器(一主一从),主DNS服务器通过udp协议对PC端访问的域名进行解析,得到对应IP地址,从而实现在内网web服务器上的访问,而主从之间的数据传输使用的是tcp协议。
注:DNS 的域名解析都是 udp/53,主从之间的数据传输默认使用tcp/53
2、DNS服务器搭建
2.1 环境准备
由模版机克隆出3台一模一样的机器,分别为Client、DNS和Web。
编号 | 主机名称 | IP地址 | 备注信息 |
---|---|---|---|
1 | client.itweb.cn | 192.168.91.12 | client客户端,用于测试 |
2 | dns.itweb.cn | 192.168.91.11 | dns服务器,用于实现域名解析 |
3 | web.itweb.cn | 192.168.91.10 | web服务器,用于搭建内部web服务 |
1)更改主机名称与IP地址
1 | # 更改主机名称 |
更改完成后,重启网络
1 | systemctl restart network |
3台机器都分别做如上设置。需要更改的是IPADDR和UUID(改后3位)。
2)使用MX远程连接工具进行连接
3)关闭防火墙与SELinux
1 | # 关闭防火墙 |
涉及多台机器的相同操作时,可以使用MX的多执行功能(即在一台机器上输入的命令会同步到所有终端,实现多执行),如下
4)配置YUM源
有网配置公网YUM源、无网就配置光盘或自建YUM源
1 | yum clean all |
2.2 安装DNS软件
DNS服务器:
1 | yum install bind -y |
安装完成后,可以使用rpm -q
查询是否安装成功:
1 | rpm -q bind |
注:find主要用来搜索计算机中的文件,而rpm主要用来检查计算机中是否安装过某个软件
3、DNS正向解析配置
正向解析实现从域名到IP。DNS服务主要有主要有 named.conf和 named.rfc1912.zones两个配置文件。
/etc/named.conf:主要配置访问权限控制(哪些IP或哪些主机可以访问DNS服务器)
/etc/named.rfc1912.zones:主要定义域名如何解析(正向解析),解析到具体哪个IP地址
1)对named.conf、named.rfc1912.zones进行备份,防止改错后方便还原
1 | cp /etc/named.conf /etc/named.conf.bak |
2)详解named.conf主配置文件(访问权限控制)
1 | vim /etc/named.conf |
添加任何主机都可以访问的权限:
3)zones子配置文件(域名应该指向哪个IP地址)
1 | # 打开配置文件 |
vim小技巧:
把19-23行copy到42行的后面
1 | :19,23 co 42 |
4)在/var/named目录创建 itweb.cluster.zone文件,定义正向解析
1 | cd /var/named |
注:-p代表复制文件时保留文件的原有属性
5)编辑 itweb.cluster.zone文件,定义域名的指向
1 | vim itweb.cluster.zone |
添加记录的目的:实现当访问 www.itweb.cluster时,就会自动访问 192.168.91.10这个地址。
扩展:zone文件的格式说明
1 | zone文件详解 |
4、检查文件
检查named.conf与zones文件是否有误。
1 | # 以下若没有任何提示,说明文件无误。 |
以上若没有任何提示,说明文件无误。
5、启动DNS服务
1 | # 重启服务 |
6、Web服务搭建
1 | # 安装Apache(httpd)服务 |
此时访问Web服务器的IP地址,显示如下说明Web服务搭建成功
六、测试正向解析
在Client客户端服务器上进行操作
1、添加DNS服务器
1)临时添加
1 | echo 'nameserver 192.168.91.10' > /etc/resolv.conf |
注:电脑重启,网络刷新(restart network),VMware挂起,临时DNS都会失效
2)永久添加
1 | # 编辑网卡配置文件 |
这样当我们客户端访问某域名时,确保都是由该DNS服务器进行解析
这里只是进行测试,使用临时添加即可。
2、检测正向解析是否生效
1 | # 使用 nslookup命令 |
好了,以上就是本次的内容,希望能对你有所帮助。