[Dnsmasq-discuss] IPv6 constructor option - confused!

Kevin Darbyshire-Bryant kevin at darbyshire-bryant.me.uk
Thu May 2 13:02:21 BST 2013


On 02/05/2013 09:36, Simon Kelley wrote:
> On 01/05/13 16:26, Kevin Darbyshire-Bryant wrote:
>> Hi Simon,
>>
>> I find myself confused by the use of the constructor option for building
>> DHCPv6 address ranges.
>>
>> edited dnsmasq.conf file:
>>
>> enable-ra
>> dhcp-range=tag:br0,::1, ::FFFF, constructor:br0, ra-names, 12h
>>
>> Now on my Tomato based router this picks up then (tunnelled) ipv6 LAN
>> address on the BR0 interface, which happens to be ISP_PREFIX::1  It
>> builds a range ISP_PREFIX::1 ->  ISP_PREFIX::FFFF and all is well.
>>
>> However, others do not have a nice neat '::1' they have (presumably
>> because it's been delegated to them by their ISP) something like
>> ISP_PREFIX::DEAD:BEEF:F00D.   Now there are two problems as I see it
>> with this:
>>
>> 1) I now need to specify my starting IP address range as DEAD:BEEF:F00D
>> otherwise dnsmasq doesn't find the prefix and doesn't serve an IPv6
>> addresses at all.  In which case why am I even bothering to tell it the
>> interface in the constructor?
>>
>> 2) The range parameter (:FFFF) implies I can define a range from
>> DEAD:BEEF:F00D to DEAD:BEEF:FFFF only with nothing lower than F00D.
>>
>> I'm sure I'm being stupid here, please educate me.... again :-)
>>
>
> I think the root confusion is between a DHCP address lease, and a
> prefix delegation. DHCP leases as we all know them are for an IP
> address, so could indeed be ISP_PREFIX::DEAD:BEEF:F00D. But
> constructed ranges are intended for use with prefix delegation. Here,
> the ISP leases you not an address but a whole prefix: ISP_PREFIX::/64
>
> The prefix size doesn't have to be a /64, but it usually is, and
> that's the only size dnsmasq supports so let's simplify and assume it is.
>
> A prefix delegation of ISP_PREFIX::/64 gives you the use of the whole
> range, ISP_PREFIX::0 to ISP_PREFIX::ffff:ffff:ffff:ffff. You want to
> use this range on a network, so you need to configure the interface in
> the router with an address on the range, but all the addresses are
> available: it's a local choice which one(s) to use, nothing to do with
> the ISP which delegated the prefix.
>

Okay, I get all the above however my router is behaving not quite as I
expect.  Some examples:

Non-working:

root at Router:/tmp/home/root# ifconfig br0
br0        Link encap:Ethernet  HWaddr 20:4E:7F:B7:4A:C0
           inet addr:192.168.235.1  Bcast:192.168.235.255 
Mask:255.255.255.0
           inet6 addr: fe80::224e:7fff:feb7:4ac0/64 Scope:Link
           inet6 addr: 2001:470:1f09:100::100/64 Scope:Global
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:1998 errors:0 dropped:0 overruns:0 frame:0
           TX packets:1565 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:461488 (450.6 KiB)  TX bytes:998389 (974.9 KiB)

dnsmasq.conf (extract)

enable-ra
dhcp-range=tag:br0,::1, ::FFFF:FFFF:FFFF:FFFF, constructor:br0,
ra-names, 12h
dhcp-option=option6:24,"internal"
dhcp-option=252,"\n"
#log-dhcp


syslog:

May  2 12:40:14 Router daemon.info dnsmasq[12845]: started, version
2.67test2tomato cachesize 1500
May  2 12:40:14 Router daemon.info dnsmasq[12845]: compile time options:
IPv6 GNU-getopt no-RTC no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP
no-conntrack ipset Tomato-helper auth
May  2 12:40:14 Router daemon.warn dnsmasq[12845]: warning: interface
ppp9 does not currently exist
May  2 12:40:14 Router daemon.warn dnsmasq[12845]: warning: interface
ppp8 does not currently exist
May  2 12:40:14 Router daemon.warn dnsmasq[12845]: warning: interface
ppp7 does not currently exist
May  2 12:40:14 Router daemon.warn dnsmasq[12845]: warning: interface
ppp6 does not currently exist
May  2 12:40:14 Router daemon.warn dnsmasq[12845]: warning: interface
ppp5 does not currently exist
May  2 12:40:14 Router daemon.warn dnsmasq[12845]: warning: interface
ppp4 does not currently exist
May  2 12:40:14 Router daemon.info dnsmasq[12845]: asynchronous logging
enabled, queue limit is 5 messages
May  2 12:40:14 Router daemon.info dnsmasq-dhcp[12845]: DHCP, IP range
192.168.235.21 -- 192.168.235.254, lease time 12h
May  2 12:40:14 Router daemon.info dnsmasq-dhcp[12845]: DHCPv6, IP range
::1 -- ::ffff:ffff:ffff:ffff, lease time 12h, template for br0
May  2 12:40:14 Router daemon.info dnsmasq-dhcp[12845]: DHCPv4-derived
IPv6 names on ::1, template for br0
May  2 12:40:14 Router daemon.info dnsmasq-dhcp[12845]: router
advertisement on ::1, template for br0
May  2 12:40:14 Router daemon.info dnsmasq-dhcp[12845]: IPv6 router
advertisement enabled
May  2 12:40:14 Router daemon.info dnsmasq[12845]: using local addresses
only for domain internal
May  2 12:40:14 Router daemon.info dnsmasq[12845]: reading
/etc/resolv.dnsmasq

Note it hasn't worked out the prefix.  However if I change dnsmasq.conf

enable-ra
dhcp-range=tag:br0,::100, ::FFFF:FFFF:FFFF:FFFF, constructor:br0,
ra-names, 12h   (ie start at the router's lan IPv6 address)
dhcp-option=option6:24,"internal"
dhcp-option=252,"\n"
#log-dhcp


Then syslog shows:

May  2 12:53:47 Router daemon.info dnsmasq[13434]: started, version
2.67test2tomato cachesize 1500
May  2 12:53:47 Router daemon.info dnsmasq[13434]: compile time options:
IPv6 GNU-getopt no-RTC no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP
no-conntrack ipset Tomato-helper auth
May  2 12:53:47 Router daemon.warn dnsmasq[13434]: warning: interface
ppp9 does not currently exist
May  2 12:53:47 Router daemon.warn dnsmasq[13434]: warning: interface
ppp8 does not currently exist
May  2 12:53:47 Router daemon.warn dnsmasq[13434]: warning: interface
ppp7 does not currently exist
May  2 12:53:47 Router daemon.warn dnsmasq[13434]: warning: interface
ppp6 does not currently exist
May  2 12:53:47 Router daemon.warn dnsmasq[13434]: warning: interface
ppp5 does not currently exist
May  2 12:53:47 Router daemon.warn dnsmasq[13434]: warning: interface
ppp4 does not currently exist
May  2 12:53:47 Router daemon.info dnsmasq[13434]: asynchronous logging
enabled, queue limit is 5 messages
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: DHCP, IP range
192.168.235.21 -- 192.168.235.254, lease time 12h
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: DHCPv6, IP range
::100 -- ::ffff:ffff:ffff:ffff, lease time 12h, template for br0
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: DHCPv4-derived
IPv6 names on ::100, template for br0
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: router
advertisement on ::100, template for br0
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: DHCPv6, IP range
2001:470:1f09:100::100 -- 2001:470:1f09:1ac:ffff:ffff:ffff:ffff, lease
time 12h, constructed for br0
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: DHCPv4-derived
IPv6 names on 2001:470:1f09:100::, constructed for br0
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: router
advertisement on 2001:470:1f09:100::, constructed for br0
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: RTR-ADVERT(br0)
2001:470:1f09:100::
May  2 12:53:47 Router daemon.info dnsmasq-dhcp[13434]: IPv6 router
advertisement enabled

Specifying the router's LAN IPv6 address as the start of the range was
not how I anticipated this option to work.  And I don't think you do
either based upon your above description.

So is this an oversight or some tomato based wierdness...either way, how
can I help to sort it out?

Kevin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3768 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20130502/ae2ce7e4/attachment.bin>


More information about the Dnsmasq-discuss mailing list