1.DNS一些基本概念
① FQDN:Full Qualified Domain Name,徹底限定域名,即每一個域在全球網絡都是惟一的;另外值得提到的一點是域並非指諸如www.google.com這樣的域名,而google.com纔是域;linux
② 域的分類web
根域:標識爲(.)點 ,全球13組根域名服務器以英文字母A到M依序命名,域名格式爲「字母.root-servers.net」。
其中有11個是以anycast任播技術在全球多個地點設立鏡像站。
好比中國大陸在北 京有兩臺編號爲L的鏡像,編號爲F、I、J的鏡像各一臺,共5臺;香港有編號爲D、J的鏡像各2臺,編號爲A、F、I、L的鏡像各一臺,共8 臺;臺灣則有編號爲F、I、J各一臺,共3臺。數據庫
頂級域:頂級域(Top Level Domain,簡稱TLD)分爲三類瀏覽器
- 通用頂級域:諸如 .com(商業機構) .org(非營利性組織) .net(網絡服務機構)等
- 國家頂級域:諸如 .cn(中國) .uk(英國) .us(美國) .jp(小日本)
- 反向域(基礎建設頂級域):.arpa,即從IP到FQDN的反向解析
③ DNS服務器查詢的類型:
緩存
- 遞歸:客戶端僅發出一次請求,讓DNS服務器去查詢返回結果;
- 迭代:要發出屢次請求去分別查詢不一樣的DNS服務器;
④ DNS名稱解析方式:服務器
- 正向解析:即將FQDN轉化爲IP。
- 反向解析:即將IP轉化爲FQDN。
⑤ DNS服務器類型:網絡
- 主DNS服務器:就是一臺存儲着原始資料的DNS服務器。
- 從DNS服務器:使用自動更新方式從主DNS服務器同步數據的DNS服務器。也成輔助DNS服務器。
- 緩存服務器:不負責本地解析,採用遞歸方式轉發客戶機查詢請求,並返回結果給客戶機的DNS服務器。同時緩存查詢回來的結果,也叫遞歸服務器。
- 轉發器:這臺DNS發現非本機負責的查詢請求時,再也不向根域發起請求,而是直接轉發給指定的一臺或者多臺服務器。自身並不緩存查詢結果。
⑥ DNS返回的結果類型:架構
- 確定答案:查詢的域存在,會被緩存下來。
- 否認答案:不存在查詢的域名,所以不存在與其查詢的域名對應的IP;會被緩存下來。
- 權威答案:所查詢的域名的結果是由負責解析這個域的DNS服務器所返回的答案。
- 非權威答案:在緩存中查詢的結果。
⑦ DNS的監聽端口:tcp的53號端口,udp的53號端口。dom
2.DNS解析過程
一次完整的查詢請求通過的流程:
Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 頂級域名DNS-->二級域名DNS…
![](http://static.javashuo.com/static/loading.gif)
- (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服務器再返回給客戶機。
提示:從客戶端到本地DNS服務器是屬於遞歸查詢,而DNS服務器之間的交互查詢就是迭代查詢
3.DNS記錄類型
DNS域名數據庫有資源記錄和區文件指令組成,由
SOA(Start Of Authority起始受權機構記錄,SOA 記錄說明了在衆多NS記錄裏那一臺纔是主名稱服務器) RR開始,
同時包括NS RR;
正向解析文件包括A (internet Address,做用,FQDN --> IP)RR
MX (Mail eXchanger,郵件交換器)RR
CNAME(Canonical NAME 別名) RR 等;
反向解析文件包括PTR(PTR: PoinTeR,IP --> FQDN) RR
RR 語法:name [TTL] IN type value (字段之間由空格和製表符隔開)
注意:
- TTL可從全局繼承;
- @可用於引用當前區域的名字 ;
- 同一個名字能夠經過多條記錄定義多個不一樣的值;此時 DNS服務器會以輪詢方式響應;
- 同一個值也可能有多個不一樣的定義名字;經過多個不一樣的 名字指向同一個值進行定義;此僅表示經過多個不一樣的名字能夠找到同一個主機。
named字段:
- 根域以」 . 「結束,而且只有一個,沒有上級域。而在Internet中,根域通常不須要表現出來;
- @:默認域,文件使用$ORIGIN domain 來講明默認域;
- ttl 全稱」Time to Live 「,以秒爲單位記錄該資源記錄中存放高速緩存中的時間長度。一般此處設爲空,表示採用SOA的最小ttl值;
- IN:將該記錄標誌爲一個Internet DNS資源記錄。
type字段:
- A記錄:主機名對應的IP地址記錄,用戶可將該域名下網站服務器指向本身的Web服務器,同時也可設置域名的二級域名。
- MX記錄:郵件交換記錄可將該域下全部郵件服務器 指向本身的郵件服務器,只需在線填寫服務器的IP地址。
- CNAME記錄:別名記錄,可容許多個名字映射到同一計算機,一般用於同時提供Web和郵件服務器的計算機。
- SOA記錄:一個受權區的開始,配置文件的第一個記錄必須是SOA的開始。
- PTR記錄:用於地址到主機名的映射。
- HINFO記錄:由一組描述主機的信息文件組成,一般包括硬件名稱和操做系統名稱。
value字段:
- A :存放IP地址。
- CNAME:設置主機別名。
- HINFO:一般爲兩行,分別對應Hareware(計算機硬件名稱)和OS-type(操做系統名稱)。
- NS:域名服務器的名稱。
- PTR:主機真實名稱。
3.1 SOA記錄: 能夠理解成爲本身DNS作備註說明的文本,通常與NS一致。
- name: 當前區域的名字,例如「carlos.com.」 ;value: 有多部分組成;
- 當前區域的主DNS服務器的FQDN,也可使用當前區域的名字;
- 當前區域管理員的郵箱地址;地址中不能使用@符號,通常用.替換 如linuxedu.carlos.com
- 主從服務區域傳輸相關定義以及否認的答案的統一的TTL
carlos.com. 86400 IN SOA ns.carlos.com.
nsadmin.carlos.com. (
2018091101 ;
序列號 2H ;
刷新時間 10M ;
重試時間 1W ;
過時時間 1D ;
否認答案的TTL值
)
3.2 NS記錄:域的受權名稱服務器,DNS的FQDN。
- name: 當前區域的名字 ;value: 當前區域的某DNS服務器的名字,例如 ns.carlos.com. 注意:一個區域能夠有多個NS記錄
carlos.com. IN NS ns1.carlos.com.
carlos.com. IN NS ns2.carlos.com.
注意:
- 相鄰的兩個資源記錄的name相同時,後續的可省略
- 對NS記錄而言,任何一個ns記錄後面的服務器名字 ,都應該在後續有一個A記錄
- NS記錄優先於A記錄。即,若是一個主機地址同時存在NS記錄和A記錄,則A記錄不生效。
3.3 MX記錄(Mail eXchanger):MX記錄是郵件交換記錄,它指向一個郵件服務器,用於電子郵件系統發郵件時根據收信人的地址後綴來定位郵件服務器。
- name: 當前區域的名字;value: 當前區域的某郵件服務器(smtp服務器)的主機名 , 一個區域內,MX記錄可有多個;
- 每一個記錄的value以前應 該有一個數字(0-99),表示此服務器的優先級;
- 數字越小優,先級越高。
carlos.com. IN MX 10 mx1.carlos.com.
IN MX 20 mx2.carlos.com.
注意:
- 對MX記錄而言,任何一個MX記錄後面的服務器名字 ,都應該在後續有一個A記錄
3.4 A記錄(Addrss): 正向解析 A記錄是將一個主機名(全稱域名FQDN)和一個IP地址關聯起來。這也是大多數客戶端程序默認的查詢類型。
- name: 某主機的FQDN,例如www.heiye.com. ;value: 主機名對應主機的IPv4地址
www.carlos.com. IN A 1.1.1.1
www.carlos.com. IN A 2.2.2.2
mx1.carlos.com. IN A 3.3.3.3
mx2.carlos.com. IN A 4.4.4.4
*.carlos.com. IN A 5.5.5.5
carlos.com. IN A 6.6.6.6
避免用戶寫錯名稱時給錯誤答案,可經過泛域名解析進行解 析至某特定地址
3.5 AAAA: name: FQDN value: IPv6
3.6 PTR(Pointer)反向解析: name: IP,有特定格式,把IP地址反過來寫,1.2.3.4,要寫做4.3.2.1; 而有特定後綴:in-addr.arpa.,
因此完整寫法爲 :4.3.2.1.in-addr.arpa. value: FQDN
4.3.2.1.in-addr.arpa. IN PTR www.carlos.com.
如1.2.3爲網絡地址,可簡寫成: 4 IN PTR www.carlos.com.
注意:
3.7 別名記錄:CNAME記錄(Canonical Name)別名
- name: 別名的FQDN ;value: 真正名字的FQDN
www.carlos.com. IN CNAME websrv.carlos.com.
4. DNS命名規範
- 26個英文字母
- 「0,1,2,3,4,5,6,7,8,9」十個數字
- 「-」(英文中的連詞號)
- 最多63字節長度
注意:
- 要不按照這個,bind支不支持,支持,合適麼,不合適。
- 非要不按照這個,怎麼辦?master-view文件上配置check-names ignore
....