[Dnsmasq-discuss] IPv6 constructor option - confused!
simon at thekelleys.org.uk
Thu May 2 09:36:33 BST 2013
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:
> 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.
What chooses the address is the DHCP client which gets the prefix
delegation, it has to do something with the delegation once it has it,
in the same way that a DHCP client has to configure an interface once it
has an address lease. In the case of a prefix delegation, the client has
to configure an address on the _internal_ interface, (ie not the one to
the ISP, where the lease came from) with an address of its choice in the
delegated range, and maybe set up routing to get packets in the prefix
to the correct interface.
More information about the Dnsmasq-discuss