一、DNS基礎
DNS(Domain Name System),域名系統是互聯網的一項非常重要的基礎設施,它將人類可讀的主機名轉換成計算機可讀的IP地址,DNS系統是一種分布式數據庫系統,它由許多DNS服務器組成,這些服務器通過共同工作來完成DNS查詢請求。
在DNS中,域名被分為多個層次,每個層次中包含多個子域名。例如,edu.cn是一個域名,它包含了.edu和.cn兩個子域名。在DNS樹形結構中,最頂層是根域名點,它並不包含其他子域名,而是包含了所有頂級域名,如.com、.edu等。下面是一張DNS樹形結構示意圖:
. | +--com | | | +--example | | | +--... | +--edu | +--china | +--...
當我們在瀏覽器中輸入一個域名時,瀏覽器首先從本地DNS緩存中尋找是否有該域名的解析結果。如果沒有,則向本地DNS服務器發送查詢請求。本地DNS服務器將查詢請求進一步轉發到更高層次的DNS服務器,直到找到該域名對應的IP地址,然後將結果返回給瀏覽器,瀏覽器再通過該IP地址訪問對應的服務器。
二、CentOS7下的DNS配置
CentOS7默認使用的是systemd-resolved服務,該服務通過systemd來管理,並且已經被集成到systemd的網絡配置中,作為CentOS7下的系統級DNS服務器。在CentOS7中,可以通過以下命令來查看systemd-resolved服務的狀態:
systemctl status systemd-resolved
如果該服務沒有啟動,則可以通過以下命令來啟動:
systemctl start systemd-resolved
CentOS7下的DNS配置文件為/etc/resolv.conf,該文件保存了系統級別的DNS解析配置。使用該文件可以設置DNS服務器地址、域名搜索路徑等信息,格式如下:
nameserver DNS服務器地址 search 域名搜索路徑
在/etc/resolv.conf文件中如果添加了nameserver和search配置,則查詢DNS時會優先使用這裡配置的DNS服務器和域名搜索路徑,如果沒有配置,則會使用127.0.0.53作為DNS服務器,默認使用systemd-resolved服務解析。
三、使用DNS查詢命令
DNS的查詢工具有很多,其中最常用的工具是nslookup和dig。
1、nslookup
nslookup是一個非常常用的DNS查詢命令工具,它可以查詢指定主機的DNS信息,例如主機名、IP地址、域名Server等。使用該命令可以檢查DNS服務器是否能夠正確解析域名。例如,通過以下命令可以查詢baidu.com的IP地址:
nslookup baidu.com
執行結果為:
Server: 8.8.8.8 Address 1: 8.8.8.8 Address 2: 8.8.4.4 Name: baidu.com Addresses: 220.181.38.148 220.181.57.217 39.156.66.14 180.101.49.11
在查詢域名時,nslookup也會自動讀取/etc/resolv.conf文件中的DNS服務器信息,並使用它來進行DNS解析。
2、dig
dig是另一個強大而又靈活的DNS查詢命令,它不僅可以查詢DNS解析結果,還可以輸出DNS的詳細信息、控制查詢策略等。例如,通過以下命令可以查詢baidu.com的IP地址:
dig baidu.com
執行結果為:
; <> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <> baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13440 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;baidu.com. IN A ;; ANSWER SECTION: baidu.com. 212 IN A 39.156.69.79 baidu.com. 212 IN A 39.156.69.83 baidu.com. 212 IN A 39.156.69.84 baidu.com. 212 IN A 39.156.69.85 ;; Query time: 0 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Jul 15 10:02:01 CST 2020 ;; MSG SIZE rcvd: 87
與nslookup類似,dig也會從/etc/resolv.conf文件中讀取DNS服務器信息,然後使用它進行DNS解析。
四、BIND的安裝和配置
BIND是一個非常流行的DNS服務器軟件,它支持大多數的UNIX和Linux操作系統,以及Windows等。在CentOS7中,我們可以使用yum來安裝BIND:
yum install bind bind-utils
安裝完成之後,可以通過以下命令來啟動BIND服務:
systemctl start named
BIND服務的配置文件保存在/etc/named.conf文件中,該文件包含了DNS服務器的配置信息,我們可以通過修改該文件來配置BIND服務器。例如,以下是一個基本的named.conf配置文件示例:
options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { none; }; 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"; allow-query { localhost; }; recursion yes; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
以上named.conf配置文件中包含了DNS的基本設置,可以根據實際情況進行修改。
五、使用BIND服務器
在使用BIND服務器時,我們需要將其配置為系統級別DNS服務器,即將/etc/resolv.conf文件中的nameserver地址修改為BIND服務器地址,如:
nameserver 192.168.0.1 search mydomain.com
然後重啟named服務:
systemctl restart named
現在,我們就可以使用nslookup或dig來查詢BIND服務器配置的DNS解析結果了。例如:
nslookup www.baidu.com dig www.baidu.com
六、總結
本文簡單介紹了CentOS7下的DNS服務和兩個常用的DNS查詢命令nslookup和dig,以及如何安裝、配置和使用BIND服務器。通過不斷深入學習和實踐,我們可以更好地理解和掌握DNS系統相關的知識和技能。
原創文章,作者:SQHTF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/370777.html