Added a global parameter, "allow-address-registration",
to kea-dhcp6. It enables or disables client address
registration (see RFC 9686). It also corrects an
- issue in which the server was not correctly enforcing
- a peer address match when ADDR-REG-INFORMs are
- received via relay.u
+ issue in which the server was not correctly enforcing
+ a peer address match when ADDR-REG-INFORMs are
+ received via relay.
(Gitlab #4161)
request it via the ORO option. As with any other standard option, this
option must be specified in the server configuration in order to be
sent to clients and that this behavior is independent of
-``allow-address-resgistration``.
+``allow-address-registration``.
.. note::
% DHCP6_ADDR6_REGISTER_DISABLED_DROP ADDR-REG-INFORM from %1 was dropped because address registration is disabled.
Logged at debug log level 40.
This debug message is printed when the server drops an ADDR-REG-INFORM packet
-because 'allow-address-regisration' is false.
+because 'allow-address-registration' is false.
Pkt6Ptr
Dhcpv6Srv::processAddrRegInform(AllocEngine::ClientContext6& ctx) {
- ConstSubnetPtr subnet = ctx.subnet_;
- // Silently ignore message which can't be localized
- if (!subnet) {
- return (Pkt6Ptr());
- }
-
- Pkt6Ptr addr_reg_inf = ctx.query_;
-
// Get the allow-address-resgistration flag value.
// If it's false, punt.
auto allow_address_registration = CfgMgr::instance().getCurrentCfg()->
if (allow_address_registration && !allow_address_registration->boolValue()) {
LOG_DEBUG(packet6_logger, DBG_DHCP6_BASIC, DHCP6_ADDR6_REGISTER_DISABLED_DROP)
.arg(addr_reg_inf->getLabel());
+ StatsMgr::instance().addValue("pkt6-admin-filtered",
+ static_cast<int64_t>(1));
+
StatsMgr::instance().addValue("pkt6-receive-drop",
static_cast<int64_t>(1));
return(Pkt6Ptr());
}
+ ConstSubnetPtr subnet = ctx.subnet_;
+ // Silently ignore message which can't be localized
+ if (!subnet) {
+ return (Pkt6Ptr());
+ }
+
+ Pkt6Ptr addr_reg_inf = ctx.query_;
+
// Get the client source address.
IOAddress addr = addr_reg_inf->getRemoteAddr();
// If there are some relays get the peer address of the closest relay