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.mzph.cn/diannao/58522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用QGIS工具手动绘制线轨迹并生成地理信息geojson文件

前端想要获得一个完整的shp文件或者geojson的地理信息文件,可以利用QGIS工具手动绘制你想要的数据点位,然后导出图层生成对应的文件即可。 1、新建临时图层 选择线图层,点击ok创建临时图层。 2、绘制线图层 在工具栏中选择添加线要素&#…

关于IO多路复用

先说总结 IO 多路复用的概念可以从网络 IO 的阻塞模型谈起。早期网络编程通常依赖阻塞的 read 函数读取数据,这会导致线程被阻塞,无法处理其他任务。为避免线程阻塞,常使用多线程来处理新的客户端连接。然而,随着客户端连接数的增…

面试记录(1)

java中的抽象类和接口的区别: 相同点 (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 不同点 1.关键字不同: ​ ① 继承抽象类的关键字是extends,而实现接口的关键字是implements;…

【rust实战】rust博客系统3_项目目录结构及文件目录引入

项目中如何文件目录分层 blog Cargo.toml --依赖项 src main.rs --主文件 handlers --处理用户请求的函数 user_handler.rs mod.rs models --定义用户模型 user.rs mod.rs routes --定义路由 user_ro…

构建您自己的 RAG 应用程序:使用 Ollama、Python 和 ChromaDB 在本地设置 LLM 的分步指南

在数据隐私至关重要的时代,建立自己的本地语言模型 (LLM) 为公司和个人都提供了至关重要的解决方案。本教程旨在指导您完成使用 Ollama、Python 3 和 ChromaDB 创建自定义聊天机器人的过程,所有这些机器人都托管在您的系统本地。以…

聊聊Web3D 发展趋势

随着 Web 技术的不断演进,Web3D 正逐渐成为各行业数字化的重要方向。Web3D 是指在网页中展示 3D 内容的技术集合。近年来,由于 WebGL、WebGPU 等技术的发展,3D 内容已经能够直接在浏览器中渲染,为用户提供更加沉浸、互动的体验。以…

同一个页面击穿element样式后,会影响同样组件的使用

问题:同一个页面里,我用deep击穿第一个dialog后,怎么不影响第二个dialog。 解决:使用更具体的选择器 给新的对话框一个特定的类名或者ID,然后为这个类名或ID下的 .el-dialog 使用 :deep() 选择器。这样,样式…

电科金仓(人大金仓)更新授权文件(致命错误: XX000: License file expired.)

问题:电科金仓(人大金仓)数据库链接异常,重启失败,查看日志如下: 致命错误: XX000: License file expired. 位置: PostmasterMain, postmaster.c:725 解决方法: 一、下载授权文件 根据安装版本在官网下载授权文件(电科金仓-成为世界卓越的数据库产品与服务提供商)…

阿里云ECS访问GitHub解决方案

使用阿里云 ECS 访问 Github 和拉取代码时,速度非常慢,等于不可用。 本解决方案适用于墙内所有云服务器。 修改系统hosts方式 阻碍 GitHub 访问的一般手段是 DNS 污染,可以通过修改hosts的方式暂时缓解。 访问 ipaddress.com,获取github.co…

uniapp的video视频属性打包app后层级过高

问题:在使用uniapp开发APP时,使用video标签显示视频发现H5可以正常展示,但是打包到APP后,它的层级过高,把底部导航都盖住了。 官网说明:uni-app官网 官网给了cover-view组件或plus.nativeObj.view、subNVue…

考研资料分享系统的设计与实现(lw+演示+源码+运行)

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱,出错率高,信息安全…

[perl] 数组与哈希

数组变量以 符号开始,元素放在括号内 简单举例如下 #!/usr/bin/perl names ("a1", "a2", "a3");print "\$names[0] $names[0]\n"; print "size: ",scalar names,"\n";$new_names shift(names); …

项目符合行业安全标准的必要步骤与实用建议

要保障项目符合行业安全标准,关键在于建立全面的安全管理体系、定期进行风险评估、持续培训员工,以及确保合规性文件和审核流程完整。例如,通过建立合规文件和审核流程,可以系统性地跟踪项目的安全实践和合规性,使安全…

小米15和小米15 Pro区别没那么大,但也得看准再下手

小米15和小米15 Pro区别大总结 接下来,我们将从关键差别等多个方面来分析两个机型的具体区别(Ps:只聊不一样的,没提到就是一样的): 关键差别 • 屏幕素质:小米15采用的是6.36英寸1.5K&#xf…

【科研绘图】3DMAX管状图表生成插件TubeChart使用方法

3DMAX管状图表生成插件TubeChart,一款用于制作3D管状图表的工具。可以自定义切片的数量以及随机或指定切片颜色。 【版本要求】 3dMax 2008及更高版本 【安装方法】 TubeChart插件无需安装,使用时直接拖动插件脚本文件到3dMax视口中打开即可&#xff0…

【Python爬虫实战】络爬虫完整指南:从TCP/IP协议到爬虫实践

网络爬虫完整指南:从TCP/IP协议到爬虫实践 什么是TCP/IP协议? TCP/IP协议(传输控制协议/互联网协议) 是互联网通信的核心协议套件,它定义了设备在互联网上如何通信的规则和方式。TCP/IP协议由多个层组成,其…

day05|计算机网络重难点之 HTTPS和HTTP的区别、HTTPS的工作原理(HTTPS建立连接的过程)、TCP和UDP的区别

day05|计算机网络重难点之 HTTPS和HTTP的区别、HTTPS的工作原理(HTTPS建立连接的过程)、TCP和UDP的区别 11.HTTPS和HTTP有哪些区别12.HTTPS的工作原理(HTTPS建立连接的过程)13.TCP和UDP的区别 11.HTTPS和HTTP有哪些区别 两者主要区别在于 安全性 和 数据…

力扣hot100-->递归/回溯

目录 递归/回溯 1. 17. 电话号码的字母组合 2. 22. 括号生成 3. 39. 组合总和 4. 46. 全排列 5. 78. 子集 递归/回溯 1. 17. 电话号码的字母组合 中等 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到…

服务器端请求微信登陆授权接口一直超时问题

环境: 服务器系统:centos 7.2 站点环境:nginx 遇到问题: 1、微信小程序端请求服务器登陆接口,服务端收到请求后向微信接口服务器请求数据,请求成功后返回数据给客户端,但是请求微信接口服务器经…

100种算法【Python版】第22篇——Dijkstra算法

本文目录 1 算法原理2 计算迷宫路径的步骤3 python代码:迷宫路径4 算法应用1 算法原理 Dijkstra算法由计算机科学家艾兹赫尔迪科斯彻(Edsger W. Dijkstra)于1956年提出,并于1959年发表。迪科斯彻在荷兰阿姆斯特丹的数学中心开发了这一算法,以解决最短路径问题。算法的设计…