【Day 18】Linux-DNS解析

目錄

一、DNS概念

? ? ? ? 1、概念和作用

? ? ? ? 2、域名解析類型

? ? ? ?3、 軟件與服務

? ? ? ? 4、DNS核心概念

????????區域

? ? ? ? 記錄

? ? ? ? 5、查詢類型

? ? ? ? 6、分層結構

二、DNS操作

配置本機為DNS內網解析服務器

(1)修改主配置文件

(2)添加區域

正向解析區域:

反向解析區域:

(3)添加記錄文件

(4)修改記錄文件

(5)開啟服務

(6)然后檢查服務是否開啟。

(7)測試dns正常工作,nslookup

DNS復制

主DNS

從DNS

hosts文件的使用


一、DNS概念

? ? ? ? 1、概念和作用

DNS應用層協議:用于將人類可讀的域名轉換為機器可識別的IP地址

????????作用:域名解析。將域名轉換為IP地址(正向解析)或IP地址轉換為域名(反向解析)。

? ? ? ? 2、域名解析類型

  • 正向解析(Forward DNS Resolution)是將域名轉換為 IP 地址的過程。
  • 反向解析(Reverse DNS Resolution)是將 IP 地址轉換為域名的過程。

? ? ? ?3、 軟件與服務

  • 軟件:bind,bind-chroot
  • 服務進程:named
  • 默認端口:53/UDP

? ? ? ? 4、DNS核心概念

????????區域
  • 區域是域名空間的一部分,由一個或多個 DNS 記錄組成,由同一權威 DNS 服務器管理。它通常對應一個域名及其子域名。
  • 正向區域(Forward Zone)將域名解析為對應的 IP 地址。
  • 反向區域(Reverse Lookup Zone)將IP地址映射到域名,與正向查找(域名→IP)相反。
  • IPv4示例:對于192.168.1.0/24網絡,反向區域名為1.168.192.in-addr.arpa
  • IPv6示例:對于2001:db8::/32網絡,反向區域名為8.b.d.0.1.0.0.2.ip6.arpa
? ? ? ? 記錄
  • 記錄是域名系統(DNS)中存儲的指令,用于指定域名與服務器或其他資源的映射關系。

A記錄(Address Record):標識主機名和IP地址的對應關系
將域名指向IPv4地址。

PTR記錄(Pointer Record):標識IP地址和主機名的對應關系
用于反向DNS查詢,將IP地址映射回域名。

NS記錄(Name Server)標識某一個主機是一個DNS服務器,沒有說明對應ip,所以必須和A記錄一起使用
指定負責解析域名的DNS服務器。

?

MX記錄(Mail Exchange)標識郵件服務器,數字代表優先級,數字越小優先級越高
指定接收域名的電子郵件的郵件服務器地址。優先級數值決定郵件服務器的使用順序。

CNAME記錄(Canonical Name)別名記錄
為域名設置別名,使其指向另一個域名。

? ? ? ? 5、查詢類型

  • 遞歸查詢:客戶端向本地DNS服務器請求解析,服務器代表客戶端完成所有查詢步驟并返回最終結果。
  • 迭代查詢:DNS服務器按層級逐級查詢(根域→頂級域→權威域),返回參考信息而非最終結果。
特性遞歸查詢迭代查詢
發起方客戶端向DNS服務器請求解析DNS服務器向其他DNS服務器
返回結果必須返回最終解析結果(IP或錯誤)可能返回下一級服務器地址
責任方DNS服務器承擔全部查詢工作查詢方需持續跟進查詢鏈

? ? ? ? 6、分層結構

二、DNS操作

安裝bind

//下載完了自動生成一個用戶named

  • # rpm -qc bind? ? ? ? //查看與已安裝的BIND軟件包相關的配置文件

這里我們需要主要需要三個文件

/etc/named.conf? ? ?//主配置文件

/etc/named.rfc1912.zones? ? ?? //子配置文件,添加區域用

/var/named? ? ? //存儲記錄文件,


配置本機為DNS內網解析服務器

(1)修改主配置文件
  • vim /etc/named.conf?? ?//主配置文件,用于修改端口、ip、可以為哪些機器提供服務

(2)添加區域
  • ?vim /etc/named.rfc1912.zones? ???//添加區域

? ? ? ? 添加區域時需要填寫記錄文件名,先寫上名字,一會我們去創建同名記錄文件。

正向解析區域:

反向解析區域:

注意:不同域名和不同IP段要寫不同的區域。區域名稱必須與域名或反向IP段嚴格匹配。必須要確保BIND進程有權限讀取區域文件。

(3)添加記錄文件

這里創建記錄文件。因為記錄文件有格式,這里為了省事,直接復制別的記錄文件,改名后修改內容。-a參數,保留文件權限。cp復制,mv重命名后修改。

(4)修改記錄文件
  • vim /var/named/xxxxx.com.zone? ? ? ? //修改記錄文件

這里注意一下!

  • 不完整域名:example.com?→ 可能解析為?example.com.local
  • 完整域名:example.com.?→ 嚴格解析為?example.com

若希望定義的是完整域名,應當在末尾加點以避免自動補全域名。

  • SOA/NS記錄:強制要求加點,避免解析異常。
  • A/CNAME/MX記錄:根據使用場景選擇,若目標域名與當前域無關(如外部域名),必須加點。

這里創建的記錄文件的A和PTR記錄類型用來配置IP和主機名之間的的映射關系。具體見上文。

注意:!!格式一定不要錯,要不然包報錯的。

(5)開啟服務
  • # systemctl enable --now named? ? ? ? //配置并立即啟動named

(6)然后檢查服務是否開啟。

(7)測試dns正常工作,nslookup


DNS復制

給一個DNS服務器做備份,防止DNS單點故障。

兩個DNS服務器的數據是同步的——區域、記錄需要一樣

需要兩個機器,一個作為主DNS,一個作為從DNS

主DNS

主DNS的主配置文件

主服務器的子配置文件? ?區域

主服務器的記錄文件

從DNS

(1)為從dns下載bind

(2)從DNS的主配置文件

(3)從DNS的子配置文件?指定類型為從區域。

從區域的的記錄文件只能從別的地方復制過來,不可以修改

(4)寫記錄文件存哪。建議和主服務器上一致。slaves/

(5)然后啟動從DNS就行

(6)查詢是否復制過來了

(1)驗證有復制過來的文件

(2)主dns能解析誰,從dns就能解析誰

//若現在主記錄變化,如加了兩行記錄,通過序列號識別。所以需要手動改序列號,只要比上次的數字大就可以,然后重啟。查詢即可。


hosts文件的使用

/etc/hosts文件是一個操作系統用于映射主機名(域名)到IP地址的本地文本文件,無需通過DNS解析。若此文件中沒有,才向網卡上的dns服務器請求

windows中hosts文件在這里,可以修改但是注意hosts沒有任何后綴!

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

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

相關文章

Python 中 OpenCV (cv2) 安裝與使用介紹

Python 中 OpenCV (cv2) 安裝與使用詳細指南 OpenCV (Open Source Computer Vision Library) 是計算機視覺領域最流行的庫之一。Python 通過 cv2 模塊提供 OpenCV 的接口。 一、安裝 OpenCV 方法 1:基礎安裝(推薦) # 安裝核心包&#xff0…

微軟WSUS替代方案

微軟WSUS事件回顧2025年7月10日,微軟最新確認Windows Server Update Services(WSUS)出現了問題,導致IT管理員無法正常同步和部署Windows更新。WSUS是允許管理員根據策略配置,將更新推送到特定計算機,并優化…

Minio 分布式集群安裝配置

目錄創建 mkdir -p /opt/minio/run && mkdir -p /etc/minio && mkdir -p /indata/disk_0/minio/datarun:啟動腳本及二進制文件目錄/etc/minio:配置文件目錄data:數據存儲目錄下載 minio wget https://dl.min.io/server/minio…

Spring Boot + ShardingSphere 實現分庫分表 + 讀寫分離實戰

🚀 Spring Boot ShardingSphere 實現分庫分表 讀寫分離(涵蓋99%真實場景) 🏷? 標簽:ShardingSphere、分庫分表、讀寫分離、MySQL 主從、Spring Boot 實戰 分庫分表 vs 讀寫分離 vs 主從配置與數據庫高可用架構區別 …

將普通用戶添加到 Docker 用戶組

這樣可以避免每次使用 Docker 命令時都需要 sudo。以下是具體步驟:1. 創建 Docker 用戶組(如果尚未存在) 默認情況下,安裝 Docker 時會自動創建 docker 用戶組。可以通過以下命令檢查: groupadd docker(如果…

Scrapy(一):輕松爬取圖片網站內容?

目錄 一、CrawlSpider 簡介? 二、實戰案例:圖片網站爬取? 三、代碼解析:核心組件詳解? 類定義: 2.核心屬性:? 3.爬取規則(Rules):? 4.數據提取方法(parse_item)…

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案方案 1:配置 systemd 服務文件(推薦)1. 檢查/創建 Redis 的 systemd 服務文件2. 配置關鍵參數(覆蓋配置示例)3. 重…

Eclipse 代碼模板

Eclipse 代碼模板 引言 Eclipse 作為一款功能強大的集成開發環境(IDE),深受廣大開發者的喜愛。在編程過程中,使用代碼模板可以大大提高開發效率,減少重復勞動。本文將詳細介紹 Eclipse 代碼模板的配置、使用方法以及一…

輸電線路防外破聲光預警裝置 | 防山火/防釣魚/防施工安全警示系統

在輸電網絡的安全保障中,外力破壞是一個不容忽視的問題,各類隱患可能對電力系統造成嚴重影響。TLKS-PMG-WP 輸電線路聲光防外破警示裝置在應對這類挑戰時,有著獨特的技術表現,下面從功能和技術參數兩方面進行詳細介紹。核心功能解…

STM32——STM32CubeMX

總:STM32——學習總綱 一、簡介 注意,非邏輯代碼。 可兼容不同系列的STM32Cube固件包。 STM32Cube前置知識鏈接: STM32——HAL庫 不可過多依賴,此工具只針對STM32芯片,類似英飛凌芯片無法配置。主要用于參考。 二、安…

Java NIO 核心原理與秋招高頻面試題解析

一、NIO 概述Java NIO(New I/O 或 Non-blocking I/O)是 Java 1.4 引入的一套全新 I/O API,位于 java.nio 包下。NIO 提供了與傳統 BIO(Blocking I/O)完全不同的 I/O 處理方式,通過非阻塞模式、緩沖區&#…

vue3+element-plus,el-popover實現篩選彈窗的方法

實現一個篩選框,點擊篩選按鈕出現彈窗,彈窗內有選擇框/輸入框/單選框等等,底部有重置/確定兩個按鈕。需求:點擊篩選外部其他位置可以關閉彈窗,關閉彈窗后已編輯的數據不保存,點擊確定按鈕關閉彈窗&#xff…

python每日一題 貪心算法練習

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發,開始時油箱為空。給定兩個整數數組 gas 和 cost &…

Python + Pika RabbitMQ集群壓測完整方案

一、最近搭建了個rabbitmq集群 三個磁盤節點,上生產環境之前想做個壓測,測試下穩定性,參考Deepseek做了如下測試方案二、核心代碼實現: 配置文件 (config.py) import os RABBITMQ_NODES [amqp://admin:123456192.168.0.175:8101,…

【第7話:相機模型3】自動駕駛IPM圖像投影拼接技術詳解及代碼示例

IPM圖像投影拼接技術詳解 IPM(逆透視映射)圖像投影拼接技術是一種在計算機視覺中廣泛應用的圖像處理方法,主要用于將多個透視視圖的圖像轉換為鳥瞰視圖并拼接成一個無縫的大場景圖像。該技術特別適用于自動駕駛、機器人導航和監控系統等領域&…

【測試工程思考】測試自動化基礎能力建設

1 回顧 傳統軟件研發體系下定義的軟件測試是從用戶視角設計的。測試是試圖窮盡用戶行為的工程,從測試用例(use case)的英文定義就可見一般。測試的邏輯資產就是用自然語言去描述用戶的操作行為或路徑。 但隨著軟件工程向分布式架構和敏捷交付…

進階向:AI聊天機器人(NLP+DeepSeek API)

什么是AI聊天機器人? AI聊天機器人是一種通過自然語言處理(NLP)技術模擬人類對話的智能程序系統。其核心是建立在機器學習算法和大型語言模型基礎上的對話引擎,能夠理解用戶的自然語言輸入,分析語境和意圖,并生成符合上下文的相關回復。 這類機器人系統通常包含以下幾個…

一個C#的段子

猜猜按鈕的結果是啥。 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } public static bool flag true; privat…

使用 gptqmodel 量化 Qwen3-Coder-30B-A3B-Instruct

代碼部分 : quantize_qwen3_coder_30b_a3b_instruct_gptq.py import os########## 環境變量設置 ########## # 當前可用的 CUDA 編號 os.environ["CUDA_VISIBLE_DEVICES"] "1" # GPU 顯存資源片段優化 os.environ["PYTORCH_CUDA_ALLOC_CONF"] …

基于python、django的疫苗接種管理系統

基于python、django的疫苗接種管理系統