一,前言
網際網路的通路依靠IP位址。但IP位址不好記。
是以使用域名服務(DNS,好記名),來替代通路的位址。
二,基本概念
1,專業術語1:
hosts檔案(老的)
hosts檔案
作用: 實作名字解析,主要為本地主機名、叢集節點提供快速解析
資料庫: 平面式結構,集中式資料庫
缺點:不便于查詢,更新
windows
C:\Windows\System32\drivers\etc
Linux
/etc/hosts
DNS
DNS(Domain Name System,域名系統)(分布式,層次性)
作用: 實作名字解析(例如将主機名解析為IP)
區(Zone)
區是DNS名稱空間的一部分,其包含了一組存儲在DNS伺服器上的資源記錄。
使用區的概念,DNS伺服器回答關于自己區中主機的查詢,每個區都有自己的授權伺服器。
主域名伺服器與輔助域名伺服器
當區的輔助伺服器啟動時,它與該區的主要伺服器進行連接配接并啟動一次區轉輸,區輔助伺服器定期與區主要伺服器通信,檢視區資料是否改變,如果變了,它就啟動一次資料更新傳遞。
輔助伺服器的有點
1.容錯能力
配置輔助伺服器後,在該區主伺服器崩潰的情況下,客戶機仍能解析該區的名稱。一般把區的主伺服器和區的輔助伺服器安裝在不同的子網上,這樣如果到一個子網的連接配接中斷,DNS客戶機還能直接查詢另一個子網上的名稱伺服器。
2.減少廣域鍊路的通信量
如果某個區在遠端有大量的客戶機,使用者就可以在遠端添加該區的輔助伺服器,并把遠端的客戶機配置成先查詢這些伺服器,這樣就能夠防止遠端客戶機通過慢速鍊路通信來進行DNS查詢。
3.減輕主伺服器的負載
輔助伺服器能回答該區的查詢,進而減少該區主伺服器必須回答的查詢數。
FQDN
FQDN:(Fully Qualified Domain Name)完全合格域名/全稱域名
SOA 資源記錄
每個區在區的開始處都包含一個起始授權記錄(Start of Authority Record),簡稱SOA記錄。SOA定義了域的全局參數,進行整個域的管理設定。一個區域檔案隻允許存在唯一的SOA記錄。
NS 資源記錄
NS(NameServer)記錄是域名伺服器記錄,用來指定該域名由哪個DNS伺服器來進行解析。每個域在區根處至少包含一個NS記錄。
A 資源記錄
位址(A)資源記錄把FQDN 映射到IP 位址。因為有此記錄,是以DNS伺服器能解析FQDN域名對應的IP位址。
PTR 資源記錄
相對于A 資源記錄,指針(PTR)記錄把IP位址映射到FQDN。用于反向查詢,通過IP位址找到域名。
CNAME 資源記錄
别名記錄(CNAME)資源記錄建立特定FQDN的别名。使用者可以使用CNAME記錄來隐藏使用者網絡的實作細節,使連接配接的客戶機無法知道真正的域名。
例:ping 百度時,解析到百度的别名伺服器。百度有個cname=www.a.shifen.com.的别名
MX 資源記錄
郵件交換(MX)資源記錄,為DNS 域名指定郵件互動伺服器。
模式
c/s模式
端口号
tcp/53 udp/53 //用于用戶端的查詢
tcp/953 udp/953 //用于DNS 主從同步
命名空間
命名空間name space: 用于給網際網路上的主機命名的一種機制
2,專業術語2:
權威名稱伺服器
權威名稱伺服器: 存儲并提供某個區域的實際資料,例如126.com的DNS伺服器,記錄了126.com域中所有主機的記錄如:
www.126.com. x.x.x.x
ftp.126.com. y.y.y.y
權威名稱伺服器類型包括:
Master: 主DNS伺服器,包含原始區域的資料
Slave: 備份DNS伺服器,通過(區域傳輸)從Master伺服器獲得區域資料的副本
非權威名稱伺服器
非權威名稱伺服器: 不存儲某個區域的實際資料,僅緩存DNS伺服器,雖然可以提供查詢,但查詢的内容不具有權威性
DNS解析流程
例如用戶端解析 www.126.com
1. 用戶端查詢自己的緩存(包含hosts中的記錄),如果沒有将查詢發送/etc/resolv.conf中的DNS伺服器
2. 如果本地DNS伺服器對于請求的資訊具有權威性,會将(權威答案)發送到用戶端。
3. 否則(不具有權威性),如果DNS伺服器在其緩存中有請求資訊,則将(非權威答案)發送到用戶端
4. 如果緩存中沒有該查詢資訊,DNS伺服器将搜尋權威DNS伺服器以查找資訊:
a. 從根區域開始,按照DNS層次結構向下搜尋,直至對于資訊具有權威的名稱伺服器,為用戶端獲答案
DNS伺服器将資訊傳遞給用戶端 ,并在自己的緩存中保留一個副本,以備以後查找。
b. 轉發到其它DNS伺服器
遞歸/疊代
遞歸查詢. 一次性溝通完
遞歸查詢是一種DNS伺服器的查詢模式,在該模式下DNS伺服器接收到客戶機到客戶機的請求,必須使用一個準确的查詢結果回複客戶機。如果DNS伺服器本地沒有存儲查詢DNS資訊,那麼該伺服器會詢問其他伺服器,并将傳回的結果送出給客戶機。
疊代查詢
DNS伺服器另外一種查詢方式為疊代查詢,當客戶機發送查詢請求時,DNS伺服器并不直接回複查詢結果,而是告訴客戶機另一台DNS伺服器位址,客戶機再向這台DNS伺服器送出請求,依次循環直到傳回查詢的結果為止。
總結 :一般情況下,從pc的用戶端到本機的DNS伺服器是屬于遞歸查詢。而DNS伺服器之間的互動查詢就是疊代查詢。
伺服器類型
緩存伺服器
主伺服器
從伺服器
轉發伺服器
正向解析/反向解析
正向解析是指域名到IP位址的解析過程。
反向解析是從IP位址到域名的解析過程。反向解析的作用為伺服器的身份驗證。
三,DNS伺服器基本配置
1,緩存DNS伺服器/轉發器
環境
DNS伺服器1:10.18.41.251
DNS客戶機:10.18.41.8
部署DNS伺服器
安裝伯克利域名服務
[[email protected] ~]# yum -y install bind bind-chroot
2 觀察域名服務設定,啟動查詢功能
[[email protected] ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; //改或者删除
listen-on-v6 port 53 { any; }; //改或者删除
allow-query { any; }; //改或者删除
3 啟動DNS伺服器
[[email protected] ~]# systemctl start named
[[email protected] ~]# systemctl enable named
4 觀察是否啟動DNS,查詢到DNS53号端口即開啟成功,否則失敗。
[[email protected] ~]# ss -tuln |grep :53 |column -t //以列規整顯示
udp UNCONN 0 0 :::53 :::*
tcp LISTEN 0 10 :::53 :::*
5 防火牆firewalld
[[email protected] ~]# firewall-cmd --permanent --add-service=dns
[[email protected] ~]# firewall-cmd --reload
options {
listen-on port 53 { any; }; //改或者删除
listen-on-v6 port 53 { any; }; //改或者删除
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; //改或者删除
用戶端測試DNS解析
[[email protected] ~]# cat /etc/resolv.conf
nameserver 上一台伺服器的IP位址
2.DNS伺服器正常提供服務後
[[email protected] ~]# dig www.baidu.com
;; ANSWER SECTION:
www.baidu.com. 1055 IN CNAME www.a.shifen.com.
www.a.shifen.com. 155 IN A 111.13.100.92 //目标主機的IP位址
;; SERVER: 上一台伺服器的IP #53(上一台伺服器的IP)
3 進行通信
[[email protected] ~]# ping www.baidu.com
PING www.a.shifen.com (111.13.100.92) 56(84) bytes of data.
64 bytes from 111.13.100.92: icmp_seq=1 ttl=52 time=15.4 ms
64 bytes from 111.13.100.92: icmp_seq=2 ttl=52 time=14.5 ms
解析原理(根提示)檢視DNS伺服器主配置檔案
[[email protected] ~]# vim /etc/named.conf
根提示區域 [預設]
vim /var/named/named.ca
#是單行注釋 /*是多行注釋
或者使用DNS轉發器
DNS轉發Forward [通常轉發到上一級的DNS伺服器]
options {
...
forward first;
forwarders { 114.114.114.114; 202.106.0.20; };
};
2,主DNS伺服器配置/正向區解析配置
功能
==正向區: 提供正向解析,即将域名解析為IP
==反向區: 提供反向解析,即将IP解析為域名 [了解]
環境
10.18.41.251--DNS伺服器
10.18.41.252-DNS客戶機
案例
案例1:xulei.com
1.主配置檔案 相當于在域名服務商申請域名
[[email protected] ~]# vim /etc/named.conf
zone "xulei.com" { //建立域xulei.com
type master;
file "xulei.com.zone";
};
2. 資料庫檔案(區域檔案) 在域名服務提供的頁面上做解析
[[email protected] ~]# vim /var/named/xulei.com.zone
$TTL 600
@ IN SOA @ root ( 2017033100 1H 15M 1W 1D )
@ IN NS dns
dns IN A 114.215.71.214 //DNS伺服器本機IP
www IN A 119.75.218.70 //網站伺服器IP
SOA和NS是強制要寫的。
區域檔案中參數詳解
$TTL 600
@ IN SOA @ root ( 2017033100 1H 15M 1W 1D )
@服務的域名
IN
SOA授權
@伺服器的域名
root.xulei.com管理者郵箱
(版本号時間戳 1小時同步 15分鐘重試 1周過期 1天的緩存)
3.重新開機DNS,使配置生效
[[email protected] ~]#systemctl restart named
案例2:增加yang.com
1. 主配置檔案
[[email protected] ~]# vim /etc/named.conf
zone "yang.com" {
type master;
file "yang.com.zone";
};
2. 資料庫檔案(區域檔案)
[[email protected] ~]# vim /var/named/yang.com.zone
$TTL 600
@ IN SOA @ root (
2017033100
1H
15M
1W
1D )
IN NS dns //注意域名的位置是空的,可以寫@,也可以空。
dns IN A 114.215.71.214
www IN A 1.1.1.1 //位址是多少,不重要。
bbs IN A 1.1.1.2
oa IN A 1.1.1.3
資料庫檔案:
@ 表示目前域名
www.tianyun.com. = www
第一個字段繼承
SOA: 起始授權記錄 強制
NS: DNS伺服器記錄 強制
A: 主機記錄
CNAME: 别名記錄
用戶端查詢
IINUX工具
1.用戶端指定本地DNS
[[email protected] ~]# cat /etc/resolv.conf
nameserver 192.168.2.115
2.用戶端解析域名
工具1:[[email protected] ~]# dig www.baidu.com
權威伺服器
[[email protected] ~]# dig www.126.com //使用/etc/resolv.conf設定的DNS
flags:qr rd ra 非權威答案
flags:qr aa rd 權威答案
指定DNS伺服器
[[email protected] ~]# dig @192.168.2.168 www.126.com //使用指定的DNS
[[email protected] ~]# dig @192.168.2.100 www.126.com //使用指定的DNS
工具2:[[email protected] ~]# nslookup www.baidu.com
工具3:[[email protected] ~]# host www.baidu.com
[[email protected] ~]# host -t A www.baidu.com //正向解析,查詢A記錄
[[email protected] ~]# host 192.168.5.100 //反向解析,查詢PTR記錄
[[email protected] ~]# host www.baidu.com 192.168.5.240 //使用DNS伺服器192.168.5.240解析
[[email protected] ~]# host -t SOA baidu.com //查詢某個域的SOA
baidu.com has SOA record ns.baidu.com. root.baidu.com. 2013081303 3600 900 604800 86400
[[email protected] ~]# host -t NS baidu.com //查詢某個域的NS
baidu.com name server ns.baidu.com.
baidu.com name server ns2.baidu.com.
[[email protected] ~]# host -t MX baidu.com //查詢某個域的郵件伺服器
baidu.com mail is handled by 10 mail.baidu.com.
Windows工具/Linux工具
[[email protected] ~]# nslookup www.baidu.com
ipconfig /displaydns 檢視DNS緩存
ipconfig /flushdns 擦除DNS緩存
四,ISP (阿裡) 域名申請及解析
ISP(阿裡)域名申請及解析
1.搜尋萬網或域名注冊,通路阿裡雲網站。
2.登入阿裡雲網站。
3.通過控制台找到域名注冊服務。
4.輸入新域名,根據需要選購合适域名。
5.選擇購買。
6.選擇綁定支付寶賬号。
7.郵箱驗證。
8.支付。
9.傳回域名控制台,綁定IP位址。
10.域名備案。