建站服務(wù)器
最近和朋友討論起了當(dāng)時(shí)注冊(cè)的域名,又想起來了dns服務(wù)器,剛剛好當(dāng)時(shí)學(xué)習(xí)的時(shí)候也不是很精通,就趁著這個(gè)時(shí)間段再一次回顧了以下。讓我們一起看一下dns服務(wù)器吧
這篇文章的目錄結(jié)構(gòu)如下:
什么是 dns 服務(wù)器?
什么時(shí)候要用 dns 服務(wù)器
為什么要用 dns 服務(wù)器?
誰會(huì)用 dns 服務(wù)器?
怎么使用 dns 服務(wù)器?
1.什么是 dns 服務(wù)器?
dns(domain name server ,域名服務(wù)器)是將域名(domain name)和對(duì)應(yīng)的ip地址(ip address)進(jìn)行轉(zhuǎn)換的服務(wù)器。那么什么又是域名尼?
域名:
通俗點(diǎn)說就是每次上網(wǎng)的時(shí)候輸入的網(wǎng)址也可以理解為域名,而百度給的定義是域名是由一串用點(diǎn)分隔的名字組成的,通常包含組織名,而且始終包括兩到三個(gè)字母的后綴,以指明組織的類型或該域所在的國家或地區(qū)。
2.什么時(shí)候要用 dns 服務(wù)器?
因?yàn)槲覀冇洃浀脑?,現(xiàn)在當(dāng)我們要去上網(wǎng)的時(shí)候,總會(huì)記住幾個(gè)域名,然而并不會(huì)去記住一個(gè)個(gè)服務(wù)器對(duì)應(yīng)的ip。因此當(dāng)我們?cè)谟糜蛎L問別人主機(jī)的時(shí)候,dns 服務(wù)器就已經(jīng)默默的起到了作用,dns 服務(wù)器會(huì)將我們輸入的域名一 一的轉(zhuǎn)換為對(duì)應(yīng)的ip然后再去訪問別人的主機(jī)。
因此當(dāng)在一個(gè)企業(yè)的內(nèi)部,要想在企業(yè)內(nèi)部讓諸多個(gè)主機(jī)通過主機(jī)名訪問彼此,就要構(gòu)建自己的 dns 服務(wù)器了。
3.為什么要用 dns 服務(wù)器?
在剛剛開始擁有網(wǎng)絡(luò)的時(shí)候,全球僅僅只有幾個(gè)大學(xué)的實(shí)驗(yàn)室加入網(wǎng)絡(luò),因此大家可以憑借記住很少的ip地址來進(jìn)行彼此之間的聯(lián)系,并且在當(dāng)時(shí)的每個(gè)主機(jī)上都會(huì)擁有一個(gè)為hosts的文件用來本地解析,如今依舊擁有這個(gè)文件來進(jìn)行本地的域名解析。在這兩個(gè)系統(tǒng)下其文件所在的地方。
linux系統(tǒng):/etc/hostswindows:%windir%\\\\system32\\\\drivers\\\\etc\\\\hosts但是隨著信息化的發(fā)展,越來越多的用戶加入到網(wǎng)絡(luò)中,大家的記憶并不能全部都記住彼此之間的ip地址,并且如果繼續(xù)使用原來的辦法(使用hosts文件)的話,hosts文件的條目越來越多,每一次的查詢?cè)絹碓椒爆崳虼司统霈F(xiàn)了一個(gè)組織 iana(the internet assigned numbers authority,互聯(lián)網(wǎng)數(shù)字分配機(jī)構(gòu)),iana 來保存每一個(gè)用戶的主機(jī)名與ip條目的關(guān)系。因此大家就不用再紛紛寫入自己的hosts文件,僅僅需要定下一個(gè)計(jì)劃任務(wù)(crontab)讓其隔一段的時(shí)間就從 iana 的服務(wù)器去下載hosts文件到本地,雖然這樣擁有一定的可行性,但是互聯(lián)網(wǎng)的發(fā)展是爆炸性,用戶的增長是幾何的倍數(shù)增加,因此當(dāng)用戶數(shù)量再一次增加的時(shí)候,就是 iana 的策略也已經(jīng)行不通了,因此就開發(fā)出了 bind(berkeley internet name domain,伯克利internet名字域)使用bind軟件來構(gòu)建域名服務(wù)器。而其構(gòu)建的方法和linux的目錄結(jié)構(gòu)非常的相似,使用一種倒置的樹狀結(jié)構(gòu),如下圖:
當(dāng)然頂級(jí)域還有很多我就不一 一列舉了,因此現(xiàn)在使用 bind 就對(duì)每一個(gè)的域名劃分到了不同的分支下面了,這樣不僅減輕了根服務(wù)器的壓力而且非常的容易尋找并且管理,并且根(.)依舊會(huì)能夠管理到每一個(gè)域名,但是其僅僅管理一級(jí)域就可以了,這樣可以極大的減輕根服務(wù)器的壓力。然后通過不斷的逐個(gè)查找就能夠找尋到我們所需要的信息。并且 iana 也不再提供原本的 hosts文件了,變?yōu)橐粋€(gè)全球范圍的域名供應(yīng)商,管理 dns 域名根和.int,.arpa等資源。相關(guān)的13個(gè)根服務(wù)器,1個(gè)為主根服務(wù)器在美國。其余12個(gè)均為輔根服務(wù)器,其中9個(gè)在美國,歐洲2個(gè),位于英國和瑞典,亞洲1個(gè)位于日本。
4.誰會(huì)用 dns 服務(wù)器?
對(duì)于這個(gè)問題,很不好回答,但是我覺得如果大家感興趣,或者想要了解的都可以去接觸 dns 服務(wù)器。
要開始真正深入了解并配置 dns 服務(wù)器了。
5.如何使用 dns 服務(wù)器?
對(duì)于如何使用 dns服務(wù)器來說是一個(gè)比較復(fù)雜的問題,因此我們通過下面一些步驟來慢慢進(jìn)一步的了解dns服務(wù)器
首先我們需要知道,dns 服務(wù)器所使用的端口是(53/udp,53/tcp;)使用bind軟件來進(jìn)行使用的并且是在應(yīng)用層的一個(gè)協(xié)議,使用 c/s 架構(gòu)。并且當(dāng)我們安裝 bind 之后就能通過 named 服務(wù)來進(jìn)行啟動(dòng) dns 服務(wù)了,當(dāng)然對(duì)于真正的了解到 dns 服務(wù)器還是需要首先知道一些名詞的,隨后遇到的再慢慢說起來。
fqdn:fully qualified domain name,也就是上文所說的域名。
正向解析:fqdn ==> ip 表示通過dns服務(wù)器fqdn解析為ip的過程
反向解析:ip==>fqdn 表示通過dns服務(wù)器由ip查詢到fqdn
domain:邏輯概念,域
zone:物理概念,區(qū)域
dns的服務(wù)器類型:1主 dns服務(wù)器(master)2輔助dns服務(wù)器(slave)3緩存服務(wù)器4轉(zhuǎn)發(fā)器(forward)
下面這個(gè)圖能夠幫助我們知道什么是 domain 與 zone。
可以看到每一個(gè)zone下面都會(huì)有很多的資源,當(dāng)我們?cè)L問其下面的資源時(shí),其對(duì)應(yīng)的主機(jī)就給我們回答,并且每個(gè)區(qū)都有自己的授權(quán)服務(wù)器,當(dāng)我們要在dns服務(wù)器查詢fqdn的時(shí)候會(huì)給我們返回兩種類型的答案,即權(quán)威答案(authority answer,aa)和非權(quán)威答案。
一、安裝 bind 軟件
bind軟件可以運(yùn)行在大部分的linux主機(jī)上,并且在rhel6.5及以后,在系統(tǒng)的光盤自帶了bind服務(wù)的安裝文件。
而我們首先使用簡(jiǎn)單的方法進(jìn)行安裝(yum),首先查看與 bind相關(guān)的軟件包。
$ yum list | grep bind一些主要軟件的作用如下:
bind :提供了 dns 服務(wù)的主要程序及相關(guān)文件
bind-libs :提供了bind、bind-utils需要使用的函數(shù)庫
bind-utils :提供了對(duì) dns 服務(wù)器的測(cè)試工具,如 nslookup等
接下來我們就安裝bind
$ yum install -y bind二、配置 bind 軟件
bind軟件的安裝之后會(huì)出現(xiàn)兩個(gè)很重要的路徑,一個(gè)是主配置文件/etc/named.conf 另一個(gè)是工作目錄/var/named ,我們分別來進(jìn)行一 一探索。
1.簡(jiǎn)單dns服務(wù)器的主要配置
這是用于啟動(dòng) named 服務(wù)的主要配置文件,對(duì)于簡(jiǎn)單的dns服務(wù)器來講其中主要分為兩個(gè)部分的定義,全局定義和區(qū)域定義。
對(duì)于全局定義的段使用如下的定義。
options { directory /var/named; };注:named.conf 配置文件要求每一行的結(jié)束都需要一個(gè)分號(hào)結(jié)束配置的含義就是將每個(gè)區(qū)域的資源記錄(resource record,簡(jiǎn)稱rr)文件放在了/var/named/的目錄之下。
那么rr到底什么東西尼?
懵。。。,先記住向下看看三.配置文件
在/etc/named.conf配置文件中除了剛剛定義的全局定義之外,就是各個(gè)區(qū)域(zone)的定義了。
通常對(duì)于每一個(gè)區(qū)域(zone)的簡(jiǎn)單定義就是如下的格式。zone zone_name in { type master|slave|hint|forward; file zone_name.zone};注:type 就表明了區(qū)域的 dns服務(wù)器類型。 file就是將這個(gè)區(qū)域的rr放在什么地方,相對(duì)路徑。比較特別的是下面這個(gè)區(qū)域的定義,表示這是一個(gè)根域的dns服務(wù)器。zone . in { type hint; file named.ca};當(dāng)然,dns的配置文件也支持使用acl來自定義,訪問控制列表。并且默認(rèn)就存在這樣四個(gè)列表,none,any(任何主機(jī)),local(本機(jī)),以及l(fā)ocalnet(本地網(wǎng)絡(luò))。定義就如下:
acl acl_name{ statement; };如果安裝時(shí)候在/var/named/目錄下并沒有named.ca 的文件話可以使用dig 命令來生成named.ca文件,需要能夠訪問互聯(lián)網(wǎng),否則查詢不到根服務(wù)器。
[root@rs1 named]# dig -t ns . >/var/naemd/named.ca首先構(gòu)建一個(gè)最簡(jiǎn)單的 dns服務(wù)器,也就是緩存 dns 服務(wù)器。任何一個(gè)復(fù)雜的 dns 服務(wù)器都是由簡(jiǎn)單的緩存服務(wù)器一步步變難的,覺得學(xué)習(xí)也是這個(gè)道理哈。
緩存 dns 服務(wù)器:不負(fù)責(zé)解析任何區(qū)域(除了(本機(jī))localhost)
/etc/named.conf 配置如下
options { directory /var/named;};//正向解析本機(jī)zone localhost in{ type master; file named.localhost;};//反向解析本機(jī)zone 0.0.127.in-addr.