--- /dev/null
+# This is an example configuration file for the DHCPv4 server of
+# DHCPv4-over-DHCPv6 tests in Kea.
+
+{
+
+# DHCPv4 conf
+"Dhcp4":
+{
+ "interfaces-config": {
+ "interfaces": [ "eno33554984" ]
+ },
+
+ "lease-database": {
+ "type": "memfile",
+ "name": "leases4"
+ },
+
+ "valid-lifetime": 4000,
+
+ "subnet4": [
+ { "subnet": "10.10.10.0/24",
+ # Don't forget the "4o6-" before "interface" here!
+ "4o6-interface": "eno33554984",
+ "4o6-subnet": "2001:db8:1:1::/64",
+ "pools": [ { "pool": "10.10.10.100 - 10.10.10.199" } ] }
+ ],
+
+ # This enables DHCPv4-over-DHCPv6 support
+ "dhcp4o6-port": 6767
+
+},
+
+"Logging":
+{
+ "loggers": [
+ {
+ "name": "kea-dhcp4",
+ "output_options": [
+ {
+ "output": "/tmp/kea-dhcp4.log"
+ }
+ ],
+ "severity": "DEBUG",
+ "debuglevel": 0
+ }
+ ]
+}
+
+}
--- /dev/null
+# This is an example configuration file for the DHCPv6 server of
+# DHCPv4-over-DHCPv6 tests in Kea.
+
+{
+
+# DHCPv6 conf
+"Dhcp6":
+{
+ "interfaces-config": {
+ # Enable unicast
+ "interfaces": [ "eno33554984/2001:db8:1:1::1" ]
+ },
+
+ "lease-database": {
+ "type": "memfile",
+ "name": "leases6"
+ },
+
+ "preferred-lifetime": 3000,
+ "valid-lifetime": 4000,
+ "renew-timer": 1000,
+ "rebind-timer": 2000,
+
+ "subnet6": [
+ { "subnet": "2001:db8:1:1::/64",
+ "interface": "eno33554984",
+ "pools": [ { "pool": "2001:db8:1:1::1:0/112" } ] }
+ ],
+
+ # This enables DHCPv4-over-DHCPv6 support
+ "dhcp4o6-port": 6767,
+
+ # Required by DHCPv4-over-DHCPv6 clients
+ "option-data": [
+ { "name": "dhcp4o6-server-addr",
+ "code": 88,
+ "space": "dhcp6",
+ "csv-format": true,
+ # Put the server address here
+ "data": "2001:db8:1:1::1" }
+ ]
+},
+
+"Logging":
+{
+ "loggers": [
+ {
+ "name": "kea-dhcp6",
+ "output_options": [
+ {
+ "output": "/tmp/kea-dhcp6.log"
+ }
+ ],
+ "severity": "DEBUG",
+ "debuglevel": 0
+ }
+ ]
+}
+
+}
"valid-lifetime": 4000,
"renew-timer": 1000,
"rebind-timer": 2000,
- "dhcp4o6-port": 6767,
# Next we setup the interfaces to be used by the server.
"interfaces-config": {
rebind procedures. Note that <command>renew-timer</command> and
<command>rebind-timer</command> are optional. If they are not specified the
client will select values for T1 and T2 timers according to the
-<ulink url="http://tools.ietf.org/html/rfc2131">RFC 2131</ulink>.
-<command>dhcp4o6-port</command> is used by the DHCPv4-over-DHCPv6 support
-(more in <xref linkend="dhcp4-dhcp4o6-config"/>).
-</para>
+<ulink url="http://tools.ietf.org/html/rfc2131">RFC 2131</ulink>.</para>
<para>The <command>interfaces-config</command> map specifies the server
configuration concerning the network interfaces, on which the server should
The <command>dhcp4o6-port</command> global parameter specifies
the first of the two consecutive ports of the UDP sockets used
for the communication between the DHCPv6 and DHCPv4 servers
- (DHCPv4-QUERY requests from the DHCPv6 side are received on the
- first socket, DHCPv4-RESPONSE replies are sent back on the
- second socket to the DHCPv6 side which forwards them to
- clients).
+ (the DHCPv4 server is bound to ::1 on the port 1 and connected
+ to ::1 on port).
</para>
<para>
- The subnet selection uses 3 specific configuration entries,
- the presence of any of these enables the subnet for
- DHCPv4-over-DHCPv6. These entries are:
+ With DHCPv4-over-DHCPv6 the DHCPv4 server does not have access
+ to several of the identifiers it would normally use to select a
+ subnet. In order to address this issue three new configuration
+ entires have been added. The presence of any of these allows the
+ subnet to be used with DHCPv4-over-DHCPv6. These entries are:
<itemizedlist>
<listitem>
- <simpara><command>4o6-interface</command>: Takes an interface name
- which is matched against the incoming interface name.
+ <simpara><command>4o6-subnet</command>: Takes a prefix (i.e., an
+ IPv6 address followed by a slash and a prefix length) which is
+ matched against the source address.
</simpara>
</listitem>
<listitem>
- <simpara><command>4o6-subnet</command>: Takes a prefix (i.e, an
- IPv6 address followed by a slash and a prefix length).
+ <simpara><command>4o6-interface-id</command>: Takes a relay interface
+ ID option value.
</simpara>
</listitem>
<listitem>
- <simpara><command>4o6-interface-id</command>: Takes a relay interface
- ID option value.
+ <simpara><command>4o6-interface</command>: Takes an interface name
+ which is matched against the incoming interface name.
</simpara>
</listitem>
</itemizedlist>
"subnet4": [
{ "subnet": "10.10.10.0/24",
- "4o6-interface": "eno33554984",
- "4o6-subnet": "2001:db8:1:1::/64",
+ <userinput>"4o6-interface": "eno33554984",</userinput>
+ <userinput>"4o6-subnet": "2001:db8:1:1::/64",</userinput>
"pools": [ { "pool": "10.10.10.100 - 10.10.10.199" } ] }
],
- "dhcp4o6-port": 6767
+ <userinput>"dhcp4o6-port": 6767</userinput>
},
"rebind-timer": 2000,
"preferred-lifetime": 3000,
"valid-lifetime": 4000,
- "dhcp4o6-port": 6767,
# Next we setup the interfaces to be used by the server.
"interfaces-config": {
allowed to keep old connections, but can't use this address for creating new
connections). <command>renew-timer</command> and <command>
rebind-timer</command> are values that define T1 and T2 timers that govern when
-the client will begin the renewal and rebind procedures.
-<command>dhcp4o6-port</command> is used by the DHCPv4-over-DHCPv6 support
-(more in <xref linkend="dhcp6-dhcp4o6-config"/>).
-</para>
+the client will begin the renewal and rebind procedures.</para>
<para>The <command>interfaces-config</command> map specifies the server
configuration concerning the network interfaces, on which the server should
There is only one specific parameter for the DHCPv6 side:
<command>dhcp4o6-port</command> which specifies the first of the
two consecutive ports of the UDP sockets used for the communication
- between the DHCPv6 and DHCPv4 servers (received DHCPv4-QUERY requests
- are forwarded to the DHCPv4 side on the first socket, DHCPv4-RESPONSE
- replies on the second socket are forwarded to clients).
+ between the DHCPv6 and DHCPv4 servers (the DHCPv6 server is bound
+ to ::1 on the port and connected to ::1 on port + 1).
</para>
<para>
Two other configuration entries are in general required: unicast traffic
"pools": [ { "pool": "2001:db8:1:1::1:0/112" } ] }
],
- "dhcp4o6-port": 6767,
+ <userinput>"dhcp4o6-port": 6767,
"option-data": [
{ "name": "dhcp4o6-server-addr",
"csv-format": true,
"data": "2001:db8:1:1::1" }
]
+</userinput>
},
"Logging":