從零開始linux學(xué)習(xí)--搭建一臺DNS Server(四)

????????DNS(domain name system)是用戶上網(wǎng)的基礎(chǔ)服務(wù),由于IP地址純數(shù)字的特點(diǎn)膊存,使得人們很難記住一個(gè)網(wǎng)站真實(shí)的IP地址导而,就如同人們很難記得某某的手機(jī)號碼是多少。那如何解決這個(gè)問題呢隔崎?直觀的辦法就是創(chuàng)建一個(gè)“聯(lián)系人”的功能今艺,將“人名”字段與“電話號碼”字段進(jìn)行關(guān)聯(lián),例如小明-13534567890爵卒;小紅-13534567891虚缎,這樣歉眷,人們在撥打電話的時(shí)候翻翩,只需要記得人名,無需記得每個(gè)人的電話號碼荞雏,與此類似轴合,DNS應(yīng)運(yùn)而生创坞。類似上述例子,域名解析要做的就是將難記的IP地址如42.245.252.152受葛,打一個(gè)備注:www.reibang.com题涨,這時(shí)候,簡書的拼音是遠(yuǎn)遠(yuǎn)比一長串?dāng)?shù)字更方便記憶总滩。

????????如果各位對于dns的基本概念存在疑問纲堵,建議花一段時(shí)間先學(xué)習(xí)一下維基百科dns的知識。筆者一直強(qiáng)調(diào)基礎(chǔ)知識的重要性闰渔。

????????domain name system用做域名解析的實(shí)質(zhì)是存了一張域名對應(yīng)IP地址的關(guān)系表席函,網(wǎng)絡(luò)中客戶端進(jìn)行查詢時(shí)就會來查這一張表,并在表中得到需要的IP地址信息澜建。如何搭建和維護(hù)這一張表向挖,就是筆者要做的內(nèi)容。

????????bind是目前主流的dns開源軟件炕舵,這節(jié)筆者嘗試使用bind搭建一臺主dns服務(wù)器。

希望達(dá)成的效果:

1. ? ? 新建網(wǎng)絡(luò)區(qū)域內(nèi)域名解析系統(tǒng)跟畅,做到如下表所示的域名—IP對應(yīng)關(guān)系咽筋。

????????域名????????????????????????????????服務(wù)器IP

????????a.hbai.com????????????????????192.168.0.1

????????b.hbai.com????????????????????192.168.0.2

????????c.hbai.com ? ? ? ? ? ? ? ? ? ?192.168.0.3

????????d.hbai.com????????????????????192.168.0.4

2. ? ? 除上述內(nèi)網(wǎng)域名外,其余域名查詢轉(zhuǎn)發(fā)至園區(qū)網(wǎng)外dns進(jìn)行解析徊件,并返回實(shí)際IP地址奸攻。如查詢www.baidu.com返回百度服務(wù)器IP蒜危。

????????好,目標(biāo)明確之后睹耐,筆者來登陸第一節(jié)搭建的linux服務(wù)器辐赞。

????????首先,筆者保存一下上一章做的測試網(wǎng)頁硝训,并且關(guān)閉apache服務(wù):

????????/bin/systemctl stop httpd.service

? ? ? ? yum安裝bind:yum install bind

????????接下來筆者來進(jìn)行基礎(chǔ)配置:vi /etc/named.conf

????????注意其中幾個(gè)重要字段:

????????listen-on port 53 { 127.0.0.1; };?????? 本地監(jiān)聽端口响委;

????????listen-on-v6 port 53 { ::1; };????????? IPv6監(jiān)聽端口,由于筆者暫時(shí)沒有打算使用IPv6窖梁,所以把它用//注釋掉赘风;

????????directory?????? "/var/named";???? 指明了域文件所在的目錄(就是筆者需要維護(hù)對應(yīng)關(guān)系表所在目錄)最好不要修改;

????????allow-query { localhost; };?????????? 允許那些主機(jī)來查詢纵刘,默認(rèn)是localhost邀窃,由于筆者園區(qū)網(wǎng)絡(luò)與公網(wǎng)有防火墻,這臺dns就可以對園區(qū)或者專網(wǎng)提供服務(wù)假哎,所以把“l(fā)ocalhost”改為“any”瞬捕;

????????recursion yes;??????????????????? 是否允許遞歸,如果服務(wù)器設(shè)為主dns倒是可以關(guān)閉遞歸查詢舵抹,目前筆者搭建的這臺需要提供dns查詢山析,所以開啟;

????????logging {??????????????????????? logging字段掏父,定義日志所在位置笋轨,之后筆者對dns服務(wù)器進(jìn)行監(jiān)控會用到,不做修改赊淑。

????????zone "." IN {?????????????????? ??定義了root zone的服務(wù)類型為hint爵政,記錄文件在/var/named/named.ca中;

????????include "/etc/named.rfc1912.zones";?? 定義區(qū)文件位置陶缺,筆者要新增的域*.local屬于一個(gè)zone钾挟,即需要在該文件中增加。

對如上內(nèi)容作修改為:

????????其中新增了一個(gè)forwarders字段饱岸,表示如果服務(wù)器無法解析該域名時(shí)將請求交與括號內(nèi)dns服務(wù)器解析掺出。就是因?yàn)檫@個(gè)字段,筆者可以對本地?zé)o法解析的域名(即除*.hbai.com)的域名都轉(zhuǎn)到公用dns上解析苫费。各位在買運(yùn)營商帶寬時(shí)汤锨,運(yùn)營商會提供IP地址與dns服務(wù)器,這時(shí)可以直接加在forwarders字段百框。

保存退出wq!

啟動dns服務(wù):/bin/systemctl start named.service

查看一下服務(wù)狀態(tài):/bin/systemctl status named.service

????????筆者注意到第三行一個(gè)字段Loaded: loaded (/usr/lib/systemd/system/named.service;disabled

????????這個(gè)表示該服務(wù)不隨開機(jī)啟動闲礼,由于dns這類基礎(chǔ)業(yè)務(wù)類最好在服務(wù)器發(fā)生宕機(jī)之后可以自動恢復(fù),保障業(yè)務(wù)連續(xù),因此將其設(shè)置為開機(jī)啟動柬泽。

????????設(shè)置dns服務(wù)為開機(jī)啟動:bin/systemctl enable named.service

????????繼續(xù)查看一下狀態(tài):/bin/systemctl status named.service

????????完成~

????????筆者來測試一下服務(wù)是否正常:

????????老樣子慎菲,關(guān)掉防火墻:systemctl stop firewalld.service

????????與上一章相同的網(wǎng)絡(luò)環(huán)境,筆者發(fā)現(xiàn)telnet 192.168.101.2 53端口不通锨并?露该。。

????????telnet 192.168.101.2 22端口進(jìn)行一下測試第煮,發(fā)現(xiàn)可以訪問解幼。說明問題還是出在53端口上

????????筆者看了一下配置似乎沒什么大問題,沒辦法空盼,進(jìn)行故障排查吧书幕。

????????本地測試一下,在dns服務(wù)器上去測試一下端口是不是可以正常訪問

????????未找到該命令揽趾。為了測試台汇,插播一條消息,筆者在服務(wù)器上繼續(xù)安裝telnet:

????????看一下目前telnet的情況:yum list installed | grep telnet

????????查看一下可以安裝telnet的安裝包:yum list | grep telnet

????????直接安裝telnet.x86_64:

????????yum install telnet.x86_64

????????yum install telnet-server.x86_64

????????再查看一下telnet安裝狀態(tài): yum list installed | grep telnet

????????裝好之后繼續(xù)在服務(wù)器上進(jìn)行telnet測試篱瞎,發(fā)現(xiàn)還是提示被拒絕(Connection refused)苟呐。

????????繼續(xù)telnet localhost 53,發(fā)現(xiàn)連接上了:connected to localhost

????????說明筆者192.168.101.2這個(gè)IP在黑名單里啊俐筋,沒有服務(wù)提供牵素。繼續(xù)檢查配置,發(fā)現(xiàn)在/etc/named.conf中確實(shí)有如下一行沒有注意澄者。

????????這一段剛開始修改時(shí)筆者只注意在port 53 的監(jiān)聽上笆呆,其實(shí)后面括號內(nèi)定義了53端口只能由127.0.0.1進(jìn)行訪問。發(fā)現(xiàn)故障原因后粱挡,筆者直接將其注釋掉赠幕。

????????重啟服務(wù):/bin/systemctl restart named.service

????????繼續(xù)回到筆者測試電腦上telnet 192.168.101.2,發(fā)現(xiàn)端口可通询筏。小插曲解決榕堰。


????????下面筆者來配置*.local的域:vi /etc/named.rfc1912.zones

????????原有兩個(gè)zone,在此基礎(chǔ)上筆者新建一個(gè)名為hbai.com的zone嫌套。并將其type設(shè)為master逆屡。

????????zone "hbai.com" IN {

???????????????type master;

???????????????file "db.hbai";

????????};

????????保存退出wq!

????????好了,下一步就是創(chuàng)建域名對應(yīng)IP地址的關(guān)系表:cd /var/named

? ? ? ? ls看一下文件:

????????筆者新建一個(gè)剛剛在zone聲明的文件db.hbai: vi db.hbai

????????首先定義dns生存時(shí)間ttl踱讨,定在1h吧魏蔗,換算成秒:$TTL 3660

????????第二行筆者做一個(gè)start of authority標(biāo)記,定義一個(gè)授權(quán)區(qū)的開始:

????????hbai.com.?????? IN?????SOA???? mian.hbai.com.????master.hbai.com.

????????用()定義一段跨行數(shù)據(jù)勇蝙,并對每個(gè)數(shù)據(jù)打一個(gè)說明標(biāo)簽:

????????2018011001????? ;??????serial

????????定義serial沫勿,每當(dāng)重啟dns服務(wù)時(shí)dns會檢測new-serial挨约,當(dāng)new-serial大于old-serial時(shí)主dns會向從dns同步zone味混。這里筆者沒有搭建從dns产雹,意義不大。

????????14400?????????? ;?????? refresh (4 hours)

????????定義refresh翁锡,從dns每過多長時(shí)間向主dns進(jìn)行serial核對蔓挖。意義也不大。

????????7200??????????? ;?????? retry??(2 hours)

????????定義retry馆衔,當(dāng)從dns向主dns獲取serial無響應(yīng)時(shí)多長時(shí)間重新發(fā)起瘟判。目前意義不大。

????????604800????????? ;?????? expire?(1 week)

????????定義expire角溃,當(dāng)無主dns響應(yīng)時(shí)從dns提供權(quán)威解析時(shí)間拷获。

????????86400?????????? ;?????? minimum (1 day)

????????定義negative caching,不做詳細(xì)解釋减细,有興趣查一下RFC 2308文檔定義匆瓜。


????????另起一行? $ORIGIN hbai.com.

????????定義從改行一下所有域名以hbai.com結(jié)尾。


????????添加NS記錄未蝌,將以hbai.com的域名解析權(quán)交與名為main.hbai.com的dns

????????添加最開始表格的域名-IP對應(yīng)關(guān)系驮吱。

????????wq!保存退出。


????????筆者來看一下整體的文件:cat db.hbai

????????重啟dns服務(wù):/bin/systemctl restart named.service

????????開啟防火墻:systemctl start firewalld.service

????????永久添加tcp 53端口:firewall-cmd --zone=public --add-port=53/tcp --permanent

????????永久添加udp53端口:firewall-cmd --zone=public --add-port=53/udp --permanent

????????重啟防火墻:firewall-cmd --reload

????????筆者最后在電腦上進(jìn)行dns服務(wù)測試:開始--搜索—cmd

????????輸入nslookup

????????看到目前電腦的dns萧吠,筆者繼續(xù)隱去左冬。。

????????設(shè)置服務(wù)器為192.168.101.2:server 192.168.101.2

????????看到這時(shí)候“默認(rèn)服務(wù)器”和“Address”字段都變?yōu)榱?92.168.101.2的IP地址纸型。

????????直接輸入a.hbai.com拇砰;d.hbai.com;www.baidu.com進(jìn)行測試狰腌。

????????筆者看到除破,對于筆者自己維護(hù)的域名(*.hbai.com)的域名,筆者的dns server給出了權(quán)威解析癌别,而對于不在筆者管控的其他域名皂岔,通過遞歸查詢返回了非權(quán)威的dns應(yīng)答。

????????到此為止dns服務(wù)器的搭順利完成~

????????由于公網(wǎng)IP沒法貼出來展姐,上圖一堆馬賽克沒法展示效果躁垛,筆者第二章設(shè)置了服務(wù)器接入專網(wǎng),并配置了IP地址10.150.101.249圾笨。筆者可以同樣在專網(wǎng)內(nèi)做一個(gè)測試:

????????這樣結(jié)果就很清楚了教馆。

????????DNS Server的搭建可以使得筆者正常訪問園區(qū)內(nèi)外的網(wǎng)絡(luò)資源(如百度),也可以標(biāo)注數(shù)據(jù)中心內(nèi)或者專網(wǎng)內(nèi)的服務(wù)器信息(如a.hbai.com 192.168.0.1)擂达,提供網(wǎng)絡(luò)服務(wù)的基本保障土铺。




問題:

1. ? ? 類比電話簿,如果一個(gè)網(wǎng)站服務(wù)器出現(xiàn)故障,需要更換服務(wù)器IP地址悲敷,這件事情對dns有什么影響究恤,對用戶訪問有什么影響?

2. ? ? 故障排查(trouble shooting)是一個(gè)復(fù)雜的東西后德,第三章和第四章都嘗試進(jìn)行了簡單的故障排查部宿,簡單闡述筆者在遇到問題時(shí)故障排除的思路。

3. ? ? 第三章筆者搭建了一個(gè)測試網(wǎng)站瓢湃,在此基礎(chǔ)上嘗試將網(wǎng)站遷移至另一臺服務(wù)器如192.168.101.3并將域名test.hbai.com指向192.168.101.3做到如下頁面的訪問理张。

4. ? ? 筆者其實(shí)已經(jīng)按照master-slave的部署方式修改了named.conf、named.rfc1912.zones绵患、db.hbai的文件雾叭,我們可以將如此配置直接copy至另一臺用做slave dns的服務(wù)器來完成主從搭建,嘗試說明對于master dns和slave dns分別要對上述三個(gè)文件的哪些字段修改落蝙?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末织狐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掘殴,更是在濱河造成了極大的恐慌赚瘦,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奏寨,死亡現(xiàn)場離奇詭異起意,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)病瞳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門揽咕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人套菜,你說我怎么就攤上這事亲善。” “怎么了逗柴?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵蛹头,是天一觀的道長。 經(jīng)常有香客問我戏溺,道長渣蜗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任旷祸,我火速辦了婚禮耕拷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘托享。我一直安慰自己骚烧,他們只是感情好浸赫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赃绊,像睡著了一般既峡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凭戴,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天涧狮,我揣著相機(jī)與錄音炕矮,去河邊找鬼么夫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肤视,可吹牛的內(nèi)容都是我干的档痪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼邢滑,長吁一口氣:“原來是場噩夢啊……” “哼腐螟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起困后,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤乐纸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后摇予,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汽绢,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年侧戴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宁昭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酗宋,死狀恐怖积仗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜕猫,我是刑警寧澤寂曹,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站回右,受9級特大地震影響隆圆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜楣黍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一匾灶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧租漂,春花似錦阶女、人聲如沸颊糜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衬鱼。三九已至,卻和暖如春憔杨,著一層夾襖步出監(jiān)牢的瞬間鸟赫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工消别, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抛蚤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓寻狂,卻偏偏與公主長得像岁经,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蛇券,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353