2021-05-12 14:32:11
RHEL7 學習筆記(32) - DNS
本節學習了DNS的基本流程和如何使用unbound工具設定本地和轉發請求。
DNS的基本流程和概念我不贅述了,網上的各種圖解流程多如牛毛。
1、在瀏覽器中輸入www.qq.com域名,作業系統會先檢查自己原生的hosts檔案是否有這個網址對映關係,如果有,就先呼叫這個IP地址對映,完成域名解析。
2、如果hosts裡沒有這個域名的對映,則查詢本地DNS解析器快取,是否有這個網址對映關係,如果有,直接返回,完成域名解析。
3、如果hosts與本地DNS解析器快取都沒有相應的網址對映關係,首先會找TCP/ip引數中設定的首選DNS伺服器,在此我們叫它本地DNS伺服器,此伺服器收到查詢時,如果要查詢的域名,包含在本地設定區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。
4、如果要查詢的域名,不由本地DNS伺服器區域解析,但該伺服器已快取了此網址對映關係,則呼叫這個IP地址對映,完成域名解析,此解析不具有權威性。
5、如果本地DNS伺服器本地區域檔案與快取解析都失效,則根據本地DNS伺服器的設定(是否設定轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至13台根DNS,根DNS伺服器收到請求後會判斷這個域名(.com)是誰來授權管理,並會返回一個負責該頂級域名伺服器的一個IP。本地DNS伺服器收到IP資訊後,將會聯絡負責.com域的這台伺服器。這台負責.com域的伺服器收到請求後,如果自己無法解析,它就會找一個管理.com域的下一級DNS伺服器地址(qq.com)給本地DNS伺服器。當本地DNS伺服器收到這個地址後,就會找qq.com域伺服器,重複上面的動作,進行查詢,直至找到www.qq.com主機。
6、如果用的是轉發模式,此DNS伺服器就會把請求轉發至上一級DNS伺服器,由上一級伺服器進行解析,上一級伺服器如果不能解析,或找根DNS或把轉請求轉至上上級,以此迴圈。不管是本地DNS伺服器用是是轉發,還是根提示,最後都是把結果返回給本地DNS伺服器,由此DNS伺服器再返回給客戶機。
主要看看在RHEL7裡如何設定local-zone和forward-zone。
RHEL6之前都是通過bind設定,RHEL7裡面改成unbound設定了
首先安裝
安裝之後進入/etc/unbound目錄,其中 unbound.conf是他的主組態檔。
開啟unbound.conf, 首先修改以下幾個部分:
interface:0.0.0.0 表示允許所有的埠都對埠53進行偵聽。注意DNS使用TCP 53用於區域傳送同步資料;而UDP 53用於普通使用者的請求。
第二個地方是 access-control,允許哪個網段傳送遞回請求
第三個地方是username,改成空的不會改變許可權
如果想在其他地方寫組態檔,路徑要放在 Include裡面
local-zone 和 forward-zone 的語法格式很簡單,注釋部分都有例子
隨便寫了幾個原生的DNS記錄
寫了一個轉發的,所有對beanxyz.com的請求都轉發到 172.0.10.100
轉發的地址是一個windows 2012 的域控,本身也安裝了DNS
重新啟動服務
把我的resolve檔案也清空一下,免得衝突
對本地正向解析,反向解析都沒問題
對beanxyz域的解析也沒有問題,成功轉發,可以看見是非權威應答(轉發出去後獲得的快取記錄)
相關文章