DNS是一種協議,工作在應用層,域名解析系統,主要是用來實現域名與ip地址的相互轉換,目的是方便人們的記憶。
DNS域名解析的整個結構:像一個倒置的樹,類似我們國家的管理制度,有層次,分佈式
.(根域)
.com .net .org(一級域名)分爲三類:組織的(com,edu),國家(cn,hk),反向解析
全球一共13臺根節點服務器是固定的
magedu apple (二級域名)
www ftp tech
根域只管理它的下一級域名即一級域名,上級知道下級的位置,但下級不知道上級的位置
我舉一個例子說明DNS域名解析的過程,並說明遞歸和迭代的概念:
有一臺DNS客戶機要訪問www.apple.com,首先客戶機向本地的服務器發出請求,本地服務器查看自己的緩存,若沒有向根域發出請求,根域告訴本機服務器一個參考答案說:你可以找com,然後本地服務器向.com發出請求,.com看自己有,就把自己
的結果發給本地服務器,最後本地服務器把查詢的結果返還給本機客戶端。
客戶機向本地服務器發送請求的過程就是遞歸,即只發送一次請求直接得到最終的結果
本地服務器多次發送請求查詢的過程就是迭代,即發送請求,返回的是一個參考答案,並再次請求。
域名服務器有三類:主域名服務器,輔助域名服務器,緩存服務器
DNS監聽的端口是tcp,udp的53端口
我以一個例子說明一些概念,並建立主域名服務器和輔助域名服務器,實現同步
主域名服務器的ip 172.16.6.1
輔助域名服務器的ip 192.168.0.122
域 magedu.com
在主域名服務器中執行以下操作:
setenforce 0,getenforce
named進程,工作目錄解析的文件/var/named
rndc:remote Name Domain Controller遠程域名控制工具
rndc stop rndc reload默認只工作在本機身份驗證一對密鑰
1 安裝軟件包
yum install bind
DNS是通過bind服務軟件來實現
yum list bind*看下有哪些軟件包
bind-sdb.i386將bind的解析放在數據庫中
ls /etc/ | grep rndc
rndc-confgen > /etc/rndc.conf
cat !$
複製/etc/rndc.conf到主配置文件
key "rndckey" {
};
controls {
};
2 配置主配置文件/etc/named.conf
[option] {
directory "/var/named";
version "conm on"
};
zone "." IN {
type hint;
file "name.ca";
};
zone "localhost" IN {
type master;
fiel "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
zone "6.16.172.in-addr.arpa" IN {
type master;
file "172.16.6.zone";
};
%s@^# @@g去掉空表和註釋
cd /etc/named.conf
chmod o-r !$
chgrp named !$
cd /var/named/
dig -t NS . > /var/named/name.ca
1 vim /var/named/localname.zone
$TTL 43200
@ IN SOA localhost. root.localhost.(
20111125
3H
15M
2W
1D)
IN NS localhost.
localhost. IN A 127.0.0.1
2 vim /var/named/named.local
$TTL 43200
@ IN SOA localhost. root.localhost.(
2011
3H
15M
2W
1D )
NS localhost.
1 IN PTR localhost
chown :named localhost.zone named.*
netstat -tunlp 網絡狀態的查看
t:tcp u:udp的會話 n:以數字的方式,不加n會很慢,l只查看處於本地
監聽的套接字,p有那個進程產生的
netstat -tunlp | grep ":53"
rndc --help
rndc flush清空服務器緩存
rndc statu顯示服務器的狀態
rndc reload重新生效主配置文件和數據文件
rndc trace 2調試級別,打開調試會記錄日誌
rndc notrace 關閉
rndc 停止服務
rndc refresh zone 刷新某個區域
rndc retransfer 重傳某個區域
ipconfig/flushdns在Window清空緩存
chkconfig --list named 開機啓動服務
zone "區域名" IN {....}的格式
hint表示根區域,master表示主區域即文件類型,file該區域的對應的數據文件名
localhost是本機的解析,本機的正向解析和反向解析。
正向解析是實現域名到ip的轉換,反向解析是實現ip到域名的轉換。
前三個是必須的:根,本機的正反向解析
3配置/var/named/magedu.com.zone文件
$TTL 86400
@ IN SOA ns1.magedu.com. admin.mageedu.com. (
2011112421
1H
15M
1W
1D)
@ IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
IN MX 10 mail.magedu.com.
ns1 IN A 172.16.6.1
ns2 IN A 192.168.0.122
mail IN A 192.168.0.141
www IN A 192.168.0.142
ftp IN CNAME www
/var/named/
上級要有下級的記錄,提到了記錄類型
(1)SOA記錄 起始授權的記錄
它對應有5個只分別標識的含義如下:
1版本號,服務器的數據每發生一次變化它的值會自動加1,
2刷新時間,從域名服務器多久向服務器同步
3重試時間,聯繫不到主域名服務器多久在聯繫
4過期時間,當長時間聯繫不到主域名,從域名服務器即拒絕提供服務
5解析本地的域名,若沒有,否定答案的緩存時間
(2)NS記錄 聲明本域的域名服務器
(3)A記錄 主機名轉化成ip地址
(4)PTR ip地址轉化成域名
(5)MX 標識郵件服務器後跟一個數字表級別
(6)CNAME 正式名字,別名
域是一個邏輯概念,也可以這樣理解magedu.com就是一個域
區域是一個物理概念,magedu.com下的www,ftp可以是一個區域
4查看以上兩個文件的權限及屬組,屬主並修該
5啓動服務
service named restart
在輔助域服務器上配置:
安裝軟件包
配置主配置文件/etc/named.conf
[option] {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr-arpa" IN {
type master;
file "named.local";
};
zone "magedu.com" IN {
type slave;
file "/slaves/magedu.com.zone";
master { 172.16.6.1; };
};
zone "6.16.172.in-addr.arpa" IN {
type slave;
file "/slaves/172.16.6.zone";
master { 172.16.6.1; };
};
從服務器可以是正向的也可以是反向的
注意:從服務器中域的類型是:slave
主服務器會實現與從服務器的同步,同步的內容直接保存在/var/named/slave下
是從服務器要只要主服務器用master { 主ip;},可以有多箇中間用;隔開
named-checkconf檢查主配置文件是否有語法錯誤
named-checkzone "magedu.com" /var/named/magedu.com.zone檢查區域文件是否有語法錯誤
named-checkzone "0.168.192.in-addr.arpa" /var/named/192.168.0.arpa 反向檢查
同樣改變文件的權限即屬主,屬組
重啓從服務器service named restart
若出現錯誤可根據/var/log/messages信息來修改,特別要注意語法,不能隨意添加空格或少空格
dig的用法 dig -t A www.magedu.com
dig -t NS magedu.com
dig -x 172.16.6.1 反向解析
nslookup
set q=MX
service 172.16.6.1
set q=A www.magedu.com
host -t A www.magedu.com
主域與子域:
在/var/named/magedu.com中添加NS記錄並添加A記錄
aa權威答案,子域找不到父域的位置,
例:在magedu.com中劃分子域
DNS:magedu.com
tech.magedu.com: ns.tech.magedu.com(ip:192.168.0.122)
www.tech.magedu.com
tcp.tech.magedu.com
在主域名服務器中授權,主配置文件不用做任何需改,只需在對應的正向域名解析中添加記錄
配置/var/named/magedu.com.zone文件
$TTL 86400
@ IN SOA ns1.magedu.com. admin.mageedu.com. (
2011112421
1H
15M
1W
1D)
@ IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
IN MX 10 mail.magedu.com.
ns1 IN A 172.16.6.1
ns2 IN A 192.168.0.122
mail IN A 192.168.0.141
www IN A 192.168.0.142
ftp IN CNAME www
tech.magedu.com. IN NS ns.tech.magedu.com
ns.tech.magedu.com. IN A 192.168.0.122
在子域服務器中
forward:實現子域找到父域
配置/etc/named.conf
option {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca"
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
}
zone "tech.magedu.com" IN {
type master;
file "tech.megedu.com.zone";
};
zone "magedu.com" IN {
type forward;
forwarders { 172.16.6.1; };
forward only|first;遞歸|首先遞歸若查不到在嘗試替代
};
看/var/named/下的文件
vim /var/named/tech.magedu.com
$TTL 600
$OPIGIN tech.magedu.com.
@ IN SOA ns.tech.magedu.com. admin.tech.magedu.com. (
20111123
1H
5M
7D
1H )
IN NS ns
IN MX 10 mail
ns IN A 192.168.0.122
mail IN A 192.168.0.122
www IN A 192.168.0.1
vim /etc/resolv.conf該域名指向自己192.168.0.122
ACL先定義後使用none,all,
acl "slaves" {
192.168.0.122;
192.168.0.100;
};
allow-transfer { slaves; }
acl "ourclients" {
};
allow-query { ourclients; };允許誰查看
在全局 : allow-recursion { none; } 允許誰遞歸
recursion no;
智能DNS:根據客戶端來源ip地址,來爲某一個解析請求返回一個設定好的解析結果
view根據來源的不同,能給不同用戶展示不同的結果
每個view可以有多個區域, 若使用view,每個區域都在view內
view VINE_NAME {
match-clients { 192.168.0.0/24; };
};
例:讓來自172.16.0.0/16,192.168.0.0/24各自返還
vim /etc/named.conf
optinons {
directory "/var/named";
querylog yes;
version "None of your business";
};
view localnet {
match-clients { 172.16.6.0/16; };
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
zone "6.16.172.in-addr.arpa" IN {
type master;
file "172.16.6.zone";
};
};
view external {
match-clients { 192.168.0.0/24; };
zone "magedu.com" IN {
type master;
file "magedu.com.external";
};
};
vim /var/named/magedu.com.external;
$TTL 86400
@ IN SOA ns1.magedu.com. admin.mageedu.com. (
2011112421
1H
15M
1W
1D)
@ IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
IN MX 10 mail.magedu.com.
ns1 IN A 172.16.6.1
ns2 IN A 192.168.0.122
mail IN A 192.168.0.141
www IN A 192.168.0.142
ftp IN CNAME www
service named restart
chgrp named /var/named/magedu.com.external
chmod o-r /var/named/magedu.com.external
要在不同的網段通信要添加一條默認的路由
route add default 192.168.0.0. 192.168.0.254
用nslookup可以檢查結果
使用dig來驗證結果