I should have sent this AFTER trying out patch 3828. Julian's patch is even simpler than my suggestion.
On 08/28/2013 02:42 PM, Philip A. Prindeville wrote: > Sorry if it's a little after-the-fact, but I've been wondering about the need > to have a separate "config domain" section at all. > > Why not just have something like: > > config host > ... > option wants-dns-rr on > > Yes, "config domain" is still useful for external sites or for resources with > static addresses that aren't served by dnsmasq, buy why not reduce the amount > of configuration for a host to have a A/PTR pair to a single line? > > For that matter, in the "config dnsmasq" section, why not have an option like > "option publish-dns-rr on" and enable it globally for all host blocks? > > Am I missing something? > > -Philip > > > On 06/04/2013 10:44 PM, Adam Gensler wrote: >> Hi all, >> >> TL;DR - using "--address" for individual host A records is broken, use >> "--host-record" instead. >> >> The following patch changes dnsmasq.init to build individual host records >> using "--host-record" instead of "--address". Using "--address" in this >> context is incorrect. For example, the current init script will create the >> following two entries in /var/etc/dnsmasq.conf: >> >> address=/OpenWrt.lan/192.168.1.1 >> ptr-record=1.1.168.192.in-addr.arpa,OpenWrt.lan >> >> At first glance this has the desired effect, "OpenWrt.lan" resolves to >> 192.168.1.1. However, what it really says is "for anything that ends with >> "OpenWrt.lan," that I don't have a record for, return 192.168.1.1". For >> example: >> >> fakeaddress.OpenWrt.lan would return 192.168.1.1. >> adsfasdfsdfsd.OpenWrt.lan would return 192.168.1.1. >> >> That's wrong and it causes problems when using a real domain name, such as >> domain.com. Often it's desirable to have "domain.com" resolve to an address >> so users can hit the http service at http://domain.com. By using the >> existing "config domain" option, you would configure this as follows: >> >> config domain >> option name 'domain.com' >> option ip '192.168.1.100' >> >> This would create these config items: >> >> address=/domain.com/192.168.1.100 >> ptr-record=100.1.168.192.in-addr.arpa,domain.com >> >> Now, as a result, anything that doesn't have its own, preexisting record, >> will also resolve to 192.168.1.100. That's no good because things like >> Windows do proxy requests by default for wpad.domain.com and instead of >> getting back an NXDOMAIN, it gets 192.168.1.100 and goes hunting for a pac >> file that doesn't exist. >> >> The solution for this is to use "--host-record". This is actually a lot >> easier to configure because dnsmasq will create the PTR records >> automatically, so there's no need to manual calculate it like is done today. >> This means that IPv6 addresses can be supported as well. The attached patch >> makes this adjustment and accomplishes the following: >> >> 1. By default, the router's hostname is now added to the configuration using >> "--host-record" instead of "--address". If there's a domain configured, the >> default host-record entry looks like this: >> >> host-record=OpenWrt.lan,OpenWrt,192.168.1.1 >> >> With this, now both "OpenWrt.lan" and "OpenWrt" will both resolve to >> 192.168.1.1. In the reverse, 192.168.1.1 will resolve to only "OpenWrt.lan". >> >> 2. It introduces a new configuration structure to define additional host >> records. For example: >> >> config hostrecord >> list name 'mail.domain.com' >> list name 'www.domain.com' >> list name 'domain.com' >> list ip '192.168.1.100' >> >> It uses lists here because dnsmasq can accept multiple hostnames and IP >> addresses in a single host-record. This generates the following config: >> >> host-record=mail.domain.com,www.domain.com,domain.com,192.168.1.100 >> >> All of those hostnames will resolve to 192.168.1.100 in the forward >> direction. 192.168.1.100 will resolve to "mail.domain.com" in the reverse. >> >> 3. It restructures "dhcp_domain_add()" to remove the manual PTR record >> calculation and configuration. This only supported IPv4 and isn't the proper >> use of the "--address" option. Now it will build a proper "--address" config >> that can support multiple domain names to a single IP address as per the >> dnsmasq MAN page. >> >> Note, the domain name is no longer automatically appended to the end of >> either "config hostrecord" or "config domain" entries as was previously the >> case. To define a specific fqdn, one needs to manually configure it as such. >> This makes the configuration more consistent; only what's configured is what >> is generated for dnsmasq. >> >> Sorry for the long email. I hope it all made sense. If not, please let me >> know. >> >> Thanks, >> Adam >> >> >> Signed-off-by: Adam Gensler <openwrt at gnslr.us> >> --- >> [snip] > _______________________________________________ > openwrt-devel mailing list > [email protected] > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
