當前位置: 妍妍網 > 資訊

DNS網域名稱原理介紹,看我你就懂了!

2024-03-15資訊

1.DNS 介紹

1.1什麽是網域名稱?

網域名稱(Domain Name),簡稱網域名稱、網域,是由一串用點分隔的名字組成的Internet上某一台電腦或電腦組的名稱,用於在數據傳輸時標識電腦的電子方位。具有獨一無二,不可重復的特性。

1.2什麽是 DNS?

網域名稱系統(Domain Name System,縮寫:DNS)是互聯網的一項服務。網域名稱解析是把網域名稱指向網站空間IP,讓人們透過註冊的網域名稱可以方便地存取到網站的一種服務。IP地址是網路上標識站點的數位地址,為了方便記憶,采用網域名稱來代替IP地址標識站點地址。網域名稱解析就是網域名稱到IP地址的轉換過程。

網域名稱的解析工作由DNS伺服器完成。可以理解為DNS就是轉譯官。

正向解析:網域名稱 --> IP 地址
反向解析:IP 地址 --> 網域名稱

1.3網域名稱的組成和分類

常見格式:www.baidu.com
完整格式:www.baidu.com.

  • . 根域,可省略不寫

  • com 頂級域,由ICANN組織指定和管理

  • 國家地區網域名稱:cn(中國)、hk(香港)、sg(新加坡)等

  • 通用頂級網域名稱:com(商業機構)、org(非營利組織)、edu(教育機構)等

  • 新通用頂級網域名稱:red(紅色、熱情)、top(頂級、高端)等

  • baidu 二級域(註冊域),可由個人或組織申請註冊

  • www 三級域(子體),伺服器網站名代表

  • 主機名:s1.www.baidu.com.中的s1就是主機名,一般用來表示具體某一台主機

  • 拓展:com.cn屬於「二級網域名稱」,是cn頂級域的子體

    2.網域名稱解析過程

    如客戶機發起查詢請求

    www.kernel.org

    1.客戶機首先檢視尋找本地hosts檔,如果有則返回,否則進行下一步
    2.客戶機檢視本地緩存,是否存在本條目的緩存,如果有則直接返回,否則進行下一步。
    3.將請求轉發給指向的 DNS 伺服器。
    4.檢視網域名稱是否本地解析,是則本地解析返回,否則進行下一步。
    5.本地DNS伺服器首先在緩存中尋找,有則返回,無則進行下一步。
    6.向全球13個根域伺服器發起DNS請求,根域返回org域的地址列表。
    7.使用某一個 org 域的 IP 地址,發起 DNS 請求,org 域返回 kernel 域伺服器地址列表。
    8.用某一個kernel域IP地址,發起DNS請求,kernel域返回www.kernel.org主機的IP地址,本地 DNS 服務收到後,返回給客戶機,並在本地 DNS 伺服器保存一份。

    3.DNS 軟體資訊

    軟體名稱: bind

    服務名稱: named

    軟體埠:

    UDP 53 資料通訊(網域名稱解析)

    TCP 53 數據同步(主從同步)

    配置檔:

  • 主配置檔:/etc/named.conf(伺服器執行參數)

  • options {
    listen-on port 53 { 127.0.0.1; };
    listen-on-v6 port 53 { ::1; };
    #設定伺服器監聽網卡(可以寫具體某一個IP,也可以寫成any)
    directory "/var/named";
    dump-file"/var/named/data/cache_dump.db";
    statistics-file"/var/named/data/named_stats.txt";
    memstatistics-file"/var/named/data/named_mem_stats.txt";
    recursing-file"/var/named/data/named.recursing";
    secroots-file"/var/named/data/named.secroots";
    #數據檔位置
    allow-query { localhost; };
    #設定可以存取伺服器的客戶端IP(可用any)

  • 區域配置檔:/etc/named.rfc1912.zones(伺服器解析的區域配置,正反向區域定義資訊)

  • zone "localhost.localdomain" IN {
    #正向區域配置檔標簽,修改為要解析的域
    type master;
    #DNS伺服器型別(master/slave)
    file "named.localhost";
    #正向數據配置檔名稱(預設保存在/var/name/下)
    allow-update { none; };
    #允許數據更新的列表(填寫IP地址)
    };
    zone "1.0.0.127.in-addr.arpa" IN {
    # 反向區域配置檔標簽,僅修改IP位置,並且將IP反寫例如:0.168.192.in-addr.arpa
    type master;
    file "named.loopback";
    allow-update { none; };
    };

  • 數據配置檔:/var/named/xx.xx(主機名和IP地址的對應解析關系,及主從同步資訊)

  • $TTL 1D #網域名稱有效解析生存周期(一般指緩存時間)
    @ IN SOA @ rname.invalid. (
    0; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS @ #設定DNS伺服器的網域名稱
    A 127.0.0.1#IPv4的網域名稱IP解析記錄
    AAAA ::1#IPv6的 網域名稱IP解析記錄
    ~
    # @: 網域名稱有效解析生存周期(一般指緩存時間)
    # SOA:SOA標記(起始授權機構的資源記錄,描述了網域名稱的管理品 電子信件地址 和一此時間參數
    #serial 配置檔修改版本(如:20190826)
    #refresh 更新頻率(從向主的查詢周期)
    # retry 更新失敗的重試時間周期
    # expire 無法更新時的失效周期
    #minimum 緩存伺服器無法更新時的失效時間

    記錄型別:

    A:

    地址記錄,用來指定網域名稱的IPv4地址的記錄

    CNAME:

    將網域名稱指向另一個網域名稱,再由另一個網域名稱提供ip地址,就需要添加CNAME記錄

    TXT:

    可填寫任何東西,長度限制255.絕大多數的TXT記錄是用來做SPF的(反垃圾信件)

    NS:

    網域名稱伺服器記錄,如果需要把子網域名稱交給其他DNS服務商解析,就需要添加NS記錄。

    AAAA:

    地址記錄,用來指定網域名稱的IPv6地址的記錄

    MX:

    信件交換記錄,如果需要設定信箱,讓信箱能收到信件,就需要添加MX記錄。

    DNS 實驗搭建

    4.1 DNS服務搭建

    先關閉伺服器和客戶機上的防火墻和SELinux

    1.軟體安裝

    yum install bind -y

    2.配置主配置檔(/etc/named.conf)

    options {
    listen-on port 53 { any; }; #監聽網卡改為any
    listen-on-v6 port 53 { any; };
    directory "/var/named";
    dump-file"/var/named/data/cache_dump.db";
    statistics-file"/var/named/data/named_stats.txt";
    memstatistics-file"/var/named/data/named_mem_stats.txt";
    recursing-file"/var/named/data/named.recursing";
    secroots-file"/var/named/data/named.secroots";
    allow-query { any; }; #設定可以存取伺服器的客戶端為any

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

    註:先對區域檔進行備份,刪除多余的樣版,只留下一個正向和一個反向(反向修改時,網路位的反寫格式,如192.168.100.20 -> 100.168.192.)

    zone "ajaj.com" IN {
    type master;
    file "ajaj.localhost"; #自訂正向解析檔名
    allow-update { none; };
    };
    zone "100.168.192.in-addr.arpa" IN {
    type master;
    file "ajaj.loopback"; # 自訂反向解析檔名
    allow-update { none; };
    };

    4.配置數據檔/var/named/

    A. 先復制生成正向解析檔和反向解析檔

    cp -a named.localhost ajaj.localhost
    cp -a named.loopback ajaj.loopback

    B. 編輯正向解析檔(註意網域名稱結尾的「.」)

    vim ajaj.localhost
    $TTL 1D
    @ IN SOA ajaj.com. rname.invalid. (
    0; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns.ajaj.com.
    dns A 192.168.100.20
    www A 192.168.100.21

    C.編輯反向解析檔(註意網域名稱結尾的".")

    vim ajaj.loopback
    $TTL 1D
    @ IN SOA ajaj.com. rname.invalid. (
    0; serial
    1D; refresh
    1H; retry
    1W ; expire
    3H ) ; minimum
    NS dns.ajaj.com.
    20PTR dns.ajaj.com.
    21PTR www.ajaj.com.

    5.重新開機DNS服務

    systemctl restart named

    6.客戶端測試

    在網卡配置檔中添加 DNS 伺服器的地址,然後用 nslookup 測試。

    [root@localhost~]# nslookup www.ajaj.com
    Server:192.168.100.20
    Address:192.168.100.20#53
    Name:www.ajaj.com
    Address:192.168.100.21

    4.2 DNS主從

    實驗目的:
    減輕主伺服器的壓力
    先關閉伺服器和客戶機上的防火墻和SELinux

    實驗準備:
    一台主伺服器、一台從伺服器、一台測試機

    搭建過程:

    1.搭建主伺服器步驟

    安裝 bind 軟體

    yum install bind -y

    主配置檔的修改

    options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { any; };
    directory "/var/named";
    dump-file"/var/named/data/cache_dump.db";
    statistics-file"/var/named/data/named_stats.txt";
    memstatistics-file"/var/named/data/named_mem_stats.txt";
    recursing-file"/var/named/data/named.recursing";
    secroots-file"/var/named/data/named.secroots";
    allow-query { any; };

    區域配置檔的修改

    zone "ajaj.com" IN {
    typemaster;
    file "ajaj.localhost";
    allow-update { 192.168.100.21; };
    };
    zone "100.168.192.in-addr.arpa" IN {
    typemaster;
    file "ajaj.loopback";
    allow-update { 192.168.100.21; };
    };

    主 DNS 的區域配置檔中 allow-updata 參數添加從伺服器 IP 地址。

    配置數據檔

    cp -a named.localhost ajaj.localhost
    cp -a named.loopback ajaj.loopback

    正向數據檔

    vim ajaj.localhost
    $TTL 1D
    @ IN SOA ajaj.com. rname.invalid. (
    0; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS dns.ajaj.com.
    dns A 192.168.100.20
    www A 192.168.100.23

    反向數據檔

    vim ajaj.loopback
    $TTL 1D
    @ IN SOA ajaj.com. rname.invalid. (
    0; serial
    1D; refresh
    1H; retry
    1W ; expire
    3H ) ; minimum
    NS dns.ajaj.com.
    20PTR dns.ajaj.com.
    23PTR www.ajaj.com.

    啟動 named 服務

    systemctl start named

    4.搭建從伺服器步驟:

    安裝 bind 軟體

    yum install bind -y

    修改主配置檔

    vim /etc/named.conf
    options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { any; };
    directory "/var/named";
    dump-file"/var/named/data/cache_dump.db";
    statistics-file"/var/named/data/named_stats.txt";
    memstatistics-file"/var/named/data/named_mem_stats.txt";
    recursing-file"/var/named/data/named.recursing";
    secroots-file"/var/named/data/named.secroots";
    allow-query { any; };

    配置區域檔

    註意:從配置檔的型別需要修改為 slave,並且需要填寫主伺服器的地址
    zone "ajaj.com" IN {
    typeslave;
    masters { 192.168.100.20; };
    file "slaves/ajaj.localhost";
    };
    zone "100.168.192.in-addr.arpa" IN {
    typeslave;
    masters { 192.168.100.20; };
    file "slaves/ajaj.loopback";
    };
    檔保存位置修改為 file「slaves/atguigu.localhost」;

    重新開機服務

    systemctl start named

    在測試機上填寫從伺服器的IP,並使用nslookup測試

    nslookupwww.ajaj.com
    Server:192.168.100.21
    Address:192.168.100.21#53
    Name:www.ajaj.com
    Address:192.168.100.23

    4.3DNS緩存伺服器

    先關閉伺服器和客戶機上的防火墻和SELinux

    實驗作用:
    加快解析速度,提高工作效率

    實驗軟體:

    dnsmasq

    配置檔:

    /etc/dnsmasq.conf
    domain=網域名稱
    #需要解析的網域名稱
    server=ip
    #主 DNS 伺服器 IP
    cache-size=15000
    #聲明緩存條數

    重新開機服務:

    systemctl restart dnsmasq

    測試效果:

    在測試機上填寫DNS 緩存伺服器伺服器的 ip 地址

    連結:https://www.cnblogs.com/ajajroom/p/17215984.html

    (版權歸原作者所有,侵刪)

    小明工作助手 上線了,功能包括資源列表、圖片處理、短視訊去浮水印、線上娛樂等功能,歡迎免費體驗!

    優秀幹貨作者推薦

    小編十多年工作經驗積累的電腦軟體分享給大家

    CSDN:https://blog.csdn.net/xishining

    個人部落格網站:https://programmerblog.xyz

    往期推薦

    !