DNS and bind 初步
前言
TCP/IP協議通信是針對于ip地址的,你說我要是去淘寶買東西,怎么可能記住ip地址,我要是去百度買東西,也記不住啊,所以針對于此,就出現了這樣一個翻譯器,起一個名字,跟ip地址對應。是多對一還是一對多呢,都可以,我幾個ip指向一個網址也沒問題,幾個網址指向一個ip也可以。
對于反向域名解析功能等以后用到再做總結,反向域名解析功能用到電子郵件上,用來處理那些查找不到域名的垃圾郵件,直接拒絕接受,一般公司應用不到,固在先不做總結。
知識點
1、空間結構
我怎么根據一個ip地址在萬軍從中找到找到那個名字?設置一臺DNS服務器可以嘛?我現在全球有40億個請求等著解析百度的網站名,一臺肯定不行,那多臺可以嘛,可以嘛?也不可以?用戶基數大,不但有讀請求,還有寫請求,每臺服務器管多少是夠?服務器也是會崩潰的
所以,DNS采用分布式數據庫系統,就像原來的文件系統一樣,倒裝樹一樣。全球有13個根DNS服務器,根服務器只管頂級域,如cn,com。頂級域下面有二級域,像com下面的baidu,二級域下面的有三級域等等,以baidu.com.結尾的都屬于這個二級域的,可以說是百度的吧。子域是二級域下面的,如www等。
主機名是最下面最下面的要找的主機名。大致圖形自己腦補,就是倒狀樹。
2、DNS解析類型
正向:ip--->主機名 反向:主機名--->ip
3、DNS服務器類型
主服務器: 輔服務器:復制主服務器的數據,止可讀,不可改,可以跟主的分擔查詢解析 緩存服務器:這個服務器是不負責域解析的
4、請求流程
client--->hosts文件--->DNS Local Cache----->DNS 服務器 --->自己負責解析的域---->直接就可以找到(自家的孩子就不用麻煩別人找了) --->不是自己負責解析的--->先找服務器緩存找不到去找根求助,根通過迭代的方式幫你找
DNS服務器安裝和配置
1、安裝容易
yum 安裝bind 和 bind-libs包,后面用到的可以再裝
2、配置文件
主配置文件/etc/named.conf
該文件包含兩部分,一個是來設置DNS服務器整體生效的內容,我們常說是全局配置,包括options,logging
還有一個是用來設置區域名、區域類型和區域文件名的,叫局部配置,從zone往后都是。
全局配置
全局配置要改幾個東西:
listen-on port 53 { 127.0.0.1; };
設置監聽的DNS服務器IPv4端口和IP地址,這里要將127.0.0.1改成DNS服務器的IPv4地址 它是什么意思呢,我想的就是客戶端發送請求,服務端接受請求,這叫什么?。窟@叫c/s架構,c/s架構通??渴裁赐ㄐ?,靠套接字sockets通信,套接字是什么啊,是ip地址加端口,端口有了,53,那要ip地址。要誰的ip地址,要客戶端的c的ip地址,客戶端是誰啊,是我啊,我他媽天天要訪問百度,我用的是什么東西,用的是虛擬機,所以ip地址是虛擬機的ip,那么端口是干什么的,端口是進程訪問用的,我有你電腦的ip地址有毛用啊,我發你qq信息是發到哪里,是發到你郵箱還是qq上,這時候就要有一個端口了,就是進程地址。這么想對嘛,不對啊,我在配置DNS,我的電腦是服務器。那么少了什么東西,別人要訪問我,我要干什么嘛,我要等著別人訪問,這叫什么,這叫監聽(linsten),所以把我的地址放在53號上面,等著別人訪問,至于為什么是53號,我想大致是因為,這個53號端口是特定為這個DNS請求訪問準備的吧。 然后來配置吧,把127.0.0.1(默認地址)改成我的ip地址。遇到了問題。直接改嘛?改完了為什么不行啊,找不到,上網查了一下。如上述所示,為什么啊,暫且這樣記住吧。
directory
顧名思義,我的DNS服務器配置好了,數據放到哪里,就放在這里面。
allow-query
就是我設置的DNS服務器為哪些主機服務,local 就相當于只為當前主機提供了DNS解析服務,別人的DNS填我這個服務地址是沒法用的。
recursion 是否設置啟用遞歸是DNS服務器,dnssec都設置成no。
forwarders
設置DNS轉發器 為什么要設置,說白了就是可以越過根,直接找另外一個厲害的DNS服務器請求。會比直接去根上找快一點 還有,假如我在公司內部設置一個DNS服務解析器,設置員工只能瀏覽指定的網頁,這個時候就可以讓其他域名在本地找不到,這個時候就可以轉到一個錯誤的解析器上,指定錯誤的ip,就不能上其他的網站了。
局部配置
zone:設置區域的相關信息
區域是什么啊?magedu.com.算是一個二級域了,就是我這個DNS解析器管哪個域,為哪個域解析名字。
type:設置區域類型
區域類型是什么啊? 我如何去定義一個主DNS服務器,和一個輔DNS服務器,就要靠區域類型來決定了。
ss -tnl查看是否監聽在53號端口上。
把自己的地址設置成為DNS解析器的地址
vim /etc/resdv.conf
配置完成后的測試
配置完成后,為了檢驗自己配的對不對,啟動服務來測試一下。 啟動服務:systemctl start named.service 測試:dig -t A www.baidu.com (+trace追蹤解析過程)
配置DNS區域文件(正向解析:以magedu為例)
我要想用dns管理一個域所必備的條件 有一個聯網的主機 有一在互聯網上注冊的域可以供你來解析 有一個ip地址可以供你的域用
定義區域
1、定義區域 vim /etc/named.rfc1912.zones加一個區域 就直接如下編輯: cat >>/etc/named.rfc1912.zones<<EOF 區域名即為域名
2、建立區域數據文件 怎么建立:cd /var/named/ cat named.localhost(仿照這個文件)
進行配置:(在/var/named目錄下) vim magedu.com.zone
magedu.com. IN NS ns1.magedu.com. (表示magedu.com.這個區域的域名服務器是ns1.magedu.com.) magedu.com. IN MX 10 mx1.magedu.com. magedu.com. IN MX 20 mx2.magedu.com. (表示magedu.com.當前的郵件交換主機名是mx1.magedu.com.,10表示優先級,MX記錄可以有多個) A記錄,真正的解析數據庫。(A表示ipv4地址) www.magedu.com. IN A 1.1.1.1 www.magedu.com. IN A 1.1.1.2 mx1.magedu.com. IN A 3.3.3.3 mx2.magedu.com. IN A 3.3.3.3 PTR記錄,用在反向解析: 有特定格式,把IP地址反過來寫 如:1.2.3.4,要寫作4.3.2.1; 有特定后綴:in-addr.arpa. 如:完整寫法為:4.3.2.1.in-addra.arpa. CNAME:(別名) web.magedu.com. IN CNAME www.magedu.com. (表示www的這個主機的別名為web)
上截圖是復制的,為了驗證效果,再寫一次:
$TTL 3600 @ IN SOA ns1.magedu.com. dnsadmin.magedu.com. ( 2016120601 1H 10M 3D 1D) IN NS ns1 IN MX 10 mx1 IN MX 20 mx2 ns1 IN A 192.168.1.109 mx1 IN A 192.168.1.105 mx2 IN A 192.168.1.104 www IN A 192.168.1.109 web IN CNAME www bbs IN A 192.168.1.107 bbs IN A 192.168.1.105
rndc status
rndc reload
之后再改權限:其它不可讀: chmod o= magedu.com.zone 測試: dig -t A www.magedu.com.
原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/62830
總結的非常好,舉例也很生動,加油!