使用Dnsmasq搭建DNS服務器
1、背景
使用公共的114dns進行域名解析所使用的時間太長,所以採用本地搭建dns服務器進行域名解析,公司內部機器訪問只需要輸入IP即可訪問,省去了公共dns解析域名的時間。
Dnsmasq
2.1、dnsmasq的原理圖
客戶機訪問service時需要DNS進行域名解析,於是先訪問dnsmasq,dnsmasq的機制是先檢索本地的hosts如果沒有解析記錄的話就會去訪問dnsmasq.d/*.conf文件,若還是沒有那麼就會去訪問resolv-file的上游DNS解析服務器,也就是其他的dns服務器。
例如,我去訪問www.zhang.com,那麼dnsmasq首先會檢索hosts裡面有沒有這個記錄,若沒有那麼就開始檢索dnsmasq.d/*.conf文件,若還是沒有,那麼會去訪問resolv-file的上游DNS解析服務器,其他的dns服務器裡面有這條記錄,那麼dnsmasq就會解析出www.zhang.com的ip地址。
2.2、dnsmasq的搭建方法
(1)環境採用centos7.4。
(2)使用yum install -y dnsmasq。
(3)然後修改配置文件vim /etc/dnsmasq.conf 。
(4)在文件的最下面添加:
port=53 #dnsmasq使用53號端口。
cache-size=1000 #緩存解析記錄1000條。
log-queries #日誌顯示每一條的解析記錄。
log-facility=/var/log/dnsmasq.log #log日誌的所在位置。
conf-dir=/etc/dnsmasq.d #dnsmasq.d/*.conf文件的絕對路徑
addn-hosts=/etc/hosts #添加額外讀取的hosts文件。
resolv-file=/etc/dnsmasq-resolv.conf #定義dnsmasq從哪裡獲取上游DNS服務器的地址。
(5)複製系統的DNS服務配置為dnsmasq的上游DNS服務器地址,
cp /etc/resolv.conf /etc/dnsmasq-resolv.conf。
編寫pan_jncsy_net.conf配置文件:
address=/xxx.xxx.com/192.168.10.109 #正向解析,xxx.xxx.com解析為192.168.10.109。
ptr-record=192.168.10.109.in-addr.arpa,xxx.xxx.com #ptr反向解析,將192.168.10.109解析為pan.jncsy.net。
(7)編輯系統的hosts文件,添加解析記錄,vim /etc/hosts,在最下面添加一條192.168.10.109 xxx.xxx.com。
(8)關閉firewalld,systemctl stop firewalld。
(9)啟動dnsmasq,systemctl start dnsmasq,並設置開機自啟,systemctl enable dnsmasq。
以上,搭建完畢,開始測試。
2.3、dnsmasq的測試
Win+r後輸入cmd打開windows的cmd命令行模擬客戶機,並輸入nslookup進入解析模式。
輸入server 192.168.119.128切換dns解析服務器,然後輸入xxx.xxx.com域名並點擊回車。
如上圖所知,域名xxx.xxx.com經過dns服務器192.168.119.128的解析返回了與域名對應的IP,dns服務器搭建成功。
Dnsmasq的後期維護
3.1、添加解析記錄
首先,在hosts裡面添加記錄,格式為IP空格域名。
其次,編寫dnsmasq.d/*.conf的配置文件,格式為
address=/域名/IP
ptr-record=IP.in-addr.arpa,域名
最後,重啟dnsmasq,systemctl restart dnsmasq。
3.2、配置dnsmasq的日誌輪轉
由於打開了dnsmasq的日誌功能,而且每一條解析都會產生一條記錄,經觀察,log文件一天能寫8M左右,所以配置日誌輪轉防止系統因存儲不足而崩潰,logrotate.d下面的dnsmasq配置如下:
/var/log/dnsmasq.log {
daily #指定轉儲週期為每天。
copytruncate #用於還在打開中的日誌文件,把當前日誌備份並截斷。
missingok #日誌輪轉期間,任何錯誤都將被忽略。
rotate 30 #保留30天。
compress #通過gzio壓縮轉儲舊的日誌。
notifempty #如果是空文件的話,不轉儲。
dateext #日誌輪轉時會在文件後面添加時間。
size 200M #日誌到達200M時才輪轉。
}
閱讀更多 FunnyTvT 的文章