詳解Linux搭建DNS服務器
1.DNS服務器概念
在互聯(lián)網(wǎng)上通信需要借助于IP地址,但人類對于數(shù)字的記憶能力遠不如文字,那么將IP地址轉(zhuǎn)換成容易記憶的文字是個好辦法,可是計算機只能識別0、1代碼,這時就需要一種機制來解決IP地址與主機名的轉(zhuǎn)換問題,DNS全稱為Domain Name System,即域名系統(tǒng),其作用就是將我們經(jīng)常使用的“網(wǎng)址”解析為IP地址 聯(lián)機分布式數(shù)據(jù)庫系統(tǒng),DNS大多數(shù)名字在本地解析,僅少量需要在網(wǎng)上通訊,所以效率高
2.DNS相關概念
DNS利用樹形目錄結(jié)構,將主機名的管理分配給不同的層級,這樣可以實現(xiàn)更加快速的完成主機名的查找, 修改主機名解析時也更加方便
域:
TLD: Top Level Domain (頂級域名)
組織域:.com, .org, .net, .edu,.gov,.mil,.cc,…
國家域:.cn, .us, .tw, .iq,…
反向域:.in-addr-arpa
FQDN:
FQDN全稱為Fully Qualified Domain Name,即完全合格域名
FQDN由兩個部分組成:主機名和域名。
因為DNS是逐級管理的 ,所以在不同的層級中主機名與域名也是不同的;
以www.google.com為例:
在第二層中,.com就是域名,google就是主機名;
而到了第三層中,.google.
正向解析: 從FQDN轉(zhuǎn)換為IP地址稱為正向解析
反向解析: 從IP地址轉(zhuǎn)換為FQDN稱為反向解析
區(qū)域:正向解析或反向解析中,每個域的記錄就是一個區(qū)域
3.DNS服務器解析
DNS的主要作用是進行主機名的解析
解析:
根據(jù)用戶提供一種名稱,去查詢解析庫,以得到另一種名稱。 域名—>IP,IP—>域名
資源記錄:rr(resource record) 有類型的概念;用于此記錄解析的屬性
- *SOA記錄:起始授權記錄,一個區(qū)域文件只能有一個
- *A記錄:用來指定主機名(或域名)對應的IP(ipv4)地址記錄。(AAAA ipv6)
- *CNAME記錄:別名解析(域名)
- *NS記錄:域名服務器記錄,用來指定該域名由哪個DNS服務器來進行解析。
- *MX記錄:郵件交換記錄,指向郵件服務器
- *PTR記錄:反向DNS記錄,A記錄的反向
- *TTL值:生存時間,DNS記錄在DNS服務器上緩存時間
4.DNS服務器原理
DNS采用兩種查詢機制:遞歸和迭代
客戶端向DNS服務器發(fā)起查詢請求,DNS服務器搜索本地解析庫沒有結(jié)果,于是向根域發(fā)起查詢請求,根域告訴DNS服務器.com服務器上有它需要的資源,DNS服務器又向.com服務器發(fā)起查詢請求,結(jié)果被告知.google.com服務器上有它想要的結(jié)果,后終于在.google.com服務器上找到了解析記錄,并返回給了客戶端 在上面的查詢過程中,客戶端只發(fā)起了一次請求,并得到了后的結(jié)果,這種查詢方式被稱為遞歸
而DNS服務器在查詢過程中不停的發(fā)起請求,直到找到想要的結(jié)果,這種查詢方式被稱為迭代
5.DNS查詢順序
- 本地hosts文件
- 本地DNS緩存
- 本地DNS服務器
- 發(fā)起迭代查詢
6.DNS服務器端口 TCP UDP 53
7.DNS服務器類型
主DNS服務器:
為客戶端提供域名解析的主要區(qū)域,主DNS服務器宕機,會啟用從DNS服務器提供服務
從DNS服務器:
- 1.主服務器DNS長期無應答,從服務器也會停止提供服務
- 2.主從區(qū)域之間的同步采用周期性檢查+通知的機制
- 3.從服務器周期性的檢查主服務器上的記錄情況,一旦發(fā)現(xiàn)修改就會同步,另外主服務器上如果有數(shù)據(jù)被修改了,會立即通知從服務器更新記錄
緩存服務器:
服務器本身不提供解析區(qū)域,只提供非權威應答
轉(zhuǎn)發(fā)服務器:
當DNS服務器的解析區(qū)域(包括緩存)中無法為當前的請求提供權威應答時,將請求轉(zhuǎn)發(fā)至其它的DNS服務器,此時本地DNS服務器就是轉(zhuǎn)發(fā)服務器
配置:
nslookup,dig dns客戶端測試工具
#tcpdump,wireshark抓包分析工具
DNS服務器搭建,正向解析、反向解析
1.關閉防火墻&Selinux
systemctl stop firewalld systemctl disable firewalld setenforce 0 getenforce
2.安裝DNS服務器軟件
yum install bind-chroot #主配置文件/etc/named.conf #區(qū)域配置文件/etc/named.rfc1912.zones 用來保存域名和IP地址對應關系 #數(shù)據(jù)配置文件目錄/var/named 用來保存域名和IP地址對應關系的所在位置
3.修改主配置文件
vi /etc/named.conf listen-on port 53 { any; }; #服務器上的所有IP地址均可提供DNS域名解析服務 allow-query { any; }; #允許所有人對本服務器發(fā)送DNS查詢請求 #named-checkconf 命令檢測語法
4.修改區(qū)域配置文件
#用來保存域名和IP地址對應關系的所在位置,在這個文件中,定義了域名與IP地址解析規(guī)則,保存的文件位置,以及服務類型等內(nèi)容,而沒有包含具體的域名、IP地址對應關系等信息。服務類型有三種,分別為hint(根區(qū)域)、master(主區(qū)域)、slave(輔助區(qū)域),其中常用的master和slave指的就是主服務器和從服務器 zone "c74.com" IN { type master; #服務類型 file "c74.com.zone"; #域名與IP地址解析規(guī)則保存文件 allow-update { none; }; #允許哪些客戶機動態(tài)更新解析信息 }; #正向解析參數(shù) zone "1.168.192.in-addr.arpa" IN { #表示為192.168.1.0/24網(wǎng)段的反射解析區(qū)域 type master; file "192.168.1.arpa"; }; #反向解析參數(shù)
5.正向解析
5.1 vi /etc/named.rfc1912.zones
可在原有的基礎上進行修改,也可清空,保留只用的信息 zone "c74.com" IN { #服務類型 type master; #域名與IP地址解析規(guī)則保存文件 file "c74.com.zone"; #允許哪些客戶機動態(tài)更新解析信息 allow-update { none; }; }; #named-checkzone 檢測zone文件的配置
5.2#編輯數(shù)據(jù)配置文件。從/var/named目錄中復制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的對應數(shù)據(jù)填寫到數(shù)據(jù)配置文件中并保存。在復制時記得加上-a參數(shù),這可以保留原始文件的所有者、所屬組、權限屬性等信息
cd /var/named cp -a named.localhost c74.com.zone #將named.localhost中的文件內(nèi)容(模板)復制到c74.com.zone里 vi c74.com.zone $TTL 1D #生存周期為1天 @ IN SOA c74.com. root.c74.com.( #@當前的域名 #授權信息開始 #DNS區(qū)域的地址 #域名管理員郵箱不要用@符號 0 ; serial #更新序列號 1D ; refresh #更新時間 1H ; retry #重試延時 1W ; expire #失效時間 3H ) ; minimum #無效解析記錄時間 NS ns.c74.com. #域名服務器記錄 ns IN A 192.168.5.153 #地址記錄ns.c74.com. IN MX 10 mail.c74.com. #郵箱交換記錄10為優(yōu)先級數(shù)字越小級別越高 mail IN A 192.168.5.153 #地址記錄mail.c74.com. www IN A 192.168.5.153 #地址記錄www.c74.com. news IN A 192.168.5.153 #地址記錄news.c74.com.
5.3 啟動服務及測試
systemctl restart named yum install bind-utils -y #bind-utils為客戶端 測試dns使用 nslookup > www.c74.com Server: 192.168.5.153 Address: 192.168.5.153#53 #其它也要測試,這里省略
6.反向解析
#反向解析的作用是將用戶提交的IP地址解析為對應的域名信息,它一般用于對某個IP地址上綁定的所有域名進行整體屏蔽,屏蔽由某些域名發(fā)送的垃圾郵件
6.1 vi /etc/named.rfc1912.zones
zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.arpa"; };
6.2 編輯配置文件
#從/var/named目錄中復制一份反向解析的模板文件(named.loopback),然后把下面的參數(shù)填寫到文件中 cd /var/named cp -a named.loopback 192.168.1.arpa vi 192.168.1.arpa $TTL 1D @ IN SOA c74.com. root.c74.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.c74.com. ns A 192.168.5.153 153 PTR ns.c74.com. #PTR為指針記錄,僅用于反向解析中 153 PTR mail.c74.com. 153 PTR www.c74.com. 153 PTR news.c74.com.
6.3 測試
systemctl restart named nslookup
7.DNS高級之主從服務
#由于上邊已部署主服務器,下主要介紹從服務器
#在DNS域名解析服務中,從服務器可以從主服務器上獲取指定的區(qū)域數(shù)據(jù)文件,從而起到備份解析記錄與負載均衡的作用,因此通過部署從服務器可以減輕主服務器的負載壓力,還可以提升用戶的查詢效率
#測試需要兩臺服務器!主192.168.10.10,從192.168.10.20
7.1#在主服務器的區(qū)域配置文件中允許該從服務器的更新請求,即修改allow-update {允許更新區(qū)域信息的主機地址;};參 數(shù),然后重啟主服務器的DNS服務程序
vi /etc/named.rfc1912. zones zone "c74.com" IN { type master; file "c74.com.zone"; allow-update { 192.168.10.20; }; }; zone "10.168.192.in-addr.arpa" IN { type master; file "192.168.10.arpa"; allow-update { 192.168.10.20; }; }; systemctl restart named
7.2#在從服務器中填寫主服務器的IP地址與要抓取的區(qū)域信息,然后重啟服務。注意此時的服務類型應該是slave(從), 而不再是master(主)。masters參數(shù)后面應該為主服務器的IP地址,而且file參數(shù)后面定義的是同步數(shù)據(jù)配置文件后 要保存到的位置,稍后可以在該目錄內(nèi)看到同步的文件
vi /etc/named.rfc1912.zones zone "c74.com" IN { type slave; masters { 192.168.10.10; }; file "slaves/c74.com.zone"; }; zone "10.168.192.in-addr.arpa" IN { type slave; masters { 192.168.10.10; }; file "slaves/192.168.10.arpa"; }; #file參數(shù)后面定義的是同步數(shù)據(jù)配置文件后 要保存到的位置,稍后可以在該目錄內(nèi)看到同步的文件}; systemctl restart named
7.3 #檢驗解析結(jié)果。當從服務器的DNS服務程序在重啟后,一般就已經(jīng)自動從主服務器上同步了數(shù)據(jù)配置文件,而且該文件 默認會放置在區(qū)域配置文件中所定義的目錄位置中。隨后修改從服務器的網(wǎng)絡參數(shù),把DNS地址參數(shù)修改成 192.168.10.20,這樣即可使用從服務器自身提供的DNS域名解析服務。后就可以使用nslookup命令順利看到解析結(jié)果了
cd /var/named/slaves ls #注意從服務器會同步主服務器的文件! nslookup www.c74.com 192.168.10.10
以上所述是小編給大家介紹的Linux搭建DNS服務器詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- 基于HTTP瀏覽器緩存機制全面解析
- 瀏覽器緩存知識小結(jié)及應用分析
- js清除瀏覽器緩存的幾種方法
- 清除瀏覽器緩存的幾種方法總結(jié)(必看)
- windows server 2008 r2 DNS服務器配置圖文教程
- Docker 默認bridge網(wǎng)絡中配置DNS的方法
- Windows Server2012 安裝配置DNS服務器方法詳解
- 在Windows 7 上安裝DNS服務器bind9方法詳解
- Linux下修改IP、DNS和路由命令行配置方法
- 解決Cent0S 6.7直接在/etc/resolv.conf文件下修改DNS地址重啟不生效問題
- 詳解用Nginx搭建CDN服務器方法(圖文)
- 網(wǎng)站加速之CDN、SCDN、DCDN區(qū)別在哪?如何選擇?
- 利用CDN加速react webpack打包后的文件詳解
- 阿里云服務器實現(xiàn)域名解析步驟(小白教程)
- 一文帶你了解什么是瀏覽器緩存,DNS,CDN及域名解析類型
相關文章
centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法
這篇文章主要介紹了centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法,較為詳細的講述了centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的具體步驟與相關設置技巧,需要的朋友可以參考下2018-01-01Linux用戶自定義at、cron計劃任務執(zhí)行的方法
今天小編就為大家分享一篇Linux用戶自定義at、cron計劃任務執(zhí)行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Ubuntu 16.04與Apache虛擬主機配置的步驟詳解
這篇文章主要給大家介紹了關于Ubuntu 16.04與Apache虛擬主機配置的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用ubuntu16.04系統(tǒng)具有一定的參考學習價值,需要的朋友們來一起看看吧。2018-04-04淺析linux查看防火墻狀態(tài)和對外開放的端口狀態(tài)
這篇文章主要介紹了linux查看防火墻狀態(tài)和對外開放的端口狀態(tài),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12centos7系統(tǒng)nginx服務器下phalcon環(huán)境搭建方法詳解
這篇文章主要介紹了centos7系統(tǒng)nginx服務器下phalcon環(huán)境搭建方法,結(jié)合具體實例形式詳細分析了centos7的nginx服務器搭建phalcon的具體操作步驟與相關設置技巧,需要的朋友可以參考下2019-09-09