DNS:domain name service,協議(C/S,udp53,tcp53)
BIND:bekerley internat name domain
注意:named程序的啟動用戶是named用戶,非root用戶,因此需要注意權限和屬主。
本地名稱解析配置文件:hosts
linux:/etc/hosts
windows:%WINDOWS%/system32/dirvers/etc/hosts
dns查詢類型:
遞歸查詢:一次請求取得最終結果;
迭代查詢:多次請求取得最終結果;
名稱服務器:域內負責解析本域內名稱的主機;
根服務器:13組服務器
解析類型:FQDN:完全限定域名
正向解析:FQDN ? –>> ? IP
反向解析:IP ? –>> ? FQDN
DNS服務器的類型:
主DNS服務器
輔助DNS服務器
緩存DNS服務器
轉發器
主DNS服務器:維護所負責解析的域內解析庫的服務器;解析庫文件由管理員維護;
從DNS服務器:解析庫文件從主DNS服務器或者其他的從DNS服務器“復制”(區域傳送)過來;
序列號:解析庫的版本號;前提:主dns服務器解析庫內容發生變化,其序列號遞增;
刷新時間間隔:從服務器從主服務器請求同步解析庫的時間間隔;
重試時間間隔:同步解析庫失敗時,再次嘗試的時間間隔;小于刷新時間間隔;
過期時長:從服務器始終聯系不到主服務器時,多久后放棄從服務器角度,停止提供服務;
“通知”機制:
區域傳送:
全量傳送:傳送整個解析庫;
增量傳送:傳送解析庫變化的那部分內容;
一次完整的查詢請求經過的流程:
client–>hosts文件–>local cache–>dns server(遞歸)–>server cache–>迭代
解析答案:肯定回答、否定回答、權威答案、非權威答案
區域解析庫:由眾多資源記錄RR組成;
資源記錄:resource record,RR
記錄類型:A,AAAA,PTR,SOA,NS,CNAME,MX
SOA:start of author,起始授權記錄:一個區域解析庫有且僅能有一個SOA記錄,而且必須為解析庫的第一條記錄;
A:internet address,作用:FQDN–>IP;
AAAA:FQDN–>IPv6;
PTR:poinTeR,IP–>FQDN;
NS:name server,專用于標明當前區域的dns服務器
CNAME:canonical name,別名記錄
MX:mail exchanger,郵件交換器
資源記錄定義的格式:
語法:name ? ?[TTL] ? ? IN ? ?rr_type ? ? value
注意:(1)TTL可從全局繼承;
(2)@可用于引用當前區域的名字;
(3)相鄰的兩個或多個資源記錄的name相同時,后續可省略;
(4)對NS、MX記錄而言,任何一個ns記錄后面的服務器名字,都應該在后續有一個A記錄;
(5)同一個名字可以通過多條記錄定義多個不同的值;此時dns服務器會以輪詢方式響應;
(6)同一個值也可能有多個不同定義名字,通過多個不同名字指向同一個值定義;
(7)避免用戶寫錯名稱時給錯誤答案,通過*泛域名解析至特定地址;例如*.magedu.com. ? IN ? ?A ? ?1.1.1.3
SOA:一個區域解析庫內有且只有一個SOA記錄
name:當前區域的名字,例如“magedu.com.”
value:由多部分組成:(1)當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字;
(2)當前區域管理員的郵箱地址,但地址中不能使用@符號,一般用.替換;例如linuxedu.magedu.com.;
(3)主從服務協調屬性的定義以及否定的答案的統一的TTL;
例如:magedu.com. ? ? 86400 ?IN ?SOA ? ? ? ns.magedu.com. ? ?nsadmin.magedu.com. ? ? (
2018041901 ? ?;序列號
2H ? ? ? ? ? ? ? ? ? ? ;刷新時間
10M ? ? ? ? ? ? ? ? ?;重試時長
1W ? ? ? ? ? ? ? ? ? ?;過期時間
1D ? ? ? ? ? ? ? ? ? ? ;否定答案的TTL
)
NS:
name:當前區域的名字
value:當前區域的某DNS服務器的名字,例如ns.magedu.com.;一個區域可以有多條NS記錄;
例如:
magedu.com. ? ? ? IN ? ?NS ? ns1.magedu.com.
IN ? ?NS ? ns2.magedu.com.
MX:
name:當前區域的名字
value:當前區域的某郵件服務器的主機名;注意,value之前應該有一個數字(0-99),表示此郵件服務器的優先級;
例如:
magedu.com. ? ? IN ? ?MX ?10 mx1.magedu.com.
IN ? ?MX ?20 mx2.magedu.com.
A:
name:某主機的FQDN,例如www.magedu.com.
value:主機名對應的主機的IP地址;
例如:
www.magedu.com. ? ? ? ?IN ? ? ? A ? ? 1.1.1.1
www.magedu.com. ? ? ? ?IN ? ? ? A ? ? 2.2.2.2
AAAA:
name:FQDN
value:IPv6
PTR:
name:IP;有特定格式,把IP地址反過來寫,有特定后綴:.in-addr.arpa.,例如1.2.3.4,要寫成4.3.2.1.in-addr.arpa.
value:IPv6FQDN
例如:
4.3.2.1.in-addr.arpa. ? ? ? ? ?IN ? ? PTR ? ?www.magedu.com.
也可以簡寫成:
4 ? ???IN ? ? PTR ? ?www.magedu.com.
注意:網絡地址及后綴可省略;主機ip地址依然需要反過來寫;
CNAME:
name:別名的FQDN
value:正式名字的FQDN
例如:
web.magedu.com. ? ? ?IN ? CNAME ? ? www.magedu.com.
域名注冊:代理商:萬網、新網、godaddy
注冊完成以后,想自己用專用服務器來解析步驟:進入域名管理后臺:把NS記錄指向自己的服務器名稱,和A記錄指向的服務器地址;
主要程序包:
bind:server包
bind-libs:依賴庫
bind-utils:工具
bind-chroot:將/var/named/chroot/設置為根;
rfc:Request For Comments 請求注解
rndc:Remote Name Domain Controllerr;BIND安裝包提供的一種控制域名服務運行的工具
主配置文件:
/etc/named.conf、/etc/named.rfc1912.zones、/etc/rndc.key
全局配置:options {}
日志子系統配置:logging {}
區域定義:本機需要定義的zone解析;zone ?“ZONE_NAME” ? ?IN ? {}
解析庫文件:/var/named/ZONE_NAME.ZONE
注意:(1)一臺物理服務器可同時為多個區域提供服務;
(2)必須要有根區域文件;/var/named/named.ca
(3)應該有兩個(如果包括ipv6的,應該更多)實現localhost和本地回環地址的解析庫文件;/var/named/named.localhost、/var/named/named.loopback
注意:任何服務程序如果期望其能夠通過網絡被其他主機訪問,至少應該監聽在一個能夠與外部主機通訊的IP地址上;
1、在主配置文件中/etc/named.rfc1912.zones定義zone區域
zone ?“ZONE_NAME” ? ?IN ?{
type {master|slave|hint|forward};
file ? ?“ZONE_NAME.zone”;
};
2、定義區域解析庫文件
# vim /var/named/lshaol.com.zone
出現的內容:宏定義、資源記錄;
例如:
(3)修改對應的屬組及權限
# chmod 640 ?/var/name/lshaol.com.zone
# chown :named?/var/name/lshaol.com.zone
(4)檢查配置文件語法
# named-checkconf
# named-checkzone “lshaol.com” /var/named/lshaol.com.zone
測試命令:
dig [-t type] name [@server] [query options]
query options:查詢選項
+[no]trace:是否跟蹤解析過程
+[no]recurse:是否遞歸解析
dig用于測試dns,因此,不會查詢hosts文件;
測試反向解析:
dig -x IP @SERVER
模擬區域傳送:
dig -t axfr 區域名字|IP ?@SERVER
host [-t type] name [server]
nslookup命令:支持交互式
nslookup [-option] [name | -] [server]
支持交互式nslookup>
server ip:指定使用哪個dns server進行查詢;
set q=rr_type:指明查詢的資源記錄類型;
NAME:要查詢的名稱;
反向區域的定義:
區域名稱:網絡地址反寫.in-addr.arpa.
1、在主配置文件中/etc/named.rfc1912.zones定義zone區域
zone ?“ZONE_NAME” ? ?IN ?{
type {master|slave|hint|forward};
file ? ?“網絡地址.zone”;
};
2、定義區域解析庫文件;注意:不需要MX、A、AAAA記錄;以PTR記錄為主;
出現的內容:宏定義、資源記錄;
常用宏:$TTL ? 有效時長
$ORIGIN ? 區域名
例如:
# vim ? ? ?/var/named/172.20.120.zone
(3)修改對應的屬組及權限
# chmod 640 ?/var/name/172.20.120.zone
# chown :named?/var/name/172.20.120.zone
(4)檢查配置文件語法
# named-checkconf
# named-checkzone “120.20.172.in-addr.arpa” /var/named/172.20.120.zone
主從復制:
1、應該為一臺獨立的名稱服務器;
2、主服務器的區域解析庫文件中必須有一條NS記錄是指向從服務器;
3、從服務器只需要定義區域,而無須提供解析庫文件,解析庫文件應該放置于/var/named/slaves目錄;
4、主服務器得允許從服務器做區域傳送;
5、主從服務器時間應該同步,可通過ntp進行;
6、bind程序的版本應該保持一致;否則,應該從高,主低;
定義從區域的方法:
zone “ZONE_NAME” ?IN {
type slave;
masters { ?MASTER_IP ?};
file “slaves/ZONE_NAME.zone”;
};
rndc命令:rndc command
常用command:
reload:重新載入配置文件和區域解析庫文件;
reload zone:重新載入區域解析庫文件;
reconfig:重新載入配置文件;
retransfer ?zone:手動啟動區域傳送過程,而不管序列號是否增加;
notify zone:重新對區域傳送發通知;
querylog:開啟或關閉查詢日志;在定義錯誤的時候管用;
trace LEVEL:指定調試debug級別;
正向解析區域子域方法:在父域中的區域定義子域的NS記錄而非A記錄;
定義轉發服務器:注意:被轉發的服務器需要能為轉發請求者做遞歸,否則,轉發不給進行;
(1)全部轉發:凡是非本機所負責解析的區域的請求,統統轉發給指定的服務器;
options ?{
forward ? {first(先遞歸后迭代)|only(僅遞歸)};
forwarder ?{ ?NS_SERVER_IP ?};
};
(2)區域轉發:僅轉發對特定區域的請求至某一服務器;
zone ?“ZONE_NAME” ? IN ? {
type forward;
forward ? {first|only};
forwarder ?{ ?NS_SERVER_IP ?};
};
注意:關閉dnssec功能:
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92886