DNS
在Linux中,域名服務(DNS)是由柏克萊網間名域(Berkeley Internet Name Domain--BIND)軟件實現的
一?;A
1。安裝包
bind,bind-utils(第一張盤)
cache-server-* 含配置范例(第三張)
2。使用端口:53(不是25,25是郵件端口)
3。配置文件:/etc/named.conf
默認zone file 保存位置 /var/named/
4。配置文件檢查 方法: named-checkzone,name-checkconf
無任何返回,則正確。
5.客戶端配置文件 是/etc/resolve.conf
6。守護進程 named
7。分類 master(prime) ,slave,cache dns
8。logs 記錄在 /var/log/messages
9。圖形的配置用 redhat-config-bind
二。named.conf 舉例
/etc/named.conf
第一段 全局配置
options {
directory “/var/named/”;---定義zone保存位置
--選擇項forwards;作用把無法解析的 轉發給該IP轉發 (注意兩個分號)
如果 還加入參數 forward only; 那么該機器將指作為一個高速緩存的DNS(即cache dns)
--選擇項allow-query; 指定允許 來解析的客戶端 IP
如果指定該項 那么 客戶機器上設定/etc/resolve.conf 里的DNS地址還不夠,還必須 DNS允許其解析,才能解析。
--選擇項allow-transfer; 指定 允許復制本 主DNS zone數據的從DNS IP地址
如果選擇這項 ,那么在slave dns里的/etc/named.conf里設置是這樣的。
zone “example1.com” IN {
type slave;-----指定是從DNS
masters { 192.168.0.254; };該IP是主DNS的IP
file “db.example1-slave”;
};
};
注意:其中IP的寫法 如果涉及多個IP,可以用分號間隔,如果是某段IP 用,IP/24(掩碼)的方式表示。
…………
zone “example1.com” IN {---域名
type master;
file “example1.com”; -----保存zone數據的文件名,自己定義
allow-update { none; };
-----動態DNS,
allow-update
Specifies which hosts are allowed to submit Dynamic DNS updates to the
server. The default is to deny updates from all hosts.
};
zone “0.168.192.in-addr.arpa” IN { ---反向域名必須以.in-addr.arpa結尾)
type master;
file “db.192.168.0”;
};
三、zone舉例
正向:example1.com
$TTL 86400 是文件開頭,數字表示默認存活期,用秒計算的
@ IN SOA server1.example1.com. Root.server1.example1.com.
----上句話中 @表示本域名,SOA表示開始定義起始授權,server1.example1.com.表示本區域授權給哪臺機器,建議用本機HOSTNAME,root.server1.example.com. 表示管理人員其中root.表示是root@只是@在DNS是本域的意思
(
2003070401;serial 序列號 可以是任何數字,一般:年月日修改數.
----注意每次修改DNS必須修改該數字,修改后的比前要大,否則 不生效。通??梢约?
1H; refresh 是SOA信息的刷新時間.
-----從DNS向主DNS復制數據的時間間隔,最短10分鐘,但是我在EL3上測 試是5分鐘
1M; Retry是與授權服務器聯系的頻率.
一旦從DNS查詢復制數據失敗,下一次重查的時間間隔
1W; Expire slave服務器保存有關的區域信息,不更新它的時間間隔.
----如果在這個時間內還沒有聯系到主DNS,宣布數據過期
1D ) Minimum 區域中記錄的存活時間.
----前提是record沒有設TTL,而且DB也沒有設的參考
IN NS server1.example1.com. ----NS 作用指定域名服務器,通常是在互連網上注冊后的名字。
其中IN前面沒有任何文字,意思是自動沿用上一個
和example.com IN NS server1.example1.com. 一樣 (必須)
IN A 192.168.0.254 ----A記錄,域名和IP的映射 (必須)
server1 IN A 192.168.0.254
station1 IN A 192.168.0.1
www1 IN CNAME server1.example1.com. ----別名(假名)。作用把一個域名設定成另一個域名(可選)
@ IN MX 5 server1.example1.com. ----MX記錄 定義本域里的郵件服務器,如果域里有多個郵件服 務器,那么10這個數字決定優先,數字越小越優先。
server1.example1.com IN MX 10 server1.example1.com.
----------------------------------------------------------------------
總結:基本格式如下
格式就是:[domain] [class] <type> <rdata>
[domain]如: server1.example1.com ,www.
Www是簡寫,實際會默認添上定義這個文件的那個 zone “example1.com”里的
example1.com,即:www=www.example1.com.這個段可以升略不寫,默認跟前一行的
[domain]相同.@表示”example1.com”.
[class]一般為internet類,即:IN ,可以省去不寫.
<type> 分別有SOA,NS,A,MX,CNAME,及反向數據庫里的PTR.
假名不可以放在NS MX 的<rdata>字段.
完整域名后一定要加.號,否則會自動為你加”example1.com”.
三、客戶端配置
修改/etc/resolv.conf
添加
nameserver IP(dns ip)
修改 host.conf (可選)
確保order hosts,bind中 host在前,表示先用host解析,再用DNS
即使resolv.conf 中設置了三個以上的DNS,在解析的時候如果前面三個都不起作用,linux也不會再去請求后面的了。
四、補充:
這裡我們只是看看幾個記錄名稱而已﹕
類別名稱 代表意思
TXT 只是一些說明文字﹐可以用來說明主機/網路環境設定
NS 名稱伺服器﹐也就是該zone指定的DNS伺服器名稱
MX 郵件伺服器﹐負責經由DNS查詢進行郵件傳遞的郵件伺服器。這樣的好處是﹕如果您要更換郵件伺服器的話﹐只需修改DNS記錄就可以了﹐而對方的郵件伺服器則無需理會您要使用的究竟是哪一臺電腦來負責郵件交換。同時﹐您也可以指定多臺郵件伺服器來分擔郵件交換工作﹐在MX後面的號數用來指定伺服器的使用順序﹐ 數字越低越優先。
A 用來對應主機名稱和其IP地址﹐這個記錄最常用﹐而且也是最重要的記錄之一
HINFO 和TXT差不多﹐是回答“Host Information”查詢用的
CNAME 是一個“別名”記錄﹐可以給A記錄使用另外一個(或多個)名稱讓外面查詢。CNAME可以對應一個A記錄﹐但不鼓勵對應另一個CNAME記錄。
AAAA 和A記錄一樣﹐只不過對應的是IP v6 格式
五、驗證
驗證DNS工作
當您建立好一個DNS伺服器之後﹐除了可以直接使用命令 ping (這個會在後面章節說明)直接ping一下上面的記錄之外﹐最好還是使用“nslookup”這個命令進行檢測或除錯﹐(Windows9x系統並不包含此命令)。
如果我們先將查詢模式設為any之後﹐再輸入同樣的主機名稱﹕
> set q=any
您就可以看到更多的資料了﹐例如﹕MX﹑NS﹑和它們的IP地址等信息。假如您使用“除錯模式”的話﹐看到的資料還將更多﹗
> set debug
另外﹐您還可以用 set q=mx 或 set q=ptr 等模式來查詢特定的記錄﹐也可以用 ls 後接 domain name 來查看某個 domain 的所有主機記錄。善用 nslookup 我們可以找到許多 DNS 的信息﹐而當有問題發生的時候﹐這個工具就變得非常有用了。
六、關于做輪尋,實現負載均衡
www in A 192.168.0.3
www in A 192.168.0.4
www in A 192.168.0.5
在zone里加入 如上的多條指向 同一個域名 而A記錄是不同IP的,可以實現負載均衡。
但無法做到和四層交換意義上的 完全流量一致。
(***聽人說可以實現 還望各位 達人指教**)
七、幾個值得借鑒的寫法
1。直接把某個域名交由另一個解析,用別名
custom21cn.allyes.com. IN CNAME custom21cn.cdn.21cn.com.
2。統配符*的使用
*.sina.allyes.com. IN CNAME allyes.sina.com.cn.
update-policy