Linux之DNS域名解析概述

本文详细介绍了Linux的DNS域名解析系统,包括DNS域名结构、服务器类型、正向和反向解析配置,以及主从DNS解析和DNS分离解析的实验。通过理解DNS的工作原理和配置方法,读者可以掌握如何实现域名到IP地址的转换和故障时的备份策略。
摘要由CSDN通过智能技术生成


前言

 思考:为什么输入 www.baidu.com 就能 转换成百度服务器的IP地址呢?

一、DNS 域名解析系统

DNS 介绍:

  • DNS定义:将 域名 和 IP地址 相互映射的一个分布式数据库,能够使人更方便地访问互联网。

  • DNS使用端口:DNS服务使用 TCP 和 UDP 的 53 端口, TCP的 53 端口用于 连接DNS服务器,UDP的 53 端口用于 解析DNS;

  • DNS 的每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符;

  • DNS解析方式:正向解析:根据域名查找对应的IP地址;反向解析:根据IP地址查找对应的域名。

  • DNS查询方式:递归查询 和 迭代查询;主机向本地域名服务器的查询一般都是采用递归查询;本地域名服务器向根域名服务器的查询的迭代查询。

  • 工作原理:先查本地服务器:先从本地缓存中读取主机域名对应关系 → 本地 /etc/hosts(地址映射) → /etc/resolv.conf (系统自带DNS 客户端的配置文件)。如果找不到对应关系,再从根域名服务器中查询,看用的什么顶级域,委派给它,再去看用户什么二级域 . . . 子域 . . .最后才会通过主机名找到IP地址。

应用场景:

 如果有一台工作中的DNS服务器,现在新增了一台用来做备用服务器(从服务器),想当主服务器故障时,从服务器能顶替工作,可是 主服务器在工作中不能重启网卡,不能修改IP地址,该如何配置主从服务器呢?

 我们一般通过修改DNS的方式,把主机名和新的IP地址进行绑定,主机名还是原来的主机名,生产环境中都是通过 主机名 进行管理的

二、DNS的域名结构

DNS的域名是树状结构:

https://www.baidu.com.cn./

https://主机名.子域.二级域.顶级域 .(根域)/

1、根域:位于树状结构最顶层,用 “.” 表示

2、顶级域名:一般代表一种类型的组织机构或国家地区;
如: .net(网络供应商)、.gov(政府部门)、.cn(中国国家域名)

3、二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家部门统一管理;如:.com.cn、.edu.cn;

4、子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名;

5、主机名:主机位于域名空间最下层,是一台具体的计算机。如 www、mail

在这里插入图片描述

解析成IP地址过程:

首先从 /etc/hosts 文件中去查找本地域名服务器,查看 域名 和 IP的对应关系;

 如果没办法解析,则首先去找根域服务器,看用的什么顶级域,委派给它,再去看用户什么二级域 . . . 子域 . . .
最终通过主机名找到IP地址。

三、DNS服务器类型

主域名服务器:

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

从域名服务器:

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

缓存域名服务器:

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

转发域名服务器:

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

[ Linux想要配置DNS 需要安装 BIND 软件包 ]

yum install -y bind
named  BIND 软件包的实际应用程序

在这里插入图片描述

四、配置 正向DNS解析

正向解析是将 域名 解析成 IP地址,使用场景最多

4.1 配置步骤与注释

首先要安装BIND软件包

#查询需要配置的文件:
rpm -qc bind      #查询bind 相关 软件配置文件所在路径
/etc/named.conf   #主配置文件
/etc/named.rfc1912.zones     #区域配置文件
/var/named/named.localhost   #区域模板数据配置文件, 使用的话需修改成 对应的file文件名

配置完成后需要,重启三件套:
- 关闭防火墙:`systemctl stop firewalld.service`
- 关闭selinux防火墙:`setenforce 0`
- 重启DNS应用程序 named:`systemctl restart named`

#如果服务启动失败,可以查看日志文件来排查错误
tail -f /var/log/messages
#如果服务启动卡住,可以执行下面命令解决
rndc-confgen -r /dev/urandom -a

主配置文件 /etc/named.conf 格式介绍(BIND 对配置的格式特别严格):

vim /etc/named.conf

options {
   
  listen-on poet 53 {
    192.168.1.10; };  #提供DNS服务的IP地址,监听53端口,也可用any代表所有,分号不能少
# listen-on-v6 port 53 {
    : :1; };          #ipv6行如不使用可以注释掉或者删除
  directory  "/var/named";                 #区域数据文件的默认存放位 
  dump-file  "/var/named/data/cache_dump.db";   #域名缓存数据库文件的位置
  statistics-file "/var/named/data/named_stats.txt";    #状态统计文件的位置
  memstatistics-file "/var/named/data/named_mem_stats.txt";   #内存统计文件的位置
  allow-query {
    any; }</
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值