From: Thomas Markwalder Date: Tue, 10 Jul 2018 19:32:57 +0000 (-0400) Subject: [5680] User guide updated with new params X-Git-Tag: ha_phase2~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6402f68e8e7525de9b4ba989301e11506ba2b07b;p=thirdparty%2Fkea.git [5680] User guide updated with new params doc/guide/dhcp4-srv.xml Added discussion of new params to Dhcp4/dhcp-ddns section src/lib/dhcpsrv/d2_client_cfg.h fixed missing params doxygen error --- diff --git a/doc/guide/dhcp4-srv.xml b/doc/guide/dhcp4-srv.xml index 6fcb4dd7c6..e09b543b64 100644 --- a/doc/guide/dhcp4-srv.xml +++ b/doc/guide/dhcp4-srv.xml @@ -2579,9 +2579,16 @@ It is merely echoed by the server "replace-client-name": "never" + "generated-prefix": "myhost" + + "hostname-char-set": "" + + + "hostname-char-replacement": "" + @@ -2908,6 +2915,50 @@ It is merely echoed by the server myhost-172-16-1-10.example.com. +
+ Sanitizing Client host names + It may be that some of your DHCP clients provide values in the Host Name + option (Option code 12), that contain undesirable characters. It is possible + to configure kea-dhcp4 to sanitize these values. The most typical use case + would be ensuring that only characters that are permitted by RFC 1035 be included: + A-Z,a-z,0-9, and '-'. + + This may be accomplished with following two parameters: + + + hostname-char-set - a regular expression describing the + invalid character set. This can be any valid, regular expression using + POSIX extended expression syntax. For example, "[^A-Za-z0-9-]" would + replace any character other then the letters A through Z, a through, digits 0 + through 9, and '-'. If your clients include domain names, you will need to make + sure that the dot, '.', is included the your expression: "[^A-Za-z0-9.-]". + The default value is an empty string and disables sanitization. + + + hostname-char-replacement - a string of zero or more characters + with which to replace each invalid character in the host name. The default value + is an empty string and will cause invalid characters to be OMITTED rather than + replaced. + + + The following configuration, will replace anything other than a letter, digit, + hyphen, or dot with the letter 'x': + +"Dhcp4": { + "dhcp-ddns": { + "hostname-char-set": "[^A-Za-z0-9.-]", + "hostname-char-replacement": "x", + ... + }, + ... +} + + Thus, a client supplied value of "myhost-$[123.org" would become "myhost-xx123.org" + Note that sanitization is peformed only on the portion of the name supplied by the + Host Name option, and that this is done before applying the qualifying suffix (if + one is defined). +
+
diff --git a/src/lib/dhcpsrv/d2_client_cfg.h b/src/lib/dhcpsrv/d2_client_cfg.h index e69015388f..c4bb250400 100644 --- a/src/lib/dhcpsrv/d2_client_cfg.h +++ b/src/lib/dhcpsrv/d2_client_cfg.h @@ -99,6 +99,10 @@ public: /// supplied by the client with a generated name. /// @param generated_prefix Prefix to use when generating domain-names. /// @param qualifying_suffix Suffix to use to qualify partial domain-names. + /// @param hostname_char_set regular expression string which describes invalid + /// characters to be scrubbed from client host names + /// @param hostname_char_replacement string of zero or more characters to + /// replace invalid chars when sanitizing client host names /// /// @c enable_updates is mandatory, @c qualifying_suffix is mandatory /// when updates are enabled, other parameters are optional.