? ? ? ?最近工作中遇到要使用不同的DNS來解析不同域名的情況,想起比較小巧的,輕量級(jí)的Dnsmasq也許是最合適的。下面就來簡單記錄下操作的過程。
Dnsmasq工作原理
? ? ? ?Dnsmasq提供DNS緩存和DHCP服務(wù)、Tftp服務(wù)功能。當(dāng)接受到一個(gè)DNS請(qǐng)求時(shí),Dnsmasq首先會(huì)查找/etc/hosts這個(gè)文件,然后查找/etc/resolv.conf中定義的外部DNS。所以說Dnsmasq是一個(gè)很不錯(cuò)的外部DNS中繼。
? ? ? ?配置Dnsmasq為DNS緩存服務(wù)器,同時(shí)在/etc/hosts文件中加入本地內(nèi)網(wǎng)解析,這樣一來每當(dāng)內(nèi)網(wǎng)機(jī)器查詢時(shí)就會(huì)優(yōu)先查詢hosts文件,這就等于將/etc/hosts共享給全內(nèi)網(wǎng)機(jī)器使用,從而解決內(nèi)網(wǎng)機(jī)器互相識(shí)別的問題。
安裝Dnsmasq
? ? ? ?在centos上安裝Dnsmasq比較簡單,如下所示:
配置Dnsmasq
? ? ? Dnsmasq的配置文件在/etc/dnsmasq.conf,默認(rèn)情況下dnsmasq.conf中只開啟了最后include項(xiàng),可以在/etc/dnsmasq.d中自己寫任意名字的配置文件。
配置文件說明(摘取部分重要信息說明)
1、定義dnsmasq從哪里獲取上游DNS服務(wù)器的地址,默認(rèn)是從/etc/resolv.conf獲取。
resolv-file=/etc/resolv.dnsmasq.conf
2、嚴(yán)格按照resolv-file文件中的順序從上到下進(jìn)行DNS解析,直到第一個(gè)解析成功為止。一般需要開啟strict-order
strict-order
3、定義dnsmasq監(jiān)聽的地址,默認(rèn)是監(jiān)控本機(jī)的所有網(wǎng)卡上。局域網(wǎng)內(nèi)主機(jī)若要使用dnsmasq服務(wù)時(shí),指定本機(jī)的IP地址
listen-address=127.0.0.1
4、設(shè)置一個(gè)反向解析,即所有的地址都解析到特定dns去解析
address=/19.76.10.in-addr.arpa/10.20.10.10
5、增加一個(gè)域名,強(qiáng)制解析到你指定的地址上
address=/double-click.net/127.0.0.1
6、設(shè)置dns緩存大小,默認(rèn)為150條
cache-size=150
7、設(shè)置DNS的日志及日志路徑
log-queries
log-facility=/usr/log/dnsmasq.log
配置實(shí)例
1、配置本地hosts? ? vim /etc/hosts
2、配置上游DNS? ? ?vim /etc/resolv.dnsmasq.conf
3、本地啟用Dnsmasq解析??
啟動(dòng)Dnsmasq
service dnsmasq start? ? //啟動(dòng)
netstat -tunlp |grep 53? ? //查看啟動(dòng)端口
測試Dnsmasq
1、發(fā)送http請(qǐng)求:curl -R http://www.baidu.com
2、查看日志