天天看點

爛泥:dnsmasq搭建簡易DNS伺服器一、dnsmasq簡介二、安裝dnsmasq三、dnsmasq配置四、用戶端測試

今天我們來介紹一個比較簡單的DNS伺服器dnsmasq。這款軟體,已經被我成功使用到公司的所有虛拟機中,目前公司有虛拟機80台左右,而且所在的伺服器運作正常。現在看來dnsnasq還是能支援這麼多的機器的,伺服器的性能還是可以承擔的。

dnsmasq是一款小巧且友善地用于配置DNS伺服器和DHCP伺服器的工具,适用于小型網絡,它提供了DNS解析功能和可選擇的DHCP功能。

dnsmasq可以解決小範圍的dns查詢問題,如果業務是跨機房、跨地區的話不建議使用dnsmasq做為dns解析伺服器。

dnsmasq官網如下:

<a href="http://www.thekelleys.org.uk/dnsmasq/doc.html" target="_blank">http://www.thekelleys.org.uk/dnsmasq/doc.html</a>

<a href="http://s3.51cto.com/wyfs02/M01/75/4B/wKioL1Y1eu6hBUdVAAO-genUqsY968.jpg" target="_blank"></a>

下載下傳dnsmasq位址如下:

<a href="http://www.thekelleys.org.uk/dnsmasq/" target="_blank">http://www.thekelleys.org.uk/dnsmasq/</a>

<a href="http://s3.51cto.com/wyfs02/M02/75/4B/wKioL1Y1eu-DrGuuAAOf9iwDLcE839.jpg" target="_blank"></a>

通過上圖,我們可以看到dnsmasq目前還在持續性更新。

dnsmasq的安裝我們可以源碼安裝,也可以直接通過yum和apt-get方式進行安裝,下面對此分别介紹下。

源碼安裝dnsmasq,從dnsmasq官網下載下傳,如下:

wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz

<a href="http://s3.51cto.com/wyfs02/M00/75/4B/wKioL1Y1evDgu74NAAJFbxbNhoQ534.jpg" target="_blank"></a>

yum -y install gcc

<a href="http://s3.51cto.com/wyfs02/M01/75/4B/wKioL1Y1evHgAAlSAADeT5vfEfM854.jpg" target="_blank"></a>

tar -xf dnsmasq-2.75.tar.gz

cd dnsmasq-2.75

make install

<a href="http://s3.51cto.com/wyfs02/M00/75/4B/wKioL1Y1evGzRIVcAAFdkFgpGWw498.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/75/4D/wKiom1Y1erihRRs7AAFnyiq2pd4423.jpg" target="_blank"></a>

安裝完畢後,檢視下dnsmasq的版本。如下:

dnsmasq -v

<a href="http://s3.51cto.com/wyfs02/M01/75/4D/wKiom1Y1ernBc-orAAEw0P9_au8415.jpg" target="_blank"></a>

yum方式安裝,如下:

yum -y install dnsmasq

<a href="http://s3.51cto.com/wyfs02/M02/75/4D/wKiom1Y1ermwdKh3AAFvx-ii1lQ723.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/75/4D/wKiom1Y1errCUI8QAAElz0EBbm8459.jpg" target="_blank"></a>

apt-get方式安裝,如下:

sudo apt-get -y install dnsmasq

<a href="http://s3.51cto.com/wyfs02/M01/75/4D/wKiom1Y1eruQ9lXOAAG73wbuwCE489.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/75/4D/wKiom1Y1ervz-SkZAAEc_PWFga0423.jpg" target="_blank"></a>

dnsmasq安裝完畢後,現在我們來配置dnsmasq。

dnsmasq配置選項比較多,我們可以根據實際需求來進行配置。下面介紹下,平時最常使用的配置方法。

vim /etc/dnsmasq.conf

resolv-file=/etc/resolv.dnsmasq.conf

strict-order

listen-address=192.168.1.24

address=/ilanni.com/192.168.1.24

server=223.5.5.5

bogus-nxdomain=223.5.5.5

<a href="http://s3.51cto.com/wyfs02/M00/75/4D/wKiom1Y1erzCaPYsAADi6jVLVTk121.jpg" target="_blank"></a>

resolve-file定義dnsmasq從哪裡擷取上遊DNS伺服器的位址, 預設是從/etc/resolv.conf擷取。

在此我們定義的是從/etc/resolv.dnsmasq.conf檔案中獲得。

strict-order表示嚴格按照resolv-file檔案中的順序從上到下進行DNS解析,直到第一個解析成功為止。

listen-address定義dnsmasq監聽的位址,預設是監控本機的所有網卡上。

如果想讓區域網路内的其他機器使用dnsmasq解析域名的話,需要添加本機的IP位址。

address自定義域名解析的IP位址,在此已ilanni.com這個域名為例。注意dnsmasq是支援泛域名解析的,以上配置就是一個典型的泛域名解析執行個體。

address也可以過濾某些網站,比如如果不想讓用戶端解析youk.com這個域名的話,我們這個把該域名解析到一台不存在的伺服器上或者解析到127.0.0.1這個位址。如下:

address=/ilanni.com/127.0.0.1

為了防止DNS污染,我們使用bogus-nxdomain定義DNS解析的伺服器。

注意:如果在阿裡雲伺服器上配置dnsmasq,一定要啟用此項。

server這行告訴dnsmasq使用DNS伺服器進行解析

我們也可以通過server對不通的網站使用不通的DNS伺服器進行解析。如下:

server=/google.com/8.8.8.8

以上表示對于google的服務,使用谷歌的DNS解析。

以上配置完畢後,需要重新開機dnsmasq服務,重新開機完畢後區域網路中的其他機器,就可以通過該DNS伺服器解析公網的域名。

現在我們切換到用戶端,修改用戶端的dns配置檔案。在此已centos6為例進行講解,如下:

cat /etc/resolv.conf

<a href="http://s3.51cto.com/wyfs02/M01/75/4D/wKiom1Y1eryxCRKJAACwSajpd48387.jpg" target="_blank"></a>

nslookup ilanni.com

nslookup wwww.ilanni.com

nslookup www.baidu.com

<a href="http://s3.51cto.com/wyfs02/M02/75/4D/wKiom1Y1er3S0Z8bAAING4w0UVs149.jpg" target="_blank"></a>

通過上圖,我們可以很明顯的看出www.ilanni.com、ilanni.com都解析到了192.168.1.24這台伺服器上,而www.baidu.com已經解析到公網的IP位址。

本文轉自 爛泥行天下 51CTO部落格,原文連結:http://blog.51cto.com/ilanni/1708505

繼續閱讀