[Kea-users] dhcpv6 reservations by interface-id
Francis Dupont
fdupont at isc.org
Tue Jun 6 09:49:56 UTC 2017
One detail: ISC DHCP and Kea expressions do not count the relay in the
same way (client -> server or server -> client) so a priori you can't
translate ISC DHCP to Kea because it may be more than one relay.
I open a ticket to fix this, i.e., to use negative relay index for
the ISC DHCP order as the Kea C++ code in fact as both. So if you
think it is critical for you please try to convince Tomek to add
this ticket in a not too far release...
Regards
Francis Dupont <fdupont at isc.org>
Tomek Mrugalski writes:
> W dniu 05.06.2017 o 10:59, Christian Kratzer pisze:
> > Hi,
> >
> > we currently use following in isc dhcp 4.3.5 to assign static prefixes
> > to customers via dhcpv6 option 18 interface-id:
> >
> > host lineid-12345-prefix6 {
> > host-identifier v6relopt 1 dhcp6.interface-id "Kneid-12345";
> > fixed-prefix6 2001:db:1200:0300::/56;
> > }
> >
> > I cannot find from the documentation how above could be translated to kea.
> >
> > We can have upto 3 interface-id relay options inserted via the various
> > ldra agents between the customer cpe and the dhcp server.
> >
> > The interesting option is the one nearest to the client which is added
> > by the ldra agent on the l2 access switch at the edge of our network.
> > Our cisco l3 relay agents also add an interface-id option at an outer
> > level but that is of no use to identifiy a single customer.
> >
> > We use the v6relopt function new in ISC dhcp 4.3.5 to match the relay
> > options nearest to the client.
> >
> > Is above possible in current KEA or would we have to resort to hooks to
> > implement this ?
> This should be possible with flexible Identifier hook. You would need to
> do the following:
>
> 1. load flex-id hook and pecify what you want to use as a host identifier:
>
> "hooks-libraries": [
> {
> "library": "libdhcp_flex_id.so",
> "parameters": {
> "identifier-expression": "relay6[2].option[18].hex"
> }
> }
> ]
>
> The identifier expression defines what you want to use to identify a
> host. This particular example means: look at the options inserted by the
> third relay (0 is the first one, 1 is the second, 2 is third), counting
> from the server side. From those options, take option 18 (interface-id)
> and use it as binary (hex).
>
> 2. Then you'd have something like this to mimic your example:
>
> "reservations": [
> {
> "flex-id": "'Kneid-12345'",
> "prefixes": [ "2001:db:1200:0300::/56" ]
> }
> ]
>
> 3. Finally, you need to tell Kea to use flex-id as identifiers for
> incoming packets. This should do the trick:
>
> "host-reservation-identifiers": [ "duid", "hw-address", "flex-id" ]
>
> Flex-id is described in User's Guide, section 14.3.3, but also there's a
> nice short doc about it here: isc.org/kea.
>
> Hope that helps,
> Tomek Mrugalski
> ISC
> _______________________________________________
> Kea-users mailing list
> Kea-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users
>
More information about the Kea-users
mailing list