|
|
Hi there,
I am running isc-dhcp-server in ipv6 mode, and I'd like to update the
local internal dns zones hosted by bind9 with dhcpv6 client's names and
ipv6 addresses.
The built-in ddns seems to be completely unable to remove entries from
the dns upon expiry or release, so I ended up doing ddns stuff on my
own using "on commit|expiry|release" event handlers and corresponding
scripts.
But this also has issues with expiry and release events. While
(almost...) everything is fine with commits, I am having trouble
getting enough information about which hosts lease has expired or was
released.
This is the code I have in the dhcpd6.conf global scope:
on commit
{
set ClientMac =
"n/a";
set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":",
substring(option dhcp6.ia-na, 16, 16)),
"n/a");
set ClientID = pick-first-value(binary-to-ascii(16, 8, ":",
option dhcp6.client-id),
"n/a");
set ClientName = pick-first-value(ddns-hostname, option
fqdn.hostname, option host-name,
"n/a");
log(concat("Commit (global): Mac: ", ClientMac, ", IP: ",
ClientIP, ", Name: ", ClientName, ", ID: ",
ClientID));
#execute("/etc/dhcp/dhcp6commit.sh", ClientMac, ClientIP,
ClientName,
ClientID);
}
on expiry
{
set ClientMac =
"n/a";
set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":",
substring(option dhcp6.ia-na, 16, 16)),
"n/a");
set ClientID = pick-first-value(binary-to-ascii(16, 8, ":",
option dhcp6.client-id),
"n/a");
set ClientName = pick-first-value(ddns-hostname, option
fqdn.hostname, option host-name,
"n/a");
log(concat("Expiry (global): Mac: ", ClientMac, ", IP: ",
ClientIP, ", Name: ", ClientName, ", ID: ",
ClientID));
#execute("/etc/dhcp/dhcp6expiry.sh", ClientMac, ClientIP,
ClientName,
ClientID);
}
on release
{
set ClientMac =
"n/a";
set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":",
substring(option dhcp6.ia-na, 16, 16)),
"n/a");
set ClientID = pick-first-value(binary-to-ascii(16, 8, ":",
option dhcp6.client-id),
"n/a");
set ClientName = pick-first-value(ddns-hostname, option
fqdn.hostname, option host-name,
"n/a");
log(concat("Release (global): Mac: ", ClientMac, ", IP: ",
ClientIP, ", Name: ", ClientName, ", ID: ",
ClientID));
#execute("/etc/dhcp/dhcp6release.sh", ClientMac, ClientIP,
ClientName,
ClientID);
}
(I've commented the "execute" statement to not mess up ddns while
testing).
And this is what I see in the dhcp log:
Commit:
Dec 2 15:02:02 prokyon dhcpd: Reply NA: address
fd10:2842:f0d1:414:b64e:8a55:154d:ad6 to client with duid
00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 iaid = 1 valid for 1200
seconds
Dec 2 15:02:02 prokyon dhcpd: Commit (global): Mac: n/a, IP:
fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID:
0:1:0:1:1e:dd:f7:4d:0:12:f0:90:5a:49
Release:
Dec 2 15:03:39 prokyon dhcpd: Client
00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 releases address
fd10:2842:f0d1:414:b64e:8a55:154d:ad6
Dec 2 15:03:39 prokyon dhcpd: Release (global): Mac: n/a, IP: n/a,
Name: n/a, ID: n/a
Expiry:
Dec 2 15:14:04 prokyon dhcpd: Expiry (global): Mac: n/a, IP: n/a,
Name: n/a, ID: n/a
So, everything is alright for commit events, except that there's no
hostname available. I know how to create a custom hostname from address
or id, so this is not really a problem.
But for expiry and release events, there's simply nothing that can be
passed on to the scripts. No address, no name, no id. It's impossible
to remove dns entries.
Next, if I move the "set ClientIP = " lines from inside the "on
commit|expiry|release" event handlers above those into the global
scope, I magically get the address for expiry, but not for release:
Dec 2 15:35:55 prokyon dhcpd: Expiry (global): Mac: n/a, IP:
fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID: n/a
Dec 2 15:38:17 prokyon dhcpd: Release (global): Mac: n/a, IP: n/a,
Name: n/a, ID: n/a
Moving all this code into a host statement (works for known hosts only,
of course), finally makes it possible to get a hostname and to perform
clean ddns updates for commit and expiry, but it requires at least one
dns lookup in the script to get the address from the hostname for
release events, which is a really, really ugly hack.
Am I doing something wrong, did I miss something, or ist this
intended behavior or even a bug?
Thanks for help,
Robert
--
Robert Senger
--
Robert Senger
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
|
|
Robert,
I don't know anything about DDNS updates as I have never used them, but I can confirm that on release {} in DHCPv6 does not seem to have access to any of the option data. I had the same problem and asked the list about it more than a week ago. I was met with silence. If a developer could comment on this being a bug or simply not implemented yet, that would be great. Target for inclusion of option data in on release {} statements?
From: "Robert Senger" <[hidden email]> To: "Users of ISC DHCP" <[hidden email]> Sent: Friday, December 2, 2016 10:01:31 AM Subject: Issues with dhcpv6 and ddns updates
Hi there,
I am running isc-dhcp-server in ipv6 mode, and I'd like to update the local internal dns zones hosted by bind9 with dhcpv6 client's names and ipv6 addresses.
The built-in ddns seems to be completely unable to remove entries from the dns upon expiry or release, so I ended up doing ddns stuff on my own using "on commit|expiry|release" event handlers and corresponding scripts.
But this also has issues with expiry and release events. While (almost...) everything is fine with commits, I am having trouble getting enough information about which hosts lease has expired or was released.
This is the code I have in the dhcpd6.conf global scope:
on commit { set ClientMac = "n/a"; set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":", substring(option dhcp6.ia-na, 16, 16)), "n/a"); set ClientID = pick-first-value(binary-to-ascii(16, 8, ":", option dhcp6.client-id), "n/a"); set ClientName = pick-first-value(ddns-hostname, option fqdn.hostname, option host-name, "n/a"); log(concat("Commit (global): Mac: ", ClientMac, ", IP: ", ClientIP, ", Name: ", ClientName, ", ID: ", ClientID)); #execute("/etc/dhcp/dhcp6commit.sh", ClientMac, ClientIP, ClientName, ClientID); } on expiry { set ClientMac = "n/a"; set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":", substring(option dhcp6.ia-na, 16, 16)), "n/a"); set ClientID = pick-first-value(binary-to-ascii(16, 8, ":", option dhcp6.client-id), "n/a"); set ClientName = pick-first-value(ddns-hostname, option fqdn.hostname, option host-name, "n/a"); log(concat("Expiry (global): Mac: ", ClientMac, ", IP: ", ClientIP, ", Name: ", ClientName, ", ID: ", ClientID)); #execute("/etc/dhcp/dhcp6expiry.sh", ClientMac, ClientIP, ClientName, ClientID); } on release { set ClientMac = "n/a"; set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":", substring(option dhcp6.ia-na, 16, 16)), "n/a"); set ClientID = pick-first-value(binary-to-ascii(16, 8, ":", option dhcp6.client-id), "n/a"); set ClientName = pick-first-value(ddns-hostname, option fqdn.hostname, option host-name, "n/a"); log(concat("Release (global): Mac: ", ClientMac, ", IP: ", ClientIP, ", Name: ", ClientName, ", ID: ", ClientID)); #execute("/etc/dhcp/dhcp6release.sh", ClientMac, ClientIP, ClientName, ClientID); }
(I've commented the "execute" statement to not mess up ddns while testing).
And this is what I see in the dhcp log:
Commit:
Dec 2 15:02:02 prokyon dhcpd: Reply NA: address fd10:2842:f0d1:414:b64e:8a55:154d:ad6 to client with duid 00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 iaid = 1 valid for 1200 seconds Dec 2 15:02:02 prokyon dhcpd: Commit (global): Mac: n/a, IP: fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID: 0:1:0:1:1e:dd:f7:4d:0:12:f0:90:5a:49
Release:
Dec 2 15:03:39 prokyon dhcpd: Client 00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 releases address fd10:2842:f0d1:414:b64e:8a55:154d:ad6 Dec 2 15:03:39 prokyon dhcpd: Release (global): Mac: n/a, IP: n/a, Name: n/a, ID: n/a
Expiry:
Dec 2 15:14:04 prokyon dhcpd: Expiry (global): Mac: n/a, IP: n/a, Name: n/a, ID: n/a
So, everything is alright for commit events, except that there's no hostname available. I know how to create a custom hostname from address or id, so this is not really a problem.
But for expiry and release events, there's simply nothing that can be passed on to the scripts. No address, no name, no id. It's impossible to remove dns entries.
Next, if I move the "set ClientIP = " lines from inside the "on commit|expiry|release" event handlers above those into the global scope, I magically get the address for expiry, but not for release:
Dec 2 15:35:55 prokyon dhcpd: Expiry (global): Mac: n/a, IP: fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID: n/a Dec 2 15:38:17 prokyon dhcpd: Release (global): Mac: n/a, IP: n/a, Name: n/a, ID: n/a
Moving all this code into a host statement (works for known hosts only, of course), finally makes it possible to get a hostname and to perform clean ddns updates for commit and expiry, but it requires at least one dns lookup in the script to get the address from the hostname for release events, which is a really, really ugly hack.
Am I doing something wrong, did I miss something, or ist this intended behavior or even a bug?
Thanks for help,
Robert
-- Robert Senger
-- Robert Senger
_______________________________________________ dhcp-users mailing list [hidden email] https://lists.isc.org/mailman/listinfo/dhcp-users _______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
|
|
Thanks for the confirmation!
For the moment I can live with this, since I only got a limited number
of known clients I need to create host { } statements for, and a very
limited number of guest clients (for now, I ignore them for ddns).
Well, once dhcpv6 becomes more common in enterprise environments, I
would consider this as a severe issue.
Robert
Am Freitag, den 02.12.2016, 10:07 -0500 schrieb perl-list:
> Robert,
>
> I don't know anything about DDNS updates as I have never used them,
> but I can confirm that on release {} in DHCPv6 does not seem to have
> access to any of the option data. I had the same problem and asked
> the list about it more than a week ago. I was met with silence. If a
> developer could comment on this being a bug or simply not implemented
> yet, that would be great. Target for inclusion of option data in on
> release {} statements?
>
> >
> > From: "Robert Senger" < [hidden email]>
> > To: "Users of ISC DHCP" < [hidden email]>
> > Sent: Friday, December 2, 2016 10:01:31 AM
> > Subject: Issues with dhcpv6 and ddns updates
> >
> > Hi there,
> >
> > I am running isc-dhcp-server in ipv6 mode, and I'd like to update
> > the
> > local internal dns zones hosted by bind9 with dhcpv6 client's names
> > and
> > ipv6 addresses.
> >
> > The built-in ddns seems to be completely unable to remove entries
> > from
> > the dns upon expiry or release, so I ended up doing ddns stuff on
> > my
> > own using "on commit|expiry|release" event handlers and
> > corresponding
> > scripts.
> >
> > But this also has issues with expiry and release events. While
> > (almost...) everything is fine with commits, I am having trouble
> > getting enough information about which hosts lease has expired or
> > was
> > released.
> >
> > This is the code I have in the dhcpd6.conf global scope:
> >
> > on commit
> > {
> >
> > set ClientMac =
> > "n/a";
> >
> > set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":",
> > substring(option dhcp6.ia-na, 16, 16)),
> > "n/a");
> > set ClientID = pick-first-value(binary-to-ascii(16, 8, ":",
> > option dhcp6.client-id),
> > "n/a");
> > set ClientName = pick-first-value(ddns-hostname, option
> > fqdn.hostname, option host-name,
> > "n/a");
> > log(concat("Commit (global): Mac: ", ClientMac, ", IP: ",
> > ClientIP, ", Name: ", ClientName, ", ID: ",
> > ClientID));
> > #execute("/etc/dhcp/dhcp6commit.sh", ClientMac, ClientIP,
> > ClientName,
> > ClientID);
> > }
> >
> > on expiry
> > {
> >
> > set ClientMac =
> > "n/a";
> >
> > set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":",
> > substring(option dhcp6.ia-na, 16, 16)),
> > "n/a");
> > set ClientID = pick-first-value(binary-to-ascii(16, 8, ":",
> > option dhcp6.client-id),
> > "n/a");
> > set ClientName = pick-first-value(ddns-hostname, option
> > fqdn.hostname, option host-name,
> > "n/a");
> > log(concat("Expiry (global): Mac: ", ClientMac, ", IP: ",
> > ClientIP, ", Name: ", ClientName, ", ID: ",
> > ClientID));
> > #execute("/etc/dhcp/dhcp6expiry.sh", ClientMac, ClientIP,
> > ClientName,
> > ClientID);
> > }
> >
> > on release
> > {
> >
> > set ClientMac =
> > "n/a";
> >
> > set ClientIP = pick-first-value(binary-to-ascii(16, 16, ":",
> > substring(option dhcp6.ia-na, 16, 16)),
> > "n/a");
> > set ClientID = pick-first-value(binary-to-ascii(16, 8, ":",
> > option dhcp6.client-id),
> > "n/a");
> > set ClientName = pick-first-value(ddns-hostname, option
> > fqdn.hostname, option host-name,
> > "n/a");
> > log(concat("Release (global): Mac: ", ClientMac, ", IP: ",
> > ClientIP, ", Name: ", ClientName, ", ID: ",
> > ClientID));
> > #execute("/etc/dhcp/dhcp6release.sh", ClientMac, ClientIP,
> > ClientName,
> > ClientID);
> > }
> >
> > (I've commented the "execute" statement to not mess up ddns while
> > testing).
> >
> > And this is what I see in the dhcp log:
> >
> > Commit:
> >
> > Dec 2 15:02:02 prokyon dhcpd: Reply NA: address
> > fd10:2842:f0d1:414:b64e:8a55:154d:ad6 to client with duid
> > 00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 iaid = 1 valid for 1200
> > seconds
> > Dec 2 15:02:02 prokyon dhcpd: Commit (global): Mac: n/a, IP:
> > fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID:
> > 0:1:0:1:1e:dd:f7:4d:0:12:f0:90:5a:49
> >
> > Release:
> >
> > Dec 2 15:03:39 prokyon dhcpd: Client
> > 00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 releases address
> > fd10:2842:f0d1:414:b64e:8a55:154d:ad6
> > Dec 2 15:03:39 prokyon dhcpd: Release (global): Mac: n/a, IP: n/a,
> > Name: n/a, ID: n/a
> >
> > Expiry:
> >
> > Dec 2 15:14:04 prokyon dhcpd: Expiry (global): Mac: n/a, IP: n/a,
> > Name: n/a, ID: n/a
> >
> > So, everything is alright for commit events, except that there's no
> > hostname available. I know how to create a custom hostname from
> > address
> > or id, so this is not really a problem.
> >
> > But for expiry and release events, there's simply nothing that can
> > be
> > passed on to the scripts. No address, no name, no id. It's
> > impossible
> > to remove dns entries.
> >
> > Next, if I move the "set ClientIP = " lines from inside the "on
> > commit|expiry|release" event handlers above those into the global
> > scope, I magically get the address for expiry, but not for release:
> >
> > Dec 2 15:35:55 prokyon dhcpd: Expiry (global): Mac: n/a, IP:
> > fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID: n/a
> > Dec 2 15:38:17 prokyon dhcpd: Release (global): Mac: n/a, IP: n/a,
> > Name: n/a, ID: n/a
> >
> > Moving all this code into a host statement (works for known hosts
> > only,
> > of course), finally makes it possible to get a hostname and to
> > perform
> > clean ddns updates for commit and expiry, but it requires at least
> > one
> > dns lookup in the script to get the address from the hostname for
> > release events, which is a really, really ugly hack.
> >
> > Am I doing something wrong, did I miss something, or ist this
> > intended behavior or even a bug?
> >
> > Thanks for help,
> >
> > Robert
> >
> > --
> > Robert Senger
> >
> > --
> > Robert Senger
> >
> > _______________________________________________
> > dhcp-users mailing list
> > [hidden email]
> > https://lists.isc.org/mailman/listinfo/dhcp-users> _______________________________________________
> dhcp-users mailing list
> [hidden email]
> https://lists.isc.org/mailman/listinfo/dhcp-users--
Robert Senger
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
|
|
On 12/2/16 10:07 AM, perl-list wrote:
Robert,
I don't know anything about DDNS updates as I have never
used them, but I can confirm that on release {} in DHCPv6 does
not seem to have access to any of the option data. I had the
same problem and asked the list about it more than a week ago.
I was met with silence. If a developer could comment on this
being a bug or simply not implemented yet, that would be
great. Target for inclusion of option data in on release {}
statements?
From: "Robert Senger"
[hidden email]
To: "Users of ISC DHCP"
[hidden email]
Sent: Friday, December 2, 2016 10:01:31 AM
Subject: Issues with dhcpv6 and ddns updates
Hi there,
I am running isc-dhcp-server in ipv6 mode, and I'd like to
update the
local internal dns zones hosted by bind9 with dhcpv6
client's names and
ipv6 addresses.
The built-in ddns seems to be completely unable to remove
entries from
the dns upon expiry or release, so I ended up doing ddns
stuff on my
own using "on commit|expiry|release" event handlers and
corresponding
scripts.
But this also has issues with expiry and release events.
While
(almost...) everything is fine with commits, I am having
trouble
getting enough information about which hosts lease has
expired or was
released.
This is the code I have in the dhcpd6.conf global scope:
on commit
{
set ClientMac =
"n/a";
set ClientIP =
pick-first-value(binary-to-ascii(16, 16, ":",
substring(option dhcp6.ia-na, 16, 16)),
"n/a");
set ClientID =
pick-first-value(binary-to-ascii(16, 8, ":",
option dhcp6.client-id),
"n/a");
set ClientName = pick-first-value(ddns-hostname,
option
fqdn.hostname, option host-name,
"n/a");
log(concat("Commit (global): Mac: ", ClientMac, ",
IP: ",
ClientIP, ", Name: ", ClientName, ", ID: ",
ClientID));
#execute("/etc/dhcp/dhcp6commit.sh", ClientMac,
ClientIP,
ClientName,
ClientID);
}
on expiry
{
set ClientMac =
"n/a";
set ClientIP =
pick-first-value(binary-to-ascii(16, 16, ":",
substring(option dhcp6.ia-na, 16, 16)),
"n/a");
set ClientID =
pick-first-value(binary-to-ascii(16, 8, ":",
option dhcp6.client-id),
"n/a");
set ClientName = pick-first-value(ddns-hostname,
option
fqdn.hostname, option host-name,
"n/a");
log(concat("Expiry (global): Mac: ", ClientMac, ",
IP: ",
ClientIP, ", Name: ", ClientName, ", ID: ",
ClientID));
#execute("/etc/dhcp/dhcp6expiry.sh", ClientMac,
ClientIP,
ClientName,
ClientID);
}
on release
{
set ClientMac =
"n/a";
set ClientIP =
pick-first-value(binary-to-ascii(16, 16, ":",
substring(option dhcp6.ia-na, 16, 16)),
"n/a");
set ClientID =
pick-first-value(binary-to-ascii(16, 8, ":",
option dhcp6.client-id),
"n/a");
set ClientName = pick-first-value(ddns-hostname,
option
fqdn.hostname, option host-name,
"n/a");
log(concat("Release (global): Mac: ", ClientMac,
", IP: ",
ClientIP, ", Name: ", ClientName, ", ID: ",
ClientID));
#execute("/etc/dhcp/dhcp6release.sh", ClientMac,
ClientIP,
ClientName,
ClientID);
}
(I've commented the "execute" statement to not mess up
ddns while
testing).
And this is what I see in the dhcp log:
Commit:
Dec 2 15:02:02 prokyon dhcpd: Reply NA: address
fd10:2842:f0d1:414:b64e:8a55:154d:ad6 to client with duid
00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 iaid = 1 valid
for 1200
seconds
Dec 2 15:02:02 prokyon dhcpd: Commit (global): Mac: n/a,
IP:
fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID:
0:1:0:1:1e:dd:f7:4d:0:12:f0:90:5a:49
Release:
Dec 2 15:03:39 prokyon dhcpd: Client
00:01:00:01:1e:dd:f7:4d:00:12:f0:90:5a:49 releases address
fd10:2842:f0d1:414:b64e:8a55:154d:ad6
Dec 2 15:03:39 prokyon dhcpd: Release (global): Mac: n/a,
IP: n/a,
Name: n/a, ID: n/a
Expiry:
Dec 2 15:14:04 prokyon dhcpd: Expiry (global): Mac: n/a,
IP: n/a,
Name: n/a, ID: n/a
So, everything is alright for commit events, except that
there's no
hostname available. I know how to create a custom hostname
from address
or id, so this is not really a problem.
But for expiry and release events, there's simply nothing
that can be
passed on to the scripts. No address, no name, no id. It's
impossible
to remove dns entries.
Next, if I move the "set ClientIP = " lines from inside
the "on
commit|expiry|release" event handlers above those into the
global
scope, I magically get the address for expiry, but not for
release:
Dec 2 15:35:55 prokyon dhcpd: Expiry (global): Mac: n/a,
IP:
fd10:2842:f0d1:414:b64e:8a55:154d:ad6, Name: n/a, ID: n/a
Dec 2 15:38:17 prokyon dhcpd: Release (global): Mac: n/a,
IP: n/a,
Name: n/a, ID: n/a
Moving all this code into a host statement (works for
known hosts only,
of course), finally makes it possible to get a hostname
and to perform
clean ddns updates for commit and expiry, but it requires
at least one
dns lookup in the script to get the address from the
hostname for
release events, which is a really, really ugly hack.
Am I doing something wrong, did I miss something, or ist
this
intended behavior or even a bug?
Thanks for help,
Robert
--
Robert Senger
--
Robert Senger
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
Hello Robert:
Sorry for the belated reply, ISC is a small non-profit with
limited resources and we do what we can. Contributions are always
welcome. In order to make options available during releases,
regardless of whether we're discussing v4 of v6, the server would
have to execute all of the configuration statements down to
appropriate scope as is done when granting or renewing leases.
The same applies to lease expiration processing.
As to why this has never been added I cannot say, however adding
it might have unintended consequences. It is something we we
would have to examine closely and if we were to add, it would be
disabled by default, enabled with a run time option. If you
submit a feature request by emailing [hidden email], I will
add it to the list of items under consideration for inclusion in
4.4.0 release, due sometime in 2017 (date is TBD).
Sincerely,
Thomas Markwalder
ISC Software Engineering
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
|
|
From: "Thomas Markwalder" <[hidden email]> To: [hidden email] Sent: Friday, December 2, 2016 11:02:32 AM Subject: Re: Issues with dhcpv6 and ddns updates
On 12/2/16 10:07 AM, perl-list wrote:
Robert,
I don't know anything about DDNS updates as I have never
used them, but I can confirm that on release {} in DHCPv6 does
not seem to have access to any of the option data. I had the
same problem and asked the list about it more than a week ago.
I was met with silence. If a developer could comment on this
being a bug or simply not implemented yet, that would be
great. Target for inclusion of option data in on release {}
statements?
Sorry for the belated reply, ISC is a small non-profit with
limited resources and we do what we can. Contributions are always
welcome. In order to make options available during releases,
regardless of whether we're discussing v4 of v6, the server would
have to execute all of the configuration statements down to
appropriate scope as is done when granting or renewing leases.
The same applies to lease expiration processing.
As to why this has never been added I cannot say, however adding
it might have unintended consequences. It is something we we
would have to examine closely and if we were to add, it would be
disabled by default, enabled with a run time option. If you
submit a feature request by emailing [hidden email], I will
add it to the list of items under consideration for inclusion in
4.4.0 release, due sometime in 2017 (date is TBD).
Sincerely, Thomas Markwalder ISC Software Engineering
I don't think that could be right that options are not available in on release {} in DHCPv4 as a statement like this:
on release {
log( error,
concat( "RELEASED,",
"ip,", binary-to-ascii (10, 8, ".", leased-address),",",
"hardware,",binary-to-ascii(16,8,":",substring(hardware,1,7))
)
);
}
produces a line like this:
RELEASED,ip,192.168.0.1,hardware,01:02:03:02:01:00
in the logs. _______________________________________________ dhcp-users mailing list [hidden email] https://lists.isc.org/mailman/listinfo/dhcp-users
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
|
|
On 12/2/16 11:11 AM, perl-list wrote:
From: "Thomas Markwalder"
[hidden email]
To: [hidden email]
Sent: Friday, December 2, 2016 11:02:32 AM
Subject: Re: Issues with dhcpv6 and ddns updates
On 12/2/16 10:07 AM,
perl-list wrote:
Robert,
I don't know anything about DDNS updates as I
have never used them, but I can confirm that on
release {} in DHCPv6 does not seem to have access to
any of the option data. I had the same problem and
asked the list about it more than a week ago. I was
met with silence. If a developer could comment on
this being a bug or simply not implemented yet, that
would be great. Target for inclusion of option data
in on release {} statements?
Sorry for the belated reply, ISC is a small non-profit
with limited resources and we do what we can.
Contributions are always welcome. In order to make
options available during releases, regardless of whether
we're discussing v4 of v6, the server would have to
execute all of the configuration statements down to
appropriate scope as is done when granting or renewing
leases. The same applies to lease expiration
processing.
As to why this has never been added I cannot say,
however adding it might have unintended consequences.
It is something we we would have to examine closely and
if we were to add, it would be disabled by default,
enabled with a run time option. If you submit a feature
request by emailing [hidden email],
I will add it to the list of items under consideration
for inclusion in 4.4.0 release, due sometime in 2017
(date is TBD).
Sincerely,
Thomas Markwalder
ISC Software Engineering
I don't think that could be right that options are not
available in on release {} in DHCPv4 as a statement like
this:
on release {
log( error,
concat(
"RELEASED,",
"ip,",
binary-to-ascii (10, 8, ".", leased-address),",",
"hardware,",binary-to-ascii(16,8,":",substring(hardware,1,7))
)
);
}
produces a line like this:
RELEASED,ip,192.168.0.1,hardware,01:02:03:02:01:00
in the logs.
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
Let me clarify. Some options are going to available, such as
leased-address, but not all options will be. Any option value
which has been configured in the server configuration to be the
result of expression which must be evaluated, potentially at
scopes down to the pool level is not going to have a value, as the
statements are simply not executed during release processing.
_______________________________________________
dhcp-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/dhcp-users
|
|