[Kea-users] full set of option82 agent options for v4, flex-id extension
Christian Kratzer
ck at cksoft.de
Tue Jun 6 11:43:41 UTC 2017
Hi,
another thing turned up in my quest in evaluation the move from isc to kea dhcp.
I currently have all of the following options for identifying host reservations in isc dhcp:
host-identifier option agent.circuit-id "lineid-1001";
host-identifier option agent.remote-id "/lineid-1002/";
host-identifier option agent.subscriber-id "lineid-1003";
We have older zyxel dslam that only have configurable remote-id.
We also have newer zyxel gear where the dhcp snooping agent can insert both circuit-id and remote-id
We also have cisco4506 switches that only do circuit-id.
In another setup I have a vlan per customer where the cisco l3 gateway only supports inserting a subscriber-id.
As you see the zyxel cpe we have also require strange quoting with / around the remote-id value.
Our provisining system knows which access node a cpe is connected to and will provision the appropriate host reservation ( via patched omapi for isc dhcp ) depending on the specific cas.e
We need all 3 though.
No comibinations like recently requested on the list, just alternatives.
The design paper on I found here https://kea.isc.org/wiki/HostReservationDesign says kea 1.1 would support all 3 circuit-id, remote-id, subscriber-id for the host identifier.
The postgresql db schema only has circuit-id:
ck at kea1:/usr/local/share/kea/scripts/pgsql$ grep host_identifier_type dhcpdb_create.pgsql | grep ^INSERT
INSERT INTO host_identifier_type VALUES (0, 'hw-address');
INSERT INTO host_identifier_type VALUES (1, 'duid');
INSERT INTO host_identifier_type VALUES (2, 'circuit-id');
INSERT INTO host_identifier_type VALUES (3, 'client-id');
INSERT INTO host_identifier_type VALUES (4, 'flex-id');
ck at kea1:/usr/local/share/kea/scripts/pgsql$
Any reason remote-id and subscriber-id were left out. Or is this just missing in the db schema ?
A related issue would turn up when using flex-id. As we neeed different identifiers depending on the access technology we might also need different flex-id instances. Currently we would be fine with ipv4 when remote-id and subscriber-id are added. Also in ipv6 we currently have all the ldra set to option 18 interface-id. Still a situation might turn up in the future where we might need multiple variations of flex-id.
A possible design for supporting this would be to have named flex-id instances that you preconfigure in the config file and then reference by name. I am thinking of something like the following:
"Dhcp6": {
"reservations": [
{
"identifier-type":"interface-id",
"flex-id": "'foo'",
"ip-addresses": [ "2001:db8::1" ]
},
{
"identifier-type":"remote-id",
"flex-id": "'bar'",
"ip-addresses": [ "2001:db8::2" ]
},
],
"hooks-libraries": [
{
"library": "/path/libdhcp_flex_id.so",
"parameters": [
{
"name": "interface-id",
"identifier-type": "
"identifier-expression": "relay6[2].option[18].hex"
},
{
"name": "remote-id",
"identifier-expression": "relay6[2].option[37].hex"
}
[
},
...
],
Greetings
Christian
--
Christian Kratzer CK Software GmbH
Email: ck at cksoft.de Wildberger Weg 24/2
Phone: +49 7032 893 997 - 0 D-71126 Gaeufelden
Fax: +49 7032 893 997 - 9 HRB 245288, Amtsgericht Stuttgart
Mobile: +49 171 1947 843 Geschaeftsfuehrer: Christian Kratzer
Web: http://www.cksoft.de/
More information about the Kea-users
mailing list