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解析服务