溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux下怎么搭建DNS與服務(wù)器

發(fā)布時(shí)間:2021-11-23 16:02:42 來源:億速云 閱讀:237 作者:iii 欄目:服務(wù)器

這篇文章主要介紹“Linux下怎么搭建DNS服務(wù)器”,在日常操作中,相信很多人在Linux下怎么搭建DNS與服務(wù)器問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Linux下怎么搭建DNS與服務(wù)器”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

DNS 基本概念

本節(jié)概念,如果已知可以直接跳到 搭建 DNS 服務(wù)器

其實(shí)不管是開發(fā)還是運(yùn)維,多少都接觸過DNS,一個(gè)域名長這樣,一個(gè)點(diǎn)一個(gè)域,最多四個(gè)域,用域名也就是一個(gè)字符串來標(biāo)記一個(gè)網(wǎng)址的方式,是為了讓人更好記,計(jì)算機(jī)才不在乎是ip還是用域名呢!

Linux下怎么搭建DNS與服務(wù)器

頂級(jí)域又可以分為三類:

  1. 通用頂級(jí)域(.com 商業(yè)機(jī)構(gòu),.org 非營利性組織,.net 網(wǎng)絡(luò)服務(wù)機(jī)構(gòu)等)

  2. 國家頂級(jí)域(.cn 中國,.uk 英國,.us 美國,.jp 日本)

  3. 反向域(基礎(chǔ)建設(shè)頂級(jí)域,.arpa)

我們?nèi)绻约鹤?cè)一個(gè)域名,完全不用在乎用哪個(gè)頂級(jí)域名,只是一個(gè)潛規(guī)則,給別人知道大概你的網(wǎng)站可能有什么用,我們通常在ICP那里申請(qǐng)的域名是二級(jí)域名,申請(qǐng)下來以后就可以隨意自己加三級(jí)、四級(jí)域名,因?yàn)楹芏嗳隧敿?jí)域名是一樣的,申請(qǐng)的是二級(jí)域名,然后所有的三級(jí)四級(jí)域名你都可以自己加,都屬于你,按這種邏輯來看域名系統(tǒng)就像一顆樹

Linux下怎么搭建DNS與服務(wù)器

我們?nèi)魏稳硕伎梢陨暾?qǐng)域名,只要花幾十塊錢就可以用他來搭網(wǎng)站,比如我在騰訊云上申請(qǐng)的域名 coding3min.com 就是 60 塊一年的。

域名解析的過程

域名解析有多種類型,www、@、*、mail、二級(jí)域名、手機(jī)網(wǎng)站對(duì)應(yīng)不同的用法。

Linux下怎么搭建DNS與服務(wù)器

可以在騰訊云上看到提示,通常www為前綴的是主域名,但是輸入麻煩,我把他重定向到了coding3min.com上,也就是@方式,各個(gè)的作用看上圖。

記錄類型又分為下面這幾種

Linux下怎么搭建DNS與服務(wù)器

常用的是A類型,直接指向一個(gè)服務(wù)器的  ip,CNAME類型是指向另一個(gè)域名,比如我們用github給我們提供的表態(tài)網(wǎng)站服務(wù)就可以搭建起來一個(gè)免費(fèi)的博客會(huì)提供一個(gè)域名用來中轉(zhuǎn),我們也可以借助自己的域名來解析到MX類型,搭建自己后綴的郵件服務(wù)器。

下面是一個(gè)詳細(xì)的域名解析過程,劃重點(diǎn)!這里考試要考

Linux下怎么搭建DNS與服務(wù)器

如上圖,

  1. 在瀏覽器中輸入www.baidu.com域名,操作系統(tǒng)會(huì)先檢查自己本地的hosts文件是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,就先調(diào)用這個(gè) IP  地址映射,完成域名解析。

  2. 如果hosts里沒有這個(gè)域名的映射,則查找本地DNS解析器緩存,是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,直接返回,完成域名解析。

  3. 如果hosts與本地DNS解析器緩存都沒有相應(yīng)的網(wǎng)址映射關(guān)系,首先會(huì)找TCP/IP參數(shù)中設(shè)置的首選DNS服務(wù)器,在此我們叫它本地 DNS  服務(wù)器,此服務(wù)器收到查詢時(shí),如果要查詢的域名,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī),完成域名解析,此解析具有權(quán)威性。

  4. 如果要查詢的域名,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個(gè)IP地址映射,完成域名解析,此解析不具有權(quán)威性。

  5. 如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地 DNS 服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢,如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請(qǐng)求發(fā)至  “根DNS服務(wù)器”,“根DNS服務(wù)器”收到請(qǐng)求后會(huì)判斷這個(gè)域名(.com)是誰來授權(quán)管理,并會(huì)返回一個(gè)負(fù)責(zé)該頂級(jí)域名服務(wù)器的一個(gè)  IP。本地DNS服務(wù)器收到IP信息后,將會(huì)聯(lián)系負(fù)責(zé).com域的這臺(tái)服務(wù)器。這臺(tái)負(fù)責(zé).com域的服務(wù)器收到請(qǐng)求后,如果自己無法解析,它就會(huì)找一個(gè)管理.com域的下一級(jí)DNS服務(wù)器地址(baidu.com)給本地DNS服務(wù)器。當(dāng)本地DNS服務(wù)器收到這個(gè)地址后,就會(huì)找baidu.com域服務(wù)器,重復(fù)上面的動(dòng)作,進(jìn)行查詢,直至找到www.baidu.com主機(jī)。

  6. 如果用的是轉(zhuǎn)發(fā)模式,此DNS服務(wù)器就會(huì)把請(qǐng)求轉(zhuǎn)發(fā)至上一級(jí)DNS服務(wù)器,由上一級(jí)服務(wù)器進(jìn)行解析,上一級(jí)服務(wù)器如果不能解析,或找根 DNS  或把轉(zhuǎn)請(qǐng)求轉(zhuǎn)至上上級(jí),以此循環(huán)。

不管是本地 DNS 服務(wù)器

用還是轉(zhuǎn)發(fā),還是根提示,最后都是把結(jié)果返回給本地 DNS 服務(wù)器,由此 DNS 服務(wù)器再返回給客戶機(jī)。

DNS 查詢方式包含遞歸和迭代,解析方式包含正向解析和反向解析。我們知道了原理,實(shí)戰(zhàn)一下看看吧!

搭建本地 DNS 服務(wù)器

如果你用的是kubernetes來部署服務(wù),他的kube-dns組件會(huì)自動(dòng)做好域名解析,讓服務(wù)和服務(wù)之間用特定的名稱規(guī)則自動(dòng)完成服務(wù)發(fā)現(xiàn)。

DNS 只是一種協(xié)議,真正提供服務(wù)的是 bind 軟件,因此,現(xiàn)在來安裝它:

sudo yum install bind-utils bind bind-chroot

安裝后有幾個(gè)目錄或文件是需要記得的:

  • /etc/named.conf: 主配置文件

  • /etc/sysconfig/named: 配置是否啟動(dòng) chroot 及額外的參數(shù)

  • /var/named: 數(shù)據(jù)庫文件存放目錄,存放主機(jī)名對(duì)應(yīng) ip 的文件

  • /var/run/named: named 程序執(zhí)行時(shí) pid-file 文件存放目錄(在 ubuntu 系統(tǒng)中,目錄為/run/named)

知道了這幾個(gè)重要配置文件和目錄后,下面開始配置,我們把baidu.com的流量劫持了試試看

修改配置文件前一個(gè)重要習(xí)慣是先復(fù)制一份,這樣改錯(cuò)了方便恢復(fù)。

改主配置文件 named.conf,找到相應(yīng)的配置位置,改成我這個(gè)

listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; allow-query     { any; }; recursion yes;

意思是開放 53 號(hào)端口對(duì)于任意地址的監(jiān)聽,允許所有主機(jī)對(duì)我們進(jìn)行訪問,拒絕遞歸查詢方式,使用迭代查詢方式,增加資源利用率。

拉到底部可以看到 include 了這個(gè)配置文件,你可以在里面對(duì)正解(反解)區(qū)域進(jìn)行定義。

include "/etc/named.rfc1912.zones";

在/etc/named.rfc1912.zones底部添加如下內(nèi)容。

zone "baidu.com" IN {           //一級(jí)域名為.com、二級(jí)域名為.baidu          type master;               //類型為主DNS服務(wù)器          file "named.baidu.com";    //指向正解文件為/var/named/named.baidu.com };

修改/var/named/named.baidu.com文件如下,其中127.0.0.1這個(gè) ip 你可以改成你想要的。

$TTL 600 ;定義下列所有記錄緩存在客戶端的時(shí)間 @       IN SOA dns.yu.com. root.localhost (                                          0       ; serial       #序列號(hào),用于主從dns中判斷是否為最新版本                                          1H      ; refresh      #一小時(shí)更新一次                                          15M     ; retry        #若連接不上,等待15分鐘后重新嘗試連接                                          1W      ; expire       #超過一周仍無法下載便放棄下載                                          3D )    ; minimum      #客戶端找服務(wù)端做dns解析時(shí),否定答案的緩存時(shí)間為3天 @       IN      NS      dns.baidu.com.           ; NS記錄表明了dns服務(wù)器的SDQN為dns.baidu.com. dns.baidu.com.     IN      A       127.0.0.1     ; 下面三條A記錄表明了域內(nèi)主機(jī)的IP地址 www.baidu.com.     IN      A       127.0.0.1 ftp             IN      A       127.0.0.1

重啟服務(wù),檢查 SELinux 并開啟防火墻的 dns 服務(wù)

systemctl restart named  #重啟服務(wù) setenforce 0   #關(guān)閉SELinux firewall-cmd --add-service=dns #開啟防火墻的dns服務(wù)

修改 DNS 服務(wù)器指向

在linux中,DNS服務(wù)器指向的配置有固定的文件,如下文件就有一個(gè)主服務(wù)器,一個(gè)備服務(wù)器,等搭建好DNS服務(wù)器后就是改這個(gè)文件。

$ cat /etc/resolv.conf nameserver 192.168.3.1 nameserver 114.114.114.114

測試

ping www.baidu.com PING www.baidu.com (127.0.0.1) 56(84) bytes of data. 64 bytes from VM-0-11-centos (127.0.0.1): icmp_seq=1 ttl=64 time=0.006 ms 64 bytes from VM-0-11-centos (127.0.0.1): icmp_seq=2 ttl=64 time=0.021 ms ^C --- www.baidu.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.006/0.013/0.021/0.008 ms

也可以用nslookup來查看域名的解析,如果改完了新的DNS服務(wù)器的位置就可以用這個(gè)命令來查詢。

$ nslookup coding3min.com Server:  192.168.3.1 Address: 192.168.3.1#53  Non-authoritative answer: coding3min.com canonical name = coding3min.com.cdn.dnsv1.com. coding3min.com.cdn.dnsv1.com canonical name = 6yucorit.dispatch.spcdntip.com. Name: 6yucorit.dispatch.spcdntip.com Address: 112.67.251.116 Name: 6yucorit.dispatch.spcdntip.com Address: 113.105.165.183 Name: 6yucorit.dispatch.spcdntip.com Address: 113.96.98.77 Name: 6yucorit.dispatch.spcdntip.com Address: 125.78.252.121
  • Server 后的就是DNS服務(wù)器的地址

  • 因?yàn)槲矣昧薈DN,所以DNS解析出了多個(gè)地址,下面的Address比如112.67.251.116就是解析出來的真實(shí)ip

DNS協(xié)議運(yùn)行在UDP協(xié)議之上,因此使用的53號(hào)端口,當(dāng)沒有辦法查詢到完整的信息時(shí),就會(huì)再次以 TCP 協(xié)議來查詢,因此,防火墻需要放行TCP、UDP的  53 號(hào)端口,端口號(hào)可以在/etc/services文件查看到:

cat /etc/services  | grep domain domain          53/tcp                          # name-domain server domain          53/udp domaintime      9909/tcp                # domaintime domaintime      9909/udp                # domaintime

名詞解釋

DNS 服務(wù)器:運(yùn)行 DNS 服務(wù)器程序的計(jì)算機(jī),存儲(chǔ) DNS 數(shù)據(jù)庫信息。

DNS 緩存:DNS 服務(wù)器在解析客戶機(jī)的域名請(qǐng)求時(shí),如果本地沒有該域名的記錄,則會(huì)詢問其它 DNS 服務(wù)器,當(dāng)其它域名將解析結(jié)果返回給 DNS  服務(wù)器時(shí),DNS 將對(duì)應(yīng)的記錄保存在本地,生成 DNS 緩存,當(dāng)下一次客戶機(jī)再次請(qǐng)求時(shí),DNS 服務(wù)器則可以直接使用緩存中的 DNS 記錄。

DNS 查詢方式:遞歸查詢和迭代查詢

遞歸查詢:當(dāng)客戶機(jī)向 DNS 服務(wù)器發(fā)起域名解析請(qǐng)求時(shí),DNS 服務(wù)器首先查看自己本機(jī)的 DNS 記錄,如果沒有則會(huì)向其它 DNS  服務(wù)器發(fā)起解析請(qǐng)求。迭代查詢:當(dāng)客戶機(jī)向 DNS 服務(wù)器發(fā)起域名解析請(qǐng)求時(shí),DNS 服務(wù)器不會(huì)給客戶機(jī)解析地址,而是告訴客戶機(jī)另外一臺(tái) DNS  服務(wù)器,客戶機(jī)再向這臺(tái)服務(wù)器發(fā)起地址解析請(qǐng)求。

正向解析和反向解析正向解析:指域名解析到 IP 地址的解析過程。反向解析:指 IP 地址解析到域名的解析過程。

到此,關(guān)于“Linux下怎么搭建DNS與服務(wù)器”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI