.. table:: List of Standard DHCPv4 Options
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | Name | Code | Type | Array? | Returned if |
- | | | | | not |
- | | | | | requested? |
- +========================================+=============+===================================================+=============+=============+
- | time-offset | 2 | int32 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | routers | 3 | ipv4-address | true | true |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | time-servers | 4 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | name-servers | 5 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | domain-name-servers | 6 | ipv4-address | true | true |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | log-servers | 7 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | cookie-servers | 8 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | lpr-servers | 9 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | impress-servers | 10 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | resource-location-servers | 11 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | boot-size | 13 | uint16 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | merit-dump | 14 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | domain-name | 15 | fqdn | false | true |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | swap-server | 16 | ipv4-address | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | root-path | 17 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | extensions-path | 18 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | ip-forwarding | 19 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | non-local-source-routing | 20 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | policy-filter | 21 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | max-dgram-reassembly | 22 | uint16 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | default-ip-ttl | 23 | uint8 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | path-mtu-aging-timeout | 24 | uint32 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | path-mtu-plateau-table | 25 | uint16 | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | interface-mtu | 26 | uint16 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | all-subnets-local | 27 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | broadcast-address | 28 | ipv4-address | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | perform-mask-discovery | 29 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | mask-supplier | 30 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | router-discovery | 31 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | router-solicitation-address | 32 | ipv4-address | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | static-routes | 33 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | trailer-encapsulation | 34 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | arp-cache-timeout | 35 | uint32 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | ieee802-3-encapsulation | 36 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | default-tcp-ttl | 37 | uint8 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | tcp-keepalive-interval | 38 | uint32 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | tcp-keepalive-garbage | 39 | boolean | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nis-domain | 40 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nis-servers | 41 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | ntp-servers | 42 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | vendor-encapsulated-options | 43 | empty | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | netbios-name-servers | 44 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | netbios-dd-server | 45 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | netbios-node-type | 46 | uint8 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | netbios-scope | 47 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | font-servers | 48 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | x-display-manager | 49 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | dhcp-option-overload | 52 | uint8 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | dhcp-server-identifier | 54 | ipv4-address | false | true |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | dhcp-message | 56 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | dhcp-max-message-size | 57 | uint16 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | vendor-class-identifier | 60 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nwip-domain-name | 62 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nwip-suboptions | 63 | binary | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nisplus-domain-name | 64 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nisplus-servers | 65 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | tftp-server-name | 66 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | boot-file-name | 67 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | mobile-ip-home-agent | 68 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | smtp-server | 69 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | pop-server | 70 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nntp-server | 71 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | www-server | 72 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | finger-server | 73 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | irc-server | 74 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | streettalk-server | 75 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | streettalk-directory-assistance-server | 76 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | user-class | 77 | binary | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | slp-directory-agent | 78 | record (boolean, ipv4-address) | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | slp-service-scope | 79 | record (boolean, string) | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nds-server | 85 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nds-tree-name | 86 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | nds-context | 87 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | bcms-controller-names | 88 | fqdn | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | bcms-controller-address | 89 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | client-system | 93 | uint16 | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | client-ndi | 94 | record (uint8, uint8, uint8) | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | uuid-guid | 97 | record (uint8, binary) | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | uap-servers | 98 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | geoconf-civic | 99 | binary | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | pcode | 100 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | tcode | 101 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | netinfo-server-address | 112 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | netinfo-server-tag | 113 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | default-url | 114 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | auto-config | 116 | uint8 | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | name-service-search | 117 | uint16 | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | subnet-selection | 118 | ipv4-address | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | domain-search | 119 | fqdn | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | vivco-suboptions | 124 | binary | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | vivso-suboptions | 125 | binary | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | pana-agent | 136 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | v4-lost | 137 | fqdn | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | capwap-ac-v4 | 138 | ipv4-address | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | sip-ua-cs-domains | 141 | fqdn | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | rdnss-selection | 146 | record (uint8, ipv4-address, ipv4-address, fqdn) | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | v4-portparams | 159 | record (uint8, psid) | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | v4-captive-portal | 160 | string | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | option-6rd | 212 | record (uint8, uint8, ipv6-address, ipv4-address) | true | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
- | v4-access-domain | 213 | fqdn | false | false |
- +----------------------------------------+-------------+---------------------------------------------------+-------------+-------------+
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | Name | Code | Type | Array? | Returned if |
+ | | | | | not |
+ | | | | | requested? |
+ +========================================+======+===========================+=============+=============+
+ | time-offset | 2 | int32 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | routers | 3 | ipv4-address | true | true |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | time-servers | 4 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | name-servers | 5 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | domain-name-servers | 6 | ipv4-address | true | true |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | log-servers | 7 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | cookie-servers | 8 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | lpr-servers | 9 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | impress-servers | 10 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | resource-location-servers | 11 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | boot-size | 13 | uint16 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | merit-dump | 14 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | domain-name | 15 | fqdn | false | true |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | swap-server | 16 | ipv4-address | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | root-path | 17 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | extensions-path | 18 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | ip-forwarding | 19 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | non-local-source-routing | 20 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | policy-filter | 21 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | max-dgram-reassembly | 22 | uint16 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | default-ip-ttl | 23 | uint8 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | path-mtu-aging-timeout | 24 | uint32 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | path-mtu-plateau-table | 25 | uint16 | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | interface-mtu | 26 | uint16 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | all-subnets-local | 27 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | broadcast-address | 28 | ipv4-address | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | perform-mask-discovery | 29 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | mask-supplier | 30 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | router-discovery | 31 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | router-solicitation-address | 32 | ipv4-address | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | static-routes | 33 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | trailer-encapsulation | 34 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | arp-cache-timeout | 35 | uint32 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | ieee802-3-encapsulation | 36 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | default-tcp-ttl | 37 | uint8 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | tcp-keepalive-interval | 38 | uint32 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | tcp-keepalive-garbage | 39 | boolean | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nis-domain | 40 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nis-servers | 41 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | ntp-servers | 42 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | vendor-encapsulated-options | 43 | empty | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | netbios-name-servers | 44 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | netbios-dd-server | 45 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | netbios-node-type | 46 | uint8 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | netbios-scope | 47 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | font-servers | 48 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | x-display-manager | 49 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | dhcp-option-overload | 52 | uint8 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | dhcp-server-identifier | 54 | ipv4-address | false | true |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | dhcp-message | 56 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | dhcp-max-message-size | 57 | uint16 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | vendor-class-identifier | 60 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nwip-domain-name | 62 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nwip-suboptions | 63 | binary | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nisplus-domain-name | 64 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nisplus-servers | 65 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | tftp-server-name | 66 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | boot-file-name | 67 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | mobile-ip-home-agent | 68 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | smtp-server | 69 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | pop-server | 70 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nntp-server | 71 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | www-server | 72 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | finger-server | 73 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | irc-server | 74 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | streettalk-server | 75 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | streettalk-directory-assistance-server | 76 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | user-class | 77 | binary | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | slp-directory-agent | 78 | record (boolean, | true | false |
+ | | |ipv4-address) | | |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | slp-service-scope | 79 | record (boolean, string) | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nds-server | 85 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nds-tree-name | 86 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | nds-context | 87 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | bcms-controller-names | 88 | fqdn | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | bcms-controller-address | 89 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | client-system | 93 | uint16 | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | client-ndi | 94 | record (uint8, uint8, | false | false |
+ | | |uint8) | | |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | uuid-guid | 97 | record (uint8, binary) | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | uap-servers | 98 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | geoconf-civic | 99 | binary | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | pcode | 100 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | tcode | 101 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | netinfo-server-address | 112 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | netinfo-server-tag | 113 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | default-url | 114 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | auto-config | 116 | uint8 | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | name-service-search | 117 | uint16 | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | subnet-selection | 118 | ipv4-address | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | domain-search | 119 | fqdn | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | vivco-suboptions | 124 | binary | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | vivso-suboptions | 125 | binary | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | pana-agent | 136 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | v4-lost | 137 | fqdn | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | capwap-ac-v4 | 138 | ipv4-address | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | sip-ua-cs-domains | 141 | fqdn | true | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | rdnss-selection | 146 | record (uint8, | true | false |
+ | | | ipv4-address, | | |
+ | | | ipv4-address, fqdn) | | |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | v4-portparams | 159 | record (uint8, psid) | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | v4-captive-portal | 160 | string | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | option-6rd | 212 | record (uint8, uint8, | true | false |
+ | | | ipv6-address, | | |
+ | | | ipv4-address) | | |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
+ | v4-access-domain | 213 | fqdn | false | false |
+ +----------------------------------------+------+---------------------------+-------------+-------------+
.. _dhcp-types:
The DHCPv4 server supports the following statistics:
-.. table:: DHCPv4 Statistics
+.. tabularcolumns:: |p{0.2\linewidth}|p{0.1\linewidth}|p{0.7\linewidth}|
- +-----------------------------------------+-----------------------+-------------------------+
- | Statistic | Data Type | Description |
- +=========================================+=======================+=========================+
- | pkt4-received | integer | Number of DHCPv4 |
- | | | packets received. |
- | | | This includes all |
- | | | packets: valid, |
- | | | bogus, corrupted, |
- | | | rejected, etc. This |
- | | | statistic is expected |
- | | | to grow rapidly. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-discover-received | integer | Number of |
- | | | DHCPDISCOVER packets |
- | | | received. This |
- | | | statistic is expected |
- | | | to grow; its increase |
- | | | means that clients |
- | | | that just booted |
- | | | started their |
- | | | configuration process |
- | | | and their initial |
- | | | packets reached the |
- | | | Kea server. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-offer-received | integer | Number of DHCPOFFER |
- | | | packets received. |
- | | | This statistic is |
- | | | expected to remain |
- | | | zero at all times, as |
- | | | DHCPOFFER packets are |
- | | | sent by the server |
- | | | and the server is |
- | | | never expected to |
- | | | receive them. A |
- | | | non-zero value |
- | | | indicates an error. |
- | | | One likely cause |
- | | | would be a |
- | | | misbehaving relay |
- | | | agent that |
- | | | incorrectly forwards |
- | | | DHCPOFFER messages |
- | | | towards the server, |
- | | | rather than back to |
- | | | the clients. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-request-received | integer | Number of DHCPREQUEST |
- | | | packets received. |
- | | | This statistic is |
- | | | expected to grow. Its |
- | | | increase means that |
- | | | clients that just |
- | | | booted received the |
- | | | server's response |
- | | | (DHCPOFFER) and |
- | | | accepted it, and are |
- | | | now requesting an |
- | | | address |
- | | | (DHCPREQUEST). |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-ack-received | integer | Number of DHCPACK |
- | | | packets received. |
- | | | This statistic is |
- | | | expected to remain |
- | | | zero at all times, as |
- | | | DHCPACK packets are |
- | | | sent by the server |
- | | | and the server is |
- | | | never expected to |
- | | | receive them. A |
- | | | non-zero value |
- | | | indicates an error. |
- | | | One likely cause |
- | | | would be a |
- | | | misbehaving relay |
- | | | agent that |
- | | | incorrectly forwards |
- | | | DHCPACK messages |
- | | | towards the server, |
- | | | rather than back to |
- | | | the clients. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-nak-received | integer | Number of DHCPNAK |
- | | | packets received. |
- | | | This statistic is |
- | | | expected to remain |
- | | | zero at all times, as |
- | | | DHCPNAK packets are |
- | | | sent by the server |
- | | | and the server is |
- | | | never expected to |
- | | | receive them. A |
- | | | non-zero value |
- | | | indicates an error. |
- | | | One likely cause |
- | | | would be a |
- | | | misbehaving relay |
- | | | agent that |
- | | | incorrectly forwards |
- | | | DHCPNAK messages |
- | | | towards the server, |
- | | | rather than back to |
- | | | the clients. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-release-received | integer | Number of DHCPRELEASE |
- | | | packets received. |
- | | | This statistic is |
- | | | expected to grow. Its |
- | | | increase means that |
- | | | clients that had an |
- | | | address are shutting |
- | | | down or ceasing to |
- | | | use their addresses. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-decline-received | integer | Number of DHCPDECLINE |
- | | | packets received. |
- | | | This statistic is |
- | | | expected to remain |
- | | | close to zero. Its |
- | | | increase means that a |
- | | | client leased an |
- | | | address, but |
- | | | discovered that the |
- | | | address is currently |
- | | | used by an unknown |
- | | | device in the |
- | | | network. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-inform-received | integer | Number of DHCPINFORM |
- | | | packets received. |
- | | | This statistic is |
- | | | expected to grow. Its |
- | | | increase means that |
- | | | there are clients |
- | | | that either do not |
- | | | need an address or |
- | | | already have an |
- | | | address and are |
- | | | interested only in |
- | | | getting additional |
- | | | configuration |
- | | | parameters. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-unknown-received | integer | Number of packets |
- | | | received of an |
- | | | unknown type. A |
- | | | non-zero value of |
- | | | this statistic |
- | | | indicates that the |
- | | | server received a |
- | | | packet that it wasn't |
- | | | able to recognize, |
- | | | either with an |
- | | | unsupported type or |
- | | | possibly malformed |
- | | | (without message type |
- | | | option). |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-sent | integer | Number of DHCPv4 |
- | | | packets sent. This |
- | | | statistic is expected |
- | | | to grow every time |
- | | | the server transmits |
- | | | a packet. In general, |
- | | | it should roughly |
- | | | match pkt4-received, |
- | | | as most incoming |
- | | | packets cause the |
- | | | server to respond. |
- | | | There are exceptions |
- | | | (e.g. DHCPRELEASE), |
- | | | so do not worry if it |
- | | | is less than |
- | | | pkt4-received. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-offer-sent | integer | Number of DHCPOFFER |
- | | | packets sent. This |
- | | | statistic is expected |
- | | | to grow in most cases |
- | | | after a DHCPDISCOVER |
- | | | is processed. There |
- | | | are certain uncommon, |
- | | | but valid, cases |
- | | | where incoming |
- | | | DHCPDISCOVER packets |
- | | | are dropped, but in |
- | | | general this |
- | | | statistic is expected |
- | | | to be close to |
- | | | pkt4-discover-received. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-ack-sent | integer | Number of DHCPACK |
- | | | packets sent. This |
- | | | statistic is expected |
- | | | to grow in most cases |
- | | | after a DHCPREQUEST |
- | | | is processed. There |
- | | | are certain cases |
- | | | where DHCPNAK is sent |
- | | | instead. In general, |
- | | | the sum of |
- | | | pkt4-ack-sent and |
- | | | pkt4-nak-sent should |
- | | | be close to |
- | | | pkt4-request-received. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-nak-sent | integer | Number of DHCPNAK |
- | | | packets sent. This |
- | | | statistic is expected |
- | | | to grow when the |
- | | | server chooses not to |
- | | | honor the address |
- | | | requested by a |
- | | | client. In general, |
- | | | the sum of |
- | | | pkt4-ack-sent and |
- | | | pkt4-nak-sent should |
- | | | be close to |
- | | | pkt4-request-received. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-parse-failed | integer | Number of incoming |
- | | | packets that could |
- | | | not be parsed. A |
- | | | non-zero value of |
- | | | this statistic |
- | | | indicates that the |
- | | | server received a |
- | | | malformed or |
- | | | truncated packet. |
- | | | This may indicate |
- | | | problems in the |
- | | | network, faulty |
- | | | clients, or a bug in |
- | | | the server. |
- +-----------------------------------------+-----------------------+-------------------------+
- | pkt4-receive-drop | integer | Number of incoming |
- | | | packets that were |
- | | | dropped. The exact |
- | | | reason for dropping |
- | | | packets is logged, |
- | | | but the most common |
- | | | reasons may be: an |
- | | | unacceptable packet |
- | | | type, direct |
- | | | responses are |
- | | | forbidden, or the |
- | | | server-id sent by the |
- | | | client does not match |
- | | | the server's |
- | | | server-id. |
- +-----------------------------------------+-----------------------+-------------------------+
- | subnet[id].total-addresses | integer | Total number of |
- | | | addresses available |
- | | | for DHCPv4 |
- | | | management; in other |
- | | | words, this is the |
- | | | sum of all addresses |
- | | | in all configured |
- | | | pools. This statistic |
- | | | changes only during |
- | | | configuration |
- | | | changes. Note it does |
- | | | not take into account |
- | | | any addresses that |
- | | | may be reserved due |
- | | | to host reservation. |
- | | | The *id* is the |
- | | | subnet-id of a given |
- | | | subnet. This |
- | | | statistic is exposed |
- | | | for each subnet |
- | | | separately, and is |
- | | | reset during a |
- | | | reconfiguration |
- | | | event. |
- +-----------------------------------------+-----------------------+-------------------------+
- | subnet[id].assigned-addresses | integer | Number of assigned |
- | | | addresses in a given |
- | | | subnet. It increases |
- | | | every time a new |
- | | | lease is allocated |
- | | | (as a result of |
- | | | receiving a |
- | | | DHCPREQUEST message) |
- | | | and is decreased |
- | | | every time a lease is |
- | | | released (a |
- | | | DHCPRELEASE message |
- | | | is received) or |
- | | | expires. The *id* is |
- | | | the subnet-id of the |
- | | | subnet. This |
- | | | statistic is exposed |
- | | | for each subnet |
- | | | separately, and is |
- | | | reset during a |
- | | | reconfiguration |
- | | | event. |
- +-----------------------------------------+-----------------------+-------------------------+
- | reclaimed-leases | integer | Number of expired |
- | | | leases that have been |
- | | | reclaimed since |
- | | | server startup. It is |
- | | | incremented each time |
- | | | an expired lease is |
- | | | reclaimed and is |
- | | | reset when the server |
- | | | is reconfigured. |
- +-----------------------------------------+-----------------------+-------------------------+
- | subnet[id].reclaimed-leases | integer | Number of expired |
- | | | leases associated |
- | | | with a given subnet |
- | | | (*id* is the |
- | | | subnet-id) that have |
- | | | been reclaimed since |
- | | | server startup. It is |
- | | | incremented each time |
- | | | an expired lease is |
- | | | reclaimed and is |
- | | | reset when the server |
- | | | is reconfigured. |
- +-----------------------------------------+-----------------------+-------------------------+
- | declined-addresses | integer | Number of IPv4 |
- | | | addresses that are |
- | | | currently declined; a |
- | | | count of the number |
- | | | of leases currently |
- | | | unavailable. Once a |
- | | | lease is recovered, |
- | | | this statistic will |
- | | | be decreased; |
- | | | ideally, this |
- | | | statistic should be |
- | | | zero. If this |
- | | | statistic is non-zero |
- | | | or increasing, a |
- | | | network administrator |
- | | | should investigate |
- | | | whether there is a |
- | | | misbehaving device in |
- | | | the network. This is |
- | | | a global statistic |
- | | | that covers all |
- | | | subnets. |
- +-----------------------------------------+-----------------------+-------------------------+
- | subnet[id].declined-addresses | integer | Number of IPv4 |
- | | | addresses that are |
- | | | currently declined in |
- | | | a given subnet; a |
- | | | count of the number |
- | | | of leases currently |
- | | | unavailable. Once a |
- | | | lease is recovered, |
- | | | this statistic will |
- | | | be decreased; |
- | | | ideally, this |
- | | | statistic should be |
- | | | zero. If this |
- | | | statistic is non-zero |
- | | | or increasing, a |
- | | | network administrator |
- | | | should investigate |
- | | | whether there is a |
- | | | misbehaving device in |
- | | | the network. The *id* |
- | | | is the subnet-id of a |
- | | | given subnet. This |
- | | | statistic is exposed |
- | | | for each subnet |
- | | | separately. |
- +-----------------------------------------+-----------------------+-------------------------+
- | reclaimed-declined-addresses | integer | Number of IPv4 |
- | | | addresses that were |
- | | | declined, but have |
- | | | now been recovered. |
- | | | Unlike |
- | | | declined-addresses, |
- | | | this statistic never |
- | | | decreases. It can be |
- | | | used as a long-term |
- | | | indicator of how many |
- | | | actual valid Declines |
- | | | were processed and |
- | | | recovered from. This |
- | | | is a global statistic |
- | | | that covers all |
- | | | subnets. |
- +-----------------------------------------+-----------------------+-------------------------+
- | subnet[id].reclaimed-declined-addresses | integer | Number of IPv4 |
- | | | addresses that were |
- | | | declined, but have |
- | | | now been recovered. |
- | | | Unlike |
- | | | declined-addresses, |
- | | | this statistic never |
- | | | decreases. It can be |
- | | | used as a long-term |
- | | | indicator of how many |
- | | | actual valid Declines |
- | | | were processed and |
- | | | recovered from. The |
- | | | *id* is the subnet-id |
- | | | of a given subnet. |
- | | | This statistic is |
- | | | exposed for each |
- | | | subnet separately. |
- +-----------------------------------------+-----------------------+-------------------------+
+.. table:: DHCPv4 Statistics
+ :class: longtable
+ :widths: 20 10 70
+
+ +--------------------------------+----------------+-----------------------------------+
+ | Statistic | Data Type | Description |
+ +================================+================+===================================+
+ | pkt4-received | integer | Number of DHCPv4 packets |
+ | | | received. This includes all |
+ | | | packets: valid, bogus, |
+ | | | corrupted, rejected, etc. This |
+ | | | statistic is expected to grow |
+ | | | rapidly. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-discover-received | integer | Number of |
+ | | | DHCPDISCOVER packets |
+ | | | received. This |
+ | | | statistic is expected |
+ | | | to grow; its increase |
+ | | | means that clients |
+ | | | that just booted |
+ | | | started their |
+ | | | configuration process |
+ | | | and their initial |
+ | | | packets reached the |
+ | | | Kea server. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-offer-received | integer | Number of DHCPOFFER |
+ | | | packets received. |
+ | | | This statistic is |
+ | | | expected to remain |
+ | | | zero at all times, as |
+ | | | DHCPOFFER packets are |
+ | | | sent by the server |
+ | | | and the server is |
+ | | | never expected to |
+ | | | receive them. A |
+ | | | non-zero value |
+ | | | indicates an error. |
+ | | | One likely cause |
+ | | | would be a |
+ | | | misbehaving relay |
+ | | | agent that |
+ | | | incorrectly forwards |
+ | | | DHCPOFFER messages |
+ | | | towards the server, |
+ | | | rather than back to |
+ | | | the clients. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-request-received | integer | Number of DHCPREQUEST |
+ | | | packets received. |
+ | | | This statistic is |
+ | | | expected to grow. Its |
+ | | | increase means that |
+ | | | clients that just |
+ | | | booted received the |
+ | | | server's response |
+ | | | (DHCPOFFER) and |
+ | | | accepted it, and are |
+ | | | now requesting an |
+ | | | address |
+ | | | (DHCPREQUEST). |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-ack-received | integer | Number of DHCPACK |
+ | | | packets received. |
+ | | | This statistic is |
+ | | | expected to remain |
+ | | | zero at all times, as |
+ | | | DHCPACK packets are |
+ | | | sent by the server |
+ | | | and the server is |
+ | | | never expected to |
+ | | | receive them. A |
+ | | | non-zero value |
+ | | | indicates an error. |
+ | | | One likely cause |
+ | | | would be a |
+ | | | misbehaving relay |
+ | | | agent that |
+ | | | incorrectly forwards |
+ | | | DHCPACK messages |
+ | | | towards the server, |
+ | | | rather than back to |
+ | | | the clients. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-nak-received | integer | Number of DHCPNAK |
+ | | | packets received. |
+ | | | This statistic is |
+ | | | expected to remain |
+ | | | zero at all times, as |
+ | | | DHCPNAK packets are |
+ | | | sent by the server |
+ | | | and the server is |
+ | | | never expected to |
+ | | | receive them. A |
+ | | | non-zero value |
+ | | | indicates an error. |
+ | | | One likely cause |
+ | | | would be a |
+ | | | misbehaving relay |
+ | | | agent that |
+ | | | incorrectly forwards |
+ | | | DHCPNAK messages |
+ | | | towards the server, |
+ | | | rather than back to |
+ | | | the clients. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-release-received | integer | Number of DHCPRELEASE |
+ | | | packets received. |
+ | | | This statistic is |
+ | | | expected to grow. Its |
+ | | | increase means that |
+ | | | clients that had an |
+ | | | address are shutting |
+ | | | down or ceasing to |
+ | | | use their addresses. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-decline-received | integer | Number of DHCPDECLINE |
+ | | | packets received. |
+ | | | This statistic is |
+ | | | expected to remain |
+ | | | close to zero. Its |
+ | | | increase means that a |
+ | | | client leased an |
+ | | | address, but |
+ | | | discovered that the |
+ | | | address is currently |
+ | | | used by an unknown |
+ | | | device in the |
+ | | | network. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-inform-received | integer | Number of DHCPINFORM |
+ | | | packets received. |
+ | | | This statistic is |
+ | | | expected to grow. Its |
+ | | | increase means that |
+ | | | there are clients |
+ | | | that either do not |
+ | | | need an address or |
+ | | | already have an |
+ | | | address and are |
+ | | | interested only in |
+ | | | getting additional |
+ | | | configuration |
+ | | | parameters. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-unknown-received | integer | Number of packets |
+ | | | received of an |
+ | | | unknown type. A |
+ | | | non-zero value of |
+ | | | this statistic |
+ | | | indicates that the |
+ | | | server received a |
+ | | | packet that it wasn't |
+ | | | able to recognize, |
+ | | | either with an |
+ | | | unsupported type or |
+ | | | possibly malformed |
+ | | | (without message type |
+ | | | option). |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-sent | integer | Number of DHCPv4 |
+ | | | packets sent. This |
+ | | | statistic is expected |
+ | | | to grow every time |
+ | | | the server transmits |
+ | | | a packet. In general, |
+ | | | it should roughly |
+ | | | match pkt4-received, |
+ | | | as most incoming |
+ | | | packets cause the |
+ | | | server to respond. |
+ | | | There are exceptions |
+ | | | (e.g. DHCPRELEASE), |
+ | | | so do not worry if it |
+ | | | is less than |
+ | | | pkt4-received. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-offer-sent | integer | Number of DHCPOFFER |
+ | | | packets sent. This |
+ | | | statistic is expected |
+ | | | to grow in most cases |
+ | | | after a DHCPDISCOVER |
+ | | | is processed. There |
+ | | | are certain uncommon, |
+ | | | but valid, cases |
+ | | | where incoming |
+ | | | DHCPDISCOVER packets |
+ | | | are dropped, but in |
+ | | | general this |
+ | | | statistic is expected |
+ | | | to be close to |
+ | | | pkt4-discover-received. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-ack-sent | integer | Number of DHCPACK |
+ | | | packets sent. This |
+ | | | statistic is expected |
+ | | | to grow in most cases |
+ | | | after a DHCPREQUEST |
+ | | | is processed. There |
+ | | | are certain cases |
+ | | | where DHCPNAK is sent |
+ | | | instead. In general, |
+ | | | the sum of |
+ | | | pkt4-ack-sent and |
+ | | | pkt4-nak-sent should |
+ | | | be close to |
+ | | | pkt4-request-received. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-nak-sent | integer | Number of DHCPNAK |
+ | | | packets sent. This |
+ | | | statistic is expected |
+ | | | to grow when the |
+ | | | server chooses not to |
+ | | | honor the address |
+ | | | requested by a |
+ | | | client. In general, |
+ | | | the sum of |
+ | | | pkt4-ack-sent and |
+ | | | pkt4-nak-sent should |
+ | | | be close to |
+ | | | pkt4-request-received. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-parse-failed | integer | Number of incoming |
+ | | | packets that could |
+ | | | not be parsed. A |
+ | | | non-zero value of |
+ | | | this statistic |
+ | | | indicates that the |
+ | | | server received a |
+ | | | malformed or |
+ | | | truncated packet. |
+ | | | This may indicate |
+ | | | problems in the |
+ | | | network, faulty |
+ | | | clients, or a bug in |
+ | | | the server. |
+ +--------------------------------+----------------+-----------------------------------+
+ | pkt4-receive-drop | integer | Number of incoming |
+ | | | packets that were |
+ | | | dropped. The exact |
+ | | | reason for dropping |
+ | | | packets is logged, |
+ | | | but the most common |
+ | | | reasons may be: an |
+ | | | unacceptable packet |
+ | | | type, direct |
+ | | | responses are |
+ | | | forbidden, or the |
+ | | | server-id sent by the |
+ | | | client does not match |
+ | | | the server's |
+ | | | server-id. |
+ +--------------------------------+----------------+-----------------------------------+
+ | subnet[id].total-addresses | integer | Total number of |
+ | | | addresses available |
+ | | | for DHCPv4 |
+ | | | management; in other |
+ | | | words, this is the |
+ | | | sum of all addresses |
+ | | | in all configured |
+ | | | pools. This statistic |
+ | | | changes only during |
+ | | | configuration |
+ | | | changes. Note it does |
+ | | | not take into account |
+ | | | any addresses that |
+ | | | may be reserved due |
+ | | | to host reservation. |
+ | | | The *id* is the |
+ | | | subnet-id of a given |
+ | | | subnet. This |
+ | | | statistic is exposed |
+ | | | for each subnet |
+ | | | separately, and is |
+ | | | reset during a |
+ | | | reconfiguration |
+ | | | event. |
+ +--------------------------------+----------------+-----------------------------------+
+ | subnet[id].assigned-addresses | integer | Number of assigned |
+ | | | addresses in a given |
+ | | | subnet. It increases |
+ | | | every time a new |
+ | | | lease is allocated |
+ | | | (as a result of |
+ | | | receiving a |
+ | | | DHCPREQUEST message) |
+ | | | and is decreased |
+ | | | every time a lease is |
+ | | | released (a |
+ | | | DHCPRELEASE message |
+ | | | is received) or |
+ | | | expires. The *id* is |
+ | | | the subnet-id of the |
+ | | | subnet. This |
+ | | | statistic is exposed |
+ | | | for each subnet |
+ | | | separately, and is |
+ | | | reset during a |
+ | | | reconfiguration |
+ | | | event. |
+ +--------------------------------+----------------+-----------------------------------+
+ | reclaimed-leases | integer | Number of expired |
+ | | | leases that have been |
+ | | | reclaimed since |
+ | | | server startup. It is |
+ | | | incremented each time |
+ | | | an expired lease is |
+ | | | reclaimed and is |
+ | | | reset when the server |
+ | | | is reconfigured. |
+ +--------------------------------+----------------+-----------------------------------+
+ | subnet[id].reclaimed-leases | integer | Number of expired |
+ | | | leases associated |
+ | | | with a given subnet |
+ | | | (*id* is the |
+ | | | subnet-id) that have |
+ | | | been reclaimed since |
+ | | | server startup. It is |
+ | | | incremented each time |
+ | | | an expired lease is |
+ | | | reclaimed and is |
+ | | | reset when the server |
+ | | | is reconfigured. |
+ +--------------------------------+----------------+-----------------------------------+
+ | declined-addresses | integer | Number of IPv4 |
+ | | | addresses that are |
+ | | | currently declined; a |
+ | | | count of the number |
+ | | | of leases currently |
+ | | | unavailable. Once a |
+ | | | lease is recovered, |
+ | | | this statistic will |
+ | | | be decreased; |
+ | | | ideally, this |
+ | | | statistic should be |
+ | | | zero. If this |
+ | | | statistic is non-zero |
+ | | | or increasing, a |
+ | | | network administrator |
+ | | | should investigate |
+ | | | whether there is a |
+ | | | misbehaving device in |
+ | | | the network. This is |
+ | | | a global statistic |
+ | | | that covers all |
+ | | | subnets. |
+ +--------------------------------+----------------+-----------------------------------+
+ | subnet[id].declined-addresses | integer | Number of IPv4 |
+ | | | addresses that are |
+ | | | currently declined in |
+ | | | a given subnet; a |
+ | | | count of the number |
+ | | | of leases currently |
+ | | | unavailable. Once a |
+ | | | lease is recovered, |
+ | | | this statistic will |
+ | | | be decreased; |
+ | | | ideally, this |
+ | | | statistic should be |
+ | | | zero. If this |
+ | | | statistic is non-zero |
+ | | | or increasing, a |
+ | | | network administrator |
+ | | | should investigate |
+ | | | whether there is a |
+ | | | misbehaving device in |
+ | | | the network. The *id* |
+ | | | is the subnet-id of a |
+ | | | given subnet. This |
+ | | | statistic is exposed |
+ | | | for each subnet |
+ | | | separately. |
+ +--------------------------------+----------------+-----------------------------------+
+ | reclaimed-declined-addresses | integer | Number of IPv4 |
+ | | | addresses that were |
+ | | | declined, but have |
+ | | | now been recovered. |
+ | | | Unlike |
+ | | | declined-addresses, |
+ | | | this statistic never |
+ | | | decreases. It can be |
+ | | | used as a long-term |
+ | | | indicator of how many |
+ | | | actual valid Declines |
+ | | | were processed and |
+ | | | recovered from. This |
+ | | | is a global statistic |
+ | | | that covers all |
+ | | | subnets. |
+ +--------------------------------+----------------+-----------------------------------+
+ | subnet[id].reclaimed | integer | Number of IPv4 |
+ | -declined-addresses | | addresses that were |
+ | | | declined, but have |
+ | | | now been recovered. |
+ | | | Unlike |
+ | | | declined-addresses, |
+ | | | this statistic never |
+ | | | decreases. It can be |
+ | | | used as a long-term |
+ | | | indicator of how many |
+ | | | actual valid Declines |
+ | | | were processed and |
+ | | | recovered from. The |
+ | | | *id* is the subnet-id |
+ | | | of a given subnet. |
+ | | | This statistic is |
+ | | | exposed for each |
+ | | | subnet separately. |
+ +--------------------------------+----------------+-----------------------------------+
.. _dhcp4-ctrl-channel:
hooks libraries can be loaded by this process), none of ISC's current
hooks libraries should be loaded by the Control Agent.
-.. table:: List of Available Hooks Libraries
+.. tabularcolumns:: |p{0.1\linewidth}|p{0.1\linewidth}|p{0.8\linewidth}|
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Name | Availability | Since | Load by process | Description |
- +=================+=================+=================+=================+======================================================+
- | user_chk | Kea sources | Kea 0.8 | kea-dhcp4, | Reads known users list from a file. Unknown users |
- | | | | kea-dhcp6 | will be |
- | | | | | assigned a lease |
- | | | | | from the last subnet defined in the configuration |
- | | | | | file, |
- | | | | | e.g. to redirect |
- | | | | | them a captive portal. This demonstrates how an |
- | | | | | external |
- | | | | | source of |
- | | | | | information can be used to influence the Kea |
- | | | | | allocation |
- | | | | | engine. This hook |
- | | | | | is part of the Kea source code and is available in |
- | | | | | the |
- | | | | | src/hooks/dhcp/user_chk directory. |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Forensic | Support | Kea 1.1.0 | kea-dhcp4, | |
- | Logging | customers | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Flexible | Support | Kea 1.2.0 | kea-dhcp4, | |
- | Identifier | customers | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Host Commands | Support | Kea 1.2.0 | kea-dhcp4, | |
- | | customers | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Subnet Commands | Support | Kea 1.3.0 | kea-dhcp4, | |
- | | customers | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Lease Commands | Kea sources | Kea 1.3.0 | kea-dhcp4, | |
- | | | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | High | Kea sources | Kea 1.4.0 | kea-dhcp4, | |
- | Availability | | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Statistics | Kea sources | Kea 1.4.0 | kea-dhcp4, | |
- | Commands | | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | RADIUS | Support | Kea 1.4.0 | kea-dhcp4, | |
- | | customers | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Host Cache | Support | Kea 1.4.0 | kea-dhcp4, | |
- | | customers | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Class Commands | Support | Kea 1.5.0 | kea-dhcp4, | |
- | | customers | | kea-dhcp6 | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | MySQL | Kea sources | Kea 1.6.0 | kea-dhcp4, | |
- | Configuration | | | kea-dhcp6 | |
- | Backend | | | | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
- | Configuration | Support | Kea 1.6.0 | kea-dhcp4, | |
- | Backend | customers | | kea-dhcp6 | |
- | Commands | | | | |
- +-----------------+-----------------+-----------------+-----------------+------------------------------------------------------+
+.. table:: List of Available Hooks Libraries
+ :class: longtable
+ :widths: 10 10 80
+
+ +-----------------+---------------+------------------------------------------------------------+
+ | Name | Availability | Description |
+ +=================+===============+============================================================+
+ | user_chk | Kea sources |Reads known users list from a file. Unknown users will be |
+ | | (since 0.8) |assigned a lease from the last subnet defined in the |
+ | | |configuration file, e.g. to redirect them a captive |
+ | | |portal. This demonstrates how an external source of |
+ | | |information can be used to influence the Kea allocation |
+ | | |engine. This hook is part of the Kea source code and is |
+ | | |available in the src/hooks/dhcp/user_chk directory. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Forensic | Support |This library provides hooks that record a detailed log of |
+ | Logging | customers |lease assignments and renewals into a set of log files. In |
+ | | (since 1.1) |many legal jurisdictions companies, especially ISPs, must |
+ | | |record information about the addresses they have leased to |
+ | | |DHCP clients. This library is designed to help with that |
+ | | |requirement. If the information that it records is |
+ | | |sufficient it may be used directly. If your jurisdiction |
+ | | |requires that you save a different set of information, you |
+ | | |may use it as a template or example and create your own |
+ | | |custom logging hooks. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Flexible | Support |Kea software provides a way to handle host reservations that|
+ | Identifier | customers |include addresses, prefixes, options, client classes and |
+ | | (since 1.2) |other features. The reservation can be based on hardware |
+ | | |address, DUID, circuit-id or client-id in DHCPv4 and using |
+ | | |hardware address or DUID in DHCPv6. However, there are |
+ | | |sometimes scenarios where the reservation is more complex, |
+ | | |e.g. uses other options that mentioned above, uses part of |
+ | | |specific options or perhaps even a combination of several |
+ | | |options and fields to uniquely identify a client. Those |
+ | | |scenarios are addressed by the Flexible Identifiers hook |
+ | | |application. It allows defining an expression, similar to |
+ | | |the one used in client classification, |
+ | | |e.g. substring(relay6[0].option[37],0,6). Each incoming |
+ | | |packet is evaluated against that expression and its value is|
+ | | |then searched in the reservations database. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Host Commands | Support |Kea provides a way to store host reservations in a |
+ | | customers |database. In many larger deployments it is useful to be able|
+ | | (since 1.2) |to manage that information while the server is running. This|
+ | | |library provides management commands for adding, querying |
+ | | |and deleting host reservations in a safe way without |
+ | | |restarting the server. In particular, it validates the |
+ | | |parameters, so an attempt to insert incorrect data, e.g. add|
+ | | |a host with conflicting identifier in the same subnet will |
+ | | |be rejected. Those commands are exposed via command channel |
+ | | |(JSON over unix sockets) and Control Agent (JSON over |
+ | | |RESTful interface). Additional commands and capabilities |
+ | | |related to host reservations will be added in the future. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Subnet Commands | Support |In deployments in which subnet configuration needs to be |
+ | | customers |frequently updated, it is a hard requirement that such |
+ | | (since 1.3) |updates be performed without the need for a full DHCP server|
+ | | |reconfiguration or restart. This hooks library allows for |
+ | | |incremental changes to the subnet configuration such as: |
+ | | |adding a subnet, removing a subnet. It also allows for |
+ | | |listing all available subnets and fetching detailed |
+ | | |information about a selected subnet. The commands exposed by|
+ | | |this library do not affect other subnets or configuration |
+ | | |parameters currently used by the server. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Lease Commands | Kea sources |The lease commands hook library offers a number of new |
+ | | (since 1.3) |commands used to manage leases. Kea provides a way to store |
+ | | |lease information in various backends: memfile, MySQL, |
+ | | |PostgreSQL and Cassandra. This library provides a unified |
+ | | |interface that can manipulate leases in an unified, safe |
+ | | |way. In particular, it allows: manipulate leases in memfile |
+ | | |while Kea is running, sanity check changes, check lease |
+ | | |existence and remove all leases belonging to specific |
+ | | |subnet. It can also catch more obscure errors, like adding a|
+ | | |lease with subnet-id that does not exist in the |
+ | | |configuration or configuring a lease to use an address that |
+ | | |is outside of the subnet to which it is supposed to belong. |
+ | | |It provides a way to manage user contexts associated with |
+ | | |leases. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | High | Kea sources |Minimizing a risk of DHCP service unavailability is achieved|
+ | Availability | (since 1.4) |by setting up a pair of the DHCP servers in a network. Two |
+ | | |modes of operation are supported. The first one is called |
+ | | |load balancing and is sometimes referred to as |
+ | | |active-active. Each server can handle selected group of |
+ | | |clients in this network or all clients, if it detects that |
+ | | |its partner has became unavailable. It is also possible to |
+ | | |designate one server to serve all DHCP clients, and leave |
+ | | |another server as "standby". This mode is called hot standby|
+ | | |and is sometimes referenced to as active-passive. This |
+ | | |server will activate its DHCP function when it detects that |
+ | | |its partner is not available. Such cooperation between the |
+ | | |DHCP servers requires that these servers constantly |
+ | | |communicate with each other to send updates about allocated |
+ | | |leases and to periodically test whether their partners are |
+ | | |still operational. The hook library also provides an ability|
+ | | |to send lease updates to external backup server, making it |
+ | | |much easier to have a replacement that is almost up to |
+ | | |date. The "libdhcp_ha" library provides such functionality |
+ | | |for Kea DHCP servers. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Statistics | Kea sources |The Statistics Commands library provides additional |
+ | Commands | (since 1.4) |commmands for retrieving accurate DHCP lease statistics for |
+ | | |Kea DHCP servers that share the same lease database. This |
+ | | |setup is common in deployments where DHCP service redundancy|
+ | | |is required and a shared lease database is used to avoid |
+ | | |lease data replication between the DHCP servers. A feature |
+ | | |was introduced in Kea 1.4.0 that allows tracking lease |
+ | | |allocations within the lease database, thus making the |
+ | | |statistics accessible to all connected DHCP servers. The |
+ | | |Statistics Commands hooks library utilizes this feature and |
+ | | |returns lease statistics for all subnets respectively. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | RADIUS | Support |The RADIUS Hook library allows Kea to interact with the |
+ | | customers |RADIUS servers using access and accounting mechanisms. The |
+ | | (since 1.4) |access mechanism may be used for access control, assigning |
+ | | |specific IPv4 or IPv6 addresses reserved by RADIUS, |
+ | | |dynamically assigning addresses from designated pools chosen|
+ | | |by RADIUS or rejecting the client's messages altogether. The|
+ | | |accounting mechanism allows RADIUS server to keep track of |
+ | | |device activity over time. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Host Cache | Support |Some of the database backends, such as RADIUS, are |
+ | | customers |considered slow and may take a long time to respond. Since |
+ | | (since 1.4) |Kea in general is synchronous, the backend performance |
+ | | |directly affects the DHCP performance. To minimize the |
+ | | |impact and improve performance, the Host Cache library |
+ | | |provides a way to cache responses from other hosts. This |
+ | | |includes negative caching, i.e. the ability to remember that|
+ | | |there is no client information in the database. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Class Commands | Support |This Class Cmds hooks library allows for adding, updating |
+ | | customers |deleting and fetching configured DHCP client classes without|
+ | | (since 1.5) |the need to restart the DHCP server. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | MySQL | Kea sources |The MySQL CB hooks library is an implementation of the Kea |
+ | Configuration | (since 1.6) |Configuration Backend for MySQL. It uses MySQL database as a|
+ | Backend | |repository for the Kea configuration information. The Kea |
+ | | |servers use this library to fetch their configurations. |
+ +-----------------+---------------+------------------------------------------------------------+
+ | Configuration | Support |The Configuration Backend Commands (CB Commands) hooks |
+ | Backend | customers |library implements a collection of commands to manage the |
+ | Commands | (since 1.6) |configuration information of the Kea servers in the |
+ | | |database. This library may only be used in conjuction with |
+ | | |one of the supported configuration backend implementations. |
+ +-----------------+---------------+------------------------------------------------------------+
ISC hopes to see more hooks libraries become available as time
progresses, developed both internally and externally. Since this list