Linux DNS服務解析原理與搭建

一、什么是DNS

DNS 是域名服務 (Domain Name System) 的縮寫,它是由解析器和域名服務器組成的。
域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,
并具有將域名轉換為IP地址功能的服務器。
域名必須對應一個IP地址,而IP地址不一定有域名。
域名服務器為客戶機/服務器模式中的服務器方,它主要有兩種形式:主服務器和轉發服務器。
將域名映射為IP地址的過程就稱為"域名解析"。
在Internet上域名與IP地址之間是一對一(或者多對一)的,
也可采用DNS輪循實現一對多,域名雖然便于人們記憶,
但機器之間只認IP地址,它們之間的轉換工作稱為域名解析,
域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器。
DNS 命名用于 Internet等 TCP/IP網絡中,通過用戶友好的名稱查找計算機和服務。
當用戶在應用程序中輸入 DNS 名稱時,
DNS 服務可以將此名稱解析為與之相關的其他信息,如 IP 地址。
因為,你在上網時輸入的網址,是通過域名解析系統解析找到了相對應的IP地址,
這樣才能上網。其實,域名的最終指向是IP

二、域名的規則

域名空間結構:【例:】www.baidu.com.
根域:com后面的用"."表示
頂級域:頂級域分為組織域和國家或地區域。
組織域采用3個字符代號,如.com .edu .gov
國家或地區域,采用兩個字符代號。如.cn .jp
二級域:二級域注冊到個人、組織或者公司名稱,如baidu、taobao等
主機名稱:主機名稱處于域名空間的最底層,主機名與上述各級域名結合構成FQND(完全合格域名),如www。
注意:每個域用一個點號“.”分開

三、DNS服務的作用

1.核心作用:實現域名與 IP 地址的雙向翻譯

【例】用戶在瀏覽器輸入 www.baidu.com,DNS 服務器將其解析為百度服務器的 IP 地址(如 14.215.177.38),從而建立網絡連接;網絡設備(如防火墻、服務器)通過 IP 地址反查域名,用于日志記錄、訪問控制或故障排查(如判斷某個 IP 是否屬于可信域名)。
擴展作用:支撐網絡服務的高效與穩定
【例】實現負載均衡與流量分配;提高服務冗余與高可用性;提高網絡安全與訪問控制
四、域名查詢的過程
DNS查詢類別:
遞歸查詢:發生在客戶端和DNS服務器之間
迭代查詢:發送在DNS服務器和DNS服務器之間
DNS解析方式:
正向解析:將FQDN解析為對應的IP
反向解析:將IP解析為對應的FQDN

域名查詢流程簡化

  1. 用戶輸入域名 → 檢查本地緩存(瀏覽器 / 系統 /hosts);
  2. 無結果 → 向本地 DNS 服務器查詢;
  3. 本地 DNS 服務器無緩存 → 依次查詢根服務器 → 頂級域名服務器 → 權威域名服務器;
  4. 獲取 IP 地址 → 返回給用戶并緩存 → 建立連接。

四.DNS重要的配置文件及目錄解釋

/etc/hosts 本地解析配置文件
/etc/resolv.conf 客戶端的DNS指向
named DNS服務名稱
bind,bind-chroot DNS安裝軟件包
/var/named DNS的家目錄
/etc/named.conf 映射的DNS主配置文件
/var/named/chroot/etc/named.rfc1912.zones 記錄DNS正向和反向的全局解析配置文件
/var/named/named.localhost 正向解析的配置文件模板
/var/named/named.empty 反向解析的配置文件模板
/etc/named.conf 映射的DNS主配置文件
/var/named/chroot/etc/named.rfc1912.zones全局解析配置文件

五,DNS 服務器類型(主 DNS 與輔助 DNS)

主 DNS 服務器(Primary/Authoritative DNS)
定義:負責維護特定域名區域(Zone)的原始數據,是該區域的權威數據源。
權限:可直接修改域名記錄(如 A、MX、CNAME 等),并生成更新序列號(Serial)。
存儲:區域文件存儲在本地(如 /var/named/example.com.db)。
輔助 DNS 服務器(Secondary DNS)
定義:從主 DNS 服務器同步區域數據,提供冗余備份和負載分擔。
權限:只讀,無法直接修改記錄,需通過主 DNS 更新。
同步機制:通過 AXFR/IXFR 協議定期檢查主 DNS 的序列號,發現更新時拉取全量或增量數據
定義域和網段的映射關系分為:正向解析(FQDN → IP)和 反向解析(IP → FQDN)

六、使用bind方式搭建主DNS服務器

目標:通過配置我們可以將192.168.100.10和ycy2.example.com相互轉換


1.配置本地yum倉庫

掛載yum倉庫
mount /dev/cdrom /mnt/
配置主DNS服務器
安裝bind、bind-chroot軟件
yum -y install bind bind-chroot

2.進入vim /etc/named.conf,編輯DNS服務器主配置文件

3. 配置區域文件(/etc/named.rfc1912.zones)

區域文件定義正向和反向解析的 “區域” 規則,指定解析文件路徑:
##反向解析全局配置文件
zone "localhost.localdomain" IN {type master;file "named.localhost";allow-update { none; };
};zone "localhost" IN {             ##將這五行復制粘貼到末尾type master;file "named.localhost";allow-update { none; };
};
##反向解析全局配置文件zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {type master;file "named.loopback";allow-update { none; };
};zone "1.0.0.127.in-addr.arpa" IN {type master;file "named.loopback";allow-update { none; };
};zone "0.in-addr.arpa" IN {       ##以及這五行粘貼到文件末尾type master;file "named.empty";allow-update { none; };
};##粘貼在文件末尾再去修改,因為我們一般不去修改源文件的配置zone "localhost" IN {  ##localhost修改為域名:example.com           type master;   ##表示主DNS服務器類型file "named.localhost";   ##文件名allow-update { none; };
};zone "0.in-addr.arpa" IN {       type master;file "named.empty";allow-update { none; };
};

4.編輯正向和反向解析全局配置文件

將存放正向和反向解析的配置文件模板復制一份,且保持源文件的屬性
/var/named/named.localhost 正向解析的配置文件模板
/var/named/named.empty 反向解析的配置文件模板
cd /var/named
cp -p named.localhost ycy.com
cp -p named.empty com.ycy

(1)編輯正向解析文件

vim /var/named/ycy.com

(2)編輯反向解析文件

vim /var/named/com.ycy

**$TTL 1D:**緩存周期為1天
**SOA:**起始授權記錄,就是由誰讓你做解析的,即DNS服務器
**serial:**序列號,可以隨便寫
**refresh:**定義輔助DNS刷新的時間,也就是說輔助DNS會隔多久同步主dns解析數據。
**retry:**表示重試延遲,也就是說輔助dns第一次同步數據失敗,那么就需要隔多久(就是retry來定義)來同步
**expire:**表示失效的時間,超過這個時間,輔助DNS一直同步數據失敗,那么該輔助DNS服務器將失效,則不會再去同步主DNS數據。
**minimum:**表示定義無效解析的緩存時間。
一個FQDN只能對應一個IP,但是一個IP可以對應多個FQDN。

4,重啟服務

systemctl  restart  named
systemctl  enable  named

5.配置關閉防火墻,關閉SELinux

systemctl stop firewalld		#關閉防火墻
systemctl disable firewalld		#設置開啟自啟
setenforce 0		#設置SElinux狀態為全部允許訪問模式
getenforce		#查看SWlinux狀態

6.在另一臺設備網卡配置文件中配置DNS為服務器的IP:192.168.100.10

vim /etc/sysconfig/network-scripts/ifcfg-ens33

7.驗證

nslookup

七、搭建DNS輔助服務器

除了編輯正向和反向解析全局配置文件不一樣其他都一樣

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92715.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

typecho博客設置瀏覽器標簽頁圖標icon

修改瀏覽器標簽頁圖標(favicon.ico):第1種:上傳到服務器本地目錄1、制作圖標文件:準備一張長寬比為 1:1 的圖片,將其上傳到第三方 ico 生成網站,生成后綴為.ico 的圖片文件,并將其命…

LoadBalancingSpi

本文是 Apache Ignite 中 Load Balancing SPI(負載均衡服務提供接口) 的核心說明,特別是其默認實現 RoundRobinLoadBalancingSpi 的工作原理。 它解釋了 Ignite 如何在集群中智能地將任務(Job)分配到不同的節點上執行&…

Day43--動態規劃--674. 最長連續遞增序列,300. 最長遞增子序列,718. 最長重復子數組

Day43–動態規劃–674. 最長連續遞增序列,300. 最長遞增子序列,718. 最長重復子數組 674. 最長連續遞增序列 方法:動態規劃 思路: dp[i]含義:到i這個位置(包含i)的連續遞增子序列的長度遞推…

支持 UMD 自定義組件與版本控制:從 Schema 到動態渲染

源碼 ? 支持 UMD 自定義組件與版本控制:從 Schema 到動態渲染 在低代碼平臺或可視化大屏 SDK 中,支持用戶上傳自定義組件 是一個必備能力。 而在 React 場景下,自定義組件通常以 UMD 格式 打包并暴露為全局變量。 本篇文章,我…

zookeeper3.8.4安裝以及客戶端C++api編譯

服務端直接下載編譯好的bin版本 Apache Download Mirrors C客戶端需要編譯庫文件 zookeeper 3.8.4 使用與C API編譯 - 丘貍尾 - 博客園 雜七雜八的依賴 sudo apt update sudo apt install -y \autoconf automake libtool libtool-bin m4 pkg-config gettext \cmake build-es…

使用行為樹控制機器人(一) —— 節點

文章目錄一、背景需求二、創建ActionNodes1. 功能實現1.1 頭文件定義1.2 源文件實現1.3 main文件實現1.4 my_tree.xml 實現2. 執行結果三、 執行失敗處理1. 添加嘗試次數1.1 功能實現1.2 實驗結果2. 完善異常處理2.1 多節點組合兜底2.2 實驗結果使用行為樹控制機器人(一) —— …

JavaScript Window Location

JavaScript Window Location JavaScript中的window.location對象是操作瀏覽器地址欄URL的一個非常有用的對象。它允許開發者獲取當前頁面的URL、查詢字符串、路徑等,并且可以修改它們來導航到不同的頁面。以下是關于window.location的詳細解析。 1. window.location…

Kubernetes生產環境健康檢查自動化指南

核心腳本功能: 一鍵檢查集群核心組件狀態自動化掃描節點/Pod異常存儲與網絡關鍵指標檢測風險分級輸出(紅/黃/綠標識)一、自動化巡檢腳本 (k8s-health-check.sh) #!/bin/bash # Desc: Kubernetes全維度健康檢查腳本 # 執行要求:kub…

消息隊列系統測試報告

目錄 一、項目背景 二、RabbitMQ介紹 1.什么是RabbitMQ? 2.RabbitMQ的工作流程是怎么樣的? 3.項目設計 三、測試概述 MQ 測試目標: 測試用例統計: 核心模塊測試詳情及代碼示例: 1. 數據庫管理(Da…

基于 Axios 的 HTTP 請求封裝文件解析

import axios from "axios"; import { ElMessage } from "element-plus"; import store from "/store"; import router from "/router";// 創建axios實例 const service axios.create({baseURL: "http://localhost:8080/api&quo…

PowerDesigner生成帶注釋的sql方法

前提是name里面是有文字的: 方法開始: 第一步: Database → Edit Current DBMS → Script → Objects → Column → Add 把輸出模板改成: %20:COLUMN% %30:DATATYPE%[.Z:[%Compressed%? compressed][ %NULLNOTNULL%][%IDENTITY…

獵板PCB:專業鍵盤PCB板解決方案供應商

獵板PCB深耕印刷電路板(PCB)制造領域,憑借前沿技術與深厚積淀,在鍵盤PCB板細分市場積極布局,致力于為不同客戶提供多樣化、高性能的鍵盤PCB板產品,滿足多元需求。一、定義:鍵盤PCB板鍵盤PCB板&a…

基于 Spring Boot 的登錄功能實現詳解

在 Web 應用開發中,登錄功能是保障系統安全的第一道防線。本文將結合實際代碼,詳細解析一個基于 Spring Boot 框架的登錄功能實現,包括驗證碼生成、用戶驗證、Token 機制等關鍵環節。技術棧概覽本登錄功能實現涉及以下核心技術和組件&#xf…

vue+django 大模型心理學智能診斷評測系統干預治療輔助系統、智慧心理醫療、帶知識圖譜

vuedjango 大模型心理學智能診斷評測系統干預治療輔助系統、智慧心理醫療、帶知識圖譜文章結尾部分有CSDN官方提供的學長 聯系方式名片 文章結尾部分有CSDN官方提供的學長 聯系方式名片 關注B站,有好處!編號:D003 pro基于大模型心理學問卷、智能診斷&…

【linux】企業級WEB應用服務器tomcat

一 WEB技術1.1 HTTP協議和B/S 結構操作系統有進程子系統,使用多進程就可以充分利用硬件資源。進程中可以多個線程,每一個線程可以被CPU調度執行,這樣就可以讓程序并行的執行。這樣一臺主機就可以作為一個服務器為多個客戶端提供計算服務。客戶…

【Unity優化】Unity多場景加載優化與資源釋放完整指南:解決Additive加載卡頓、預熱、卸載與內存釋放問題

【Unity優化】Unity多場景加載優化與資源釋放完整指南:解決Additive加載卡頓、預熱、卸載與內存釋放問題 本文將完整梳理 Unity 中通過 SceneManager.LoadSceneAsync 使用 Additive 模式加載子場景時出現的卡頓問題,分析其本質,提出不同階段的…

B 樹與 B + 樹解析與實現

一、磁盤存儲優化的核心邏輯 在大規模數據處理場景中,磁盤 I/O 效率是性能瓶頸的核心。磁盤訪問具有以下特性: 隨機訪問成本高:磁頭尋道時間(Seek Time)可達毫秒級,相比內存訪問(納秒級&#…

MySQL 查詢相同記錄并保留時間最晚的一條

要在 MySQL 中查詢相同記錄并僅保留時間最晚的那一條,你可以使用以下幾種方法:方法一:使用子查詢和 GROUP BY假設你的表名為 your_table,時間字段為 create_time,其他用于判斷記錄相同的字段為 field1, field2 等&…

在 .NET Core 5.0 中啟用 Gzip 壓縮 Response

在 .NET Core 5.0 中啟用 Gzip 壓縮 Response 在 .NET Core 5.0 (ASP.NET Core 5.0) 中啟用 Gzip 壓縮主要通過響應壓縮中間件實現。以下是詳細配置步驟: 1. 安裝必要的 NuGet 包 首先確保已安裝響應壓縮包: dotnet add package Microsoft.AspNetCore.Re…