DNS伺服器的功能
正向解析:根據注冊的域名查找其對應的IP位址
反向解析:根據IP位址查找對應的注冊域名。在安全領域常用,比如查詢郵件是否是真正的域名持有人發出的,驗證郵件的源IP和域名是否相符
FQDN(Full Qualified Domain Name)完全合格主機名
站點名.域名字尾
站點名.三級域.二級域.一級域
IANA(Internet Assigned Numbers Authority)網際網路數字配置設定機構
整個域名系統的最高權威機構,管理DNS根,.int,.arpa等國際化域名資源
CNNIC(China Internet Network Information Center )
主管國家頂級域.cn
BIND(Berkeley Internet Name Daemon)伯克利Internet域名服務
執行程式:/usr/bin/named
系統服務:named
預設端口:53/tcp、53/udp。正常解析時用udp協定,主從同步之間用tcp協定傳輸配置檔案資訊
運作時的虛拟根環境:/var/named/chroot
安裝包:bind、bind-chroot
幫助檔案:/usr/share/doc/bind-9.9.4/sample/
named的主配置檔案。指定負責解析的域名是什麼。
//、#表示注釋單行,/....../裡面的内容表示多行注釋
listen-on port 53 { 127.0.0.1; };#表示僅監聽本機
要監聽所有ip位址有兩個方法
方法1:listen-on port 53 { any; };
方法2:把該行删除,就會預設監聽所有ip位址
options {
directory "/var/named";#位址庫檔案路徑為/var/named
recursion no;#預設值為yes,手動設定no來禁止遞歸查詢
allow query { any; };#允許任何客戶機查詢
};
zone "負責解析的域名" IN {
type 類型;#類型為master、slave、forward、hint
file "區域檔案";标準的格式為解析的域名.zone
例子:
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
2.3 /var/named/
named區域資料檔案目錄,存放多個區域檔案,區域檔案的内容為主機名與ip位址的對應關系。
;為注釋符,隻有單行注釋,沒有多行
域名必須以.結尾,如果沒有加.的話系統會自動補全,補全什麼呢?補全的是主配置檔案中定義該區域資料檔案解析的是哪個域名,這裡是tedu.cn+"."
cp -p /var/named/named.localhost /var/named/tedu.cn.zone#加-p選項保證named使用者對該檔案有讀權限,也可以用chown,chmod等方式賦予讀權限
目前先修改最後兩行
格式:
負責解析的域名+"." NS DNS伺服器的FQDN主機名+"."
DNS伺服器的FQDN主機名+"." A DNS伺服器的IP位址
複雜寫法:
tedu.cn. NS svr7.tedu.cn.
svr7.tedu.cn. A 192.168.4.7
簡單寫法:
@ NS svr7 #@表示在主配置檔案中定義的負責解析主機名+"."。這裡是tedu.cn.
svr7 A 192.168.4.7#兩行的svr7可以更換為其他字元,隻要相同即可
$TTL 生存時間
SOA 授權資訊開始
nameserver 192.168.4.7
host www.qq.com '192.168.4.7'
Using domain server:
Name: 192.168.4.7
Address: 192.168.4.7#53
Aliases:
www.qq.com has address 1.1.1.1
更專業的DNS查詢測試指令
dig www.qq.com @192.168.4.7
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.qq.com @192.168.4.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55516
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.qq.com. IN A
;; ANSWER SECTION:
www.qq.com. 86400 IN A 1.1.1.1
;; AUTHORITY SECTION:
qq.com. 86400 IN NS ns.qq.com.
;; ADDITIONAL SECTION:
ns.qq.com. 86400 IN A 192.168.4.7
;; Query time: 0 msec
;; SERVER: 192.168.4.7#53(192.168.4.7)
;; WHEN: 五 11月 17 02:59:29 EST 2017
;; MSG SIZE rcvd: 88
zone "qq.com" IN {
file "qq.com.zone";
cd /var/named
cp -p tedu.cn.zone qq.com.zone
vim qq.com.zone
增加内容:
qq.com. NS ns.qq.com.
ns.qq.com. A 192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
重新開機服務
指定192.168.4.7為DNS伺服器來解析域名
預設就是輪詢方式。
在位址庫檔案裡面增加多條主機名相同、ip位址不同的解析記錄即可
比對本域内未定義的的任何主機位址
以"*"比對,放在區域檔案中最後一行,一般用在正向區域檔案中
stu1.tedu.cn.------192.168.10.1
stu2.tedu.cn.------192.168.10.2
......
stu60.tedu.cn------192.168.10.60
一條記錄即可。因為區域檔案有函數可以生成連續範圍的數字:$GENERATE
$GENERATE 1-60 stu$.tedu.cn. A 192.168.10.$
DNS伺服器與其他DNS伺服器互動,最終将解析結果帶回來交給用戶端的過程
用戶端對首選DNS伺服器的查詢是遞歸查詢。網際網路上DNS伺服器都會禁止遞歸查詢
DNS伺服器不提供解析結果,隻告訴查詢用戶端應該找另外一個DNS伺服器去查詢
首選DNS伺服器對其他DNS伺服器的查詢是疊代查詢
父域:www.tedu.cn 父域的DNS負責解析tedu.cn
子域:www.bj.tedu.cn 子域的DNS負責解析bj.tedu.com
-父域的DNS伺服器,能夠解析tedu.cn結尾(父域)的主機名
-子域的DNS伺服器,能夠解析bj.tedu.cn結尾(子域)的主機名
-父域的DNS伺服器,也能夠解析bj.tedu.cn結尾(子域)的主機名,這個就是子域授權
-子域的DNS伺服器,也能夠解析tedu.cn結尾(父域)的主機名,稱之為子域轉發
192.168.4.7上操作:
vim
bj.tedu.cn. NS pc207.bj.tedu.cn.#增加一條
pc207.bj.tedu.cn. A 192.168.4.207#增加對應一條
192.168.4.207上驗證:
nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Non-authoritative answer:#非權威回答,找權威伺服器查詢得知的
Name: www.bj.tedu.cn
Address: 1.2.3.4
192.168.4.207上操作:
vim /etc/named.conf
增加:
zone "bj.tedu.cn" IN {
type forward;#類型為轉發
forwarders { 192.168.4.7; };#注意前後的空格、分号等
記憶體要比較大,因為查詢結果都是放在記憶體中。不需要管理任何DNS區域,但是能夠代替客戶機查詢,并且通過緩存、複用查詢結果來加快速度
企業内網DNS
ISP公用DNS
将請求轉發給指定的公共DNS(其他緩存DNS),請求遞歸服務
依次向根域、一級域、二級域等的DNS,請求疊代服務
當收到客戶機的DNS查詢請求的時候,區分客戶機的來源位址,來為不同類别的客戶機提供不同的解析結果(IP位址)
通路壓力大的網站,需要購買CDN提供的内容分發服務。内容分發服務就使用了這個技術,
CDN供應商在全國都有鏡像服務節點,針對不同的客戶機就近提供離客戶最近的伺服器
cd /var/named/
cp -p tedu.cn.zone tedu.cn.zone.lan
cp -p tedu.cn.zone tedu.cn.zone.other
sed -i s#1.1.1.1#192.168.4.100#g tedu.cn.zone tedu.cn.zone.lan
acl清單定義要單獨一個格式段,不能放在option格式段裡面
acl "mylan" {
192.168.4.207;
192.168.4.254;
view視圖比對的規則是從上到下,比對即停止。
一但啟用了view視圖,所有的zone必須在view格式段裡面,而且多個view裡面的zone的數量必須相同
主配置檔案裡面隻能有兩個view格式段
view "lan" {
match-clients { mylan; };#比對acl,名字為mylan
file "tedu.cn.zone.lan"
view "other" {
match-clients { any; };#比對任意位址
file "tedu.cn.zone.other"
本文轉自 goldwinner 51CTO部落格,原文連結:http://blog.51cto.com/355665/2068820,如需轉載請自行聯系原作者