DNS and Bindweb
DNS是什麼?能夠作什麼用?
數據庫
DNS(Domain Name System,域名系統),因特網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。經過主機名,最終獲得該主機名對應的IP地址的過程叫作域名解析(或主機名解析)。瀏覽器
DNS應用層協議 53/udp, 53/tcp緩存
你知道www.magedu.com.這三個字段包含什麼意思? bash
. 是根域 .com 是表示商業組織頂級域 .magedu 是一個咱們申請的使用的二級域 www是咱們的主機名。而整個www.magedu.com.叫作FQDN,叫作徹底限定域名,就是主機名了。 服務器
你在想爲何我在瀏覽器裏輸一個入主機名,就能夠訪問遠程的主機呢?以下介紹網絡
你知道你的主機是如何利用dns訪問互聯網的嗎?dom
注:一、本地主機首先會本地的host文件訪問的主機名對應的ip,tcp
二、若是麼有查找本地dns緩存,(DNS Local Cache)分佈式
三、若是尚未就去向該網絡裏的dns服務器發起遞歸請求,(DNS Server (recursion))
四、dns服務器以迭代查詢的方式去查找主機名對應的ip地址返回給client。
以上就是一次完整的查詢請求通過的流程:
Client --> hosts文件 --> DNS Local Cache --> DNS Server (recursion) -->
DNS查詢類型:
遞歸查詢:發送一次請求等待對方答案
迭代查詢:屢次請求獲得答案
DNS名稱解析方式:
FQDN --> IP:正向解析
IP --> 名稱:反向解析
注意:兩者的名稱空間,非爲同一個空間,即非爲同一棵樹;所以,也不是同一個解析庫;
舉例:
域:magedu.com.
www.magedu.com.(主機名) 1.1.1.1 (ip)
ftp.magedu.com. 2.2.2.2
注:在magedu.com.下面有www.magedu.com.和ftp.magedu.com.主機,分別對應着1.1.1.1 和2.2.2.2
DNS服務器類型:
主名稱服務器;
輔助名稱服務器;
緩存名稱服務器;
各自是如何工做的?
主名稱服務器;
本身負責解析的域:直接查詢數據庫並返回答案;
不是本身負責解析域:Server Cache --> iteration(迭代)
主DNS服務器:維護所負責解析的域數據庫的那臺服務器;讀寫操做都可進行;
輔助名稱服務器;
從DNS服務器:從主DNS服務器那裏或其它的從DNS服務器那裏「複製」一份解析庫;但只能進行讀操做;
主輔如何數據同步?
「複製」操做的實施方式:
序列號:serial, 也便是數據庫的版本號;主服務器數據庫內容發生變化時,其版本號遞增;
刷新時間間隔:refresh, 從服務器每多久到主服務器檢查序列號更新情況;
重試時間間隔:retry, 從服務器從主服務器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔;
過時時長:expire,從服務器始終聯繫不到主服務器時,多久以後放棄從主服務器同步數據;中止提供服務;
否認答案的緩存時長:
場景:有時候數據同步有時間間隔,如何當主服務器有更新了,從服務器就立刻更新數據?
主服務器」通知「從服務器隨時更新數據;
區域傳送:
全量傳送:axfr, 傳送整個數據庫;
增量傳送:ixfr, 僅傳送變量的數據;
區域(zone)和域(domain):
magedu.com域:
FQDN --> IP
正向解析庫;區域
IP --> FQDN
反向解析庫;區域
每個解析庫文件都要有SOA
SOA是作什麼的?
用來講明一個區域內部主從服務器之間如何同步數據,以及誰是主dns。
必備:SOA:Start Of Authority,起始受權記錄; 一個區域解析庫有且只能有一個SOA記錄,並且必須放在第一條;
區域數據庫文件裏定義了dns解析須要的數據。每條數據也有其資源類型
是用來講明當前資源扮演什麼角色
NS:Name Service,域名服務器;一個區域解析庫能夠有多個NS記錄;其中一個爲主的;
A: Address, 地址記錄,FQDN --> IPv4;
AAAA:地址記錄, FQDN --> IPv6;
CNAME:Canonical Name,別名記錄;
PTR:Pointer,IP --> FQDN
MX:Mail eXchanger,郵件交換器;
優先級:0-99,數字越小優先級越高;
SOA資源記錄的定義格式:
語法:name [TTL] INRR_TYPE value
name: 當前區域的名字;例如」mageud.com.」,或者「2.3.4.in-addr.arpa.」;
value:有多部分組成
(1) 當前區域的區域名稱(也可使用主DNS服務器名稱);
(2) 當前區域管理員的郵箱地址;但地址中不能使用@符號,通常使用點號來替代;
(3) (主從服務協調屬性的定義以及否認答案的TTL)
例如:
magedu.com. 86400 IN SOA magedu.com. admin.magedu.com. (
2017010801; serial 注:從服務器檢查更新數據時的版本號
2H ; refresh 注:從服務器檢查更新的時間間隔
10M ; retry 注:從服務器請求沒有響應後的重試時間<refresh
1W; expire 注:過時時間到了後,從dns服務器將中止服務
1D; negative answer ttl 注:否認答案的緩存時長
)
注意:一個區域能夠有多個ns記錄;
例如:
magedu.com. 86400 IN NS ns1.magedu.com.
magedu.com. 86400 IN NS ns2.magedu.com.
MX類型的資源記錄條目如何寫?
name: 當前區域的區域名稱
value:當前區域某郵件交換器的主機名;
注意:MX記錄能夠有多個;但每一個記錄的value以前應該有一個數字表示其優先級;
例如:
magedu.com. IN MX 10 mx1.magedu.com.
magedu.com. IN MX 20 mx2.magedu.com.
A的類型資源記錄條目如何寫?
name:某FQDN,例如www.magedu.com.
value:某IPv4地址;
例如:
www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 1.1.1.2
bbs.magedu.com. IN A 1.1.1.1
PTR類型資源記錄條目如何寫?
name:IP地址,有特定格式,IP反過來寫,並且加特定後綴;例如1.2.3.4的記錄應該寫爲4.3.2.1.in-addr.arpa.;
value:FQND
例如:
4.3.2.1.in-addr.arpa. IN PTRwww.magedu.com.
CNAME類型資源記錄條目如何寫?
name:FQDN格式的別名;
value:FQDN格式的正式名字;
例如:
web.magedu.com. IN CNAME www.magedu.com.
注意: (1) TTL能夠從全局繼承; (2) @表示當前區域的名稱; (3) 相鄰的兩條記錄其name相同時,後面的可省略; (4) 對於正向區域來講,各MX,NS等類型的記錄的value爲FQDN,此FQDN應該有一個A記錄;