mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 22:45:18 +00:00
Additional edits, Sphinx formatting
This commit is contained in:
committed by
Michal Nowikowski
parent
8c15d974bc
commit
2c8cfbfc7c
@@ -413,7 +413,7 @@ Notes:
|
|||||||
than one appear. For the vendor.enterprise and vendor-class.enterprise
|
than one appear. For the vendor.enterprise and vendor-class.enterprise
|
||||||
expressions, the value from the first instance is returned. Please
|
expressions, the value from the first instance is returned. Please
|
||||||
submit a feature request on the
|
submit a feature request on the
|
||||||
`Kea GitLab site <https://gitlab.isc.org/isc-projects/kea>`__ if you need
|
`Kea GitLab site <https://gitlab.isc.org/isc-projects/kea>`__ to request
|
||||||
support for multiple instances.
|
support for multiple instances.
|
||||||
|
|
||||||
.. table:: List of Classification Expressions
|
.. table:: List of Classification Expressions
|
||||||
@@ -543,7 +543,7 @@ The option data is a list which defines any options that should be
|
|||||||
assigned to members of this class.
|
assigned to members of this class.
|
||||||
|
|
||||||
The option definition is for DHCPv4 option 43
|
The option definition is for DHCPv4 option 43
|
||||||
(:ref:`dhcp4-vendor-opts` and DHCPv4 private options
|
(:ref:`dhcp4-vendor-opts`) and DHCPv4 private options
|
||||||
(:ref:`dhcp4-private-opts`).
|
(:ref:`dhcp4-private-opts`).
|
||||||
|
|
||||||
Usually the test expression is evaluated before subnet selection, but in
|
Usually the test expression is evaluated before subnet selection, but in
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
Congestion Handling in DHCPv4 and DHCPv6
|
Congestion Handling in DHCPv4 and DHCPv6
|
||||||
****************************************
|
****************************************
|
||||||
|
|
||||||
.. _congeston-handling-background:
|
.. _congestion-handling-background:
|
||||||
|
|
||||||
What is Congestion?
|
What is Congestion?
|
||||||
===================
|
===================
|
||||||
@@ -39,7 +39,7 @@ that were no longer relevant, or worse, were redundant. In other words,
|
|||||||
the packets waiting in the FIFO socket buffers became increasingly
|
the packets waiting in the FIFO socket buffers became increasingly
|
||||||
stale.
|
stale.
|
||||||
|
|
||||||
.. _congeston-handling-solution:
|
.. _congestion-handling-solution:
|
||||||
|
|
||||||
Configuring Congestion Handling
|
Configuring Congestion Handling
|
||||||
===============================
|
===============================
|
||||||
@@ -70,7 +70,8 @@ queue is implemented as a plug-in, which can replaced by a custom queue
|
|||||||
implementation via a hook library. This should make it straightforward
|
implementation via a hook library. This should make it straightforward
|
||||||
for interested parties to experiment with their own solutions.
|
for interested parties to experiment with their own solutions.
|
||||||
(Developers can refer to isc::dhcp::PacketQueue and
|
(Developers can refer to isc::dhcp::PacketQueue and
|
||||||
isc::dhcp::PacketQueueMgr, described in the Kea Developer's Guide).
|
isc::dhcp::PacketQueueMgr, described in the
|
||||||
|
`Kea Developer's Guide <https://jenkins.isc.org/job/Kea_doc/doxygen/index.html>`__.)
|
||||||
|
|
||||||
Packet queue behavior is configured in both kea-dhcp4 and kea-dhcp6
|
Packet queue behavior is configured in both kea-dhcp4 and kea-dhcp6
|
||||||
servers through an optional, top-level, configuration element,
|
servers through an optional, top-level, configuration element,
|
||||||
|
@@ -141,7 +141,7 @@ Upon startup, the module will load its configuration and begin listening
|
|||||||
for NCRs based on that configuration.
|
for NCRs based on that configuration.
|
||||||
|
|
||||||
During startup, the server will attempt to create a PID file of the form:
|
During startup, the server will attempt to create a PID file of the form:
|
||||||
[localstatedir]/[conf name].kea-dhcp-ddns.pid where:
|
[**localstatedir**]/[**conf name**].kea-dhcp-ddns.pid where:
|
||||||
|
|
||||||
- ``localstatedir`` - is the value as passed into the build configure
|
- ``localstatedir`` - is the value as passed into the build configure
|
||||||
script; it defaults to "/usr/local/var". Note that this value may be
|
script; it defaults to "/usr/local/var". Note that this value may be
|
||||||
@@ -560,7 +560,7 @@ This section describes how to add Reverse DDNS Domains; repeat these
|
|||||||
steps for each Reverse DDNS Domain desired. Each Reverse DDNS Domain has
|
steps for each Reverse DDNS Domain desired. Each Reverse DDNS Domain has
|
||||||
the following parameters:
|
the following parameters:
|
||||||
|
|
||||||
- ``name`` - the fully qualified reverse zone that this DDNS Domain can
|
- ``name`` - the fully qualified reverse zone that this DDNS domain can
|
||||||
update. This is the value used during reverse matching, which will
|
update. This is the value used during reverse matching, which will
|
||||||
compare it with a reversed version of the request's lease address.
|
compare it with a reversed version of the request's lease address.
|
||||||
The zone name should follow the appropriate standards; for example,
|
The zone name should follow the appropriate standards; for example,
|
||||||
|
@@ -58,7 +58,7 @@ configuration file. Since the DHCPv6 server opens privileged ports, it
|
|||||||
requires root access. This daemon must be run as root.
|
requires root access. This daemon must be run as root.
|
||||||
|
|
||||||
During startup, the server will attempt to create a PID file of the
|
During startup, the server will attempt to create a PID file of the
|
||||||
form: localstatedir]/[conf name].kea-dhcp6.pid where:
|
form: [**localstatedir**]/[**conf name**].kea-dhcp6.pid where:
|
||||||
|
|
||||||
- ``localstatedir``: The value as passed into the build configure
|
- ``localstatedir``: The value as passed into the build configure
|
||||||
script; it defaults to "/usr/local/var". Note that this value may be
|
script; it defaults to "/usr/local/var". Note that this value may be
|
||||||
@@ -571,7 +571,7 @@ be set to "mysql" or "postgresql".
|
|||||||
|
|
||||||
Next, the name of the database to hold the reservations must be set;
|
Next, the name of the database to hold the reservations must be set;
|
||||||
this is the name used when the lease database was created (see
|
this is the name used when the lease database was created (see
|
||||||
`:ref:`supported-databases` for instructions on how to set up the
|
:ref:`supported-databases` for instructions on how to set up the
|
||||||
desired database type):
|
desired database type):
|
||||||
|
|
||||||
::
|
::
|
||||||
@@ -1782,8 +1782,8 @@ last field is an array, i.e. it can contain more than one value, as in:
|
|||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
The new option content is one IPv6 address followed by one or more 16-
|
The new option content is one IPv6 address followed by one or more 16-bit
|
||||||
bit unsigned integers.
|
unsigned integers.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -2808,25 +2808,25 @@ are enabled. To set its value simply set it to the desired string:
|
|||||||
When qualifying a partial name, kea-dhcp6 will construct the name in the
|
When qualifying a partial name, kea-dhcp6 will construct the name in the
|
||||||
format:
|
format:
|
||||||
|
|
||||||
[candidate-name].[qualifying-suffix].
|
[**candidate-name**].[**qualifying-suffix**].
|
||||||
|
|
||||||
where candidate-name is the partial name supplied in the DHCPREQUEST.
|
where **candidate-name** is the partial name supplied in the DHCPREQUEST.
|
||||||
For example, if the FQDN domain name value is "some-computer" and the
|
For example, if the FQDN domain name value is "some-computer" and the
|
||||||
qualifying-suffix "example.com", the generated FQDN is:
|
qualifying-suffix "example.com", the generated FQDN is:
|
||||||
|
|
||||||
some-computer.example.com.
|
**some-computer.example.com.**
|
||||||
|
|
||||||
When generating the entire name, kea-dhcp6 will construct the name in
|
When generating the entire name, kea-dhcp6 will construct the name in
|
||||||
the format:
|
the format:
|
||||||
|
|
||||||
[generated-prefix]-[address-text].[qualifying-suffix].
|
[**generated-prefix**]-[**address-text**].[**qualifying-suffix**].
|
||||||
|
|
||||||
where address-text is simply the lease IP address converted to a
|
where **address-text** is simply the lease IP address converted to a
|
||||||
hyphenated string. For example, if the lease address is 3001:1::70E, the
|
hyphenated string. For example, if the lease address is 3001:1::70E, the
|
||||||
qualifying suffix "example.com", and the default value is used for
|
qualifying suffix "example.com", and the default value is used for
|
||||||
``generated-prefix``, the generated FQDN is:
|
``generated-prefix``, the generated FQDN is:
|
||||||
|
|
||||||
myhost-3001-1--70E.example.com.
|
**myhost-3001-1--70E.example.com.**
|
||||||
|
|
||||||
.. _host-name-sanitization:
|
.. _host-name-sanitization:
|
||||||
|
|
||||||
@@ -3198,7 +3198,7 @@ another.
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Global reservations, while useful in certain circumstances, have aspects
|
Global reservations, while useful in certain circumstances, have aspects
|
||||||
that must be given due consideration when using them, please see
|
that must be given due consideration. Please see
|
||||||
:ref:`reservation6-conflict` for more details.
|
:ref:`reservation6-conflict` for more details.
|
||||||
|
|
||||||
.. _reservation6-conflict:
|
.. _reservation6-conflict:
|
||||||
@@ -5499,7 +5499,7 @@ The following standards are currently supported:
|
|||||||
- *Dynamic Host Configuration Protocol for IPv6 (DHCPv6)*, `RFC
|
- *Dynamic Host Configuration Protocol for IPv6 (DHCPv6)*, `RFC
|
||||||
8415 <https://tools.ietf.org/html/rfc8415>`__: New DHCPv6 protocol
|
8415 <https://tools.ietf.org/html/rfc8415>`__: New DHCPv6 protocol
|
||||||
specification which obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242,
|
specification which obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242,
|
||||||
RFC 7083, RFC 7283, and RFC 7550
|
RFC 7083, RFC 7283, and RFC 7550.
|
||||||
|
|
||||||
.. _dhcp6-limit:
|
.. _dhcp6-limit:
|
||||||
|
|
||||||
|
@@ -141,7 +141,7 @@ the specified client class has been found:
|
|||||||
"text": "Class 'ipxe_efi_x64' deleted."
|
"text": "Class 'ipxe_efi_x64' deleted."
|
||||||
}
|
}
|
||||||
|
|
||||||
If the class doesn't exist, the result of 3 is returned.
|
If the class does not exist, the result of 3 is returned.
|
||||||
|
|
||||||
.. _command-class-list:
|
.. _command-class-list:
|
||||||
|
|
||||||
|
@@ -295,7 +295,8 @@ in normal operation serves no scopes.
|
|||||||
The scope names can be used to associate pools, subnets, and networks
|
The scope names can be used to associate pools, subnets, and networks
|
||||||
with certain servers, so only these servers can allocate addresses or
|
with certain servers, so only these servers can allocate addresses or
|
||||||
prefixes from those pools, subnets, or networks. This is done via the
|
prefixes from those pools, subnets, or networks. This is done via the
|
||||||
client classification mechanism (see below).
|
client classification mechanism (see :ref:`ha-load-balancing-advanced-config`
|
||||||
|
for more details).
|
||||||
|
|
||||||
.. _ha-scope-transition:
|
.. _ha-scope-transition:
|
||||||
|
|
||||||
@@ -394,13 +395,13 @@ with the only difference that ``this-server-name`` should be set to
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
Two hook libraries must be loaded to enable HA:
|
Two hooks libraries must be loaded to enable HA:
|
||||||
``libdhcp_lease_cmds.so`` and ``libdhcp_ha.so``. The latter implements
|
``libdhcp_lease_cmds.so`` and ``libdhcp_ha.so``. The latter implements
|
||||||
the HA feature, while the former enables control commands required by HA
|
the HA feature, while the former enables control commands required by HA
|
||||||
to fetch and manipulate leases on the remote servers. In the example
|
to fetch and manipulate leases on the remote servers. In the example
|
||||||
provided above, it is assumed that Kea libraries are installed in the
|
provided above, it is assumed that Kea libraries are installed in the
|
||||||
``/usr/lib`` directory. If Kea is not installed in the /usr directory,
|
``/usr/lib`` directory. If Kea is not installed in the /usr directory,
|
||||||
the hook libraries locations must be updated accordingly.
|
the hooks libraries locations must be updated accordingly.
|
||||||
|
|
||||||
The HA configuration is specified within the scope of ``libdhcp_ha.so``.
|
The HA configuration is specified within the scope of ``libdhcp_ha.so``.
|
||||||
Note that the top-level parameter ``high-availability`` is a list, even
|
Note that the top-level parameter ``high-availability`` is a list, even
|
||||||
@@ -803,8 +804,8 @@ less than 10000 lines.
|
|||||||
|
|
||||||
.. _ha-syncing-timeouts:
|
.. _ha-syncing-timeouts:
|
||||||
|
|
||||||
Discussion About Timeouts
|
Timeouts
|
||||||
-------------------------
|
--------
|
||||||
|
|
||||||
In deployments with a large number of clients connected to the network,
|
In deployments with a large number of clients connected to the network,
|
||||||
lease-database synchronization after a server failure may be a
|
lease-database synchronization after a server failure may be a
|
||||||
@@ -881,10 +882,10 @@ the Kea source at: ``src/lib/config/timeouts.h``.
|
|||||||
|
|
||||||
.. _ha-pause-state-machine:
|
.. _ha-pause-state-machine:
|
||||||
|
|
||||||
Pausing HA State Machine
|
Pausing the HA State Machine
|
||||||
------------------------
|
----------------------------
|
||||||
|
|
||||||
The high availability state machine includes many different states
|
The high-availability state machine includes many different states
|
||||||
described in detail in :ref:`ha-server-states`. The server
|
described in detail in :ref:`ha-server-states`. The server
|
||||||
enters each state when certain conditions are met, most often taking
|
enters each state when certain conditions are met, most often taking
|
||||||
into account the partner server's state. In some states the server
|
into account the partner server's state. In some states the server
|
||||||
|
@@ -44,7 +44,7 @@ any other hooks library; for example, this configuration could be used:
|
|||||||
}
|
}
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
Once loaded, the Host Cache hook library provides a number of new
|
Once loaded, the Host Cache hooks library provides a number of new
|
||||||
commands which can be used either over the control channel (see
|
commands which can be used either over the control channel (see
|
||||||
:ref:`ctrl-channel-client`) or the RESTful API (see
|
:ref:`ctrl-channel-client`) or the RESTful API (see
|
||||||
:ref:`agent-overview`). An example RESTful API client is described in
|
:ref:`agent-overview`). An example RESTful API client is described in
|
||||||
@@ -69,7 +69,7 @@ removed. An example usage looks as follows:
|
|||||||
|
|
||||||
This command will remove 1000 hosts. To delete all cached
|
This command will remove 1000 hosts. To delete all cached
|
||||||
hosts, please use cache-clear instead. The hosts are stored in FIFO
|
hosts, please use cache-clear instead. The hosts are stored in FIFO
|
||||||
order, so the oldest entries are always removed.
|
(first-in, first-out) order, so the oldest entries are always removed.
|
||||||
|
|
||||||
.. _command-cache-clear:
|
.. _command-cache-clear:
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
radius: RADIUS Server Support
|
radius: RADIUS Server Support
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
The RADIUS hook library allows Kea to interact with two types of RADIUS
|
The RADIUS hooks library allows Kea to interact with two types of RADIUS
|
||||||
servers: access and accounting. Although the most common DHCP and RADIUS
|
servers: access and accounting. Although the most common DHCP and RADIUS
|
||||||
integration is done on the DHCP relay-agent level (DHCP clients send
|
integration is done on the DHCP relay-agent level (DHCP clients send
|
||||||
DHCP packets to DHCP relays; those relays contact the RADIUS server and
|
DHCP packets to DHCP relays; those relays contact the RADIUS server and
|
||||||
@@ -538,8 +538,8 @@ received during the initial Discover/Offer exchanges and use it again
|
|||||||
later when sending accounting messages.
|
later when sending accounting messages.
|
||||||
|
|
||||||
This mechanism is implemented based on user context in host
|
This mechanism is implemented based on user context in host
|
||||||
reservations. (See :ref:`user-context` for details about user
|
reservations. (See :ref:`user-context` for details.)
|
||||||
context). The host cache mechanism allows the information retrieved by
|
The host cache mechanism allows the information retrieved by
|
||||||
RADIUS to be stored and later used for sending accounting and access
|
RADIUS to be stored and later used for sending accounting and access
|
||||||
queries to the RADIUS server. In other words, the host-cache mechanism
|
queries to the RADIUS server. In other words, the host-cache mechanism
|
||||||
is mandatory, unless administrators do not want RADIUS communication for messages
|
is mandatory, unless administrators do not want RADIUS communication for messages
|
||||||
|
@@ -127,7 +127,7 @@ some hooks may require their own dedicated switches, e.g. the RADIUS hook
|
|||||||
requires extra switches for FreeRADIUS. Please consult later sections of
|
requires extra switches for FreeRADIUS. Please consult later sections of
|
||||||
this chapter for details.
|
this chapter for details.
|
||||||
|
|
||||||
6. Rebuild Kea
|
6. Rebuild Kea.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -209,7 +209,9 @@ configuration would be:
|
|||||||
parameter entry for comments, as is the case with many configuration
|
parameter entry for comments, as is the case with many configuration
|
||||||
scopes.
|
scopes.
|
||||||
|
|
||||||
.. note:
|
..
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
In all versions of Kea since 1.1.0, libraries
|
In all versions of Kea since 1.1.0, libraries
|
||||||
are reloaded even if their lists have not changed,
|
are reloaded even if their lists have not changed,
|
||||||
@@ -1033,7 +1035,7 @@ client-id option) is ignored.
|
|||||||
|
|
||||||
The :ref:`lease-cmds` section describes commands used to retrieve,
|
The :ref:`lease-cmds` section describes commands used to retrieve,
|
||||||
update, and delete leases using various identifiers, such as "hw-address" and
|
update, and delete leases using various identifiers, such as "hw-address" and
|
||||||
"client-id". The lease_cmds library doesn't natively support querying
|
"client-id". The lease_cmds library does not natively support querying
|
||||||
for leases by flexible identifier. However, when ``replace-client-id`` is
|
for leases by flexible identifier. However, when ``replace-client-id`` is
|
||||||
set to "true", it makes it possible to query for leases using a value
|
set to "true", it makes it possible to query for leases using a value
|
||||||
derived from the flexible identifier. In the DHCPv4 case, the query will
|
derived from the flexible identifier. In the DHCPv4 case, the query will
|
||||||
@@ -1528,7 +1530,7 @@ page is received. Its response will look like this:
|
|||||||
This command is more complex than ``reservation-get-all``, but lets
|
This command is more complex than ``reservation-get-all``, but lets
|
||||||
users retrieve larger host reservations lists in smaller chunks. For
|
users retrieve larger host reservations lists in smaller chunks. For
|
||||||
small deployments with few reservations, it is easier to use
|
small deployments with few reservations, it is easier to use
|
||||||
``reservation-get-all`` (see :ref:`command-reservation-get-all`.
|
``reservation-get-all`` (see :ref:`command-reservation-get-all`).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -2085,7 +2087,7 @@ belonging to the subnet. The server may also be configured with static
|
|||||||
host reservations which are associated with this subnet. The current
|
host reservations which are associated with this subnet. The current
|
||||||
implementation of the ``subnet4-del`` command removes neither the leases nor
|
implementation of the ``subnet4-del`` command removes neither the leases nor
|
||||||
the host reservations associated with a subnet. This is the safest approach
|
the host reservations associated with a subnet. This is the safest approach
|
||||||
because the server doesn't lose track of leases assigned to the clients
|
because the server does not lose track of leases assigned to the clients
|
||||||
from this subnet. However, removal of the subnet may still cause
|
from this subnet. However, removal of the subnet may still cause
|
||||||
configuration errors and conflicts. For example: after removal of the
|
configuration errors and conflicts. For example: after removal of the
|
||||||
subnet, the server administrator may update a new subnet with the ID
|
subnet, the server administrator may update a new subnet with the ID
|
||||||
@@ -2141,7 +2143,7 @@ belonging to the subnet. The server may also be configured with static
|
|||||||
host reservations which are associated with this subnet. The current
|
host reservations which are associated with this subnet. The current
|
||||||
implementation of the ``subnet6-del`` command removes neither the leases nor
|
implementation of the ``subnet6-del`` command removes neither the leases nor
|
||||||
the host reservations associated with a subnet. This is the safest approach
|
the host reservations associated with a subnet. This is the safest approach
|
||||||
because the server doesn't lose track of leases assigned to the clients
|
because the server does not lose track of leases assigned to the clients
|
||||||
from this subnet. However, removal of the subnet may still cause
|
from this subnet. However, removal of the subnet may still cause
|
||||||
configuration errors and conflicts. For example: after removal of the
|
configuration errors and conflicts. For example: after removal of the
|
||||||
subnet, the server administrator may add a new subnet with the ID used
|
subnet, the server administrator may add a new subnet with the ID used
|
||||||
|
@@ -155,8 +155,8 @@ by the following diagram:
|
|||||||
|
|
||||||
|
|
||||||
| c1 | | c2 | |c3| | c4 |
|
| c1 | | c2 | |c3| | c4 |
|
||||||
|<---->|<---------->|<-->|<---------->|<>|<---------->|<-->|
|
|<---->|<---------->|<-->|<---------->|<>|<---------->|<-->|<--
|
||||||
---------------------------------------------------------------->
|
------------------------------------------------------------------>
|
||||||
| | 5s | | 5s | | 5s | | time
|
| | 5s | | 5s | | 5s | | time
|
||||||
|
|
||||||
This diagram shows four lease-reclamation cycles (c1 through c4) of
|
This diagram shows four lease-reclamation cycles (c1 through c4) of
|
||||||
@@ -322,9 +322,9 @@ should consider using host reservations or leases with very long lifetimes.
|
|||||||
|
|
||||||
.. _leases-reclamation-using-command:
|
.. _leases-reclamation-using-command:
|
||||||
|
|
||||||
Reclaiming Expired Leases with Command
|
Reclaiming Expired Leases via Command
|
||||||
======================================
|
=====================================
|
||||||
|
|
||||||
The *leases-reclaim* command can be used to trigger lease reclamation at
|
The ``leases-reclaim`` command can be used to trigger lease reclamation at
|
||||||
any time. Please consult the :ref:`command-leases-reclaim` section
|
any time. Please consult the :ref:`command-leases-reclaim` section
|
||||||
for details about using this command.
|
for details about using this command.
|
||||||
|
Reference in New Issue
Block a user