RHCE笔记-DNS服务器

news2024/11/8 6:38:44

一.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 DNS
        8.8.4.4;
    };
    dnssec-enable yes;        # 启用DNSSEC
    dnssec-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.coloradmin.cn/o/2228621.html

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

相关文章

自研小程序-心情追忆

在近期从繁忙的工作中暂时抽身之后,我决定利用这段宝贵的时间来保持我的Java技能不致生疏,并通过一个个人项目来探索人工智能的魅力。 我在Hugging Face(国内镜像站点:HF-Mirror)上发现了一个关于情感分析的练习项目&…

Admin.NET源码学习(5:swagger使用浅析)

直接启动Admin.NET.Web.Entry项目,会弹出swagger登录验证框,虽然采用Furion简化了项目加载过程及配置,但是学习源码过程就比较恼火,很多设置及功能搞不清楚到低是怎么启用的,本文记录学习Admin.NET项目中swagger的设置…

Pytorch学习--神经网络--线性层及其他层

一、正则化层 torch.nn.BatchNorm2d torch.nn.BatchNorm2d(num_features, eps1e-05, momentum0.1, affineTrue, track_running_statsTrue, deviceNone, dtypeNone)正则化的意义: 加速训练收敛:在每一层网络的输入上执行批量归一化可以保持数据的分布稳…

SSH免密钥登录

1: 用 ssh-key-gen 在本地主机上创建公钥和密钥 winr cmd 打开控制台 ssh-keygen -t rsa 一直按enter 2: 用 ssh-copy-id 把公钥复制到远程主机上 user 是用户名 remote_host是远程主机 ssh-copy-id -i ~/.ssh/id_rsa.pub userremote_host 3: 直接登录远程主机&#xf…

推荐一款优秀的pdf编辑器:Ashampoo PDF Pro

Ashampoo PDF Pro是管理和编辑 PDF 文档的完整解决方案。程序拥有您创建、转换、编辑和保护文档所需的一切功能。根据需要可以创建特定大小的文档,跨设备可读,还可以保护文件。现在您还能像编辑Word文档一样编辑PDF! 软件特点 轻松处理文字 如 Microso…

使用C语言实现经典贪吃蛇游戏

一、项目概述 我们的目标是创建一个基本的贪吃蛇游戏,它具有以下功能: 蛇能够根据玩家的键盘输入改变方向。 当蛇吃到食物时,蛇的长度增加,同时分数增加。 蛇可以在窗口边缘“穿墙”移动。 游戏界面包括一个蛇和一个随机出现…

Spring Boot Configuration和AutoConfiguration加载逻辑和加载顺序调整

在spring中, AutoConfiguration也是一个种Configuration,只是AutoConfiguration是不能使用proxy的。 而且spring对于两者的加载顺序也不是一视同仁,是有顺序的。spring会先加载SpringBootApplication可达的且标注了Configuration的类&#x…

算法速刷(LeetCode)(160.相交链表)

个人思路: 笨蛋做法,但是好用 代码如下 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution …

面试记录(1)

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

MATLAB下的四个模型的IMM例程(CV、CT左转、CT右转、CA四个模型),附源代码可复制

文章目录 基于IMM算法的目标跟踪概述源代码运行结果代码结构与功能1. 初始化2. 仿真参数设置3. 模型参数设置4. 生成量测数据5. IMM算法初始化6. IMM迭代7. 绘图8. 辅助函数总结基于IMM算法的目标跟踪 概述 该MATLAB代码实现了基于交互式多模型(IMM)算法的目标跟踪,旨在估…

Jmeter实际应用

环境准备 JDK1.8Jmeter 5.6.3 下载地址Jmeter 插件 下载地址 放到lib/ext下 常用命令 # 启动 sh jmeter# 集群模式下启动节点,不启动用不了集群 sh jmeter-server#生成ssl需要的证书, 这里会要求输入个密码,是要在jmeter中用的 keytool -import -ali…

使用 Flask 实现简单的登录注册功能

目录 1. 引言 2. 环境准备 3. 数据库设置 4. Flask 应用基本配置 5. 实现用户注册 6. 实现用户登录 7. 路由配置 8. 创建前端页面 9. 结论 1. 引言 在这篇文章中,我们将使用 Flask 框架创建一个简单的登录和注册系统。Flask 是一个轻量级的 Python Web 框架…

SystemC学习(3)— APB_SRAM的建模与测试

SystemC学习(3)— APB_SRAM的建模与测试 一、前言 二、APB_SRAM建模 编写APB_SRAM模型文件apb_sram.h文件如下所示: #ifndef __APB_SRAM_H #define __APB_SRAM_H#include "systemc.h"const int ADDR_SIZE 32; const int DATA_…

新兴斗篷cloak技术,你了解吗?

随着互联网技术的飞速发展,网络营销领域也经历了翻天覆地的变革。 从最早的网络横幅广告到如今主流的搜索引擎和社交媒体营销,广告形式变得越来越多样。 其中,搜索引擎广告一直以其精准投放而备受青睐,但近年来,一项名…

UG NX二次开发(C#)-计算圆柱面与其他平面的夹角

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、首先创建一个三维模型3、 源代码4、调用代码1、前言 在QQ群中,有群友提问了如何判断圆柱面与某一平面是否垂直,我这里以案例的形式计算圆柱面主轴矢量与平面法矢的夹角,如果夹角为0,…

基于卷积神经网络的棉花病虫害识别与防治系统,resnet50,mobilenet模型【pytorch框架+python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示: 棉花病害识别与防治系统,卷积神经网络,resnet50,mobilenet【pytorch框架,python源码】_哔哩哔哩_bilibili (一)简介 基于卷积…

成都世运会志愿者招募报名流程及证件照制作方法

成都世运会志愿者招募正在如火如荼地进行中,许多热心公益的青年们纷纷报名参与。本文将详细介绍如何通过官方渠道报名,并使用手机来自行制作符合要求的4:5比例的白底证件照。 一、志愿者报名流程概述首先,报名成都世运会志愿者需要通过官方指…

Java 输入/输出(I/O)操作(10/30)

目录 Java 输入/输出(I/O)操作 1. Java I/O 类体系结构 2. 文件读写操作 2.1 使用 FileInputStream 和 FileOutputStream 进行字节流读写 2.2 使用 FileReader 和 FileWriter 进行字符流读写 3. 缓冲流的使用 3.1 使用 BufferedReader 和 Buffere…

Unity XR Interaction Toolkit 开发教程(1):OpenXR 与 XRI 概述【3.0 以上版本】

文章目录 📕Unity XR 开发架构🔍底层插件(对接硬件)🔍高层 SDK(面向应用交互层) 📕OpenXR📕XR Interaction Toolkit🔍特点🔍XRI 能够实现的交互类…

Nginx防盗链配置

1. 什么是盗链? 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供…