使用centos7+bind9构建内网私有dns
有這樣一種場景,局域網內有一個為網內用戶提供服務的機器,我們希望像訪問互聯網站點一樣去訪問它,而不用記憶ip地址和端口,比如在web瀏覽器地址欄輸入http://www.nx.com就可以訪問它。但是,又不值得也不應該為這臺服務器提供公網固定ip和域名。也就是說,只可以在局域網內使用www.nx.com這個域名去訪問。
如果這臺服務器上有多個業務站點需要類似oa.nx.com、hr.nx.com、caiwu.nx.com等這樣的域名分別訪問,那么有效解析域名就顯得十分必要。
當然可以在客戶機上編輯hosts文件,在客戶機上實現本地解析。但如果客戶機很多,去編輯每一臺客戶機不現實也不明智。
于是我想到構建私有dns可以解決。所以我把實現的步驟記錄下來,以備日后參考。
假設有這樣一臺機器,可以為網內用戶提供dns服務,既可以讓網內用戶通過它正常訪問互聯網,也可以通過上述www.nx.com這樣的私有域名去訪問網內服務器。我使用的是一臺裝有centos7的linux服務器,地址是192.168.0.79,dns軟件使用的bind9.11.4。
1、安裝bind
使用yum安裝bind和bind-utils,yum會自動安裝依賴關系。utils主要是提供測試工具。
yum install bind bind-untils
2、配置防火墻
centos7自帶firewall。開啟53/udp端口即可。
firewall-cmd --query-port=53/udp (查詢53/udp端口是否開啟)
firewall-cmd --add-port=53/udp (開啟端口)
firewall-cmd --delete-port=53/udp (關閉端口)
3、配置緩存dns
想要實現區域解析,首先它得是一臺緩存dns,亦即能為網絡上其它主機提供遞歸查詢。我認為相當于“代理”的角色。也就是說,網內的計算機,只要把dns設置成這臺服務器的地址,就可以正常上網看網頁了。
編輯/etc/named.conf,具體可以參考man named.conf。
options{...}里面有個監聽選項,把服務器的網卡內網地址寫進去,讓它監聽在內網地址上。所以我的寫法是:
listen-on port 53 { 127.0.0.1;192.168.0.79; };
開啟遞歸功能,并指定訪問權限。內網使用可以全部允許。我的寫法是:
recursion yes;
allow-recursion { any; };
挺簡單的。然后啟動或者重載bind服務即可。如果是在用的高訪問量服務器,建議修改配置后,使用reload重載設置即可。內網新建無所謂了。dnssec功能可以先關閉。
systemctl restart named
然后可以用另外的linux主機,使用dig命令測試它。dig www.baidu.com @192.168.0.79
?測試通過,再使用windows試一下。
?ok沒問題。我這寫這篇博客的時候就是用的這臺dns。
4、配置主dns
在上一步的基礎上繼續配置。編輯/etc/named.conf:
options{...}里面allow-query選項加入可以使用這臺dns的主機/網絡ip,我直接用any,允許所有主機。如果希望控制訪問來源,可以在這里設置。我寫的是:
allow-query ? ? { localhost;any; };
在文件末尾加上include "/etc/named.user.zones";,當然直接編輯named.rfc1912.zones文件也是可以的,我不想改過多文件了。待會兒新建一個named.user.zones文件,以后不用了刪除即可。其實想要用哪個文件,包含進來即可。
?創建文件/etc/named.user.zones,加這么幾行就行了:
zone "nx.com" IN {type master;file "nx.com";allow-update { none; }; };待會兒,使用的解析庫文件就是/var/named/nx.com。
創建文件/var/named/nx.com:
$TTL 1D @ IN SOA @ nx.qq.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumIN NS ns.nx.com. ns.nx.com. IN A 127.0.0.1 *.nx.com. IN A 192.168.0.60后新建的這兩個文件,需要修改權限為640,屬組為named。
chmod 640 /etc/named.user.zones /var/named/nx.com chown :named /etc/named.user.zones /var/named/nx.com重啟或重載服務完成。
systemctl restart named systemctl reload named可以使用named-checkconf先看看配置是否有問題,有時候配置寫錯了reload成功,但是named服務會失敗。
然后linux上測試:
?
windows上測試:
?達到預期效果,完全沒有問題。
只是有些要提醒:
linux下測試,只要跟dns在一個網內能連同,就可以使用dig。但必須把網卡dns設置為這個dns地址,才可以ping。windows也是一樣,必須把dns設置了才可以ping才可以訪問私有域名。
這似乎沒什么好解釋的,想通過它解析,當然要先設置dns指向它。
再就是named配置文件,可以使用man named.conf查看幫助,其語法類似c語言,一定要記著分號結尾,差一點都不行。
完成了私有域名解析后,可以配置虛擬主機,讓域名有效利用起來。比如一家企業使用私有dns成功解析了nx.com,可以使用oa.nx.com、caiwu.nx.com、hr.nx.com、erp.nx.com等來訪問不同的系統。有關虛擬主機配置見另外一篇:
centos7+apache配置虛擬主機_大橘子的博客-CSDN博客
文本完。
總結
以上是生活随笔為你收集整理的使用centos7+bind9构建内网私有dns的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习之K-means聚类分析NBA球
- 下一篇: 联通块