DNS与bind
DNS
????dns是屬于分布式系統(tǒng)管理龐大的dns數(shù)據(jù)庫;我們在日常的運維活動中,雖然用到配置DNS服務(wù)器的機會很少,但是DNS對于我們各項服務(wù),尤其是網(wǎng)頁服務(wù)尤為重要。
一般情況下我們建立的DNS服務(wù)器適用于使用的:
一般是在內(nèi)網(wǎng)中主機非常多,有很多服務(wù)器分別提供不同的服務(wù):如搜索web,圖片web,數(shù)據(jù)web,監(jiān)控等,這些服務(wù)器所提供的用戶名與外網(wǎng)聯(lián)系不大(一般有反向代理,負(fù)載均衡在前面),同時為了做好自動化運維,需要每個主機的主機名,建立DNS就是為了更好的管理
DNS? domain name service 監(jiān)聽udp53,tcp53端口
一級域?? 組織域:.com .org .mil .gov .edu .net
國家域:.cn? .hk?? .tw? .jp? .ir? .iq
所向域:.in-addr.arpa后綴
www.zou.com.
這個.為根,可以省略,但dns服務(wù)器是不可以省略的,任何服務(wù)器主機主要不是自己所管轄的主機通信,都通通交給根
dns服務(wù)器
一次查詢所經(jīng)過的該流程:
本地先查找host文件,
host文件沒有的話,就找dns的本地緩存,
如果dns服務(wù)器負(fù)責(zé)的域,那直接解析查詢自己的數(shù)據(jù)庫返回答案
不過不是自己負(fù)責(zé)的域,那就找自己的緩存,有就返回答案
dns本地還沒有的話,那就找所指向的dns服務(wù)器了,具體請看圖(這是dns服務(wù)器也不知道的情況下走的步驟)
上面的查詢分為兩種: ? ?
????遞歸:發(fā)送一次請求,就會得到最終答案的叫做遞歸? recursion???路由器向域名代理商查詢
????迭代:發(fā)多次請求才能得到答案的叫做迭代 iteration???? 域名代理商幫著去找域名一般為迭代,它要找多次
根域名服務(wù)器不和任何主機做遞歸;
客戶端指向dns服務(wù)器,一定是允許給本地主機做遞歸;
在數(shù)據(jù)庫中dns服務(wù)器是聲明身份
DNS服務(wù)器類型:
負(fù)責(zé)解析至少一個域
主名稱服務(wù)器
輔助名稱服務(wù)器
不負(fù)責(zé)解析
緩存名稱服務(wù)器
區(qū)域數(shù)據(jù)庫文件:
資源記錄??? resource record ??簡稱RR
資源記錄類型有,用于資源的功能:
SOA | start of authority起始授權(quán)記錄;一個區(qū)域解析庫有且只能有一個SOA記錄,而且必須放在第一條,這個一般是用2015090901, 一旦修改了之后,如果是主從的話,那就最好是修改這個最后的01,手動修改增加1 |
| NS? | name server??域名服務(wù)記錄,一個區(qū)域解析庫可以有多個NS記錄;其中一個為主的 |
| MX? | mail exchange? 郵件交換器,這個的特殊之處是具有優(yōu)先級,0-99,數(shù)字越小,優(yōu)先級越高 |
| A? | address,地址記錄,FQDN-->ipv4 |
| PTR | poeter,?? ip-->fqdn?? 負(fù)責(zé)反向解析 |
AAAA | address,地址記錄, FQDN-->ipv6 |
| CNAME | canonical name? 別名記錄(正式名稱),給服務(wù)器指定的別名記錄 |
dns數(shù)據(jù)庫文件:純文本文件,只包含資源記錄或者宏定義,每行一個資源記錄定義格式:
語法:name???? [ttl]????? IN???? RRtype?????Value
?
SOA:
????name:當(dāng)前區(qū)域的名字;例如“zou.com.”,或者“2.3.4.in-addr.arpa.”
????value:有多部分組成
????????1.當(dāng)前區(qū)域的區(qū)名稱(也可以使用主DNS服務(wù)器)
????????2.當(dāng)前區(qū)域管理員的郵箱地址,但是地址不能使用@符號,一般使用點號取代????
????????3.(主從服務(wù)協(xié)調(diào)屬相的定義以及否定答案的TTL)
????????????例如:????
????????????????zou.com.???86400??? IN??? SOA???zou.com.??? zhi.zou.com.? (????
????????????????????????????????????????? ?2016070316?; serial??????????? 分號為注釋,版本最長為10位,隨便定義
2H?????????????? ; refresh????? 定義的刷新時間
10M??????????? ;??retry??????? 從新發(fā)送時間
1W?????????????;?? expire
1D???????????? ;??negative answer ttl??? 否定時間的ttl值
)????
任何DNS數(shù)據(jù)庫必須有這一條,而且必須為第一條 ? ? ? ?
NS:
name:當(dāng)前區(qū)域名稱,通常可以簡寫為@
value :當(dāng)前區(qū)域的某DNS服務(wù)器的名字,例如:ns.zou.com.?? 注:點號不可少
注:一個區(qū)域可以有多個NS記錄
例如:
zou.com.???86400??? IN??? NS???ns1.zou.com.
zou.com.???86400??? IN??? NS???ns2.zou.com.
MX:郵件交換器,可以有多個,、
name:當(dāng)前區(qū)域名稱,用于表明一個區(qū)域內(nèi)的smtp服務(wù)器
value:當(dāng)前區(qū)域某郵件交換器的主機名,(有優(yōu)先級,范圍為0-99,數(shù)字越小優(yōu)先級越高,第二部分是FQDN)
注:MX記錄可以有多個,但每個記錄的value之前應(yīng)該有一個數(shù)字,表示其優(yōu)先級
例如:
zou.com.???? 600????IN???? MX? 10???mail.zou.com.????????
zou.com.??? ?600???? IN????MX? 20??? mail2.zou.com.
A記錄? ??目錄是將FQDN轉(zhuǎn)化成為ip,可以多個主機使用同一個ip,可以做負(fù)載均衡
name:某FQDN,例如www.zou.com.
value:某IPv4地址
可以一主機名多個ip,也可以一個ip多個主機名
例如:
www.zou.com.????600???? IN??? A??1.2.3.4
www.zou.com.?????? 600??????IN????? A???? 5.6.7.8
mail.zou.com.??????? 720?????? IN?????A????? 5.6.7.8
*.zou.com.????????????? 1000???? IN????A?????? 5.6.7.8???????? 這一條是為了防止用戶寫錯
zou.com.??????????????? 720?????? IN????A??????? 5.6.7.8??????? 這一條是為了一些習(xí)慣寫域名訪問網(wǎng)站的用戶
@?????????????????????????? 900?????? IN????A??????? 5.6.7.8
AAAA
name :FQDN
value: IPv6
PTR:指針記錄,這是保存在另一個文件里的,作為反向解析的,將ip轉(zhuǎn)換成域名的,用于反向解析
name :?IP地址,有其特定格式,要ip反過來寫,
如?192.168.200.3 ??則寫為3.200 或者3.200.168.192.in-addr.arpa.
value:FQDN,這個fqdn就不用再寫一次A記錄了
例如:
4.3.2.1.in-addr.arpa.????? 600?????IN???? PTR????? www.zou.com.
CNAME:?? 別名
name:? FQDN格式的別名
value: FQDN的正式名稱??只要value這個值是域名的時候,就要對這個域名一條A記錄
例如:
www.zou.com.??IN??? CNAME???? webserver.zou.com.??? www的正式名稱是webserver,web的別名為www
mail?? IN??? CNAME????www??? 也可以簡短格式
注意:
(1) TTL可以從全局繼承
(2)@可以表示當(dāng)前區(qū)域的名稱
(3)相鄰的兩條記錄其name相同時,后面可以省略
(4)對于正向區(qū)域來說,MX,NS等類型的記錄的value為一個FQDN,此FQDN應(yīng)該有一個A記錄
(5)同一個名字可以通過多條記錄定義多個不同的值;此時DNS服務(wù)器會以輪訓(xùn)方式響應(yīng)
(6)同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進(jìn)行定義;此僅表示通過多個不同的名字可以找到同一個主機
?
DNS是一種協(xié)議,用軟件來實現(xiàn),其中以bind最為著名,也有powerdns,bind由ISC組織維護,
dns:協(xié)議
bind:為軟件名稱,dns協(xié)議的一種實現(xiàn)方式
unbound:7版本上的和bind一樣可以提供dns服務(wù)的軟件
named:bind程序運行的進(jìn)程名
bind的程序包:
bind-libs???被bind和bind-utils這兩個包程序共同用到的庫文件
bind-utils???工具組件,bind客戶端程序集,例如dig,host,nslookup等
bind???????提供dns服務(wù)器server程序和解析器庫文件以及幾個常用的測試程序
bind-chroot??? 可選裝;是一種安全機制,把某些目錄當(dāng)根來用,一旦有人***,剛獲得named進(jìn)程的權(quán)限,但是這個root只能在/var/named/chroot/內(nèi),它會模擬出來etc? root??bin sbin?? var等目錄,形成一個沙箱,安全起見而設(shè)定
只要安裝了bind-chroot之后,當(dāng)你開啟named服務(wù)的時候就是把你的named的配置文件和數(shù)據(jù)庫文件都會調(diào)動/var/named/chroot/目錄內(nèi),你只用管/var/named/chroot/etc/named.conf?? 和named.rfc.1912.zones
以及/var/named/chroot/var/named/目錄下面的文件就可以了。
注:當(dāng)你關(guān)閉named服務(wù)的時候,沙箱會先關(guān)閉,所以配置文件又回歸原先的位置,如/etc/named.conf;
named服務(wù)并不知道自己處于沙箱只用,所以檢查配置文件和zone文件的時候請跟好文件路徑
?
安裝軟件包
~】#yum install bind? bind-utils -y
在centos7上的版本為9.9.4
主配置文件:/etc/named.conf?
包含文件有:
/etc/namd.iscdlv.key
?/etc/named.rfs1912.zones
/etc/named.root.key
解析庫文件:
/var/namd/ 目錄下
ZONE_NAME.zone??? 里面很多文件一般都是以區(qū)域名命名的文件(實際上什么名字都可以)
注:
一臺DNS服務(wù)器可以同時為多個區(qū)域做解析
必須要有根區(qū)域解析庫文件:namd.ca
還應(yīng)該有兩個區(qū)域解析庫文件:localhost和127.0.0.1庫文件/var/namd/named.{localhost,loopback}
腳本文件:/etc/rc.d/init.d/named
?/etc/sysconfig/named
?
主配置文件格式:
全局配置段
option{ ...}
區(qū)域配置段
zone{... }???????區(qū)域選項,定義哪些由本級負(fù)責(zé)解析的區(qū)域,zone? “ZONE NAME"{};
日志配置段
logging{... }??????定義日志系統(tǒng)
{}前后都有空格,{}后面要有分號;每一個配置語句必須以分號結(jié)尾
*/ str...?/*?? 注釋
// str.....????? 注釋
?
緩存名稱服務(wù)器的配置:
監(jiān)聽能與外部主機通信的地址;默認(rèn)配置里面是寫的127.0.0.1的所以要給刪了
listen-on port 53;
listen-on port 53{172.16.1.1;};
學(xué)習(xí)時,建議關(guān)閉dnssec功能(設(shè)置結(jié)果為:)
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
檢查配置文件的語法錯誤:
~】# named-checkconf
后面什么也不跟,默認(rèn)找/etc/namd.conf;當(dāng)然可以后面跟指定的配置文件名
~】# systemctl start named.service
~】# netstat -ntul?????????? 查看端口是否啟動
測試工具:? (查詢的時候走的udp53端口,如果防火墻沒有開啟,查詢是不能夠測試的)
dig命令:
作用:用于測試dns系統(tǒng),因此其不會查詢host文件
dig [-t RR_type ]? [-x ip]? [SQDN_name] [@server_ip]
RR_type 資源記錄類型
查詢選項:
-x????反向解析
+[no]trance??????? 跟蹤解析過程
+[no]recurse????? 進(jìn)行遞歸解析
+[no]tcp?????????????? 協(xié)議測試
~】# dig -t A www.magedu.com
模擬完全區(qū)域傳送:
~】#dig -t axfr DOMAIN [@server]
dig -t? NS? .??找到全球的根目錄,因該是13個
dig -t NS . @192.168.200.3讓網(wǎng)關(guān)去掉根的A記錄和/var/named/named.ca的內(nèi)容是一樣的
host命令:
格式:host [-t RR_type]name Server_ip
~】# host -t? A www.baidu.com
~】# host -t MX baidu.com?????????查看郵件交換器的名字
nslookup命令:
兩種模式:
命令行模式
格式:nslookup[-opitons] [name] [server]
交互式模式
nslookup進(jìn)入交互式模式
>
server ip?:? 已指定的ip為DNS服務(wù)器進(jìn)行查詢
set q=RR_type??? 要查詢的資源記錄類型
name?????要查詢的名稱
rndc命令??????? named服務(wù)控制命令
rndc???名稱服務(wù)器的遠(yuǎn)程控制工具,刪除緩存,(remotename domain contoller)
默認(rèn)工作在tcp953端口,默認(rèn)與bind一起安裝,默認(rèn)監(jiān)聽在127.0.0.1(也就是僅允許本地遠(yuǎn)程本地,本地使用)
?
~】# rndc status
~】# rndc flush????? 清空服務(wù)器緩存,手動強制刷新已達(dá)到立即生效的目的
~】# rndc reload??? 重新裝載配置文件和域數(shù)據(jù)庫文件(代替了systemctl reload named)
這個命令后面可以跟某一個區(qū)域名zone
~】# rndc refresh zone? 調(diào)度某一個zone處于維護狀態(tài),不讓其解析
?
DNS服務(wù)器的正式搭建
?
正向解析
前提:注冊域名,申請ip,有自己的主機
(1)定義區(qū)域
~】# vim /etc/named.conf
options { ??????? listen-on port 53 { localhost; };?????????????????????? 這里寫localhost是監(jiān)聽本地所有ip ??????? listen-on-v6 port 53 { ::1; }; ??????? directory?????? "/var/named"; ??????? dump-file?????? "/var/named/data/cache_dump.db"; ??????? statistics-file "/var/named/data/named_stats.txt"; ??????? memstatistics-file "/var/named/data/named_mem_stats.txt"; ??????? allow-query???? { any; };?????????????????????????????????????? 這里any是允許所有主機探測 |
??~】# vim /etc/named.rfc1912.zones
zone "jd.com" IN { ??????? type master; ??????? file "jd.com.zone"; } |
(2)建立區(qū)域數(shù)據(jù)文件?????????? (主要記錄為A)
在/var/namd目錄下建立區(qū)域數(shù)據(jù)庫文件
~】#? vim jd.com.zone
$TTL?? 1H $ORIGIN? ??jd.com.????????????? 這個宏的定義是在最后面的ns1不指定后面的,將自動補全? jd.com. @??????? IN?????? ?SOA?????? ?ns1.jd.com.??? admin.jd.com (????????????????一個是dns服務(wù)主機名,一個是郵箱地址<沒有用,而且ns1.jd.com可以為@,也可以直接寫jd.com.> ????????????????????????????????????????????????????????????2016070401??????? 標(biāo)識號 ????????????????????????????????????????????????????????????1H??????????????????????? 刷新時間 ???????????????????????????????????????????????????5M?????????????????????? 重試時間 ????????????????????????????????????????????????????????????2D??????????????????????? 過期時間 ????????????????????????????????????????????????????????????3H)??????????????????? 否定答案緩存時間 ???????IN??????????? NS??????????????? ?ns1??????????????????????????? 這里的IN可以省略 ns1???????????????????? A????????????????? 172.16.1.1???????????? ?每個服務(wù)器都應(yīng)該有對應(yīng)的主機名 webser?????????????? A?????????????????? 172.16.1.1 www????????????????? CNAME????????? webser ftp???????????????????? ?A?????????????????? 172.16.1.2 @???????????????????? ?MX??10??????? mail.jd.com. mail??????????????????? A???????????????? ?172.16.1.3 |
(3) 安全
~】#? chown root:named jd.com.zone
~】# chmod 644? jd.com.zone
(4)檢查語法錯誤并讓服務(wù)器重新配置文件和區(qū)域數(shù)據(jù)文件
~】#? named-checkconf /etc/named.conf
~】# named-checkzone "jd.com" /var/named/jd.com.zone
~】# rndc reload?? 或者 systemctl reload named.service
(5)測試
~】# dig -t A www.jd.com @172.16.1.1
如果已經(jīng)配置了dns指向172.16.1.1,則
~】# dig -t A www.jd.com
;; QUESTION SECTION: ;www.jd.com.????????????????????????IN????????A ? ;; ANSWER SECTION: www.jd.com.????????????????60????????IN????????CNAME????????web.jd.com. web.jd.com.????????????????60????????IN????????A????????172.16.1.1 ? ;; AUTHORITY SECTION: jd.com.????????????????????????60????????IN????????NS????????ns.jd.com. ? ;; ADDITIONAL SECTION: ns.jd.com.????????????????60????????IN????????A????????172.16.1.1 |
?測試:~】# dig -t NA www.jd.com
;; QUESTION SECTION: ;www.jd.com.????????????????????????IN????????NS ? ;; ANSWER SECTION: www.jd.com.????????????????60????????IN????????CNAME????????web.jd.com. ? ;; AUTHORITY SECTION: jd.com.????????????????????????60????????IN????????SOA????????ns.jd.com. admin.jd.com. 2015070408 60 300 172800 3600 |
配置一個反向區(qū)域
(1)定義區(qū)域
在主配置文件中或主配置文件include的輔助配置文件中實現(xiàn):
~】# vim named.rfc1912.zones
zone "1.16.172.in-addr.arpa" IN { ??????? type master; ??????? file "172.16.1.zone"; };? |
(2)建立反向區(qū)域數(shù)據(jù)文件
在/var/namd目錄下建立區(qū)域數(shù)據(jù)庫文件
~】#? vim 172.16.1.zone
$TTL?? 1H $ORIGIN? ??1.16.172.in-addr.arpa.??????????? @??????? IN?????? ?SOA?????? ?ns1.jd.com. admin.jd.com(?? ?????????????????????????????????????????????????????????????????????????2016070401??????? 標(biāo)識號 ????????????????????????????????????????????????????????????????1H??????????????????????? 刷新時間 ????????????????????????????????????????????????????????5M?????????????????????? 重試時間 ?????????????????????????????????????????????????????????????????2D??????????????????????? 過期時間 ?????????????????????????????????????????????????????????????????3H)??????????????????? 否定答案緩存時間 ???????IN??????????? NS??????????????? ?ns1.jd.com.????????????????? 這里必須要寫全了ns.jd.com.??? IN可以省略??????? ????????????? IN???????? PTR??????????????? ns1.jd.com. 1???????????????????????? PTR?????????????????? 172.16.1.1 2???????????????????????? PTR?????????????? ftp.jd.com 3.1.16.172.in-addr.arpa.??? PTR?????? mail.jd.com 1?????????? IN????????? PTR???????????????? web.jd.com 在反向區(qū)域解析之中是不會有MX記錄的,這個和郵箱記錄沒有關(guān)系 |
(3) 安全
~】#? chown root:named172.16.1.zone
~】# chmod 644? 172.16.1.zone
(4)檢查語法錯誤并讓服務(wù)器重新配置文件和區(qū)域數(shù)據(jù)文件
~】#? named-checkconf/etc/named.conf????????? 可以省略這個文件,如果是默認(rèn)安裝的情況
~】# named-checkzone "1.16.172.in-addr.arpa" /var/named/172.16.1.zone
~】# rndc reload?? 或者 systemctl reload named.service
(5)測試
~】# dig -x 172.16.1.1
注:這個反向解析,一般是不用的
配置主從DNS
注:主從復(fù)制只是區(qū)域級別的概念,因為DNS有正向區(qū)域和反向區(qū)域兩種,所以要配置主從復(fù)制可以有:
1.A主機正向區(qū)域主,反向區(qū)域主;B主機正向區(qū)域從,反向區(qū)域沒設(shè)置
2.A主機正向區(qū)域主,反向區(qū)域主;B主機正向區(qū)域從,反向區(qū)域從
3.A主機正向區(qū)域主,反向區(qū)域從;B主機正向區(qū)域從,反向區(qū)域主
4.A主機正向區(qū)域主,方向區(qū)域沒設(shè)置;B主機正向區(qū)域從,反向區(qū)域沒設(shè)置
如果建立主輔DNS服務(wù)器,要連接公網(wǎng)的話,就要和上級dns服務(wù)器說明白,告其有兩個主機負(fù)責(zé)解析,讓其建立兩條指向(主輔DNS服務(wù)器都要給授權(quán)),當(dāng)有請求的時候,第一條發(fā)送給A主機解析,第二條發(fā)送給B主機解析,已達(dá)到負(fù)載均衡的目的
主從dns:主bind版本可以低于從的,但最好兩端版本是一樣的,向區(qū)域中添加從服務(wù)器的關(guān)鍵兩部:
在上級獲得授權(quán)
在區(qū)域數(shù)據(jù)文件中添加一條ns記錄和對應(yīng)的A記錄
前提是時間同步,ntpdate
(1)先配置好主DNS服務(wù)器,上面已經(jīng)配置好了,這個時候找另外一臺服務(wù)器作為從服務(wù)器
但是要確保區(qū)域文件中為每個從服務(wù)器配置NS記錄,這樣主才能更好的同步給從
加上????????? IN????????? NS????? ns2
??????ns2?? IN??????? A???????從DNS_ip
$TTL 1M $ORIGIN jd.com. @?????? IN??? SOA?? ns1.jd.com. admin.jd.com. ( ??????????????????????????????????????? 2015070410 ??????????????????????????????????????? 1M ??????????????????????????????????????? 5M ??????????????????????????????????????? 2D ??????????????????????????????????????? 1H ??????????????????????????????????????????????? ) ??????? NS????? ns1 ?????? ?NS????? ns2 ns1???? A?????? 172.16.1.1 ns2???? A?????? 172.16.1.2 web???? A?????? 172.16.1.1 www???? CNAME?? web @?????? MX 10?? mail.jd.com. mail??? A?????? 172.16.1.2 |
~】# rndc reload?? 或者 systemctl reload named.service
(2)配置從服務(wù)器
配置主配文件,并定義從區(qū)域
zone "ZONE_NAME" IN {
type slave;
file "slaves/ZONE_NAME.zone";
master {MASTER_IP;};
};
~】# vim /etc/named.conf
options { ??????? listen-on port 53 { localhost; };?????????????????????? 這里寫localhost是監(jiān)聽本地所有ip ??????? listen-on-v6 port 53 { ::1; }; ??????? directory?????? "/var/named"; ??????? dump-file?????? "/var/named/data/cache_dump.db"; ??????? statistics-file "/var/named/data/named_stats.txt"; ??????? memstatistics-file "/var/named/data/named_mem_stats.txt"; ??????? allow-query???? { any; };?????????????????????????????????????? 這里any是允許所有主機探測 |
~】# vim /etc/named.rcf1912.zones
zone "jd.com" IN { ??????? type slave; ??????? masters{172.16.1.1;}; ??????? file "slaves/jdslave.com.zone"; }; |
配置文件語法檢查并重載服務(wù)
~】#? named-checkconf /etc/named.conf
~】# named-checkzone "jd.com" /var/named/jd.com.zone
~】# rndc reload?? 或者 systemctl reload named.service
之后從服務(wù)器就會向主服務(wù)上同步文件了之后根據(jù)標(biāo)識號進(jìn)行同步,這里同步文件有兩種:
pull??? 這是根據(jù)定義好的每多少時間向主拖拽一次,默認(rèn)為1天
push?? 當(dāng)主的dns解析域文件更改之后,要在標(biāo)識號上手動增加1,如2016070402 ? ? ,之后重載服務(wù),主向從復(fù)制區(qū)域配置文件
測試從服務(wù)器能否解析
~】#? dig -t A ww.jd.com @172.16.1.2??????? 這個要指向從dns的ip通過它測試
注:安全隱患:
~】# dig -t axfr jd.com @172.16.1.1???? @后面指向主的dns服務(wù)器,測試能否傳送
這種情況下,每個服務(wù)器都可以當(dāng)主服務(wù)器的從服務(wù)器,這樣比較不安全,所以要做好相應(yīng)安全配置
~】#? vim /etc/named.conf? 加入一行 在allow-query?? {any;};后面
allow-transfer? {172.16.1.2;};???????? 允許和172.16.1.2傳送區(qū)域資源記錄
從服務(wù)器要是也追求安全的話
allow-transfer? {none;};
子域授權(quán)
正向解析區(qū)域授權(quán)子域的方法:
ops.jd.com.???????????? IN?????? NS???????ns1.ops.jd.com.
ops.jd.com.???????????? IN?????? NS???????ns2.ops.jd.com.
ns1.ops.jd.com.????IN??????? A????????? IP.AD.DR.ESS
ns2.ops.jd.com.????IN??????? A????????? IP.AD.DR.ESS
上面顯示的子域服務(wù)器不止一個,每個子域都要在主服務(wù)器上寫好對應(yīng)的NS和A記錄
做子域授權(quán),子域可分為兩種:
一種是子域和父域(也就是主DNS)在同一臺上面,這個子域就相當(dāng)于根父域同級的,你就可以理解為這就是一臺服務(wù)器上設(shè)置兩個域名,各自獨立對待就可以了,都有各自的zone區(qū)域,在配置文件里都有各自的配置段
第二種就是分開設(shè)立子域和父域,這一般是正常點兒
確保時間同步,當(dāng)然這兩種方法,子域都是主的
(1)配置主DNS
***? ~】# vim /etc/named.conf
dnssec-enable no;??????關(guān)閉安全
??????? dnssec-validation no;????
?
~】# vim jd.com.zone
$TTL 1M $ORIGIN jd.com. @?????? IN??? SOA?? ns1.jd.com. admin.jd.com. ( ??????????????????????????????????????? 2015070411???????? 要修改這里要加1,因為設(shè)置了主從dns,需要同步 ??????????????????????????????????????? 1M ??????????????????????????????????????? 5M ??????????????????????????????????????? 2D ??????????????????????????????????????? 1H? ) ?????? ????????????NS????? ns1 ??????? ?????????????NS????? ns2????????????????????????? 加入子域的NS和A記錄,進(jìn)行授權(quán) ops??? IN??????? NS???????? ns1.ops ns1???? A?????? 172.16.1.1 ns2???? A?????? 172.16.1.2 ns1.ops??? A??????? 172.16.1.4????????????????????????????? 要指向子域dns的服務(wù)器地址 web???? A?????? 172.16.1.1 www???? CNAME?? web @?????? MX 10?? mail.jd.com. mail??? A?????? 172.16.1.2 |
(2)配置子域DNS服務(wù)器? (可配置主dns相似)
~】# yum install bind bind-utils -y
~】# vim /etc/named.conf
options { ??????? listen-on port 53 { 172.16.1.4; };?????????????????????? 這里寫localhost是監(jiān)聽本地所有ip ??????? listen-on-v6 port 53 { ::1; }; ........????? ??????? allow-query???? { any; };?????????????????????????????????????? 這里any是允許所有主機探測 |
????~】# vim ops.jd.com.zone?
$TTL?? 1H $ORIGIN? ??ops.jd.com.???????????? @??????? IN?????? ?SOA?????? ?ns1.ops.jd.com.??? admin.ops.jd.com (???????????????? ??????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????2016070401??????? 標(biāo)識號 ????????????????????????????????????????????????????????????1H??????????????????????? 刷新時間 ???????????????????????????????????????????????????5M?????????????????????? 重試時間 ????????????????????????????????????????????????????????????2D??????????????????????? 過期時間 ????????????????????????????????????????????????????????????3H)??????????????????? 否定答案緩存時間 ???????IN??????????? NS??????????????? ?ns1??????????????????????????? 這里的IN可以省略 ns1???????????????????? A????????????????? 172.16.1.4???????????? www????????????????? A?????????????????? 172.16.1.4 |
~】#? chown root:namedops.jd.com.zone
~】# chmod 644? ops.jd.com.zone
~】#? named-checkconf/etc/named.conf
~】# named-checkzone "ops.jd.com" /var/named/ops.jd.com.zone
~】# rndc reload?? 或者 systemctl reload named.service
~】# dig -t A www.ops.jd.com @172.16.1.4?????????? 子域解析
~】# dig -t A www.ops.jd.com @172.16.1.1????????? 父域解析子域
~】# dig -t A www.jd.com @172.16.1.4???????????????? 測試子域解釋父域是不能成功的
明明子域就在父域的下面,但是子域不能夠解析父域,要先去找根服務(wù)器之后再一層層的找
轉(zhuǎn)發(fā)
子域授權(quán)中的定義轉(zhuǎn)發(fā)域
注:被轉(zhuǎn)發(fā)的服務(wù)器必須允許為當(dāng)前服務(wù)器做遞歸查詢;
(1)區(qū)域轉(zhuǎn)發(fā)????(僅轉(zhuǎn)發(fā)對某特定區(qū)域的解析請求)
zone “ZONE_NAME”? IN {
type forward;
forward???first|only ;
forwarder {server_ip;};
};
first:?首先轉(zhuǎn)發(fā);轉(zhuǎn)發(fā)器不響應(yīng)時,自行去迭代查詢
only:只轉(zhuǎn)發(fā)
在子域服務(wù)器上面做如下操作:
~】# vim /etc/named.conf
options { ??????? listen-on port 53 { localhost; };?????????????????????? 這里寫localhost是監(jiān)聽本地所有ip .........?????? |
~】# vim /etc/named.rfc.1912.zones?(加進(jìn)去)
zone "jd.com" IN {
type forward;
forward only;?? 只允許本地內(nèi)部的轉(zhuǎn)發(fā)
forwarders {172.16.1.1;? 172.16.1.2;};???????? 轉(zhuǎn)發(fā)器:這兩個ip為父域的主從
};
~】# named-checkconf
~】# rndc reload
測試:?? 在dig的過程當(dāng)中顯示的flags里面如果有aa是自己負(fù)責(zé)的權(quán)威應(yīng)答,沒有則是通過別人得到的答案
~】#??? dig -t A www.ops.jd.com @172.16.1.4????? 子域查詢子域的有aa標(biāo)志
~】#?? dig -t A www.jd.com @172.16.1.4???????? 子域查詢父域的轉(zhuǎn)發(fā)后成功,這里沒有aa標(biāo)志
(2)全局轉(zhuǎn)發(fā)???(只要不是本地沒有用過zone定義的區(qū)域的查詢請求,統(tǒng)統(tǒng)轉(zhuǎn)發(fā)給某個轉(zhuǎn)發(fā)器)
options {
.........
forward {only|first};
forwarders {server_ip;}
......
};
編輯子域 ~】# vim /etc/named.conf
加入?? forward?? only;
forwarders? {172.16.1.1;};
定義完成的之后:查詢解析的時候,先去找自己的zone,如果自己的zone不能解析,則提交轉(zhuǎn)發(fā)給172.16.1.1dns服務(wù)器,讓其幫助完成查詢解析
~】# dig -t A www.baidu.com @172.16.1.4??????
會發(fā)現(xiàn)能夠完成解析,但是這并不知自己解析的,是172.16.1.1送過來的,前提172.16.1.1能夠連接互聯(lián)網(wǎng)
智能DNS
bind view bind視圖,智能DNS,根據(jù)不同客戶單的來源,將同一個域名解析成不同的結(jié)果,腦裂
注:設(shè)置DNS只能解析需要注意一下幾點:
acl 定義的ip必須要提前設(shè)置好,一般會在/etc/named.conf文件里面的option{}前面加上acl{},之后調(diào)用,而用不用在你
如果使用只能acl,你想要生效的所有域zone都必須統(tǒng)一寫在viewer ? ? {} 里面,用不到的zone可以刪掉或者注釋
view自動化dns解析的時候,匹配范圍小的放在前面,匹配范圍大的放到后面
在你把zone向里面移動的時候,別忘了/etc/named.conf文件尾部有個根的zone,把它也要移動到viewer{}里面
如果要定義的域比較多的話,為了方便管理,我們可以這樣:
假設(shè)有兩個ip 1.1.1.1 和2.2.2.2,當(dāng)我們訪問www.jd.com的時候,當(dāng)用戶通ip172.16.1.1訪問DNS服務(wù)器的時候能夠查詢到1.1.1.1的;當(dāng)用戶使用172.16.1.2的時候為到2.2.2.2(這里172.16.1.1相當(dāng)于外網(wǎng)的電線DNS服務(wù)器,它去迭代查詢域名信息)
其中 172.16.1.3為只能DNS服務(wù)器
并且我這里用到的測試主機和域名比較少,所以就直接在配置文件里面修改了,當(dāng)然也會視情況添加配置文件
(1)首先安裝bind服務(wù),之后,編輯配置文件
~】# vim /etc/namd.conf
acl host1{ ??????? 172.16.1.1; ??????? }; acl host2 { ??????? 172.16.1.2; ??????? }; options { ??????? listen-on port 53 { localhost; }; ??????? listen-on-v6 port 53 { ::1; }; ??????? directory?????? "/var/named"; ??????? dump-file?????? "/var/named/data/cache_dump.db"; ??????? statistics-file "/var/named/data/named_stats.txt"; ??????? memstatistics-file "/var/named/data/named_mem_stats.txt"; ??????? //allow-query???? { any; }; ??????? //allow-transfer? {172.16.1.2;}; 并把以下的內(nèi)容移動到/etc/namd.rfc1912.zones文件當(dāng)中 zone "." IN { ??????? type hint; ??????? file "named.ca"; }; |
之后修改zone配置文件
?? ~】# vim /etc/named.rfc1912.zones
view host1 { ??????? match-clients {host1;}; ??????? zone "." IN { ??????????????? type hint; ??????????????? file "named.ca"; ??????????????? }; ??????? zone "jd.com" IN { ??????????????? type master; ??????????????? file "magedu.com.zone1"; ??????????????? }; ??????? }; view host2 { ??????? match-clients {host2;}; ??????? zone "." IN { ??????????????? type hint; ??????????????? file "named.ca"; ??????????????? }; ??????? zone "jd.com" IN { ??????????????? type master; ??????????????? file "magedu.com.zone2"; ??????????????? }; ??????? }; view other { ??????? match-clients {any;}; ??????? zone "." IN { ??????????????? type hint; ??????????????? file "named.ca"; ??????????????? }; ??????? zone "jd.com" IN { ??????????????? type master; ??????????????? file "magedu.com.zone1"; ??????????????? }; ??????? }; |
之后我們要先后創(chuàng)建兩個區(qū)域文件文件分別為
magedu.com.zone1? ? ? ? ?
$TTL 1M $ORIGIN magedu.com. @?????? IN??? SOA?? ns1.magedu.com. admin.magedu.com. ( ??????????????????????????????????????? 2015070417 ??????????????????????????????????????? 1M ??????????????????????????????????????? 5M ??????????????????????????????????????? 2D ??????????????????????????????????????? 1H ??????????????????????????????????????????????? ) ??????? NS????? ns1 ns1???? A?????? 172.16.1.3 web???? A?????? 1.1.1.1 www???? CNAME?? web |
maedu.com.zone2
$TTL 1M $ORIGIN magedu.com. @?????? IN??? SOA?? ns1.magedu.com. admin.magedu.com. ( ??????????????????????????????????????? 2015070417 ??????????????????????????????????????? 1M ??????????????????????????????????????? 5M ??????????????????????????????????????? 2D ??????????????????????????????????????? 1H ??????????????????????????????????????????????? ) ??????? NS????? ns1 ns1???? A?????? 172.16.1.3 web???? A?????? 1.1.1.1 www???? CNAME?? web |
隨后為了安全要把文件的所有者和文件權(quán)限進(jìn)行響應(yīng)的調(diào)整
?[root@yuan named]# chown root:named magedu.com.zone1 ????????[root@yuan named]# chown root:named magedu.com.zone2 ????????[root@yuan named]# chmod 640 magedu.com.zone1 ????????[root@yuan named]# chmod 640 magedu.com.zone2 |
修改完權(quán)限之后,我們要對配置文件,和區(qū)域文件進(jìn)行測試
[root@yuan named]# named-checkconf [root@yuan named]# named-checkzone magedu.com magedu.com.zone1 zone magedu.com/IN: loaded serial 2015070417 OK [root@yuan named]# named-checkzone magedu.com magedu.com.zone2 zone magedu.com/IN: loaded serial 2015070417 OK |
確認(rèn)無誤后,重新加載服務(wù)
| [root@yuan named]# rndc reload |
這里我們配置完成,下面就是分別用兩個測試機進(jìn)行測試,查看是否能夠智能解析
在 172.16.1.1的主機上操作測試:
[root@haizei ~]# dig -t A www.magedu.com @172.16.1.1 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com @172.16.1.1 ............ ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2 ;; ANSWER SECTION: www.magedu.com.????????????????60????????IN????????CNAME????????web.magedu.com. web.magedu.com.????????????????60????????IN????????A????????1.1.1.1 ;; AUTHORITY SECTION: magedu.com.????????????????60????????IN????????NS????????ns1.magedu.com. ....... ;; ADDITIONAL SECTION: ns1.magedu.com.????????????????60????????IN????????A????????172.16.1.3 |
在172.16.1.2的主機上進(jìn)行操作測試
[root@zou ~]# dig -t A? www.magedu.com @172.16.1.1 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6 <<>> -t A www.magedu.com @172.16.1.1 。。。。 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; ANSWER SECTION: www.magedu.com.????????????????60????????IN????????CNAME????????web.magedu.com. web.magedu.com.????????????????60????????IN????????A????????2.2.2.2 ;; AUTHORITY SECTION: magedu.com.????????????????60????????IN????????NS????????ns1.magedu.com. ;; ADDITIONAL SECTION: ns1.magedu.com.????????????????60????????IN????????A????????172.16.1.3 |
轉(zhuǎn)載于:https://blog.51cto.com/941012521/1813855
總結(jié)
- 上一篇: HTTP深入浅出个人总结
- 下一篇: tomcat和apache的结合