Linux教程

Blog.031 Linux 中的 DNS 域名解析服务①

本文主要是介绍Blog.031 Linux 中的 DNS 域名解析服务①,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本章目录

 

 

 

 

1. BIND 域名服务概述
2. DNS 系统概述
  2.1 DNS 的作用
  2.2 DNS 分布式数据结构图解
  2.3 域名结构
  2.4 域名结构分析
  2.5 DNS 服务器的类型
  2.6 DNS 域名解析过程
3. 使用 BIND 构建域名服务器
  3.1 BIND 相关软件包
  3.2 BIND 服务器端程序
  3.3 BIND 服务控制
4. 构建域名服务器:正向解析
  ①:安装 BIND 软件包,查看需要修改的配置文件所在路径
  ②:修改主配置文件
  ③:修改区域配置文件,添加正向区域配置
  ④:配置正向区域数据文件
  ⑤:关闭防火墙,启动服务
  ⑥:在 /etc/resolv.conf 中修改域名地址
  ⑦:DNS 域名解析测试
  ⑧:连接,并在 win 10 中进行 DNS 域名解析测试
5. 构建域名服务器:反向解析
  ①:安装 BIND 软件包,查看需要修改的配置文件所在路径
  ②:修改主配置文件
  ③:修改区域配置文件,添加反向区域配置
  ④:配置反向区域数据文件
  ⑤:修改 /etc/named.rfc1912.zones 配置文件,添加反向区域配置
  ⑥:复制,配置反向区域数据文件
  ⑦:在客户端的域名解析配置文件中添加 DNS 服务器地址
  ⑧:重启服务,并进行解析测试

 

 

 

 

1. BIND 域名服务概述

 

    BIND可以运行在大多数Linux/Unix主机中,是应用最广泛的DNS服务程序。

    各软件包的主要作用:

  • bind:提供了域名服务的主要程序及相关文件;
  • bind-utils:提供了对 DNS 服务器的测试工具,如 nslookup 等;
  • bind-libs:提供了 bind、bind-utils 需要使用的函数库;
  • bind-chroot:提供了一个伪装的根目录(将 /var/named/chroot/ 文件夹作为 BIND 的根目录),提高安全性。


2. DNS 系统概述

    域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 UDP 端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。


  2.1 DNS 的作用

    (1)正向解析:根据域名查找对应的IP地址;
    (2)反向解析:根据IP地址查看对应的域名。


  2.2 DNS 分布式数据结构图解


  2.3 域名结构

 

    (1)域名结构示例:

  • 例:http: //www. sina. com. cn./

    意为:http://(主机名).(子域).(二级域).(顶级域 或 根域)/


  2.4 域名结构分析

 

    树状结构最顶层称为根域,用 “." 表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如:

    将 com 域的解析权委派给 com 域服务器,以后但凡根服务器收到以 com 结尾的域名解析请求,都会转发给 com 域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机;

 

    (1)根域:处于域名结构的最顶端,一般用一个“ . ” 表示;
    (2)顶级域:一般代表一种类型的组织机构或者国家地区,如:

  • .net(网络供应商)
  • .com(工商企业)
  • .org(团体组织)
  • .edu(教育机构)
  • .gov(政府部门)
  • .cn(中国国家域名)

    (2)二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,顶级域名下面设置的是二级域名,如:

  • .com.cn
  • .net.cn
  • .edu.cn

    (3)子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名;
    (4)主机:主机位于域名结构的最下层,就是一台具体的计算机,如:

    www、mail 都是具体的计算机名字,可以用 www.baidu.com.cn. 来表示,这种方式称为 FQDN(完全合格域名),也是这台主机在域名中的全名。


  2.5 DNS 服务器的类型

 

    (1)主域名服务器
    负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改;构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

    (2)从域名服务器
    起备用域名服务器的作用,当主域名服务器出现故障、关闭或者负责过重时,从域名服务器作为备份服务器提供域名解析服务。从域名服务器提供的解析结果不是由自已决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

    (3)缓存域名服务器
    缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

    (4)转发域名服务器
    负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。


  2.6 DNS 域名解析过程

 

    客户端发出请求后,首先找到根域服务器,根域服务器会委派给顶级域服务器,顶级域服务器再委派给二级域服务器,二级域服务器再委派给子域服务器,子域服务器根据主机名的映射解析,解析出对应的IP地址,返还给客户端,客户端再使用IP地址进行访问。

    (1)递归查询
    递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

    (2)迭代查询
    DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。


3. 使用 BIND 构建域名服务器
  3.1 BIND 相关软件包

  • bind-9.9.4-37.el7.x86_ 64.rpm
  • bind-utils-9.9.4-37.el7.x86_64.rpm
  • bind-libs-9.9.4-37.el7 .x86_ 64.rpm
  • bind-chroot-9.9.4-37.el7.x8664.rpm


  3.2 BIND 服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 默认监听端口:53
  • 主配置文件:/etc/named.conf


  3.3 BIND 服务控制

  • 命令行格式:
  • systemctl [status|startlstoplrestart] named.service


4. 构建域名服务器:正向解析
  ①:安装 BIND 软件包,查看需要修改的配置文件所在路径

 


  ②:修改主配置文件


  ③:修改区域配置文件,添加正向区域配置


  ④:配置正向区域数据文件

 

 


  ⑤:关闭防火墙,启动服务


  ⑥:在 /etc/resolv.conf 中修改域名地址


  ⑦:DNS 域名解析测试


  ⑧:连接,并在 win 10 中进行 DNS 域名解析测试

 

 


5. 构建域名服务器:反向解析
  ①:安装 BIND 软件包,查看需要修改的配置文件所在路径
  ②:修改主配置文件
  ③:修改区域配置文件,添加反向区域配置
  ④:配置反向区域数据文件
  ⑤:修改 /etc/named.rfc1912.zones 配置文件,添加反向区域配置


  ⑥:复制,配置反向区域数据文件

 


  ⑦:在客户端的域名解析配置文件中添加 DNS 服务器地址


  ⑧:重启服务,并进行解析测试

 

 

 

 

 

-

 

这篇关于Blog.031 Linux 中的 DNS 域名解析服务①的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!