2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-30 05:27:55 +00:00

[3418] Remaining DHCPv4 sections converted to JSON

This commit is contained in:
Tomek Mrugalski 2014-06-16 16:32:26 +02:00
parent b397fe5202
commit 3aaabf0716
3 changed files with 297 additions and 192 deletions

View File

@ -107,7 +107,9 @@
context. For example, when discussing IPv6 subnets configuration in context. For example, when discussing IPv6 subnets configuration in
DHCPv6, only subnet6 parameters will be mentioned. It is implied that DHCPv6, only subnet6 parameters will be mentioned. It is implied that
remaining elements (global that holds Dhcp6, Logging and possibly remaining elements (global that holds Dhcp6, Logging and possibly
DhcpDdns) are present, but are omitted for clarity. </para> DhcpDdns) are present, but are omitted for clarity. Usually, locations
where extra parameters may appear are denoted with ellipsis (triple
dot).</para>
</section> </section>
<section> <section>

View File

@ -818,13 +818,18 @@ to temporary add asterisk and retain the list of interface names.
<para> <para>
The values of the option are set as follows: The values of the option are set as follows:
<screen> <screen>
&gt; <userinput>config add Dhcp4/option-data</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/option-data[0]/name "bar"</userinput> "option-data": [
&gt; <userinput>config set Dhcp4/option-data[0]/space "dhcp4"</userinput> {
&gt; <userinput>config set Dhcp4/option-data[0]/code 223</userinput> <userinput>"name": "bar",
&gt; <userinput>config set Dhcp4/option-data[0]/csv-format true</userinput> "space": "dhcp4",
&gt; <userinput>config set Dhcp4/option-data[0]/data "192.0.2.100, 123, true, Hello World"</userinput> "code": 223,
&gt; <userinput>config commit</userinput></screen> "csv-format": true,
"data": "192.0.2.100, 123, true, Hello World"</userinput>
}
],
...
}</screen>
"csv-format" is set "true" to indicate that the "data" field comprises a command-separated "csv-format" is set "true" to indicate that the "data" field comprises a command-separated
list of values. The values in the "data" must correspond to the types set in list of values. The values in the "data" must correspond to the types set in
the "record-types" field of the option definition. the "record-types" field of the option definition.
@ -857,37 +862,51 @@ to temporary add asterisk and retain the list of interface names.
<para> <para>
The first step is to define the format of the option: The first step is to define the format of the option:
<screen> <screen>
&gt; <userinput>config add Dhcp4/option-def</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/option-def[0]/name "foo"</userinput> "option-def": [
&gt; <userinput>config set Dhcp4/option-def[0]/code 1</userinput> {
&gt; <userinput>config set Dhcp4/option-def[0]/space "vendor-encapsulated-options-space"</userinput> <userinput>"name": "foo",
&gt; <userinput>config set Dhcp4/option-def[0]/type "record"</userinput> "code": 1,
&gt; <userinput>config set Dhcp4/option-def[0]/array false</userinput> "space": "vendor-encapsulated-options-space",
&gt; <userinput>config set Dhcp4/option-def[0]/record-types "ipv4-address, uint16, string"</userinput> "type": "record",
&gt; <userinput>config set Dhcp4/option-def[0]/encapsulates ""</userinput> "array: false,
&gt; <userinput>config commit</userinput> "record-types": "ipv4-address, uint16, string",
</screen> "encapsulates": ""</userinput>
}
],
...
}</screen>
(Note that the option space is set to "vendor-encapsulated-options-space".) (Note that the option space is set to "vendor-encapsulated-options-space".)
Once the option format is defined, the next step is to define actual values Once the option format is defined, the next step is to define actual values
for that option: for that option:
<screen> <screen>
&gt; <userinput>config add Dhcp4/option-data</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/option-data[0]/name "foo"</userinput> "option-data": [
&gt; <userinput>config set Dhcp4/option-data[0]/space "vendor-encapsulated-options-space"</userinput> {
&gt; <userinput>config set Dhcp4/option-data[0]/code 1</userinput> <userinput>"name": "foo"
&gt; <userinput>config set Dhcp4/option-data[0]/csv-format true</userinput> "space": "vendor-encapsulated-options-space",
&gt; <userinput>config set Dhcp4/option-data[0]/data "192.0.2.3, 123, Hello World"</userinput> "code": 1,
&gt; <userinput>config commit</userinput></screen> "csv-format": true,
"data": "192.0.2.3, 123, Hello World"</userinput>
}
],
...
}</screen>
We also set up a dummy value for vendor-opts, the option that conveys our sub-option "foo". We also set up a dummy value for vendor-opts, the option that conveys our sub-option "foo".
This is required else the option will not be included in messages sent to the client. This is required else the option will not be included in messages sent to the client.
<screen> <screen>
&gt; <userinput>config add Dhcp4/option-data</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/option-data[1]/name "vendor-encapsulated-options"</userinput> "option-data": [
&gt; <userinput>config set Dhcp4/option-data[1]/space "dhcp4"</userinput> {
&gt; <userinput>config set Dhcp4/option-data[1]/code 43</userinput> <userinput>"name": "vendor-encapsulated-options"
&gt; <userinput>config set Dhcp4/option-data[1]/csv-format false</userinput> "space": "dhcp4",
&gt; <userinput>config set Dhcp4/option-data[1]/data ""</userinput> "code": 43,
&gt; <userinput>config commit</userinput></screen> "csv-format": false,
"data: ""</userinput>
}
],
...
}</screen>
</para> </para>
<note> <note>
@ -922,26 +941,29 @@ to temporary add asterisk and retain the list of interface names.
code 222 that conveys two sub-options with codes 1 and 2. code 222 that conveys two sub-options with codes 1 and 2.
First we need to define the new sub-options: First we need to define the new sub-options:
<screen> <screen>
&gt; <userinput>config add Dhcp4/option-def</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/option-def[0]/name "subopt1"</userinput> "option-def": [
&gt; <userinput>config set Dhcp4/option-def[0]/code 1</userinput> {
&gt; <userinput>config set Dhcp4/option-def[0]/space "isc"</userinput> <userinput>"name": "subopt1",
&gt; <userinput>config set Dhcp4/option-def[0]/type "ipv4-address"</userinput> "code": 1,
&gt; <userinput>config set Dhcp4/option-def[0]/record-types ""</userinput> "space": "isc",
&gt; <userinput>config set Dhcp4/option-def[0]/array false</userinput> "type": "ipv4-address".
&gt; <userinput>config set Dhcp4/option-def[0]/encapsulate ""</userinput> "record-types": "",
&gt; <userinput>config commit</userinput> "array": false,
"encapsulate ""
&gt; <userinput>config add Dhcp4/option-def</userinput> },
&gt; <userinput>config set Dhcp4/option-def[1]/name "subopt2"</userinput> {
&gt; <userinput>config set Dhcp4/option-def[1]/code 2</userinput> "name": "subopt2",
&gt; <userinput>config set Dhcp4/option-def[1]/space "isc"</userinput> "code": 2,
&gt; <userinput>config set Dhcp4/option-def[1]/type "string"</userinput> "space": "isc",
&gt; <userinput>config set Dhcp4/option-def[1]/record-types ""</userinput> "type": "string",
&gt; <userinput>config set Dhcp4/option-def[1]/array false</userinput> "record-types": "",
&gt; <userinput>config set Dhcp4/option-def[1]/encapsulate ""</userinput> "array": false
&gt; <userinput>config commit</userinput> "encapsulate": ""</userinput>
</screen> }
],
...
}</screen>
Note that we have defined the options to belong to a new option space Note that we have defined the options to belong to a new option space
(in this case, "isc"). (in this case, "isc").
</para> </para>
@ -949,16 +971,21 @@ to temporary add asterisk and retain the list of interface names.
The next step is to define a regular DHCPv4 option with our desired The next step is to define a regular DHCPv4 option with our desired
code and specify that it should include options from the new option space: code and specify that it should include options from the new option space:
<screen> <screen>
&gt; <userinput>add Dhcp4/option-def</userinput> "Dhcp4": {
&gt; <userinput>set Dhcp4/option-def[2]/name "container"</userinput> "option-def": [
&gt; <userinput>set Dhcp4/option-def[2]/code 222</userinput> ...,
&gt; <userinput>set Dhcp4/option-def[2]/space "dhcp4"</userinput> {
&gt; <userinput>set Dhcp4/option-def[2]/type "empty"</userinput> <userinput>"name": "container",
&gt; <userinput>set Dhcp4/option-def[2]/array false</userinput> "code": 222,
&gt; <userinput>set Dhcp4/option-def[2]/record-types ""</userinput> "space": "dhcp4",
&gt; <userinput>set Dhcp4/option-def[2]/encapsulate "isc"</userinput> "type": "empty",
&gt; <userinput>commit</userinput> "array": false,
</screen> "record-types": "",
"encapsulate": "isc"</userinput>
}
],
...
}</screen>
The name of the option space in which the sub-options are defined The name of the option space in which the sub-options are defined
is set in the "encapsulate" field. The "type" field is set to "empty" is set in the "encapsulate" field. The "type" field is set to "empty"
to indicate that this option does not carry any data other than to indicate that this option does not carry any data other than
@ -967,29 +994,32 @@ to temporary add asterisk and retain the list of interface names.
<para> <para>
Finally, we can set values for the new options: Finally, we can set values for the new options:
<screen> <screen>
&gt; <userinput>config add Dhcp4/option-data</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/option-data[0]/name "subopt1"</userinput> "option-data": [
&gt; <userinput>config set Dhcp4/option-data[0]/space "isc"</userinput> {
&gt; <userinput>config set Dhcp4/option-data[0]/code 1</userinput> <userinput>"name": "subopt1",
&gt; <userinput>config set Dhcp4/option-data[0]/csv-format true</userinput> "space": "isc",
&gt; <userinput>config set Dhcp4/option-data[0]/data "192.0.2.3"</userinput> "code": 1,
&gt; <userinput>config commit</userinput> "csv-format": true,
<userinput></userinput> "data": "192.0.2.3"</userinput>
&gt; <userinput>config add Dhcp4/option-data</userinput> },
&gt; <userinput>config set Dhcp4/option-data[1]/name "subopt2"</userinput> }
&gt; <userinput>config set Dhcp4/option-data[1]/space "isc"</userinput> <userinput>"name": "subopt2",
&gt; <userinput>config set Dhcp4/option-data[1]/code 2</userinput> "space": "isc",
&gt; <userinput>config set Dhcp4/option-data[1]/csv-format true</userinput> "code": 2,
&gt; <userinput>config set Dhcp4/option-data[1]/data "Hello world"</userinput> "csv-format": true,
&gt; <userinput>config commit</userinput> "data": "Hello world"</userinput>
<userinput></userinput> },
&gt; <userinput>config add Dhcp4/option-data</userinput> {
&gt; <userinput>config set Dhcp4/option-data[2]/name "container"</userinput> <userinput>"name": "container",
&gt; <userinput>config set Dhcp4/option-data[2]/space "dhcp4"</userinput> "space": "dhcp4",
&gt; <userinput>config set Dhcp4/option-data[2]/code 222</userinput> "code": 222,
&gt; <userinput>config set Dhcp4/option-data[2]/csv-format true</userinput> "csv-format": true,
&gt; <userinput>config set Dhcp4/option-data[2]/data ""</userinput> "data": ""</userinput>
&gt; <userinput>config commit</userinput> }
],
...
}
</screen> </screen>
Even though the "container" option does not carry any data except Even though the "container" option does not carry any data except
sub-options, the "data" field must be explicitly set to an empty value. sub-options, the "data" field must be explicitly set to an empty value.
@ -1075,11 +1105,16 @@ to temporary add asterisk and retain the list of interface names.
VENDOR_CLASS_docsis3.0 are allowed to use this subnet. Such a VENDOR_CLASS_docsis3.0 are allowed to use this subnet. Such a
configuration can be achieved in the following way: configuration can be achieved in the following way:
<screen> <screen>
&gt; <userinput>config add Dhcp4/subnet4</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/subnet4[0]/subnet "192.0.2.0/24"</userinput> "subnet4": [
&gt; <userinput>config set Dhcp4/subnet4[0]/pool [ "192.0.2.10 - 192.0.2.20" ]</userinput> {
&gt; <userinput>config set Dhcp4/subnet4[0]/client-class "VENDOR_CLASS_docsis3.0"</userinput> <userinput>subnet: "192.0.2.0/24",
&gt; <userinput>config commit</userinput></screen> "pool": [ "192.0.2.10 - 192.0.2.20" ],
"client-class": "VENDOR_CLASS_docsis3.0"</userinput>
}
],
...
}</screen>
</para> </para>
<para> <para>
@ -1107,24 +1142,29 @@ to temporary add asterisk and retain the list of interface names.
</orderedlist> </orderedlist>
The parameters for controlling the generation of NCRs for submission to D2 The parameters for controlling the generation of NCRs for submission to D2
are contained in the "dhcp-ddns" section of the b10-dhcp4 server are contained in the "dhcp-ddns" section of the b10-dhcp4 server
configuration. The default values for this section appears as follows: configuration. The default values for this section appear as follows:
<screen> <screen>
&gt; <userinput>config show Dhcp4/dhcp-ddns</userinput> "Dhcp4": {
Dhcp4/dhcp-ddns/enable-updates true boolean "dhcp-ddns": {
Dhcp4/dhcp-ddns/server-ip "127.0.0.1" string <userinput>"enable-updates": true,
Dhcp4/dhcp-ddns/server-port 53001 integer "server-ip": "127.0.0.1",
Dhcp4/dhcp-ddns/sender-ip "" string "server-port": 53001,
Dhcp4/dhcp-ddns/sender-port 0 integer "sender-ip": "",
Dhcp4/dhcp-ddns/max-queue-size 1024 integer "sender-port: 0,
Dhcp4/dhcp-ddns/ncr-protocol "UDP" string "max-queue-size": 1024,
Dhcp4/dhcp-ddns/ncr-format "JSON" string "ncr-protocol": "UDP",
Dhcp4/dhcp-ddns/override-no-update false boolean "ncr-format": "JSON",
Dhcp4/dhcp-ddns/override-client-update false boolean "override-no-update": false,
Dhcp4/dhcp-ddns/replace-client-name false boolean "override-client-update": false,
Dhcp4/dhcp-ddns/generated-prefix "myhost" string "replace-client-name": false,
Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string "generated-prefix": "myhost",
"qualifying-suffix": "example.com"</userinput>
},
...
}
</screen> </screen>
</para> </para>
<!-- this paragraph no longer applies as we don't have default values
<para> <para>
The "enable-updates" parameter determines whether or not b10-dhcp4 will The "enable-updates" parameter determines whether or not b10-dhcp4 will
generate NCRs. By default, this value is false hence DDNS updates are generate NCRs. By default, this value is false hence DDNS updates are
@ -1133,7 +1173,7 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
<screen> <screen>
&gt; <userinput>config set Dhcp4/dhcp-ddns/enable-updates true</userinput> &gt; <userinput>config set Dhcp4/dhcp-ddns/enable-updates true</userinput>
&gt; <userinput>config commit</userinput> &gt; <userinput>config commit</userinput>
</screen> </screen> -->
<section id="dhcpv4-d2-io-config"> <section id="dhcpv4-d2-io-config">
<title>DHCP-DDNS Server Connectivity</title> <title>DHCP-DDNS Server Connectivity</title>
<para> <para>
@ -1182,12 +1222,17 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
all of the default values mentioned above should be sufficient. all of the default values mentioned above should be sufficient.
If, however, D2 has been configured to listen on a different address or If, however, D2 has been configured to listen on a different address or
port, these values must altered accordingly. For example, if D2 has been port, these values must altered accordingly. For example, if D2 has been
configured to listen on 198.162.1.10 port 900, the following commands configured to listen on 192.168.1.10 port 900, the following commands
would be required: would be required:
<screen> <screen>
&gt; <userinput>config set Dhcp4/dhcp-ddns/server-ip "198.162.1.10"</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/dhcp-ddns/server-port 900</userinput> "dhcp-ddns: {
&gt; <userinput>config commit</userinput> <userinput>"server-ip": "192.168.1.10",
"server-port": 900</userinput>,
...
},
...
}
</screen> </screen>
</para> </para>
</section> </section>
@ -1289,11 +1334,17 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
will be dropped by the b10-dhcp4.) will be dropped by the b10-dhcp4.)
</para> </para>
<para> <para>
To override client delegation, issue the following commands: To override client delegation, set the following values in your configuration
file:
</para> </para>
<screen> <screen>
&gt; <userinput>config set Dhcp4/dhcp-ddns/override-client-update true</userinput> "Dhcp4": {
&gt; <userinput>config commit</userinput> "dhcp-ddns": {
<userinput>"override-client-update": true</userinput>,
...
},
...
}
</screen> </screen>
<para> <para>
The third row in the table above describes the case in which the client The third row in the table above describes the case in which the client
@ -1307,8 +1358,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
To override client delegation, issue the following commands: To override client delegation, issue the following commands:
</para> </para>
<screen> <screen>
&gt; <userinput>config set Dhcp4/dhcp-ddns/override-no-update true</userinput> "Dhcp4": {
&gt; <userinput>config commit</userinput> "dhcp-ddns": {
<userinput>"override-no-update": true</userinput>,
...
},
...
}
</screen> </screen>
<para> <para>
b10-dhcp4 will always generate DDNS update requests if the client request b10-dhcp4 will always generate DDNS update requests if the client request
@ -1354,8 +1410,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
parameter "replace-client-name" to true as follows: parameter "replace-client-name" to true as follows:
</para> </para>
<screen> <screen>
&gt; <userinput>config set Dhcp4/dhcp-ddns/replace-client-name true</userinput> "Dhcp4": {
&gt; <userinput>config commit</userinput> "dhcp-ddns": {
<userinput>"replace-client-name": true</userinput>,
...
},
...
}
</screen> </screen>
<para> <para>
The prefix used in the generation of a FQDN is specified by the The prefix used in the generation of a FQDN is specified by the
@ -1363,8 +1424,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
its value simply set it to the desired string: its value simply set it to the desired string:
</para> </para>
<screen> <screen>
&gt; <userinput>config set Dhcp4/dhcp-ddns/generated-prefix "another.host"</userinput> "Dhcp4": {
&gt; <userinput>config commit</userinput> "dhcp-ddns": {
<userinput>"generated-prefix": "another.host"</userinput>,
...
},
...
}
</screen> </screen>
<para> <para>
The suffix used when generating a FQDN or when qualifying a partial The suffix used when generating a FQDN or when qualifying a partial
@ -1373,8 +1439,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
string: string:
</para> </para>
<screen> <screen>
&gt; <userinput>config set Dhcp4/dhcp-ddns/generated-prefix "our.net"</userinput> "Dhcp4": {
&gt; <userinput>config commit</userinput> "dhcp-ddns": {
<userinput>"generated-prefix": "foo.example.org"</userinput>,
...
},
...
}
</screen> </screen>
</section> </section>
<para> <para>
@ -1394,6 +1465,58 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
</para> </para>
</section> </section>
<section id="dhcp4-next-server">
<title>Next server (siaddr)</title>
<para>In some cases, clients want to obtain configuration from the TFTP server.
Although there is a dedicated option for it, some devices may use siaddr field
in the DHCPv4 packet for that purpose. That specific field can be configured
using next-server directive. It is possible to define it in global scope or
for a given subnet only. If both are defined, subnet value takes precedence.
The value in subnet can be set to 0.0.0.0, which means that next-server should
not be sent. It may also be set to empty string, which means the same as if
it was not defined at all - use global value.
</para>
<screen>
"Dhcp4": {
<userinput>"next-server": "192.0.2.123"</userinput>,
...,
"subnet4": {
[
<userinput>"next-server": "192.0.2.234"</userinput>,
...
]
}
}
</screen>
</section>
<section id="dhcp4-echo-client-id">
<title>Echoing client-id (RFC6842)</title>
<para>Original DHCPv4 spec (RFC2131) states that the DHCPv4
server must not send back client-id options when responding to
clients. However, in some cases that confused clients that did
not have MAC address or client-id. See RFC6842 for details. That
behavior has changed with the publication of RFC6842 which
updated RFC2131. That update now states that the server must
send client-id if client sent it. That is the default behaviour
that Kea offers. However, in some cases older devices that do
not support RFC6842 may refuse to accept responses that include
client-id option. To enable backward compatibility, an optional
configuration parameter has been introduced. To configure it,
use the following commands:</para>
<screen>
"Dhcp4": {
<userinput>"echo-client-id": false</userinput>,
...
}
</screen>
</section>
thomson
</section> <!-- end of configuring b10-dhcp4 server section with many subsections --> </section> <!-- end of configuring b10-dhcp4 server section with many subsections -->
<section id="dhcp4-serverid"> <section id="dhcp4-serverid">
@ -1413,56 +1536,8 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
</para> </para>
</section> </section>
<section id="dhcp4-next-server">
<title>Next server (siaddr)</title>
<para>In some cases, clients want to obtain configuration from the TFTP server.
Although there is a dedicated option for it, some devices may use siaddr field
in the DHCPv4 packet for that purpose. That specific field can be configured
using next-server directive. It is possible to define it in global scope or
for a given subnet only. If both are defined, subnet value takes precedence.
The value in subnet can be set to 0.0.0.0, which means that next-server should
not be sent. It may also be set to empty string, which means the same as if
it was not defined at all - use global value.
</para>
<screen>
&gt; <userinput>config add Dhcp4/next-server</userinput>
&gt; <userinput>config set Dhcp4/next-server "192.0.2.123"</userinput>
&gt; <userinput>config commit</userinput>
<userinput></userinput>
&gt; <userinput>config add Dhcp4/subnet[0]/next-server</userinput>
&gt; <userinput>config set Dhcp4/subnet[0]/next-server "192.0.2.234"</userinput>
&gt; <userinput>config commit</userinput>
</screen>
</section>
<section id="dhcp4-echo-client-id">
<title>Echoing client-id (RFC6842)</title>
<para>Original DHCPv4 spec (RFC2131) states that the DHCPv4
server must not send back client-id options when responding to
clients. However, in some cases that confused clients that did
not have MAC address or client-id. See RFC6842 for details. That
behavior has changed with the publication of RFC6842 which
updated RFC2131. That update now states that the server must
send client-id if client sent it. That is the default behaviour
that Kea offers. However, in some cases older devices that do
not support RFC6842 may refuse to accept responses that include
client-id option. To enable backward compatibility, an optional
configuration parameter has been introduced. To configure it,
use the following commands:</para>
<screen>
&gt; <userinput>config add Dhcp4/echo-client-id</userinput>
&gt; <userinput>config set Dhcp4/echo-client-id False</userinput>
&gt; <userinput>config commit</userinput>
</screen>
</section>
<section id="dhcp4-subnet-selection"> <section id="dhcp4-subnet-selection">
<title>How DHCPv4 server selects subnet for a client</title> <title>How DHCPv4 server selects a subnet for the client</title>
<para> <para>
The DHCPv4 server differentiates between the directly connected clients, The DHCPv4 server differentiates between the directly connected clients,
clients trying to renew leases and clients sending their messages through clients trying to renew leases and clients sending their messages through
@ -1498,7 +1573,6 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
mechanism alters the way in which subnet is selected for the client, mechanism alters the way in which subnet is selected for the client,
depending on the classes that the client belongs to.</para> depending on the classes that the client belongs to.</para>
</note> </note>
</section>
<section id="dhcp4-relay-override"> <section id="dhcp4-relay-override">
<title>Using specific relay agent for a subnet</title> <title>Using specific relay agent for a subnet</title>
@ -1529,11 +1603,20 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
that came from a relay that has an address in 192.0.2.0/24 subnet. that came from a relay that has an address in 192.0.2.0/24 subnet.
It will also select that subnet for a relay with address 10.0.0.1. It will also select that subnet for a relay with address 10.0.0.1.
<screen> <screen>
&gt; <userinput>config add Dhcp4/subnet4</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/subnet4[0]/subnet "192.0.2.0/24"</userinput> "subnet4: [
&gt; <userinput>config set Dhcp4/subnet4[0]/pool [ "192.0.2.10 - 192.0.2.20" ]</userinput> {
&gt; <userinput>config set Dhcp4/subnet4[0]/relay/ip-address "10.0.0.1"</userinput> "subnet": "192.0.2.0/24",
&gt; <userinput>config commit</userinput></screen> "pool": [ "192.0.2.10 - 192.0.2.20" ],
<userinput>"relay": {
"ip-address": "10.0.0.1"
}</userinput>,
...
}
],
...
}
</screen>
</para> </para>
</section> </section>
@ -1556,19 +1639,33 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
subnet (192.0.2.0/24). The CMTS that acts as a relay an uses address subnet (192.0.2.0/24). The CMTS that acts as a relay an uses address
10.1.1.1. The following configuration can serve that configuration: 10.1.1.1. The following configuration can serve that configuration:
<screen> <screen>
&gt; <userinput>config add Dhcp4/subnet4</userinput> "Dhcp4": {
&gt; <userinput>config set Dhcp4/subnet4[0]/subnet "10.1.1.0/24"</userinput> "subnet4: [
&gt; <userinput>config set Dhcp4/subnet4[0]/pool [ "10.1.1.2 - 10.1.1.20" ]</userinput> {
&gt; <userinput>config set Dhcp4/subnet4[0]/client-class "docsis3.0"</userinput> "subnet": "10.1.1.0/24",
&gt; <userinput>config set Dhcp4/subnet4[0]/relay/ip-address "10.1.1.1"</userinput> "pool": [ "10.1.1.2 - 10.1.1.20" ],
&gt; <userinput>config add Dhcp4/subnet4</userinput> <userinput>"client-class" "docsis3.0",
&gt; <userinput>config set Dhcp4/subnet4[1]/subnet "192.0.2.0/24"</userinput> "relay": {
&gt; <userinput>config set Dhcp4/subnet4[1]/pool [ "192.0.2.10 - 192.0.2.20" ]</userinput> "ip-address": "10.1.1.1"
&gt; <userinput>config set Dhcp4/subnet4[1]/relay/ip-address "10.1.1.1"</userinput> }</userinput>
&gt; <userinput>config commit</userinput></screen> },
{
"subnet": "192.0.2.0/24",
"pool": [ "192.0.2.10 - 192.0.2.20" ],
<userinput>"relay": {
"ip-address": "10.1.1.1"
}</userinput>
}
],
...
}
</screen>
</para> </para>
</section> </section>
</section>
<section id="dhcp4-std"> <section id="dhcp4-std">
<title>Supported Standards</title> <title>Supported Standards</title>
<para>The following standards and draft standards are currently <para>The following standards and draft standards are currently
@ -1617,6 +1714,12 @@ Dhcp4/dhcp-ddns/qualifying-suffix "example.com" string
<xref linkend="ipv4-subnet-id"/>. <xref linkend="ipv4-subnet-id"/>.
</simpara> </simpara>
</listitem> </listitem>
<listitem>
<simpara>Host reservation (statis addresses) is not supported yet.</simpara>
</listitem>
<listitem>
<simpara>Full featured client classification is not supported yet.</simpara>
</listitem>
<listitem> <listitem>
<simpara> <simpara>
BOOTP (<ulink url="http://tools.ietf.org/html/rfc951">RFC 951</ulink>) BOOTP (<ulink url="http://tools.ietf.org/html/rfc951">RFC 951</ulink>)

View File

@ -49,8 +49,8 @@ $ <userinput>./configure [your extra parameters]</userinput></screen>
</listitem> </listitem>
<listitem> <listitem>
<para>Install it as root (by default to prefix <para>Install it (by default the installation prefix is <filename>/usr/local/</filename>,
<filename>/usr/local/</filename>): so you need root privileges for that step):
<screen>$ <userinput>make install</userinput></screen> <screen>$ <userinput>make install</userinput></screen>
</para> </para>
</listitem> </listitem>