bind默認的根伺服器ip
A. 簡單介紹DNS的工作原理,寫出搭建DNS伺服器的簡要步驟
DNS 即Domain Name System(域名系統)的縮寫,它是一種將ip地址轉換成對應的主機名或將主機名轉換成與之相對應ip地址的一種機制。其中通過域名解析出ip地址的叫做正向解析,通過ip地址解析出域名的叫做反向解析。
下面對DNS的工作流程及原理進行簡要說明
DNS的查詢流程:需要解析服務的Client先查看本機的/etc/hosts;若無結果,則client查看本地的DNS緩存伺服器;若無結果,則查找所屬域的首選DNS伺服器;若此時本地首選DNS伺服器仍無法解析,則會想根域名伺服器進行查詢或選擇轉發解析請求。
DNS的查詢規則:遞歸式查詢,即client向支持遞歸查詢的DNS Server發出解析請求,則自DNS伺服器不論是自身直接解析還是無法解析想根發出請求,總會由其向client返回一個結果;迭代式查詢,即接收client解析請求的DNS Server,若其能夠解析則直接返回結果,若其不能解析將把解析請求交給其他DNS伺服器,而不是自己親自將解析過程完成。
所謂的「根」伺服器:根伺服器主要用來管理互聯網的主目錄,全世界只有13台。1個為主根伺服器,放置在美國。其餘12個均為輔根伺服器,其中9個放置在美國,歐洲2個,位於英國和瑞典,亞洲1個,位於日本。所有根伺服器均由美國政府授權的互聯網域名與號碼分配機構ICANN統一管理,負責全球互聯網域名根伺服器、域名體系和IP地址等的管理。
DNS記錄的類型:
A:Address 域名向ip地址轉換的記錄;
PTR:Printer ip地址向域名轉換的記錄;
NS:代表域內的dns伺服器;
MX:代表域內的郵件伺服器;
CNAME:域名的別名;
SOA:start of authority用於標示域內主DNS伺服器。
提供DNS服務的軟體:BIND即Berkeley Internet Name Domain有加州大學伯克利分校研發是當今提供dns服務應用最廣的軟體。
下面讓我們進入正題,以下內容包括:DNS的緩存伺服器、主/從伺服器、子域授權、轉發以及視圖的配置步驟。
DNS緩存伺服器
Ps:為了更好的體會和理解dns的配置文件和域解析文件,作者在此只安裝bind包,以手動編輯的方式生成這幾個必須的文件。
1.安裝bind包
yum install bind
2.創建住配置文件/etc/named.conf
options {
directory "/var/named"; #告知工作目錄
};
zone 「.」 IN {
type hint; #聲明根域
file "named.ca"; #根信息存放文件
};
zone "localhost" IN { #本地正解定義
type master; #類型為master
file "localhost.zone"; #正解文件名
};
zone "0.0.127.in-addr.arpa" IN { #本地反解定義
type master;
file "named.local"; #反解文件名
};
chown :named /etc/named.conf
#修改屬組給named
3.創建3個解析文件
named.ca
dig -t NS . > /var/named/named.ca
#向跟伺服器發起查詢並重定向到目標文件
localhost.zone
vim localhost. zone
$TTL 86400
#默認的ttl值
@ IN SOA localhost. admin.localhost. (
#主DNS伺服器localhost.
2011081601
#時間+序列號01
1H
#刷新時間:每隔多久來master查詢更新
10M
#重試時間間隔
7D
&n
B. RedHat-linux配置DNS詳細步驟是什麼
RedHat-Linux伺服器搭建DNS伺服器;
DNS domain name system 域名系統
特點:(1)具備遞歸查詢和迭代查詢
(2)分布式資料庫
(3)將域名解析為IP
(4)具有主DNS伺服器、輔DNS伺服器和緩存DNS伺服器三種類型
(5)全球13台根域伺服器
以下是搭建步驟:
1、准備軟體包
bind.i386 --主服務軟體包
bind-chroot.i386 -- 籠環境軟體包
bind-devel.i386 --開發包
bind-libs.i386 --庫文件
bind-utils.i386 --工具包
[root@rootbug ~]# rpm -qa |grep ^bind- --rhel6.3下的包
bind-utils-9.8.2-0.10.rc1.el6.x86_64
bind-chroot-9.8.2-0.10.rc1.el6.x86_64
bind-libs-9.8.2-0.10.rc1.el6.x86_64
bind-9.8.2-0.10.rc1.el6.x86_64
bind-dyndb-ldap-1.1.0-0.9.b1.el6.x86_64
-------------看到軟體包有點糾結,為啥呢??因為這些軟體包的名字跟DNS這三個詞每半點關系---------
2、安裝軟體包
[root@rootbug ~]#yum install bind* -y
3、查看配置文件
RHEL6下不管是安裝了bind-chroot還是不安裝,配置文件都是以/var/named.conf文件為主。
(1)修改/etc/named.conf
[root@rootbug ~]#vim /etc/named.conf
-------省略其他萬行代碼----------------
options {
listen-on port 53 { any; }; --將原配置文件中的127.0.0.1改為any,表示監聽所有
listen-on-v6 port 53 { ::1; };
directory "/var/named"; --域的數據文件存放目錄
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; --將配置文件的localhost改為any,表示所有人能查詢這台伺服器
recursion yes;
-------省略其他萬行代碼----------------
修改之後保存退出
(2)配置/etc/named.rfc1912.zones,增加域的配置
[root@rootbug ~]#vim /etc/named.rfc1912.zones
按照配置文件格式添加一個域,這里我添加一個rootbug.com的域,域的數據文件放在directory "/var/named"當前目錄下的data下,名稱為:master.rootbug.com.zone。配置域時請注意「;」分號。
zone "rootbug.com" IN {
type master;
file "data/master.rootbug.com.zone";
};
配置好之後保存退出。
(3)創建master.rootbug.com.zone的數據文件
[root@rootbug ~]#vim /var/named/data/master.cluster.com.zone
$TTL 3600
@ IN SOA rootbug. zhangsan. (
2013090801 --版本號,下面的是各種時間,作用是主從DNS伺服器的同步時間
30
60
90
3600 )
IN NS 172.16.2.151. --這里就是DNS伺服器的IP(實際應該是公網IP,但這里是內網環境,所以寫的內網IP),但是ip地址最後還有一個「.」記得加點,也可以寫DNS伺服器的外網域名;並且這里可以寫多個NS,代表了你公司的多台DNS伺服器
mail IN A 1.1.1.1 --A記錄就是真正的數據,這里代表mail.rootbug.com的公網地址為1.1.1.1
dns IN A 172.16.2.151
bbs IN A 2.2.2.2
保存退出
(4)啟動DNS伺服器
[root@rootbug ~]#/etc/init.d/named start ----第一次配置開啟過程需要等待一段時間
(5)客戶端認證DNS伺服器是否正確
windows客戶端認證
在IP配置DNS欄中將首選DNS填寫為172.16.2.151即可
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\ruutbug>nslookup mail.rootbug.com
*** Can't find server name for address 172.16.2.151: Server failed
*** Default servers are not available
Server: UnKnown
Address: 172.16.2.151
Name: mail.rootbug.com
Address: 1.1.1.1
C:\Documents and Settings\ruutbug>nslookup dns.rootbug.com
*** Can't find server name for address 172.16.2.151: Server failed
*** Default servers are not available
Server: UnKnown
Address: 172.16.2.151
Name: dns.rootbug.com
Address: 172.16.2.151
C:\Documents and Settings\ruutbug>nslookup bbs.rootbug.com
*** Can't find server name for address 172.16.2.151: Server failed
*** Default servers are not available
Server: UnKnown
Address: 172.16.2.151
Name: bbs.rootbug.com
Address: 2.2.2.2
C. DNS地址是什麼
域名系統是互聯網的一項服務。它作為將域名和IP地址相互映射的一個分布式資料庫,能夠使人更方便地訪問互聯網。DNS使用TCP和UDP埠53。當前,對於每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元。
每個區域必須有對應的域名伺服器,每個區域中包含的信息存儲在域名伺服器上。一個區域中可有兩個或多個域名伺服器,這樣即使其中一個域名伺服器出了故障,另一個域名伺服器仍然可以正常提供信息。一個域名伺服器也可以同時管轄多個區域。域名伺服器在接到用戶發出的請求後查詢自身的資源記錄集合,返回用戶想要得到的最終答案,或者當自身的資源記錄集合中查不到所需要的答案時,返回指向另外一個域名伺服器的指針,用戶將繼續向那個域名伺服器發出請求。
D. 根域名伺服器的分布地點
下表是這些機器的管理單位、設置地點及最新的IP地址: 字母 IPv4地址 IPv6地址 自治系統編號(AS-number) 舊名稱 運作單位 設置地點
#數量(全球性/地區性) 軟體 A 198.41.0.4 2001:503:ba3e::2:30 AS19836 ns.internic.net VeriSign 以任播技術分散設置於多處
6/0 BIND B 192.228.79.201
(2004年1月起生效,舊IP地址為128.9.0.107) 2001:478:65::53 (not in root zone yet) none ns1.isi.e 南加州大學信息科學研究所
(Information Sciences Institute, University of Southern California) 美國加州馬里納戴爾雷伊
(Marina del Rey)
0/1 BIND C 192.33.4.12 2001:500:2::CAS2149 c.psi.net Cogent Communications 以任播技術分散設置於多處
6/0 BIND D 199.7.91.13(2013年起生效,舊IP地址為128.8.10.90) 2001:500:2::DAS27 terp.umd.e 馬里蘭大學學院市分校
(University of Maryland, College Park) 美國馬里蘭州大學公園市
(College Park)
1/0 BIND E 192.203.230.10 AS297 ns.nasa.gov NASA 美國加州山景城
(Mountain View)
1/0 BIND F 192.5.5.241 2001:500:2f::f AS3557 ns.isc.org 互聯網系統協會
(Internet Systems Consortium) 以任播技術分散設置於多處
2/47 BIND G 192.112.36.4 AS5927 ns.nic.ddn.mil 美國國防部國防信息系統局
(Defense Information Systems Agency) 以任播技術分散設置於多處
6/0 BIND H 128.63.2.53 2001:500:1::803f:235 AS13 aos.arl.army.mil 美國國防部陸軍研究所
(U.S. Army Research Lab) 美國馬里蘭州阿伯丁(Aberdeen)
1/0 NSD I 192.36.148.17 2001:7fe::53 AS29216 nic.nor.net 瑞典奧托諾米嘉公司(Autonomica) 以任播技術分散設置於多處
36 BIND J 192.58.128.30
(2002年11月起生效,舊IP地址為198.41.0.10) 2001:503:c27::2:30 AS26415 VeriSign 以任播技術分散設置於多處
63/7 BIND K 193.0.14.129 2001:7fd::1 AS25152 荷蘭RIPE NCC 以任播技術分散設置於多處
5/13 NSD L 199.7.83.42
(2007年11月起生效,舊IP地址為198.32.64.12) 2001:500:3::42 AS20144 ICANN 以任播技術分散設置於多處
37/1 NSD M 202.12.27.33 2001:dc3::35 AS7500 日本WIDE Project 以任播技術分散設置於多處
5/1 BIND 中國大陸地區內只有6組根伺服器鏡像(F,I(3台),J,L),在少數極端情況下(比如全球互聯網出現大面積癱瘓、或者中國互聯網國際出口堵塞),至少能保證國內的站點由國內的域名伺服器來解析。雖然國外的用戶連接到我國的網路會出現問題,但是我國可以自己解決中國境內的域名解析問題,保證國內網路正常使用。
E. linux下如何配置DNS伺服器,
在linux下配置DNS伺服器,下面是配置過程中設置過的一些文件,
/etc/hosts 文件的具體內容如下:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost fc4
192.168.1.3 a.test.com a
192.168.1.1 b.test.cn b
/etc/host.conf 文件:
order hosts,bind
表示先用hosts文件做解析,在用DNS解析
/etc/resolv.conf 文件:
; generated by NetworkManager, do not edit!
search test.com
nameserver 127.0.0.1
search test.cn
nameserver 192.168.1.1
nameserver 61.144.56.100
/etc/named.conf 文件:
//
// named.conf for Red Hat caching-nameserver
//
options {
directory "/var/named";
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "test.com"IN {
type master;
file "test.com";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa"IN {
type master;
file "192.168.1.rev";
allow-update { none; };
};
zone "test.cn"IN {
type master;
file "test.cn";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
include "/etc/rndc.key";
在/var/name/test.com 文件下:
$TTL 86400
@ IN SOA a.test.com. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS a.test.com.
IN MX 10 mail.test.com.
a IN A 192.168.1.3
mail IN A 192.168.1.3
//其中root.a.test.com的含義是管理員的郵箱
/var/name/test.cn 文件下:
$TTL 86400
@ IN SOA b.test.cn. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS b.test.cn.
IN MX 10 mail.test.cn.
b IN A 192.168.1.1
mail IN A 192.168.1.1
/var/name/192.168.1.rev 文件下:
$TTL 86400
@ IN SOA 1.168.192.in-addr.arpa. root.test.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS a.test.com.
IN NS b.test.cn.
IN MX 10 mail.test.com.
IN MX 10 mail.test.cn.
3 IN PTR a.test.com.
3 IN PTR mail.test.com.
1 IN PTR b.test.cn.
1 IN PTR mail.test.cn.
然後用/etc/init.d/named restart重啟DNS服務,在重啟過程中,我曾經出現過好幾次的錯誤,按照出錯的提示,會提示是named.conf文件第幾行出錯的。或者提示在那些包含文件例如test.cn這些文件裡面的問題,然後一個一個排除。
最後還有一些nslookup的命令比較有用:
set all用於顯示使用nslookup工具這台機器上的DNS伺服器的一些信息
set type=any會顯示完整信息包括域中郵件伺服器和主從DNS伺服器的名字和IP地址
server 192.168.0.1更換查詢的DNS伺服器地址