相關知識
域名解析:
将主機名自動轉換為ip位址。
1./etc/hosts (早期單一檔案式處理)
利用/etc/hosts檔案将主機名與ip一一對應,來達到根據主機名擷取ip的功能。
缺點:容量小,同步性差,資訊要求高(需要同時知道主機名和ip)。
2.bind (階層式管理系統)
BIND(berkeley internet name domain)伯克利大學開發,目前世界上使用最廣泛的域名系統(DNS)。通過dns 在隻知道主機名的情況下,可以連上該主機。
3.兩種方式的選擇

注:在linux系統裡面可以看到一般是以原始的單一檔案類型的/etc/hosts為第一詢問點。然後才是查詢我們的DNS。
(這個可以通過修改files 與 dns的的位置修改通路順序)
域名系統:
Domain Name System (DNS)
DNS利用類似樹形的目錄架構,将主機名的管理配置設定到不同層級的DNS伺服器中,并進行分層管理。每一層上的DNS伺服器所記錄的資訊,其實隻有其下一層的主機名而已。是以每台伺服器要處理的資訊量并不會特别的大。若ip變動也能很容易的進行修改。
缺點:當DNS當機,幾乎相當于沒有internet。
相關的概念:
主機名(hostname):網段下面的主機ip(可辨別字段)
域名(domainname):網絡所在區段(區域的字段)
完整主機名(FQDN):由域名與主機名組成
注:主機名與域名不是絕對的,看各例子:
www.dannneel.edu.tk
從上往下分析:開始的時候.tk為域名,其餘為主機名;往下一層,.edu.tk是域名,其餘為主機名;以此類推,到最後,域名越來越長,域名範圍越來越小,主機名越來越小,到最後确定到一台機子上。
利用DNS查詢主機ip的流程:
- a)讀取查詢目的; 當輸入查詢,系統查詢/etc/resolv.conf檔案讀DNS服務的位址,連接配接咨詢。
- b)被連接配接的DNS伺服器進行查詢是否有相關記錄,有則傳回資訊。沒有則向.(root)超級DNS伺服器詢問。
- c)由于域名系統的每一層服務隻記錄下一層的服務,是以遞歸向下,直到最後一層。
- 得到需要查詢的ip後,指定的那個DNS伺服器,首先重新整理自己本地的緩存,友善下次查詢;然後将得到的結果給使用者傳回。
常用指令:
dig
dig 完整主機名 ##正向查詢主機ip
dig -x ip ##反向查詢,查詢主機名
非權威(無授權)DNS伺服器
(授權的DNS伺服器會有其他的網絡使用者進行咨詢通路,非授權的隻能在小局部進行服務提供)
注:以下操作進行的均為非授權的DNS伺服器搭建。
準備工作:
1.首先進行DNS服務軟體的安裝:
yum install bind -y
重新開機重新整理,确定DNS服務處于開啟的狀态;
2.修改dns服務配置檔案:
A)相關檔案裡面的關鍵字段:
1)
/etc/named.conf ##DNS服務配置檔案
/etc/named.rfc1912.zones ##DNS服務配置檔案輔助檔案,在指定關于域檔案或者叫DNS資料庫有重要的配置指定作用
listen-on 控制 named 偵聽的 IPv4 位址
listen-on-v6 控制 named 偵聽的 IPv6 位址
allow-query 控制哪些用戶端可以向 DNS 伺服器詢問資訊
forwarders 包含 DNS 查詢将轉發至的名稱伺服器的清單
( 而不是直接聯系外部名稱伺服器 ; 在設有防火 牆的情況中
很有用 )
2)
/var/named/named.localhost
– A : 名稱至 IPv4 位址
– AAAA : 名稱至 IPv6 位址
– CNAME : 名稱至 ”規範名稱 “ ( 包含 A/AAAA 記錄的另
一個名稱 )
– PTR : IPv4/IPv6 位址至名稱
– MX : 用于名稱的郵件交換器 ( 向何處發送其電子郵件 )
– NS : 域名的名稱伺服器
– SOA :” 授權起始 “ , DNS 區域的資訊 ( 管理資訊 )
B)修改配置:
1)設定本地域名解析通路的dns伺服器位址:
/etc/resolv.conf
這個檔案指定了域名解析咨詢的DNS伺服器位址,可以多寫幾個目前面的幾個DNS伺服器當機的時候按檔案的額順序,會通路咨詢豁後面的DNS伺服器,保證了上網域名解析的正常運作。
1.Cach-only 唯高速緩存DNS伺服器:
沒有自己的公開的zone域檔案或者叫DNS資料庫。通過緩存搜尋的結果,提供服務。
修改域名服務相關配置:
/etc/named.conf
11 12 行設定端口接受所有網絡的通路
17行設定任何用戶端可以進行通路
32行設定dns不進行驗證(非權威的)
35 行添加這一行,設定當本地的dns伺服器沒有相關答案的時候對上一級dns伺服器的詢問。
重新啟動服務。在這裡我們不進行域檔案或者叫DNS資料庫進行添加修改,這就是一個Cach-only 唯高速緩存DNS伺服器。
2.正向解析功能DNS伺服器:
在添加正向解析庫以及設定前,測試一下:
dig aaa.danny.com
并沒有正确的找到相關的資訊。
修改添加域指向檔案内容:
/etc/named.rfc1912.zones
複制檔案内容模闆,進行複制填入内容。
其中type為DNS資料庫類型,一般有;hint,master/slave
File:指向域檔案或者叫DNS資料庫.
添加域檔案(DNS資料庫):
注意一定要加上參數 -p 拷貝檔案不忽略檔案的權限,否者系統無法識别。
制作自己的域檔案修改相關的記錄資訊:
重新啟動域名伺服器,查詢:
可以看到現在查到的資訊是我們修改的DNS資料庫檔案裡的資訊。成功。
拓展功能:
CNAME更名:
在添加DNS資料庫的時候加行CNAME字段可以将查詢的主機名轉到另一個主機名查找對應的ip(類似于快捷方式)。
修改DNS資料庫資訊:
重新整理重新開機服務,查詢結果:
郵件交換(Mail eXchanger):
預先将要送到某個區域的郵件送到指定的郵件伺服器。
修改DNS資料庫資訊:
重新整理重新開機服務,查詢結果:
可以看到設定成功。
3.反向解析功能:
開始前進行fff.danny.com對應的172.25.106.188 進行反解析:
複制域檔案指向檔案的指向模闆,進行添加;
/etc/named.rfc1912.zones
添加指向反向域檔案。
添加反向域檔案:
修改檔案内容:
重新啟動,查詢:
4.設定本地雙邊(雙向)DNS解析:
使得當DNS接到咨詢請求時,根據請求者的ip網段,走到不同的DNS資料庫指定檔案,再根據不同的指定檔案找到相關的DNS資料庫,傳回不同的結果。
效果:
内網段的機器隻能查到相同内網段的主機,不能查到外網的網段的主機。可用于限制上網範圍。
A)修改
/etc/named.conf
檔案:
根據ip網段不同,指定不同的DNS資料庫指向檔案:
(在修改之前每次都是根據注釋掉的訓示,查詢/etc/named.rfc1912zones,現在這個檔案沒有被指定,失效了)
B)建立不同的DNS資料庫指向檔案:
修改内容使得不一樣:
(原本以zone結尾的DNS資料庫沒有條目指向,相當于廢棄了)
local結尾檔案:
inter結尾檔案:
C)建立不同的DNS資料倉庫:
local結尾檔案:
inter結尾檔案:
現在基本配置好了,
測試1:
用另一台在6網段的機子設定
/etc/resolv.conf
查詢的DNS服務後進行測試:(DNS伺服器有6網段和254網段)
結果:
測試2:
将這台測試機子的網段設為254的,
/etc/resolv.conf
将查詢指向DNS伺服器也修改,(其實通路的還是同一台實體機)
結果:
5.主輔dns伺服器:
指定master DNS為主服務資料庫與slave DNS為輔助資料庫 ,slave DNS本身沒有資料庫slave DNS會自動更新master DNS的資料庫。
Master DNS 配置:
resolv.conf
/etc/named.conf
/etc/named.rfc1912.zones
##指定域檔案
主master DNS的配置完成,下面進行slave DNS 端的配置:
resolv.conf
檔案指定伺服器的IP,指向自己.
/etc/named.conf
/etc/named.rfc1912.zones
##在配置檔案裡面指明主master DNS。
指向masters 的IP
同步masters 的檔案到slave下。
重新開機DNS服務,檢視slave底下的檔案,,可以得知效果:
可以看到同步到slave DNS 成功。但是如果當master DNS的域檔案内容改變,那麼預設slave不會得知并且同步更新。
自動更新主輔dns伺服器:
下面設定master DNS伺服器,當master DNS伺服器更新,主動向slave DNS 提出更新資訊。
修改master DNS伺服器:
/etc/named.rfc1912.zones
##指明傳送的slave DNS伺服器的ip
westos.com.zone檔案被修改後,注意要修改serial号,隻有當serial不一樣,系統認為檔案更新了,才會給slave DNS發送更新資訊。
重新開機master與slaver兩邊的DNS服務,配置完成。
all