close

現場(環境):CentOS7.6     套件:dnsmasq

 


一般在安裝DNS服務的時候都會直覺的想到bind9

這次換一套輕量化DNS 開源軟體來試試。

 


#yum install dnsmasq -y

#yum install dnsmasq-utils -y

 

服務啟用部分的名稱是: dnsmasq

#systemctl start dnsmasq

 

服務部分可以先把Selinux關閉,避免影響服務運作。

Firewalld部分記得要先把相對應的53port(DNS service)打開。

#firewall-cmd --add-service=dns --permanent

# firewall-cmd --reload

 

Forward功能要記得開啟

#echo '1' > /proc/sys/net/ipv4/ip_forward

 

主要的設定檔放在/etc/dnsmasq.conf 當中,

在設定之前養成好習慣,備份一下原本的設定檔。

 

 


開始設定dnsmasq.conf

#vim /etc/dnsmasq.conf

*這邊的設定,可以直接在dnsmasq.conf當中直接寫入設定,

也可以用導引的方式,將檔案引導到dnsmasq.d/XXX.conf當中去使用。

像下面的設定就是引入所有/etc/dnsmasq.d下面的設定資料。

設定檔中 resolv-flie主要是將查詢的動作轉給這邊設定檔內的DNS主機處理。

這邊你可以預設指定到你的DNS主機去。

預設會找到/etv/resolv.conf檔案,但建議另外複製一份一樣的檔案讓這邊對應

#cp -rf  /etc/resolv.conf /etc/resolv.dnsmasq.conf

#echo 'nameserver 8.8.8.8' > /etc/resolv.dnsmasq.conf

(但是若是DNS沒有打算繞到外面,這個可以不用設定)

strict-order配合resolve-file使用,

這個項目建議可以把#(註解)拿掉,設定下去會嚴格的依據resolv-file檔案中的順序從上到下進行DNS解析。


No-host的項目預設是關閉的,這個啟用的話會變成最先去找local端的host檔案

通常與no-hosts對應的是addn-hosts設定檔部分,

這個就不是讀取/etc/hosts,而是自己定義要對應到哪個檔案去。

(這邊的格式要跟/etc/hosts的一樣)

格式範例:

 


Listen address表示用哪個IP提供DNS服務。

listen-address=127.0.0.1 //這樣表示用127.0.0.1提供服務,這樣只有自己可以用

listen-address=127.0.0.1,172.16.100.12   //這樣開放提供服務的IP

都不寫就是自己監控主機上有哪些IP,然後就每個本機上的IP都提供服務。

 


設定檔內會有特別的網域對應DNS方法

server參數

下面的用法就是,若網域名稱內有tw的話,

PASS168.95.1.1DNS查詢,若是對到google. Com網域就丟給8.8.8.8查詢。

=!============

server=/tw/168.95.1.1

server=/google.com/8.8.8.8

#如果要設定反向解析的對應的話,加上.in-addr.arpa

# name queries for 192.168.3/24 to nameserver 10.1.2.3

#注意IP網段是反過來的

#server=/3.168.192.in-addr.arpa/10.1.2.3

=!============

如果不限定網域對應DNS的話,我們也可以指定全部都對到特定的DNS

但要記得加上【all-servers】參數

all-servers表示對以下設定的所有server發起查詢,選擇迴應最快的一條作為查詢結果返回。

=!============

all-server

server=168.95.1.1

server=8.8.8.8

=!=============

 


address參數

這個使用方法跟server不同,這個是強制設定哪個網域會被導到哪去。

(這個設定不會再導到外面DNS)

一樣的狀況下,只要網域名稱內有tw的就都被解析成168.95.1.1.IP位址。

網域名稱內有google.com會被解析成8.8.8.8IP位址。

=!============

address=/tw/168.95.1.1

address=/google.com/8.8.8.8

#反向解析配合address一起使用,使用情況如下

# ptr-record=[IP位址反過來]. in-addr.arpa,[網域名稱]

=!============

以上serveraddress會建議另外寫到dnsmasq.d/XXX.conf設定檔中。

 


要測試的時候要使用nslookupdig工具。

#yum install bind-utils

直接透過這個方法反解

 


NSLOOKUP方面

正向解析

# nslookup [IP位址] [DNS主機]

#nslookup

>server [DNS IP位址]

>輸入網址

 

反向解析

# nslookup -query=ptr [IP位址] [DNS主機]

#nslookup

>set type=ptr

>輸入IP

 

#nslookup [網域名稱] [DNS IP位址]

 

#nslookup -type=[格式] [待查詢IP位址] [DNS IP位址]

 


DIG方面

正向解析

# dig @[DNS IP位址] [網域名稱]

 

反向解析

# dig @[DNS IP位址] -x [IP位址]

 


現在測試 address這邊故意設定成test.com會導向127.0.0.1

測試一下優先度的問題,到底是會先去找hosts還是以address優先。

測試結果還是以hosts為優先。

我們關閉addn-hosts功能後再次測試,會得到我們在address內的資料。

(所以在addn-hosts內的優先權高於addrss的設定,也表示只有在addn-hosts內找不到的對應主機才會運用到這邊的設定)

關於dnsmasq還有很多設定可以調整,但初步介紹就先到這邊。

 

參考網址:

https://www.itread01.com/content/1547553626.html

http://xstarcd.github.io/wiki/sysadmin/dnsmasq.html

 

(本篇完)

arrow
arrow
    文章標籤
    linux dns
    全站熱搜

    IT001 發表在 痞客邦 留言(0) 人氣()