<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>I am using dnsmasq 2.90 for captive portal besides other use
cases and I've noticed that when I put into dnsmasq cfg file e.g.
`interface-name=captive.apple.com,switch0.1` (this interface
contains ipv6 LL address and `100.104.103.1/28`) I will be getting
this on the client device (dnsmasq is running on a router which
serves as a gateway for the client to the internet):<br>
</p>
<pre class="language-php line-numbers" tabindex="0"><code
class="language-php" data-lang-auto="php">$ host captive<span
class="token operator">.</span>apple<span class="token operator">.</span>com
captive<span class="token operator">.</span>apple<span
class="token operator">.</span>com has address <span
class="token number">100.104</span><span class="token number">.103</span><span
class="token number">.1</span>
captive<span class="token operator">.</span>apple<span
class="token operator">.</span>com is an alias <span
class="token keyword">for</span> captive<span class="token operator">-</span>cidr<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net<span class="token operator">.</span>
captive<span class="token operator">-</span>cidr<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net is an alias <span
class="token keyword">for</span> captive<span class="token operator">-</span>cdn<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net<span class="token operator">.</span>
captive<span class="token operator">-</span>cdn<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net is an alias <span
class="token keyword">for</span> captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com<span
class="token operator">.</span>
captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com has IPv6 address <span
class="token number">2</span>a01<span class="token punctuation">:</span>b740<span
class="token punctuation">:</span>a10<span class="token punctuation">:</span><span
class="token class-name static-context">f000</span><span
class="token operator">::</span><span class="token number">199</span>
captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com has IPv6 address <span
class="token number">2</span>a01<span class="token punctuation">:</span>b740<span
class="token punctuation">:</span>a10<span class="token punctuation">:</span><span
class="token class-name static-context">f100</span><span
class="token operator">::</span><span class="token number">210</span>
captive<span class="token operator">.</span>apple<span
class="token operator">.</span>com is an alias <span
class="token keyword">for</span> captive<span class="token operator">-</span>cidr<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net<span class="token operator">.</span>
captive<span class="token operator">-</span>cidr<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net is an alias <span
class="token keyword">for</span> captive<span class="token operator">-</span>cdn<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net<span class="token operator">.</span>
captive<span class="token operator">-</span>cdn<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net is an alias <span
class="token keyword">for</span> captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com<span
class="token operator">.</span>
$ host captive<span class="token operator">.</span>apple<span
class="token operator">.</span>com
captive<span class="token operator">.</span>apple<span
class="token operator">.</span>com is an alias <span
class="token keyword">for</span> captive<span class="token operator">-</span>cidr<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net<span class="token operator">.</span>
captive<span class="token operator">-</span>cidr<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net is an alias <span
class="token keyword">for</span> captive<span class="token operator">-</span>cdn<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net<span class="token operator">.</span>
captive<span class="token operator">-</span>cdn<span
class="token operator">.</span>origin<span class="token operator">-</span>apple<span
class="token operator">.</span>com<span class="token operator">.</span>akadns<span
class="token operator">.</span>net is an alias <span
class="token keyword">for</span> captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com<span
class="token operator">.</span>
captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com has address <span
class="token number">17.253</span><span class="token number">.73</span><span
class="token number">.203</span>
captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com has address <span
class="token number">17.253</span><span class="token number">.73</span><span
class="token number">.201</span>
captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com has IPv6 address <span
class="token number">2</span>a01<span class="token punctuation">:</span>b740<span
class="token punctuation">:</span>a10<span class="token punctuation">:</span><span
class="token class-name static-context">f000</span><span
class="token operator">::</span><span class="token number">199</span>
captive<span class="token operator">.</span>g<span
class="token operator">.</span>aaplimg<span class="token operator">.</span>com has IPv6 address <span
class="token number">2</span>a01<span class="token punctuation">:</span>b740<span
class="token punctuation">:</span>a10<span class="token punctuation">:</span><span
class="token class-name static-context">f100</span><span
class="token operator">::</span><span class="token number">210</span></code></pre>
<p>Note that on the first run the ipv4 address from the interface is
correctly retrieved, however on the second run it appears that the
IP for an alias is not retrieved, but the address for A record to
which the alias resolves is actually retrieved - and that's the
real IP address. This then breaks the resolution to my captive
portal.<br>
<br>
Whereas If I use `host-record=captive.apple.com,100.104.103.1`
instead, the IP address retrieved is deterministic and is indeed
`100.104.103.1`. So this seems to be working as I'd expect,
however it has the downside that I have to specify the IP address
manually.<br>
<br>
Is this expected behaviour or is this a bug? I tried looking
through the documentation and even `dnsmasq`code briefly, but I
unfortunately couldn't determine that.</p>
<p></p>
</body>
</html>