是否可以将通配符CNAME添加到dnsmasq中?

我想让DNS以循环方式工作。 所以我必须把一个条目放入/ etc / hosts。 但是,这不允许通配符域。 有没有什么办法可以在dnsmasq中做到这一点?

所以我会得到像这样的东西:

*.test.me. 0 IN CNAME mytest.me. mytest.me. 0 IN A xxxx 

我检查了v2.77,发现通配符CNAME正在那里工作。 您应该添加到configurationcname=*.example.com,default.example.com ,但您的dnsmasq应该是域的权威服务器(在本例中为example.com)。 它可以根据人configuration。 就我而言,我有这样的configuration:

/ etc / hosts文件

 127.0.0.1 default.example.com 127.0.0.2 default.example.com 127.0.0.3 default.example.com 127.0.0.4 default.example.com 127.0.0.5 default.example.com 

/etc/dnsmasq.conf

 cname=*.example.com,default.example.com auth-server=example.com,eth0 interface-name=example.com,eth0 auth-zone=example.com,127.0.0.0/24,eth0 

结果:

 [root@centos-linux ~]# dig @127.0.0.1 *.example.com ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> @127.0.0.1 *.example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6531 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;*.example.com. IN A ;; ANSWER SECTION: *.example.com. 600 IN CNAME default.example.com. default.example.com. 600 IN A 127.0.0.3 default.example.com. 600 IN A 127.0.0.4 default.example.com. 600 IN A 127.0.0.5 default.example.com. 600 IN A 127.0.0.2 default.example.com. 600 IN A 127.0.0.1 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Mon Jun 05 16:28:13 MSK 2017 ;; MSG SIZE rcvd: 155 [root@centos-linux ~]# nslookup 2.example.com 127.0.0.1 Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: 2.example.com canonical name = default.example.com. Name: default.example.com Address: 127.0.0.5 Name: default.example.com Address: 127.0.0.2 Name: default.example.com Address: 127.0.0.3 Name: default.example.com Address: 127.0.0.4 Name: default.example.com Address: 127.0.0.1