RHCE笔记-DNS服务器

一.DNS简介

        DNS(域名系统)是一种互联网服务,负责将我们熟悉的域名(比如 www.example.com)转换为计算机能理解的IP地址(比如 192.0.2.1)。这样,当你在浏览器中输入网址时,计算机能够找到对应的网站。

DNS服务的工作原理

  1. 输入网址:你在浏览器中输入一个网址。
  2. 查询本地缓存:计算机会先检查自己是否有这个网址的IP地址存储在本地缓存中。
  3. 向DNS服务器请求:如果没有找到,计算机会向DNS服务器发送请求。
  4. 递归查询:DNS服务器会帮你查找这个网址对应的IP地址,可能会向其他服务器询问,直到找到为止。
  5. 返回结果:一旦找到IP地址,DNS服务器将这个地址返回给你,浏览器再根据这个地址访问网站。

DNS服务器的角色

  • 根服务器:负责管理互联网的顶层域名,比如.com、.org等。
  • TLD服务器:管理某一类域名的服务器,比如所有的.com域名。
  • 权威DNS服务器:存储某个特定域名的详细信息(比如网站的IP地址)。

总结

DNS服务就像一个电话簿,将人类易懂的域名和计算机使用的IP地址关联起来,确保你可以快速访问想要的网站。DNS服务器则是提供这个服务的“助手”,帮助完成查询和转换的工作。

二.域名结构

        

        域名是以根开始的倒树状结构 ,以点为分割符,从上往下分别是:

国家顶级域名:中国(cn),英国(uk),mil(美国军事),gov(美国政府),edu(教育),org(开源非盈利组织),net(网络相关),com(公司企业),aero(航空航天相关),biz(商业和商业活动),info(信息相关),coop(合作社的身份识别).

基础结构域名:唯一arpa,用于反向解析.

域名服务器分类

        根域名服务器:ipv4全球13台,1台主根服务器(美国),12台辅根服务器,9台美国,欧洲英国,瑞典,亚洲日本各一台.

        顶级域名服务器:管理在该顶级域名服务器注册的2级域名

        权限域名服务器:负责一个区的域名服务器

        本地域名服务器:负责接收查询请求报文

        主从DNS服务器:主服务器定期复制DNS记录到从服务器

        缓存服务器:不解析域名,只缓存域名解析结果

DNS服务解析过程

1. 用户输入域名

当用户在浏览器中输入一个域名(例如:www.example.com)并按下回车键,浏览器会开始查找该域名对应的IP地址。

2. 检查本地缓存
  • 浏览器缓存:首先,浏览器会检查其本地缓存中是否已经存储了该域名的IP地址。如果有,直接使用该地址进行连接。
  • 操作系统缓存:如果浏览器没有缓存,操作系统也会检查其DNS缓存。
3. 查询DNS服务器

如果本地缓存没有找到,浏览器将向DNS解析器(通常由用户的互联网服务提供商提供)发送请求。

4. DNS解析器

DNS解析器接收到请求后,会进行以下步骤:

  • 根域名服务器查询:首先,它向根域名服务器发送查询请求,根服务器会指向相应的顶级域名服务器(TLD服务器),例如“.com”域名的TLD服务器。
5. TLD服务器查询
  • 获取权威DNS服务器:DNS解析器接下来向TLD服务器询问域名(例如,example.com)对应的权威DNS服务器的地址,TLD服务器返回该域名的权威DNS服务器的信息。
6. 权威DNS服务器查询
  • 最终解析:DNS解析器向权威DNS服务器发送请求,以获取域名的实际IP地址。权威DNS服务器会返回该域名对应的IP地址。
7. 返回结果
  • 返回给用户的浏览器:DNS解析器将获得的IP地址返回给用户的浏览器。
8. 建立连接
  • 访问目标网站:浏览器使用该IP地址与目标服务器建立连接,开始请求网页内容。
9. 缓存结果
  • 缓存机制:为了提高效率,DNS解析器和操作系统会将解析结果缓存一段时间(根据TTL设置),以便后续请求时可以快速响应。
10. 完成请求
  • 网页加载:最终,浏览器加载网页,用户可以查看请求的内容。

三.DNS配置    

        DNS服务器的配置文件通常包含了域名解析所需的各种信息。不同类型的DNS服务器(如BIND、dnsmasq等)有不同的配置文件格式。以下是以BIND(Berkeley Internet Name Domain)为例的DNS服务器配置文件详解:

1. BIND基本结构

BIND的主要配置文件通常是named.conf,这个文件定义了DNS服务器的全局选项、区域(zone)和转发器(forwarders)等信息。

主要配置文件示例
options {directory "/var/named";  # DNS数据文件存放目录allow-query { any; };     # 允许所有查询recursion yes;            # 启用递归查询forwarders {              # 指定转发器8.8.8.8;              # Google DNS8.8.4.4;};dnssec-enable yes;        # 启用DNSSECdnssec-validation auto;   # 自动验证DNSSEC
};

2. 区域配置

区域配置用于定义DNS服务器管理的域名以及它们的记录。区域通常在named.conf中定义,也可以放在单独的文件中。

示例区域配置
zone "example.com" {type master;  # 主DNS服务器file "example.com.db";  # 区域数据文件
};zone "0.168.192.in-addr.arpa" {  # 反向查找区域type master;file "192.168.0.db";
};

3. 区域数据文件

区域数据文件包含域名及其对应的资源记录(RR)。每条记录的格式通常如下:

$TTL 86400  ; 默认生存时间为86400秒(1天)
@   IN  SOA  ns1.example.com. admin.example.com. (2024010101 ; Serial #代表新旧程度3600       ; Refresh #更新频率1800       ; Retry #失败重传时间604800     ; Expire #失败失效时间86400 )    ; Negative Cache TTL #有效期; Name Server Records
@   IN  NS   ns1.example.com.
@   IN  NS   ns2.example.com.; A Records
@   IN  A    192.168.0.1
www IN  A    192.168.0.1; CNAME Records
mail IN CNAME www
记录类型详解
  • SOA (Start of Authority):定义区域的起始权威信息,包括主DNS、管理员邮箱、序列号等。
  • NS (Name Server):定义域名使用的DNS服务器。
  • A (Address):将域名映射到IPv4地址。
  • AAAA:将域名映射到IPv6地址。
  • CNAME (Canonical Name):将一个域名别名映射到另一个真实的域名。

4. 高级配置

  • ACL(Access Control Lists):用于控制哪些IP可以查询或更新DNS记录。
acl "trusted" {192.168.0.0/24;  # 允许本地网络10.0.0.0/8;      # 允许另一个网络
};options {allow-query { trusted; };  # 仅允许受信任的网络查询
};
  • 视图(Views):根据来源IP提供不同的DNS响应。
view "internal" {match-clients { 192.168.0.0/24; };zone "example.com" { type master; file "internal/example.com.db"; };
};view "external" {match-clients { any; };zone "example.com" { type master; file "external/example.com.db"; };
};

5. 重启DNS服务

在修改配置文件后,通常需要重启BIND服务以使更改生效:

sudo systemctl restart named

6.测试工具

host

host 是一个简单的 DNS 查询工具,用于查找主机名或 IP 地址。

基本用法

host [选项] [主机名|IP地址]

示例

  • 查询域名的 IP 地址:
    host example.com
  • 查询指定 DNS 服务器:
    host example.com 8.8.8.8

2. nslookup

nslookup 是一个交互式和非交互式的 DNS 查询工具,可以用于查找 DNS 记录。

基本用法

nslookup [主机名|IP地址] [DNS服务器]

示例

  • 查询域名的 DNS 记录:
    nslookup example.com
  • 查询特定类型的记录(例如 MX 记录):
    nslookup -query=mx example.com

3. dig

dig(Domain Information Groper)是一个更为强大的 DNS 查询工具,提供详细的查询信息。

基本用法

dig [选项] [主机名] [记录类型] @DNS服务器

示例

  • 查询域名的 A 记录:
    dig example.com
  • 查询特定类型的记录(如 MX 记录):
    dig example.com MX
  • 使用特定的 DNS 服务器:
    dig @8.8.8.8 example.com

总结

  • host:简单易用,适合基本的 DNS 查询。
  • nslookup:适合交互式查询,提供更多选项。
  • dig:功能强大,适合深入分析和脚本化使用。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/994.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

高效自动化测试,引领汽车座舱新纪元——实车篇

引言 作为智能网联汽车的核心组成部分,智能座舱不仅是驾驶者与车辆互动的桥梁,更是个性化、智能化体验的源泉。实车测试作为验证智能座舱功能实现、用户体验、行车安全及法规符合性的关键环节,能够最直接地模拟真实驾驶场景,确保…

数智税务 | 大企业税务管理,即将面临哪些需求变革?

大企业税务管理,即将面临哪些需求变革? 随着“金税四期”的推进和发票电子化的发展,中国税务机关的税收征管模式逐步从传统的“经验管税”、“以票控税”转向“以数治税”的精准监管模式。这一转变既为大企业供应链加速升级带来了便利&#…

数字IC后端实现之Innovus Place跑完density爆涨案例分析

下图所示为咱们社区a7core后端训练营学员的floorplan。 数字IC后端实现 | Innovus各个阶段常用命令汇总 该学员跑placement前density是59.467%,但跑完place后density飙升到87.68%。 仔细查看place过程中的log就可以发现Density一路飙升! 数字IC后端物…

[SAP ABAP] 自定义字段提供F4帮助

在SAP系统中,F4帮助是一个强大的功能,它允许用户在输入字段值时快速搜索和选择数 我们可以通过编写代码来为自定义字段提供F4帮助 程序代码 REPORT z437_test_2024.* 自定义数据类型 TYPES: BEGIN OF ty_mara,matnr TYPE mara-matnr, " 物料编号…

c怎么与python交互

ctypes是Python的一个外部库,可以使用python语言调用已经编译好的C语言函数以及数据类型并进行数据交换等。ctypes的官方文档在https://docs.python.org/3/library/ctypes.html 1、ctypes基本数据类型映射表 2、python调用c语言的函数库 (1&#xff09…

ssm042在线云音乐系统的设计与实现+jsp(论文+源码)_kaic

摘 要 随着移动互联网时代的发展,网络的使用越来越普及,用户在获取和存储信息方面也会有激动人心的时刻。音乐也将慢慢融入人们的生活中。影响和改变我们的生活。随着当今各种流行音乐的流行,人们在日常生活中经常会用到的就是在线云音乐系统…

使用TypeORM进行数据库操作

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用TypeORM进行数据库操作 引言 TypeORM 简介 安装 TypeORM 配置 TypeORM 定义实体 连接数据库 运行项目 高级功能 事务管理 关…

【2024】强网杯

web: PyBlockly: ​ 网站是一个通过block的堆积木的形式编程,有两种数据类型以及四种函数,分别是正常运算,print输出,min和max功能,随便写一些代码,发现结果会回显出来。 ​ 再来…

使用 Qt 实现自定义罗盘控件

用 Qt 编写一个简单的罗盘控件,该控件能够动态显示方向。该控件实现了一个带有北(N)和南(S)标记的圆形罗盘面盘,具有可以根据输入角度旋转的指针。 代码功能概述 该项目定义了一个 CompassWidget 类&…

项目模块十四:HttpRequest模块

一、项目设计思路 存储HTTP请求要素,提供简单接口 二、成员变量 全部公有 string _method; // 请求方法 string _path; // 资源路径 string _version; // 协议版本 string _body; // 请求正文 smatch _matches; // 资源路径正则提取 …

NASA:全球无机气溶胶酸度的机载观测和模拟比较

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 Airborne Observations and Modeling Comparison of Global Inorganic Aerosol Acidity 全球无机气溶胶酸度的机载观测和模拟比较 简介 该数据集提供了在2006年至2017年期间收集的十一项空中观测活…

汽车零部件展|2025 第十二届广州国际汽车零部件加工技术及汽车模具展览会邀您共赏汽车行业盛会

汽车是我国国民经济的重要支柱行业,在我国国民经济中起到举足轻重的作用,也是现代高端制造业的代表。改革开放以来,我国汽车产销量保持增长态势,至 2017 年实现汽车销量 2,887.89 万辆。受到国际经济形势、居民需求下滑、国民经济…

JavaEE-多线程初阶(1)

目录 1. 线程的概念 1.1 线程是是什么 1.2 为什么要有线程 1.3 线程和进程的区别 1.4 Java的线程和操作系统线程的关系 2. 第一个多线程程序 2.1 Hello Thread 2.2 使用jconsole观察线程 3. 创建线程 3.1 继承Thread类 3.2 实现Runnable接口 1. 线程的概念 1.1 线程…

[FE] React 初窥门径(四):React 组件的加载过程(render 阶段)

1. 回顾 前几篇文章中,我们采用了 VSCode 插件 CodeTour 来记录代码的执行过程, 并把相关的数据 .tour/ 放到了 github: thzt/react-tour 中。 截止到本文为之,我们总共记录了这些 code-tour, .tour/ ├── 2. 构建过程.tour ├─…

ASP .NET CORE 6 在项目中集成WatchDog开源项目

概念 WatchDog是一个开源的项目,可以实现对.Net 应用程序和API实现实时应用日志和性能监控平台。可以实现实时记录和查看应用程序中的消息、事件、HTTP请求和响应,以及运行时捕获的异常,有效帮助开发人员去排查应用异常,提升开发效…

Chrome浏览器音/视频无法自动播放

背景:由于google的一些制度,我们在写html项目时会发现刷新页面时无法自动播放audio和video,即使你添加了autoplay属性也无济于事, 但是IE和Edge浏览器是可以自动播放的。 解决方案: 本人在网上搜寻了很多方法&#xf…

WPF自定义日历控件Calendar 的方法

推荐下载地址 https://www.haolizi.net/example/view_2107.html <UserControl.Resources><local1:DayConverter x:Key"DayConverter"/><!--导入转换器--><Style x:Key"CalendarStyle1"TargetType"{x:Type Calendar}">&…

TOEIC 词汇专题:旅游计划篇

TOEIC 词汇专题&#xff1a;旅游计划篇 制定旅行计划时&#xff0c;尤其是跨国旅游&#xff0c;会涉及到很多独特的英语词汇。以下是与“旅游计划”相关的托业词汇&#xff0c;帮助你更加自如地规划行程。 1. 旅行服务和优惠 出发前了解一下与服务和优惠相关的常用词汇&#…

Java集合框架面试指南

Java集合框架面试指南 文章目录 Java集合框架面试指南ArrayList特点&#xff1a;LinkedList特点&#xff1a;ArrayDeque特点&#xff1a;PriorityQueue特点&#xff1a;HashMap特点&#xff1a;HashSet特点&#xff1a;LinkedHashMap特点LinkedHashMap经典用法 TreeMap特点Conc…

QEMU学习之路(4)— Xilinx开源项目systemctlm-cosim-demo安装与使用

QEMU学习之路&#xff08;4&#xff09;— Xilinx开源项目systemctlm-cosim-demo安装与使用 一、前言 项目说明&#xff1a;https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/862421112/Co-simulation 操作系统&#xff1a;Ubuntu 20.04.6 LTS gcc版本&#xff1a;9.4…