Linux DNS

DNS協(xié)議

DNS協(xié)議是哪一層的協(xié)議

DNS 協(xié)議是基于 udp協(xié)議的應(yīng)用層協(xié)議。DNS協(xié)議在Linux上的默認(rèn)端口是53。

Linux 與 DNS協(xié)議

DNS解析

DNS解析 的作用

根據(jù)域名找到對應(yīng)的ip地址。

DNS解析的原理

簡單地說,是DNS服務(wù)器 存儲有 ip地址與域名的對應(yīng)關(guān)系,然后服務(wù)器通過udp協(xié)議訪問DNS服務(wù)器,獲得ip地址所對應(yīng)的域名。這只是最簡單的描述,事實上比這個復(fù)雜很多。

Linux DNS服務(wù)器地址的配置方式 (ubuntu 18.04)

/etc/resolv.conf 文件之中的配置內(nèi)容是Linux 實時生效的 DNS服務(wù)器地址配置。
注意:
在ubuntu 18.04 版本上,/etc/resolv.conf 文件只是一個軟鏈接,修改它的配置參數(shù),服務(wù)器重啟后會失效。DNS協(xié)議的數(shù)據(jù)包最終會發(fā)向哪里,看 /etc/resolv.conf 文件。

問題

1:為什么服務(wù)器上的 /etc/resolv.conf 文件之中配置的地址是 127.0.0.53, 但是還是可以進(jìn)行域名解析?
因為 Linux的 systemd-resolve 程序,它會把本地的DNS請求轉(zhuǎn)發(fā)到外部的DNS服務(wù)器。

Linux systemd-resolve

如何判斷 Linux 啟動了 systemd-resolve 機(jī)制

systemctl status systemd-resolve

Linux systemd-resolve 機(jī)制的作用

ubuntu中 systemd-resolved 服務(wù)為本地應(yīng)用程序提供了域名解析服務(wù), 實際上是轉(zhuǎn)發(fā)的功能。系統(tǒng)使用 systemd-resolved 進(jìn)行dns請求的時候,除了一些localhost等特殊域名,其他的域名需要它去外部dns服務(wù)器尋找答案,這個外部dns的地址可以手動配置或者自動配置。

Linux systemd-resolve 工作模式

1:local DNS stub模式
服務(wù)器使用 127.0.0.53 作為DNS服務(wù)器地址。systemd-resolve 作為一個虛擬DNS服務(wù)器,然后將DNS請求發(fā)送給外部的DNS服務(wù)器。
2:保護(hù)模式
......

Linux 如何查看 當(dāng)前 systemd-resolve 所設(shè)置的DNS服務(wù)器地址

執(zhí)行 systemd-resolve --status | grep 'DNS Servers' -A2

/etc/resolv.conf 文件說明

/etc/resolv.conf 文件作用

DNS客戶機(jī)的配置文件,用于設(shè)置DNS服務(wù)器的IP地址及DNS域名,還包含了主機(jī)的域名搜索順序。

/etc/resolv.conf 文件參數(shù)說明

參數(shù):nameserver

定義DNS服務(wù)器的IP地址

參數(shù):search

作用:會影響主機(jī)名的解析順序。

例子:

1: 查詢主機(jī)名,因為主機(jī)名后面沒有點,就認(rèn)為是主機(jī)名,所以先添加search里的每一項依次組成FQDN(完全合格域名)來查詢,完全合格域名查詢未找到,就再認(rèn)為主機(jī)名是完全合格域名來查詢

     host -a centos7-bind-1

2: 查詢主機(jī)名,因為主機(jī)名中有點(不是末尾有點),就認(rèn)為是完全合格域名,先用它來查詢,查詢失敗就把它當(dāng)成是主機(jī)名來進(jìn)行,添加search里的每一項組成FQDN(完全合格域名)來查詢。

     host -a centos7-bind-1.com

3: 查詢主機(jī)名,因為主機(jī)名中末尾有點,則認(rèn)為是完全合格域名,只用它來查詢(不會再添加search里的每一項)。查詢次數(shù)會與search里項域名個數(shù)有關(guān)。

     host -a centos7-bind-1.

參數(shù) options

注意:options 后面可以設(shè)置配置參數(shù),參數(shù)與值之間以冒號分隔
options下面的子參數(shù):

  • timeout 查詢一個dns的超時時間,單位是秒。系統(tǒng)缺省是5,最大可以設(shè)為30。
  • attempts 全部dns都查詢一遍的次數(shù)。缺省是2
    ......

DNS 緩存:

1: 刪除DNS 緩存操作 的方式

      systemd-resolve --flush-caches

2: 查看DNS緩存的命中率 的方式

       systemd-resolve --statistics

3: Linux 關(guān)于DNS 緩存是否開啟

       Ubuntu 18.04 之后的版本,默認(rèn)會開啟DNS緩存

Linux 命令行 可以手動調(diào)用DNS解析的工具

  • 1: host
  • 2: dig
  • 3: nslookup

Linux DNS 小需求

Linux上 DNS解析失敗,如何排查?

1: 查看DNS解析所使用的 DNS服務(wù)器地址。

     nslookup 域名

2: 檢查 DNS 服務(wù)器ip 地址是否正確。

  ping DNS服務(wù)器ip地址

如果DNS服務(wù)器ip地址的值為 127.0.0.53,那么通過 systemd-resolve --status,查看對應(yīng)網(wǎng)卡的DNS服務(wù)器ip地址,它們才是真正的外網(wǎng)DNS服務(wù)器ip地址,檢查它們是否正確。

DNS解析失敗之后,如何判斷是什么導(dǎo)致出錯的?這里指DNS服務(wù)器地址配置正確的情況下。

1:首先判斷網(wǎng)絡(luò)是否連通,通過 ping ip 地址來判斷。
2:如果網(wǎng)絡(luò)處于連通的狀況下
使用nslookup -debug 域名,查看DNS解析的每個步驟,以及觀察其中出錯的原因

如何可以測試 DNS解析 耗時?

方式1: 執(zhí)行 time nslookup 域名
使用time 命令,輸出信息會包含 程序執(zhí)行的實際時間 程序處于用戶空間的時間 程序處于內(nèi)核空間的時間。用DNS解析的結(jié)果來佐證 DNS解析 耗時。

方式2: dig 域名
輸出信息之中會包含耗時

導(dǎo)致 DNS 解析耗時的原因有哪些?

  • 1:DNS服務(wù)器本身有問題,響應(yīng)慢且不穩(wěn)定
  • 2: 客戶端到DNS服務(wù)器的網(wǎng)絡(luò)延遲大
  • 3: DNS請求或者響應(yīng)包,在某些情況下被鏈路中的網(wǎng)絡(luò)設(shè)備弄丟了

如何判斷 客戶端 到 DNS服務(wù)器的 網(wǎng)絡(luò)延遲大?

 ping -c 次數(shù) DNS服務(wù)器ip地址

命令的輸出信息會顯示 客戶端 到 DNS 服務(wù)器 之間的網(wǎng)絡(luò)延遲。

如何判斷 是數(shù)據(jù)包在鏈路之中丟失,導(dǎo)致DNS解析耗時?

  ping -c 次數(shù) DNS服務(wù)器ip地址

命令的輸出信息會包含 數(shù)據(jù)包的丟失信息。這種方式可以作為佐證。

客戶端到DNS服務(wù)器的網(wǎng)絡(luò)延遲大 的解決方式?

修改所設(shè)置的 DNS服務(wù)器地址。

如何判斷 將要被使用的 DNS服務(wù)器 與 客戶端之間的網(wǎng)絡(luò)延遲 比較?。?/h2>
 ping -c 次數(shù) ip地址

使用ping 命令來觀察兩個節(jié)點之間的網(wǎng)絡(luò)延遲。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • linux dns解析過程 當(dāng)linux機(jī)器去訪問一個域名的時候,先去其本地的/etc/hosts文件去查找,如果...
    碼二哥閱讀 1,057評論 0 0
  • 什么是DNS及功能: DNS(Domain name server),是將IP地址轉(zhuǎn)換為域名地址。當(dāng)在互聯(lián)網(wǎng)訪問外...
    魏鎮(zhèn)坪閱讀 7,859評論 0 8
  • DNS 緩存是一個臨時數(shù)據(jù)庫,用于存儲有關(guān)以前的 DNS 查找的信息。 換句話說,每當(dāng)你訪問網(wǎng)站時,你的操作系統(tǒng)和...
    Bogon閱讀 4,466評論 0 1
  • Windows 公網(wǎng)上,dns解析變更,一般需要10分鐘才生效。 如圖所示,基本邏輯為:客戶端 - 本機(jī)器dns解...
    Bogon閱讀 640評論 0 2
  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 3,404評論 0 7

友情鏈接更多精彩內(nèi)容