中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下怎么搭建DNS與服務器

發布時間:2021-11-23 16:02:42 來源:億速云 閱讀:237 作者:iii 欄目:服務器

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

DNS 基本概念

本節概念,如果已知可以直接跳到 搭建 DNS 服務器

其實不管是開發還是運維,多少都接觸過DNS,一個域名長這樣,一個點一個域,最多四個域,用域名也就是一個字符串來標記一個網址的方式,是為了讓人更好記,計算機才不在乎是ip還是用域名呢!

Linux下怎么搭建DNS與服務器

頂級域又可以分為三類:

  1. 通用頂級域(.com 商業機構,.org 非營利性組織,.net 網絡服務機構等)

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

  3. 反向域(基礎建設頂級域,.arpa)

我們如果自己注冊一個域名,完全不用在乎用哪個頂級域名,只是一個潛規則,給別人知道大概你的網站可能有什么用,我們通常在ICP那里申請的域名是二級域名,申請下來以后就可以隨意自己加三級、四級域名,因為很多人頂級域名是一樣的,申請的是二級域名,然后所有的三級四級域名你都可以自己加,都屬于你,按這種邏輯來看域名系統就像一顆樹

Linux下怎么搭建DNS與服務器

我們任何人都可以申請域名,只要花幾十塊錢就可以用他來搭網站,比如我在騰訊云上申請的域名 coding3min.com 就是 60 塊一年的。

域名解析的過程

域名解析有多種類型,www、@、*、mail、二級域名、手機網站對應不同的用法。

Linux下怎么搭建DNS與服務器

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

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

Linux下怎么搭建DNS與服務器

常用的是A類型,直接指向一個服務器的  ip,CNAME類型是指向另一個域名,比如我們用github給我們提供的表態網站服務就可以搭建起來一個免費的博客會提供一個域名用來中轉,我們也可以借助自己的域名來解析到MX類型,搭建自己后綴的郵件服務器。

下面是一個詳細的域名解析過程,劃重點!這里考試要考

Linux下怎么搭建DNS與服務器

如上圖,

  1. 在瀏覽器中輸入www.baidu.com域名,操作系統會先檢查自己本地的hosts文件是否有這個網址映射關系,如果有,就先調用這個 IP  地址映射,完成域名解析。

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

  3. 如果hosts與本地DNS解析器緩存都沒有相應的網址映射關系,首先會找TCP/IP參數中設置的首選DNS服務器,在此我們叫它本地 DNS  服務器,此服務器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。

  4. 如果要查詢的域名,不由本地DNS服務器區域解析,但該服務器已緩存了此網址映射關系,則調用這個IP地址映射,完成域名解析,此解析不具有權威性。

  5. 如果本地DNS服務器本地區域文件與緩存解析都失效,則根據本地 DNS 服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至  “根DNS服務器”,“根DNS服務器”收到請求后會判斷這個域名(.com)是誰來授權管理,并會返回一個負責該頂級域名服務器的一個  IP。本地DNS服務器收到IP信息后,將會聯系負責.com域的這臺服務器。這臺負責.com域的服務器收到請求后,如果自己無法解析,它就會找一個管理.com域的下一級DNS服務器地址(baidu.com)給本地DNS服務器。當本地DNS服務器收到這個地址后,就會找baidu.com域服務器,重復上面的動作,進行查詢,直至找到www.baidu.com主機。

  6. 如果用的是轉發模式,此DNS服務器就會把請求轉發至上一級DNS服務器,由上一級服務器進行解析,上一級服務器如果不能解析,或找根 DNS  或把轉請求轉至上上級,以此循環。

不管是本地 DNS 服務器

用還是轉發,還是根提示,最后都是把結果返回給本地 DNS 服務器,由此 DNS 服務器再返回給客戶機。

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

搭建本地 DNS 服務器

如果你用的是kubernetes來部署服務,他的kube-dns組件會自動做好域名解析,讓服務和服務之間用特定的名稱規則自動完成服務發現。

DNS 只是一種協議,真正提供服務的是 bind 軟件,因此,現在來安裝它:

sudo yum install bind-utils bind bind-chroot

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

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

  • /etc/sysconfig/named: 配置是否啟動 chroot 及額外的參數

  • /var/named: 數據庫文件存放目錄,存放主機名對應 ip 的文件

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

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

修改配置文件前一個重要習慣是先復制一份,這樣改錯了方便恢復。

改主配置文件 named.conf,找到相應的配置位置,改成我這個

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

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

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

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

在/etc/named.rfc1912.zones底部添加如下內容。

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

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

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

重啟服務,檢查 SELinux 并開啟防火墻的 dns 服務

systemctl restart named  #重啟服務 setenforce 0   #關閉SELinux firewall-cmd --add-service=dns #開啟防火墻的dns服務

修改 DNS 服務器指向

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

$ 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服務器的位置就可以用這個命令來查詢。

$ 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服務器的地址

  • 因為我用了CDN,所以DNS解析出了多個地址,下面的Address比如112.67.251.116就是解析出來的真實ip

DNS協議運行在UDP協議之上,因此使用的53號端口,當沒有辦法查詢到完整的信息時,就會再次以 TCP 協議來查詢,因此,防火墻需要放行TCP、UDP的  53 號端口,端口號可以在/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 服務器:運行 DNS 服務器程序的計算機,存儲 DNS 數據庫信息。

DNS 緩存:DNS 服務器在解析客戶機的域名請求時,如果本地沒有該域名的記錄,則會詢問其它 DNS 服務器,當其它域名將解析結果返回給 DNS  服務器時,DNS 將對應的記錄保存在本地,生成 DNS 緩存,當下一次客戶機再次請求時,DNS 服務器則可以直接使用緩存中的 DNS 記錄。

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

遞歸查詢:當客戶機向 DNS 服務器發起域名解析請求時,DNS 服務器首先查看自己本機的 DNS 記錄,如果沒有則會向其它 DNS  服務器發起解析請求。迭代查詢:當客戶機向 DNS 服務器發起域名解析請求時,DNS 服務器不會給客戶機解析地址,而是告訴客戶機另外一臺 DNS  服務器,客戶機再向這臺服務器發起地址解析請求。

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

到此,關于“Linux下怎么搭建DNS與服務器”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛隆县| 沐川县| 塔城市| 兴业县| 苗栗市| 民权县| 灵山县| 汨罗市| 云南省| 沙坪坝区| 绥德县| 武隆县| 潮安县| 涟源市| 蓬莱市| 太湖县| 秦皇岛市| 精河县| 永泰县| 隆林| 无棣县| 榆社县| 申扎县| 平顺县| 桃源县| 景泰县| 渝中区| 兴义市| 容城县| 济源市| 兴安县| 峨眉山市| 尼勒克县| 土默特右旗| 宁都县| 巴中市| 什邡市| 利辛县| 民权县| 凉城县| 大同市|