consul DNS+ dnsmasq實現域名解析配置
dnsmasq簡介
Dnsmasq 提供 DNS 緩存和 DHCP 服務功能。作爲域名解析服務器(DNS),dnsmasq可以通過緩存 DNS 請求來提高對訪問過的網址的連接速度。作爲DHCP 服務器,dnsmasq 可以用於爲局域網電腦分配內網ip地址和提供路由。DNS和DHCP兩個功能可以同時或分別單獨實現。dnsmasq輕量且易配置,適用於個人用戶或少於50臺主機的網絡。此外它還自帶了一個 PXE 服務器。
dnsmasq解析流程
dnsmasq先去解析hosts文件, 再去解析/etc/dnsmasq.d/下的*.conf文件,並且這些文件的優先級要高於dnsmasq.conf,我們自定義的resolv.dnsmasq.conf中的DNS也被稱爲上游DNS,這是最後去查詢解析的; 如果不想用hosts文件做解析,我們可以在/etc/dnsmasq.conf中加入no-hosts這條語句,這樣的話就直接查詢上游DNS了,如果我們不想做上游查詢,就是不想做正常的解析,我們可以加入no-reslov這條語句。
安裝dnsmasq
yum -y install dnsmasq
配置dnsmasq
[root@redis dnsmasq.d]# cat /etc/dnsmasq.d/resolv.conf
server=/consul/172.16.10.205#8600
server=/consul/172.16.10.206#8600
server=/consul/172.16.10.207#8600
server=100.100.2.136
server=100.100.2.138
-
consul域名通過consul的DNS進行解析,其它都是通過默認DNS進行解析
-
172.16.10.205、172.16.10.206、172.16.10.207爲consul服務的IP
啓動dnsmasq服務
systemctl start dnsmasq
測試consul域名解析
dig @127.0.0.1 minio.service.consul
[root@redis dnsmasq.d]# dig @127.0.0.1 minio.service.consul
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> @127.0.0.1 minio.service.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51922
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;minio.service.consul. IN A
;; ANSWER SECTION:
minio.service.consul. 0 IN A 172.16.10.227
minio.service.consul. 0 IN A 172.16.10.228
minio.service.consul. 0 IN A 172.16.10.226
minio.service.consul. 0 IN A 172.16.10.229
;; ADDITIONAL SECTION:
minio.service.consul. 0 IN TXT "consul-network-segment="
minio.service.consul. 0 IN TXT "consul-network-segment="
minio.service.consul. 0 IN TXT "consul-network-segment="
minio.service.consul. 0 IN TXT "consul-network-segment="
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: 五 3月 27 10:49:35 CST 2020
;; MSG SIZE rcvd: 257
修改機器DNS服務器
/etc/resolv.conf配置成nameserver 127.0.0.1即可使用dnsmasq提供DNS解析服務