DNSmasq介紹
DNSmasq是一個小巧且方便地用於配置 DNS 和 DHCP 的工具,適用於小型網絡,它提供了DNS功能和可選擇的DHCP功能。
它服務那些只在本地適用的域名,這些域名是不會在全球的DNS服務器中出現的。DHCP服務器和DNS服務器結合,
並且允許DHCP分配的地址能在DNS中正常解析,而這些DHCP分配的地址和相關命令可以配置到每台主機中,
也可以配置到一台核心設備中(比如路由器),DNSmasq支持靜態和動態兩種DHCP配置方式。
因此如果需要快速搭建一個DNS服務或者DHCP服務,那么可以使用此程序來搭建
本文參考 :http://www.360doc.com/content/14/0913/13/8314158_409140713.shtml
下載與安裝
官方文檔
http://www.thekelleys.org.uk/dnsmasq/doc.html
下載地址
http://www.thekelleys.org.uk/dnsmasq/
下載程序
wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz
yum -y install gcc
tar -xf dnsmasq-2.75.tar.gz
cd dnsmasq-2.75
編譯安裝dnsmasq
make install
版本查看
dnsmasq -v
其他安裝方式
yum -y install dnsmasq
sudo apt-get -y install dnsmasq
配置服務
查看需要監聽網卡的IP地址
ifconfig
dnsmasq配置
vim /etc/dnsmasq.conf #下面是需要修改的選項
resolv-file=/etc/resolv.conf strict-order listen-address=192.168.153.128 address=/demon.com/192.168.153.128 server=114.114.114.114 bogus-nxdomain=114.114.114.114
對參數的解釋
resolve-file 定義dnsmasq從哪里獲取上游DNS服務器的地址, 默認是從/etc/resolv.conf獲取。
strict-order 表示嚴格按照resolv-file文件中的順序從上到下進行DNS解析,直到第一個解析成功為止。
listen-address 定義dnsmasq監聽的地址,默認是監控本機的所有網卡上。局域網內主機若要使用dnsmasq服務時,指定本機的IP地址。
address 啟用泛域名解析,即自定義解析a記錄,如下配置為demon.com這個域名:
address=/demon.com/127.0.0.1 #訪問demon.com時的所有域名都會被解析成127.0.0.1
bogus-nxdomain 為防止DNS污染,使用參數定義的DNS解析的服務器。注意:如果是阿里雲服務器上配置dnsmasq要啟用此項。
server 指定dnsmasq程序使用哪個DNS服務器進行解析。 對於不同的網站可以使用不同的域名對應解析如下配置
server=/google.com/8.8.8.8 #表示對於google的服務,使用谷歌的DNS解析。
以上配置完畢后,需要重啟dnsmasq服務,重啟完畢后局域網中的其他機器,就可以通過該DNS服務器解析公網的域名。
解析測試
啟動服務
dnsmasq
修改resolv.conf文件,將服務器地址改為本機地址
vim /etc/resolv.conf
對於reslov.conf的這個文件作用主要有四個關鍵字:
nameserver //定義DNS服務器的IP地址
domain //定義本地域名
search //定義域名的搜索列表
sortlist //對返回的域名進行排序
舉個例子
domain demonxian3.com
search www.demonxian3.com mail.demonxian3.com ftp.demonxian3.com
nameserver 114.114.114.114
nameserver 223.5.5.5
另外:domain和search不能共存;如果同時存在,后面出現的將會被使用。
當程序尋找不到主機域名時,會對 search 后面的參數一一查找主機域名
測試是否解析成功
因為之前配置了 address=/demon.com/192.168.153.128
所以當我們訪問www.demon.com時被解析成本機的IP地址