Linux DNS原理簡介及配置

来源:https://www.cnblogs.com/whych/archive/2018/05/28/9099015.html
-Advertisement-
Play Games

Linux DNS原理簡介及配置 DNS簡介 DNS原理 功能變數名稱解析的過程 資源記錄 DNS BIND安裝配置 一、簡介 一般來講功能變數名稱比IP地址更加的有含義、也更容易記住,所以通常用戶更習慣輸入功能變數名稱來訪問網路中的資源,但是電腦主機在互聯網中只能通過IP識別對方主機,那麼就需要DNS功能變數名稱解析服務了。 ...


Linux DNS原理簡介及配置

  1. DNS簡介
  2. DNS原理
  3. 功能變數名稱解析的過程
  4. 資源記錄
  5. DNS BIND安裝配置

一、簡介

一般來講功能變數名稱比IP地址更加的有含義、也更容易記住,所以通常用戶更習慣輸入功能變數名稱來訪問網路中的資源,但是電腦主機在互聯網中只能通過IP識別對方主機,那麼就需要DNS功能變數名稱解析服務了。

功能變數名稱:www.baidu.com(也叫做FQDN:Full Qualified Domain Name, 完全限定功能變數名稱,同時帶有主機名和功能變數名稱的名稱)

 

通常 Internet 主機功能變數名稱的一般結構為:主機名.三級功能變數名稱.二級功能變數名稱.頂級功能變數名稱。

TLD(top level domain)

組織域:.com, .org, .net, .cc

國家域: .cn, .tw, .hk, .iq, .ir, .jp

反向域: IP-->FQDN 將IP地址轉換成主機名,早期只能正向解析,後來引入了一個機制。指針;但是從IP轉換成FQDN是另外一套資料庫。

 

DNS服務協議採用類似目錄樹的層次結構記錄功能變數名稱與IP地址的映射對應關係,形成一個分散式的資料庫系統,上級僅知道其直接下級,下級只知道根的位置。結構模型:

 

    DNS功能變數名稱解析服務(Domain Name System)是用於解析功能變數名稱與IP地址對應關係的服務,功能上可以實現正向解析反向解析

正向解析:根據主機名(功能變數名稱)查找對應的IP地址。

反向解析:根據IP地址查找對應的主機名(功能變數名稱)。

 

二、原理

Linux下nsswitch(network service switch)是一個通用框架,與各種類型存儲交互的公共實現,實現名稱解析服務。其中有庫文件,libnss_files.so庫文件就是實現查找文件時, 其應該調用的文件。其展現的就是一個配置文件,/etc/nssitch.conf,此配置文件中

這個files就是通過libnss_files來查找/etc/hosts

 

hosts可通過兩種方式來查找:     files    dns

file: /etc/hosts配置文件

dns: DNS伺服器

系統中stub resolver:名稱解析器,根據配置文件來查找對應的ip地址。

 

ping www.itodo.com此過程就是先查找本地/etc/hosts文件,如果沒有再查找dns伺服器。

 

hosts格式:

    IPADDR FQDN    Ailases

    192.168.100.1    www.ss.com     www

 

三、功能變數名稱解析的過程

    當應用過程需要將一個主機功能變數名稱映射為IP地址時,就調用功能變數名稱解析函數,解析函數將待轉換的功能變數名稱放在DNS請求中,以UDP報文方式發給本地功能變數名稱伺服器。本地的功能變數名稱伺服器查到功能變數名稱後,將對應的IP地址放在應答報文中返回。

    

dns查詢:

    遞歸查詢:主機向本地功能變數名稱伺服器的查詢一般都是採用遞歸查詢,只發出一次請求。

    迭代查詢:本地功能變數名稱伺服器向根功能變數名稱伺服器的查詢的迭代查詢,發出多次請求。

 

 

以上簡單理解來說,主機1訪問主機2的功能變數名稱a.zz.com,首先向本機功能變數名稱伺服器發起請求主機2的ip,本機沒有,向根功能變數名稱伺服器查詢,根返回消息說頂級功能變數名稱伺服器那裡知道,本機又向頂級功能變數名稱伺服器查詢,頂級功能變數名稱伺服器又返回消息說二級功能變數名稱伺服器那裡有答案,本機又向二級功能變數名稱查詢,最後經過本機功能變數名稱伺服器的緩存之後,返回主機2的功能變數名稱對應的ip地址。

 

四、資源記錄

資料庫中的每一個條目稱作一個資源記錄(Resource Record,RR)

資源記錄的格式:

 

$TTL 600;

 

NAME            [TTL]            IN            RRT            VALUE

www.ss.com                        IN            A            1.1.1.1

 

1.1.1.1                        IN            PTR            www.ss.com

資源記錄類型(RRT):

SOA(start of authority)

    ZONE_NAME    TTL        IN    SOA        FQDN        ADMINISTRATOR_MAILBOX(

                            serial number 版本號

                            refresh    刷新時間

                            retry    重試時間

                            expire    過期時間

                            na ttl )    否定答案的ttl

時間單位:M(分鐘)、H(小時)、D(天)、W(周),預設單位是秒

郵箱格式:[email protected] -寫為-> admin.ss.com

@:也就是ZONE_NAME

NS(Name Server): ZONE_NAME --> FQDN

    magedu.com.        600        IN        NS        ns1.magedu.com.

    ns1.magedu.com.    600        IN        A        1.1.1.2

    

MX(Mail eXchanger): ZONE_NAME --> FQDN

    ZONE NAME    TTL        IN        MX pri        VALUE

    優先順序:0-99,數字越小級別越高

        magedu.com.    600        IN        MX    10    mail.magedu.com.

        mail.magedu.com.    600        IN    A    1.1.1.3

 

A(address):    FQDN-->IPv4    

AAAA:FQDN-->IPv6

PTR(pointer):IP-->FQDN

CNAME(Canonical NAME): FQDN-->FQDN

    www2.magedu.com.        IN        CNAME        www.magedu.com.

TXT:文本字元串

 

DNS區域:

正向區域文件

    magedu.com.        IN        SOA    

 

www.maged.com.   IN    A    192.168.0.1

簡寫為:

www          IN    A    192.168.0.1

 

反向區域文件

0.168.192.in-addr.arpa.       IN    SOA    

 

1.0.168.192.in-addr.arpa.      IN    PTR        www.magedu.com.

簡寫為:

1       IN       PTR       www.magedu.com.

 

區域傳送

    區域傳送的類型:

    完全區域傳送: axfr

    增量區域傳送:ixfr

    

區域類型:

    主區域:master

    從區域:slave

    提示區域:hint

    轉發區域:forward

    

五、DNS BIND安裝配置

DNS所用的最常用軟體為BIND

bind:

    

    /etc/named.conf

        BIND進程的工作屬性

        區域的定義

    /etc/rndc.key

        rndc: Remote Name Domain Controller

        密鑰文件

        配置信息:/etc/rndc.conf    

    /var/named/

        區域數據文件

 

bind-chroot:為了提高系統安全新,把系統中的一個子目錄作為bind運行時的目錄。

    預設:named

        用戶:named

        組:named        

    /var/named/chroot/

        etc/named.conf

        etc/rdnc.key

        sbin/named

        var/named/

 

安裝配置:

1.安裝bind,查看是否安裝成功

 yum -y install bind bind-utils bind-chroot

 rpm –qa | grep "^bind"

2.修改/etc/named.conf

 listen-on port 53 { any; };

3.修改/etc/named.rfc1912.zones

4.添加所需要的zone文件

 在/var/named目錄下添加正向解析文件named.yan和反向解析文件named.222

 

5.檢查語法

 named-checkconf

 named-checkzone "區功能變數名稱" 區域文件路徑

 

 

6.修改/etc/resolv,並啟動服務。

systemctl start named

 

 

7.nslookup測試,或者使用dig命令。

 正向解析測試:

 反向解析測試:

 

至此簡單的配置完畢。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • linux簡介 Linux內核最初只是由芬蘭人李納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。 Linux能運行主要的UN ...
  • 1,如果創建shell腳本? 使用任意文本編輯軟體,一般為vim,創建.sh結尾的文件,在文件的最開頭用 #!/bin/bash 註明shell的類型 如: 2,如何執行shell? >把shell文件當做bash的命令行參數 >給shell文件添加可執行許可權,我這裡已經添加過了,使用命令( chm ...
  • 1.購買國外的伺服器 https://www.vultr.com/?ref=7420165通過連接可以消費滿10美刀送10美刀。一月2.5美刀。 2.搭建 1.下載腳本安裝 # wget --no-check-certificate https://raw.githubusercontent.com ...
  • 一、學習之初 1、學習這個課程的目的是,高薪就業,搞運維。 2、應該在寧波發展。 3、大概給自己定的計劃是4個月能學習2遍。 4、學好之後就跳槽。 5、2年左右的時間要達到1.5W爭取。 學習方法: 1、預習,我自己已經預習到了,SHELL腳本部分,這次想跟著阿明老師在來一遍。 2、當日事當日畢。 ...
  • server.py import socket import subprocess sk = socket.socket() sk.bind(('127.0.0.1', 8081)) sk.listen(5) while True: conn, addr = sk.accept() while Tr ...
  • 創建其他Session(User)的進程需要拿到對應Session的Token作為CreateProcessAsUser的參數來啟動進程。 修改有System許可權的Token的TokenId為其他Session的TokenId就可以在其他Session裡面創建有System許可權的進程了。 相關的Bl ...
  • Linux上部署SVN author:headsen chen 2017-10-16 16:45:04 前提:通過yum來安裝,必須是centos6.5的桌面版的。否則會出現某些的安裝包不全而導致裝好的svn不能用,等等未知的錯誤。個人原創,轉載必需註明作者,出處,否則依法追究法律責任 服務端安裝配 ...
  • 承自上一篇中的函數圖形,有人問,能不能別把畫個圖搞那麼複雜,我說當然,只要你有一臺mac。 話說出來很瀟灑的樣子,充斥著一股迷之自信。 可能這就是mac用戶典型的特征,儘管也許並沒有那麼值得驕傲。 其實在上一篇中我見到照片的時候就看出來用的是什麼軟體了,mac內置的grapher。grapher的誕 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...