DNS服务详解(解析+搭建)

文章目录

  • 详解DNS服务的搭建与解析
  • 参考阅读
  • 前言
  • 一、解析过程
    • 1.1 层级架构
    • 1.2 解析过程
  • 二、DNS服务器的搭建
    • 2.1 配置文件
    • 2.2 搭建步骤
      • 【基础—DNS服务器】
      • 【进阶—主从、缓存DNS】
      • 【高级—智能DNS之分离解析】
    • 2.3 总结

详解DNS服务的搭建与解析

DNS服务详解(解析+搭建)_第1张图片

以上就是本篇Blog的层级架构

参考阅读

之前写过一个Red Hat7.2下DNS服务的搭建,文章中对一些记录类型的介绍比较详细,但是理论过多,没有对真实的场景进行应用
DNS重点—Linux下的配置
还在被虚拟机的网络模式搞得晕头转向?来这里瞧瞧吧~
基于Linux下常见服务的搭建
Linux汇总

前言

DNS叫做域名系统(Domain Name System),这是互联网的一项服务,DNS就是为了方便用户记忆,访问服务器,不用记忆冗余复杂的IP地址,可以理解为DNS就是翻译官,就是中介公司,方便用户转译,方便用户比较不同房源

一、解析过程

首先来回顾以下DNS解析的过程与DNS服务器的层级架构

1.1 层级架构

DNS服务详解(解析+搭建)_第2张图片

举例:

对于www.baidu.com这个域名其实是www.baidu.com.
域名的层级架构为
	根		 	.
	顶级域名	com
	二级域名	baidu
	三级域名	www

层级架构的产生:

​ 由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法;任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name);这里,“域”(domain)是名字空间中一个可被管理的划分。

域名只是逻辑概念,并不代表计算机所在的物理地点;如下为层级架构的分类

  • 根域:标识为点(.)现如今全球一共投放13个根服务器,可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信

    ​ 全世界的这13台根服务器;1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。

    换句话说——攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了

    ​ 命名:以英文字母A到M依序命名,格式为“字母.root-servers.net”

    根的镜像:

    ​ 还有11个是以任播技术在全球多个地点设立镜像站;比如中国大陆在北京有两台编号为L的镜像,编号为F、I、J的镜像各一台,共5台;香港有编号为D、J的镜像各2台,编号为A、F、I、L的镜像各一台,共8台;台湾则有编号为F、I、J各一台,共3台

    其他:

    ​ 在与现有IPv4根服务器体系架构充分兼容基础上,由下一代互联网国家工程中心牵头发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础

  • 顶级域:(Top Level Domain,简称TLD)分为以下三类

    • 国家顶级域名:采用ISO3166的规定
    cn代表中国、us代表美国、uk代表英国、jp(日本)
    国家域名又常记为ccTLD(cc表示国家代码contry-code)
    
    • 通用顶级域名:最常见的通用顶级域名有7个
    com(公司企业、商业机构)
    net(网络服务机构)
    org(非营利组织)
    int(国际组织)
    gov(美国的政府部门)
    mil(美国的军事部门)
    
    • 反向域(基础建设顶级域):即arpa,用于反向域名解析,是将IP解析为域名

    ​ 两种表达方式中IP地址部分顺序恰好相反,因为域名结构是自底向上(从子域 到域),而IP地址结构是自顶向下(从网络到主机)的。实质上逆向域名解析是将IP地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部 分可以纳入正向解析中

    注意区分与RARP的区别:

    在OSI模型中的网络中的数据链路层与网络层存在IP与MAC地址,而在局域网的查找主机,精准定位时,需要IP地址与MAC地址的映射关系,这个映射表就存在与ARP表中;而ARP解析就是根据IP地址查找MAC地址,RARP就是需要根据MAC地址查找IP地址

  • 二级域(注册域):可以由个人或组织申请注册

    baidu
    qq
    aliyun
    huawei等
    
  • 三级域(子域):服务器网站名的代表

    www
    bbs等
    
  • 主机名:常用于表示具体的主机

    s1.www.baidu.com. 中的s1就是主机名
    

两个机构的说明

IANA      the internet Assigned Numbers Authority 互联网数字分配机构   
ICANN     the internet Corporation for Assigned names and Nunbers 互联网名称与数字地址分配机构 

1.2 解析过程

概述

  1. 客户端在浏览器输入网址后,对于这个域名,首先查看浏览器的缓存,若没有记录,查看本地的hosts文件,去本地DNS服务器;这个过程属于递归查询
  2. 本地DNS服务器拿到这个域名后,先去找13台根服务器,然后就存在两种方式
    • 迭代查询:立即返回
      根域名服务器返回顶级DNS服务器的IP给本地的DNS服务器
      顶级域名服务器返回权限DNS服务器的IP给本地的DNS服务器
    • 递归查询:绕一圈
      根DNS–>顶级DNS–>权限DNS–>顶级DNS–>根DNS–>本地DNS

图解
DNS服务详解(解析+搭建)_第3张图片DNS服务详解(解析+搭建)_第4张图片

二、DNS服务器的搭建

2.1 配置文件

DNS服务详解(解析+搭建)_第5张图片

  • 主配置文件:服务器运行的参数;包括监听的IP、可以访问的客户端IP
    DNS服务详解(解析+搭建)_第6张图片

  • 区域配置文件:定义正反向区域的信息;包括要解析的域、DNS服务类型、数据文件的存储位置
    DNS服务详解(解析+搭建)_第7张图片

  • 数据配置文件:定义域名域IP的对应关系域定时器;使用各种各样的记录类型来标明,如SOA、A、CNAME、NS、AAAA、PTR、MX

DNS服务详解(解析+搭建)_第8张图片

关于记录类型的解释

SOA(起始授权记录)
	1、记录提供有关dns区域工作方式的信息(描述域名的管理员、电子邮件地址、时间参数)
	2、具体来说就是当前主机具体负责哪个区域的解析   
	3、指定某个DNS服务提供解析

NS 
	1、将自己的域名映射到DNS服务器上 
	2、将域名最终映射到哪一台主机(由哪一台主机去解析当前所定义的域主机)   
	3、标记DNS服务器
	注意:SOA是标明了要解析的域、NS是标明了本机的域名
	
A (ipv4地址记录)
	1、将主机名映射到ipv4地址
	2、这是正向域名解析地址,即将域名解析成IP
	
CNAME (规范名称):记录域别名

PTR(指针记录)
	1、将IPV4 IPV6地址映射到主机名用于反向DNS反向解析
	2、反向解析是将IP地址解析为域名
	
AAAA (IPV6 地址记录) :资源记录(四A记录)将主机名映射到ipv6地址
MX (邮件交换记录):  标记邮件服务器

关于定时器的解释

serial number:   序列号 定义当前使用的数据序列号   sn遵循“年+月+日+编号” 主和从的更新依据
refresh:  定义检查间隔时间  (上次和这次变化的时间)
retry:        重试时间  < 检查时间>        
expire:        过期时间  缓存放多久过期        
negative answer ttl:  否定答案的缓存时长(没有指定生存期的数据可以保存在数据中的时间及TTL值)存放不能解析的域名,下次访问直接返回不能解析
 时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒

2.2 搭建步骤

1、安装bind软件

yum -y install bind

2、修改主配置文件;关于主配置文件的内容上面已经做了详细的说明

vim /etc/named.conf

3、修改区域配置文件

vim /etc/named.rfc1912.zones

4、修改数据配置文件

1、进入/var/named下将named.localhost与named.loopback这两个模板复制出来,修改即可;
2、注意复制出来的文件的文件名是区域配置文件中的file后的内容
3、注意反向解析的书写格式

5、重启服务测

nslookup 域名
dig -x 域名

【基础—DNS服务器】

案例演示

需求:搭建一个DNS服务器,能够实现对www.yichen.com这个域名的解析,解析的域名是一个web server

说明:注意,这里无需关注webserver,只是一个能够根据IP地址访问并显示出内容;需要关注的是域名与IP的映射

实验环境

Centos 7三台 分别为DNS Server、Web Server、DNS Client
网络模式均为仅主机模式,用到的网卡就是VM1

实验设计

DNS服务详解(解析+搭建)_第9张图片

实验步骤

1、首先从不重要的说起,即搭建Web server;

思路:
安装httpd
修改/var/www/html/index.html

详细:
1、yum -y install httpd
2、vim /var/www/html/index.html
如下
[root@localhost ~]# cd /var/www/shtml
[root@localhost html]# ll
total 4
-rw-r--r--. 1 root root 5 Sep 25 15:42 index.html
[root@localhost html]# cat index.html 
test

测试

使用DNS Clinet测试,用Windos测试、或同一网络环境下的Linux主机测试都行

Linux下

[root@localhost ~]# curl 192.168.56.11
test

Windows下

DNS服务详解(解析+搭建)_第10张图片

2、搭建DNS Server

思路:
安装httpd
修改主、区域、数据配置文件

详细:
1、yum -y install httpd
2、vim /etc/named.conf
3、vim /etc/named.rfc1912.zones
4、vim /var/自定义的文件名	注意要与区域配置文件中的file参数一致即可

主配置文件

DNS服务详解(解析+搭建)_第11张图片

区域配置文件

DNS服务详解(解析+搭建)_第12张图片

数据配置文件

使用cp命令将模板复制成数据配置文件
cp -a named.localhost named.yichen.com
cp -a named.loopback named.192.168.56

修改数据配置文件的内容,关于类型的解释上面做过详细的说明

DNS服务详解(解析+搭建)_第13张图片

反向解析,由于在区域配置文件写出过反向的IP,即数据配置文件中只需写出主机的IP即可

DNS服务详解(解析+搭建)_第14张图片

3、测试

正向解析

在DNS Client上将DNS的IP地址修改为DNS Server的IP地址,即192.16.56.30;即使这个DNS Server进行解析

DNS服务详解(解析+搭建)_第15张图片

详细测试

  • 通过curl来对www.yichen.com进行访问,可见访问到的内容就是Web Server的内容
  • 通过nslookup来对www.yichen.com进行DNS Server的解析测试,可以看到DNS Server的IP地址与解析成IP地址的Web Server
    DNS服务详解(解析+搭建)_第16张图片

反向解析

DNS服务详解(解析+搭建)_第17张图片

【进阶—主从、缓存DNS】

目的

  • 主从DNS:为了降低主服务器的压力,对数据进行备份
  • 主缓DNS:加快解析效率,提高接续的速度

下面就先来搭建一个主从DNS服务器

实验环境

Centos 6.8四台 分别为DNS Master、DNS Slave、Clinet、Web Server
网络模式均为仅主机模式,用到的网卡就是VM1

实验设计
DNS服务详解(解析+搭建)_第18张图片

实验步骤

1、修改主DNS的区域配置文件;将其allow-update修改为从DNS的IP地址

DNS服务详解(解析+搭建)_第19张图片

2、将从DNS的这两个位置修改;监听的本机的IP,允许访问的主机
DNS服务详解(解析+搭建)_第20张图片

3、修改从DNS的区域配置文件;声明主DNS的IP以及数据文件的位置

DNS服务详解(解析+搭建)_第21张图片

4、重启从DNS服务,进入slaves目录,就可以看到对主DNS的数据配置文件的复制(自动化完成)

DNS服务详解(解析+搭建)_第22张图片

测试:

可见解析正常

DNS服务详解(解析+搭建)_第23张图片

关闭主DNS服务,测试从DNS能否正常工作;注意,要在Client上配置从DNS的IP

DNS服务详解(解析+搭建)_第24张图片

DNS服务详解(解析+搭建)_第25张图片

可见,解析正常

DNS服务详解(解析+搭建)_第26张图片


下面开始介绍缓存服务器的搭建

主缓DNS:加快解析效率,提高接续的速度

实验环境

Centos 6.8四台 分别为DNS Master、DNS Cache、Clinet、Web Server
网络模式均为仅主机模式,用到的网卡就是VM1

实验设计

DNS服务详解(解析+搭建)_第27张图片

实验步骤

1、再DNS Cache上安装dnsmasq软件,并修改配置文件

[root@localhost ~]# vim /etc/dnsmasq.conf

domian=#需要解析的域名
server=#主DNS的IP地址
cache-size=#声明缓存的条数

2、关闭防火墙、senlinux、重启dnsmasq服务

[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
[root@localhost ~]# service dnsmasq restart

3、客户端将DNS的IP地址写成DNS Cache的地址

DNS服务详解(解析+搭建)_第28张图片

测试

可见通过缓存服务器的解析正常

DNS服务详解(解析+搭建)_第29张图片

将主DNS的服务停止

[root@localhost ~]# service named stop
停止 named:                                               [确定]

可见,还是可以解析,但是不是权威的解析结果

DNS服务详解(解析+搭建)_第30张图片

此时,解析域名为dns.yichen.com发现无法解析;这是因为缓DNS中没有这条解析记录,它会去向主DNS寻求答案,但是主DNS此时的服务是停止的,所以不能解析出结果;将主DNS恢复,就可以完成解析

DNS服务详解(解析+搭建)_第31张图片

重启主DNS的服务

[root@localhost ~]# service named restart 
停止 named:                                               [确定]
启动 named:                                               [确定]

DNS服务详解(解析+搭建)_第32张图片

总结

  • 主从DNS的解析过程

    1、客户端向主DNS寻求解析记录;主DNS会根据配置的时间向从DNS进行记录的完全复制

    2、当主DNSdown机或服务中断,客户端会向从DNS寻求解析(前提是客户端在网卡配置中配了从DNS的IP)

  • 主缓DNS的解析过程

    1、客户端的网卡配置中配的是DNS Cache的IP,即客户端只能去缓DNS上进行域名的解析

    2、当缓DNS上存在客户端需要的解析记录,直接解析即可;若不存在,缓DNS会去向主DNS进行解析记录的请求

【高级—智能DNS之分离解析】

目的

一个域名解析出两个不同的地址;即将相同域名解析为不同的IP地址;现实网络中一些网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度

实验环境

Centos 6.8四台 分别为 智能DNS、LAN_Clinet、LAN_Clinet、Web Server
网络模式的设计为自定义的VM7 VM10;网段的规划见下图

实验设计
DNS服务详解(解析+搭建)_第33张图片

DNS服务详解(解析+搭建)_第34张图片

设计拓扑中出现了内外网卡,即需要两张网卡,这里做一个简单的设计,网段设计如下,在虚拟机中自定义两个网络模式,VM7与VM10

内网的网段为192.168.7.0/24 
外网的网段为100.100.100.0/24

DNS服务详解(解析+搭建)_第35张图片

实验步骤

0、首先,也是最重要的一点,就是添加、配置网卡,(针对的是DNS与Web Server这两个虚机)这步其实很简单,如下所示

  • 添加网络适配器,并选择工作模式

DNS服务详解(解析+搭建)_第36张图片

  • 开启虚拟机进行配置

    #第一步
    #首先要生成网卡配置文件;即将原来的eth0网卡的配置文件复制出来一份给新添加的eth1网卡
    [root@localhost ~]# cd  /etc/sysconfig/network-scripts/
    [root@localhost network-scripts]# cp -a ifcfg-eth0 ifcfg-eth1
    
    #第二步
    #删除其中的UUID与MAC地址,因为产生冲突后,网卡无法正常使用
    
    #第三步
    #重启网卡后,通过ip address或setup进行检查
    [root@localhost ~]# service network restart
    
  • 检查DNS与Web Server这两个虚机
    DNS服务详解(解析+搭建)_第37张图片DNS服务详解(解析+搭建)_第38张图片

1、修改DNS的主配置文件,顺便把Web Server的内容修改

[root@localhost ~]# cd /var/www/html
[root@localhost html]# cat index.html 
hi,it's AI_DNS
[root@localhost html]# 

DNS服务详解(解析+搭建)_第39张图片DNS服务详解(解析+搭建)_第40张图片

匹配顺序:自上而下

即匹配到any时的肯定不是192.168.10.0/24网段的,可以理解为网络中的ACL,即访问控制列表

2、修改区域配置文件;区域文件的存储位置在上一步中已经进行了定义

/etc/lan.zones
/etc/wan.zones

DNS服务详解(解析+搭建)_第41张图片

3、修改数据配置文件;注意,以上三步都无时无刻的体现了分离解析的核心,即区域、数据配置文件的分离

数据配置文件存储在/var/named下
注意,在这个文件下有模板,直接进行复制后修改即可

DNS服务详解(解析+搭建)_第42张图片

DNS服务详解(解析+搭建)_第43张图片

DNS服务详解(解析+搭建)_第44张图片

至此,配置完成

测试,可见,与预期相符

DNS服务详解(解析+搭建)_第45张图片

2.3 总结

  • 主从DNS:为了降低主服务器的压力,对数据进行备份
  • 主缓DNS:加快解析效率,提高接续的速度
  • 智能DNS:对不同的运营商或不同的网络环境来进行分离解析

你可能感兴趣的:(服务器运维—Linux,dns服务器,服务搭建,Linux)