DNS篇之一DNS理論知識

DNS: 域名解析,BIND: Berkeley Internet Name Domain

SSL/TLS: http-->https, OpenSSL, CA, Digital Certificate, PKI

HTTP: HTTP協議,Apache, LAMP, Nginx(Engine X), LNMP(LEMP), MySQL, PHP, varnish

CDN: DNS(View), varnish  智能化dns;分佈式的多個集羣分別給我們服務用的。

File Server: NFS、SMB/CIFS、FTP

Netfilter: iptables (filter, nat, mangle, raw)、tcp wrapper

NSSwitch(名稱解析的轉換)只是提供了一個平臺,讓我們藉助於NSSWITCH來幫我進行名稱解析所用 framework, platform, PAM:可插入式認證模塊。 

SMTP/POP3/IMAP4: Mail Server 這幾個服務都是要詳細進行講解的。

SELinux: Security Enhanced Linux

D級別是最低的級別,A級別是最高的安全級別。我們的linux一般來講是C2級別的。

C2-->SELinux-->B1









DNS: Domain Name Service

域名:www.baidu.com(主機名,也叫做FQDN:Full Qualified Domain Name, 完全限定域名)

其實之上的是個主機名,而非域名;一般說來我們能夠直接訪問的是個主機。而什麼是域,

.com是個域;



DNS:名稱解析,Name Resolving 其實就是名稱轉換(只是因爲背後有查詢過程,數據庫,所以叫做名稱解析服務)

DNS名稱解析其實就是實現FQDN與IP地址之間的轉換。也可以實現IP到FQDN的轉換。DNS解析的過程是雙向的。但是有些服務是單向的。

FQDN<-->IP

172.16.0.1www.zl.com.

172.16.0.2mail.zl.com.



用戶名:

通過名字找到它的id號,也屬於名稱解析。

nsswitch:爲多種名稱解析,提供了一個平臺。只是一個平臺。別人可以在其上搭建這種店鋪幫助別人完成名稱解析服務所用。

nsswitch:在其之上的有libnss,libfiles,libdns等等。而我們的應用程序只需要到這個框架上找到這個能夠實現名稱解析服務的店鋪即可。

libnss_files.so,libnss_dns.so.

對我們而言,其展現的就是一個配置文件,/etc/nssitch.conf.

hosts: filesdns

file: /etc/hosts

dns: DNS


stub resolver: 名稱解析器,根據配置文件來看查找對應的IP地址。


ping www.zl.com  先查找/etc/hosts;如果沒有再查找dns服務器。


hosts文件的格式: 

IPADDR         FQDN    Ailases

192.168.5.10www.zl.com www

在小規模的網絡中,hosts文件就夠用了。如果每個人都往裏面寫入文件,那麼我們網絡將會越來越大。

IANA:美國政府搞得;IP,FQDN。維護了網絡中每一臺主機的IP和FQDN的關係。早期有人需要加入互聯網使用ftp進行下載即可。

 後互聯網時代,計算機發展越來越快。完全跟不上。後來就開始考慮建個服務器,你只需要向我提供查找即可。我在server上進行更新即可。

 但是一臺服務器就不夠用了。開始使用集羣,但是數據庫越來越龐大了。管理數據成爲瓶頸。


從一個集中式數據庫跟轉換成分佈式數據庫;怎麼實現?

只需要將權限進行劃分?總理管理全國太麻煩了,於是就劃分區域,一個地區一個負責人即可。每一個人只能管理它的兒子,而不能越級指揮即可。

我們回憶下,如何查找到某一個人?在中國是先從大到小,開始查找。而老外是從小到大的。

但是每一個人都知道根在哪裏即可。

.

.com .net .org   這種域稱爲top level domain。



正確的寫法:www.baidu.com.還有一個叫做根域的東西。這個之前我給你們解釋過。




TLD(top level domain):

組織域:.com, .org, .net, .cc

國家域: .cn, .tw, .hk, .iq, .ir, .jp

反向域: IP-->FQDN  將IP地址轉換成主機名,早期只能正向解析,後來引入了一個機制。指針;但是從IP轉換成FQDN是另外一套數據庫。

反向:IP-->FQDN   反向;

正向:FQDN-->IP   正向;但是我們用的通常都是正向的。


IP-->FQDN:


FQDN-->IP:

www.zl.com.IP1


查詢:

遞歸查詢:只發出一次請求,最終就能得到答案。本地查詢使用遞歸查詢。

迭代:發出多次請求。請求者要發出多次請求才能找到答案。

解析:

正向:FQDN-->IP

反向:IP-->FQDN

互聯網上的DNS查詢方式是兩段式:遞歸,迭代。但是緩存時間需要有最權威的服務器決定,給這個緩存條目的時候,同時指定自己的ttl值。

所以每一個服務器在返回答案的時候,不僅僅是返回了答案,還返回的有超時時間。


DNS:分佈式數據庫的特色

上級僅知道其直接下級;

下級只知道根的位置;


DNS服務器(ns除了接受外部人員的請求,還要接受本域內的查詢請求;它們的工作機制不太一樣。):

接受本地客戶查詢請求(遞歸)

外部客戶端請求:請求權威答案

肯定答案:TTL

否定答案:TTL 對沒有的回答,也給它一個ttl省的它過一會過來查詢下,過來查詢下,就會消耗我們計算機的資源。

外部客戶端請求:非權威答案

一臺服務器可以給多個域進行解析。但是它是如何知道的,就需要用到數據庫。而這個數據庫需要我們自己去建立。

DNS服務器類型

主DNS服務器: 數據修改,改主的服務器,其他服務器學習主dns服務器的數據即可。

輔助DNS服務器:請求數據同步。每隔一段時間就向主服務器發送個請求,看數據是否一致。

一主多從:主的掛掉,哪個從的上去。如果從服務器得不到主服務器的信號,它就會自殺了。從服務器不會去幹主服務器的活。

serial number:第一定義一個序列號,每當主服務器數據更新,serial number就加1.從服務器發現自己比主服務器小就更新。

refresh:定義每隔多久從服務器就去檢查主服務器的數據信息。

retry:如果沒有得到主服務器的信息,多久再重試更新一次。

expire:定義過期時間,多久我認爲你主服務器掛了,此時從服務器也掛掉。

nagative answer TTL:定義一個否定答案的緩存時長。

緩存DNS服務器:不負責域的解析,只是負責緩存。

轉發器:當客戶端不能直接訪問互聯網的時候,找臺服務器幫忙負責查詢。當然服務器都有緩存功能,將緩存功能去了就變成一個轉發器了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章