DNSmasq捌锭,百度百科說(shuō)募闲,它是一個(gè)小巧且方便地用于配置DNS和DHCP的工具步脓,適用于小型網(wǎng)絡(luò)愿待,它提供了DNS功能和可選擇的DHCP功能浩螺。DNSmasq輕量且易配置,適用于個(gè)人用戶或少于50臺(tái)主機(jī)的網(wǎng)絡(luò)仍侥,我也是最近在安裝OpenShift的過(guò)程中要出,才對(duì)DNSmasq有所了解,特此記錄一下农渊。
DNSmasq的安裝
我能說(shuō)直接yum install就可以了嘛患蹂!
# yum install -y dnsmasq
DNSmasq安裝后的目錄
通過(guò)命令 rpm -ql 來(lái)查詢安裝后的所有文件(只適合rpm包安裝的軟件)
# rpm -ql dnsmasq
/etc/dbus-1/system.d/dnsmasq.conf
/etc/dnsmasq.conf
/etc/dnsmasq.d
/usr/lib/systemd/system/dnsmasq.service
/usr/sbin/dnsmasq
/usr/share/doc/dnsmasq-2.76
/usr/share/doc/dnsmasq-2.76/CHANGELOG
/usr/share/doc/dnsmasq-2.76/COPYING
/usr/share/doc/dnsmasq-2.76/COPYING-v3
/usr/share/doc/dnsmasq-2.76/DBus-interface
/usr/share/doc/dnsmasq-2.76/FAQ
/usr/share/doc/dnsmasq-2.76/doc.html
/usr/share/doc/dnsmasq-2.76/setup.html
/usr/share/man/man8/dnsmasq.8.gz
/var/lib/dnsmasq
所要關(guān)注的肯定就是它的二進(jìn)制文件和配置文件啦!
二進(jìn)制文件:可執(zhí)行程序砸紊,我說(shuō)不出來(lái)啥名堂传于。
那就相對(duì)重點(diǎn)地說(shuō)說(shuō)配置文件吧!
linux dns解析過(guò)程
當(dāng)linux機(jī)器去訪問(wèn)一個(gè)域名的時(shí)候醉顽,先去其本地的/etc/hosts文件去查找沼溜,如果沒(méi)有那就去/etc/resolv.conf文件中去找設(shè)置的dns服務(wù)器,由dns服務(wù)器去解析了游添。
/etc/resolv.conf系草,它是DNS客戶機(jī)配置文件,用于設(shè)置DNS服務(wù)器的IP地址及DNS域名唆涝,還包含了主機(jī)的域名搜索順序找都。該文件是域名解析器(resolver,一個(gè)根據(jù)主機(jī)名解析IP地址的庫(kù))使用的配置文件廊酣。它的格式很簡(jiǎn)單能耻,每行以一個(gè)關(guān)鍵字開(kāi)頭,后接一個(gè)或多個(gè)由空格隔開(kāi)的參數(shù)。
resolv.conf的關(guān)鍵字主要有四個(gè)嚎京,分別是:
search //定義域名的搜索列表嗡贺,它的多個(gè)參數(shù)指明域名查詢順序。當(dāng)要查詢沒(méi)有域名的主機(jī)鞍帝,主機(jī)將在由search聲明的域中分別查找诫睬。
domain //定義本地域名,聲明主機(jī)的域名帕涌。很多程序用到它摄凡,如郵件系統(tǒng);當(dāng)為沒(méi)有域名的主機(jī)進(jìn)行DNS查詢時(shí)蚓曼,也要用到亲澡。如果沒(méi)有域名,主機(jī)名將被使用纫版,刪除所有在第一個(gè)點(diǎn)( .)前面的內(nèi)容床绪。
sortlist //對(duì)返回的域名進(jìn)行排序,允許將得到域名結(jié)果進(jìn)行特定的排序其弊。它的參數(shù)為網(wǎng)絡(luò)/掩碼對(duì)癞己,允許任意的排列順序(其實(shí)我不明白它的意思)。
nameserver //定義DNS服務(wù)器的IP地址梭伐,表示解析域名時(shí)使用該地址指定的主機(jī)為域名服務(wù)器痹雅。其中域名服務(wù)器是按照文件中出現(xiàn)的順序來(lái)查詢的,且只有當(dāng)?shù)谝粋€(gè)nameserver沒(méi)有反應(yīng)時(shí)才查詢下面的nameserver糊识,并且有個(gè)數(shù)限制(3個(gè))绩社。
備注:domain和search不能共存;如果同時(shí)存在赂苗,后面出現(xiàn)的將會(huì)被使用愉耙。
DNSmasq的配置文件(只關(guān)注DNS內(nèi)容):/etc/dnsmasq.conf
參數(shù) | 參數(shù)說(shuō)明 |
---|---|
resolv-file | 定義dnsmasq從哪里獲取上游DNS服務(wù)器的地址, 默認(rèn)從/etc/resolv.conf獲取拌滋。 |
strict-order | 表示嚴(yán)格按照resolv-file文件中的順序從上到下進(jìn)行DNS解析朴沿,直到第一個(gè)解析成功為止。 |
listen-address | 定義dnsmasq監(jiān)聽(tīng)的地址鸠真,默認(rèn)是監(jiān)控本機(jī)的所有網(wǎng)卡上悯仙。 |
address | 啟用泛域名解析,即自定義解析a記錄吠卷,例如:address=/long.com/192.168.115.10 訪問(wèn)long.com時(shí)的所有域名都會(huì)被解析成192.168.115.10 |
bogus-nxdomain | 對(duì)于任何被解析到此 IP 的域名锡垄,將響應(yīng) NXDOMAIN 使其解析失效,可以多次指定通常用于對(duì)于訪問(wèn)不存在的域名祭隔,禁止其跳轉(zhuǎn)到運(yùn)營(yíng)商的廣告站點(diǎn) |
server | 指定使用哪個(gè)DNS服務(wù)器進(jìn)行解析货岭,對(duì)于不同的網(wǎng)站可以使用不同的域名對(duì)應(yīng)解析路操。例如:server=/google.com/8.8.8.8 #表示對(duì)于google的服務(wù),使用谷歌的DNS解析千贯。 |
conf-dir | 包括的配置文件文件夾路徑 |
DNSmasq的解析過(guò)程
dnsmasq先去解析本機(jī)的/etc/hosts文件屯仗, 再去解析/etc/dnsmasq.conf文件和conf-dir所指定的的文件夾(一般為/etc/dnsmasq.d/)下的*.conf文件中所配置的address,然后再去其指定的上游DNS服務(wù)器去解析搔谴。
PS:通常/etc/dnsmasq.conf中只制定配置文件夾的路徑conf-dir魁袜,不配置具體的address、server等敦第,而是在conf-dir所指定的文件夾下配置具體的address和server
dnsmasq.conf的配置舉例
address=/master.localdomain/192.168.99.2
address=/router.localdomain/192.168.99.3
address=/node1.localdomain/192.168.99.4
address=/node2.localdomain/192.168.99.5
address=/.liufeng.openshift.com/192.168.99.7
server=192.168.99.6