]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2078] Updated doc
authorFrancis Dupont <fdupont@isc.org>
Sun, 5 Sep 2021 12:03:59 +0000 (14:03 +0200)
committerRazvan Becheriu <razvan@isc.org>
Tue, 7 Sep 2021 09:45:43 +0000 (12:45 +0300)
13 files changed:
doc/examples/ddns/gss-tsig.json
doc/sphinx/arm/ddns.rst
doc/sphinx/arm/ext-gss-tsig.rst
src/share/api/api_files.mk
src/share/api/gss-tsig-get-all.json [new file with mode: 0644]
src/share/api/gss-tsig-get.json [new file with mode: 0644]
src/share/api/gss-tsig-key-del.json [new file with mode: 0644]
src/share/api/gss-tsig-key-expire.json [new file with mode: 0644]
src/share/api/gss-tsig-key-get.json [new file with mode: 0644]
src/share/api/statistic-get-all.json
src/share/api/statistic-get.json
src/share/api/statistic-reset-all.json
src/share/api/statistic-reset.json

index 36b53b71ce19c663b8d01a25d6fbd991e1b54d4e..cad5024f58a51865797ed02eddde6b7eb8b47fd7 100644 (file)
@@ -77,6 +77,7 @@
             "servers": [
                 {
                     // First server (identification is required)
+                    "id": "server1",
                     "domain-names": [ ], // if not specified or empty, will
                                          // match all domains that want to
                                          // use this IP+port pair
@@ -90,6 +91,7 @@
                 {
                     // The second server (it has most of the parameters missing
                     // as those are using the defaults specified above)
+                    "id": "server2",
                     "ip-address": "192.0.2.2",
                     "port": 5300
                 }
     ]
 
     // Additional parameters, such as logging, control socket and
-    // others omited for clarity.
+    // others omitted for clarity.
 }
 
 }
index a108b3974093c3686989f30916ddeff69b949014..efa84dcf1f3635e5937e79d2d3530abd49392538 100644 (file)
@@ -771,11 +771,6 @@ The 172.88.99.10 server will use the foo TSIG key, 172.88.99.11 and
 User Contexts in DDNS
 ---------------------
 
-.. note::
-
-   User contexts were designed for hook libraries, which are not yet
-   supported for DHCP-DDNS server configuration.
-
 See :ref:`user-context` for additional background regarding the user
 context idea.
 
index 0e8d20890ad5b1c728a48572c622a93aada0ab5a..81a0015d3715cd1d4ebc8461e294ebb109540f3a 100644 (file)
@@ -258,6 +258,7 @@ An excerpt from D2 server is provided below. More examples are available in the
                 "servers": [
                     {
                         // First server (identification is required)
+                        "id": "server1",
                         "domain-names": [ ], // if not specified or empty, will
                                              // match all domains that want to
                                              // use this IP+port pair
@@ -271,6 +272,7 @@ An excerpt from D2 server is provided below. More examples are available in the
                     {
                         // The second server (it has most of the parameters missing
                         // as those are using the defaults specified above)
+                        "id": "server2",
                         "ip-address": "192.0.2.2",
                         "port": 5300
                     }
@@ -280,7 +282,7 @@ An excerpt from D2 server is provided below. More examples are available in the
         ]
 
         // Additional parameters, such as logging, control socket and
-        // others omited for clarity.
+        // others omitted for clarity.
     }
 
     }
@@ -335,3 +337,87 @@ The parameters have the following meaning:
 
 - ``tkey-lifetime`` determines the lifetime of GSS-TSIG keys in the
   TKEY protocol, expressed in seconds. Default value is 3600 (one hour).
+
+- ``user-context`` is an optional parameter (see :ref:`user-context`
+  for a general description of user contexts in Kea).
+
+- ``comment`` is allowed but currently ignored.
+
+- ``servers`` specifies the list of DNS servers where GSS-TSIG is enabled.
+
+The server map parameters are:
+
+- ``id`` assigns an identifier to a DNS server. It is used for statistics
+  and commands. It is required, must be not empty and unique.
+
+- ``domain-names`` governs the many to one relationship between D2 DNS
+  servers and GSS-TSIG DNS servers: for each domain name of this list,
+  a D2 DNS server for this domain with the IP address and port is
+  looked for. An empty list (the default) means that all domains
+  match.
+
+- ``ip-address`` specifies the IP address at which the GSS-TSIG DNS server
+  listens for DDNS and TKEY requests. It is a mandatory parameter.
+
+- ``port`` specifies the DNS transport port at which the GSS-TSIG DNS server
+  listens for DDNS and TKEY requests. It defaults to 53.
+
+- ``server-principal`` is the Kerberos principal name of the DNS server
+  that will receive updates. The per server server principal takes
+  precedence. It is a mandatory parameter which must be specified at
+  least at the global or the server level.
+
+- ``client-principal`` is the Kerberos principal name of the Kea D2
+  service for this DNS server. The per server client principal takes
+  precedence. It is an optional parameter i.e. to not specify it at
+  both the global and the server level is accepted.
+
+- ``tkey-protocol`` determines which protocol is used to establish the
+  security context with the DNS server. The per server TKEY protocol
+  takes precedence. Default and supported values are the same as for
+  the global level parameter.
+
+- ``tkey-lifetime`` determines the lifetime of GSS-TSIG keys in the
+  TKEY protocol for the DNS server. The per server TKEY lifetime takes
+  precedence. Default and supported values are the same as for
+  the global level parameter.
+
+- ``user-context`` is an optional parameter (see :ref:`user-context`
+  for a general description of user contexts in Kea).
+
+- ``comment`` is allowed but currently ignored.
+
+.. _command-gss-tsig:
+
+GSS-TSIG Commands
+-----------------
+
+The GSS-TSIG hook library supports some commands.
+
+To be done (only anchors for external references are provided).
+
+.. _command-gss-tsig-get-all:
+
+The gss-tsig-get-all Command
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. _command-gss-tsig-get:
+
+The gss-tsig-get Command
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. _command-gss-tsig-key-get:
+
+The gss-tsig-key-get Command
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. _command-gss-tsig-key-expire:
+
+The gss-tsig-key-expire Command
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. _command-gss-tsig-key-del:
+
+The gss-tsig-key-del Command
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
index eaec3142f8f14e87cc0128fd5280ebe474889648..0603c845085a71de02fa13452e756aa7462f1fb5 100644 (file)
@@ -21,6 +21,11 @@ api_files += $(top_srcdir)/src/share/api/config-test.json
 api_files += $(top_srcdir)/src/share/api/config-write.json
 api_files += $(top_srcdir)/src/share/api/dhcp-disable.json
 api_files += $(top_srcdir)/src/share/api/dhcp-enable.json
+api_files += $(top_srcdir)/src/share/api/gss-tsig-get-all.json
+api_files += $(top_srcdir)/src/share/api/gss-tsig-get.json
+api_files += $(top_srcdir)/src/share/api/gss-tsig-key-del.json
+api_files += $(top_srcdir)/src/share/api/gss-tsig-key-expire.json
+api_files += $(top_srcdir)/src/share/api/gss-tsig-key-get.json
 api_files += $(top_srcdir)/src/share/api/ha-continue.json
 api_files += $(top_srcdir)/src/share/api/ha-heartbeat.json
 api_files += $(top_srcdir)/src/share/api/ha-maintenance-cancel.json
@@ -67,12 +72,12 @@ api_files += $(top_srcdir)/src/share/api/network6-list.json
 api_files += $(top_srcdir)/src/share/api/network6-subnet-add.json
 api_files += $(top_srcdir)/src/share/api/network6-subnet-del.json
 api_files += $(top_srcdir)/src/share/api/remote-class4-del.json
-api_files += $(top_srcdir)/src/share/api/remote-class4-get.json
 api_files += $(top_srcdir)/src/share/api/remote-class4-get-all.json
+api_files += $(top_srcdir)/src/share/api/remote-class4-get.json
 api_files += $(top_srcdir)/src/share/api/remote-class4-set.json
 api_files += $(top_srcdir)/src/share/api/remote-class6-del.json
-api_files += $(top_srcdir)/src/share/api/remote-class6-get.json
 api_files += $(top_srcdir)/src/share/api/remote-class6-get-all.json
+api_files += $(top_srcdir)/src/share/api/remote-class6-get.json
 api_files += $(top_srcdir)/src/share/api/remote-class6-set.json
 api_files += $(top_srcdir)/src/share/api/remote-global-parameter4-del.json
 api_files += $(top_srcdir)/src/share/api/remote-global-parameter4-get-all.json
diff --git a/src/share/api/gss-tsig-get-all.json b/src/share/api/gss-tsig-get-all.json
new file mode 100644 (file)
index 0000000..bb3d33f
--- /dev/null
@@ -0,0 +1,42 @@
+{
+    "access": "read",
+    "avail": "2.0.0",
+    "brief": [ "This command lists GSS-TSIG servers." ],
+    "cmd-syntax": [
+        "{",
+        "    \"command\": \"gss-tsig-get-all\"",
+        "}"
+    ],
+    "description": [ "See <xref linkend=\"command-gss-tsig-get-all\"/>" ],
+    "hook": "gss_tsig",
+    "name": "gss-tsig-get-all",
+    "support": [ "kea-dhcp-ddns" ],
+    "resp-syntax": [
+        "{",
+        "    \"result\": 0,",
+        "    \"text\": \"1 GSS-TSIG servers\",",
+        "    \"arguments\": {",
+        "        \"gss-tsig-servers\": [",
+        "            {",
+        "                \"id\": \"foo\",",
+        "                \"ip-address\": \"192.1.2.3\",",
+        "                \"port\": 53,",
+        "                \"server-principal\": \"DNS/foo.com@FOO.COM\",",
+        "                \"key-name-suffix\": \"foo.com.\",",
+        "                \"tkey-lifetime\": 3600,",
+        "                \"tkey-protocol\": \"TCP\",",
+        "                \"keys\": [",
+        "                    \"{",
+        "                        \"name\": \"1234.sig-foo.com.\",",
+        "                        \"inception-date\": \"2021-09-05 12:23:36.281176\",",
+        "                        \"expire-date\": \"2021-09-05 13:23:36.281176\",",
+        "                        \"status\": \"not yet ready\",",
+        "                        \"tkey-exchange\": true",
+        "                    }",
+        "                ]",
+        "            }",
+        "        ]",
+        "    }",
+        "}"
+    ]
+}
diff --git a/src/share/api/gss-tsig-get.json b/src/share/api/gss-tsig-get.json
new file mode 100644 (file)
index 0000000..563767c
--- /dev/null
@@ -0,0 +1,43 @@
+{
+    "access": "read",
+    "avail": "2.0.0",
+    "brief": [
+        "This command retrieves information about the specified GSS-TSIG server."
+    ],
+    "cmd-syntax": [
+        "{",
+        "    \"command\": \"gss-tsig-get\",",
+        "    \"arguments\": {",
+        "        \"id\": \"foo\"",
+        "    }",
+        "}"
+    ],
+    "description": [ "See <xref linkend=\"command-gss-tsig-get\"/>" ],
+    "hook": "gss_tsig",
+    "name": "gss-tsig-get",
+    "support": [ "kea-dhcp-ddns" ],
+    "resp-syntax": [
+        "{",
+        "    \"result\": 0,",
+        "    \"text\": \"GSS-TSIG server[foo] found\",",
+        "    \"arguments\": {",
+        "        \"id\": \"foo\",",
+        "        \"ip-address\": \"192.1.2.3\",",
+        "        \"port\": 53,",
+        "        \"server-principal\": \"DNS/foo.com@FOO.COM\",",
+        "        \"key-name-suffix\": \"foo.com.\",",
+        "        \"tkey-lifetime\": 3600,",
+        "        \"tkey-protocol\": \"TCP\",",
+        "        \"keys\": [",
+        "            \"{",
+        "                \"name\": \"1234.sig-foo.com.\",",
+        "                \"inception-date\": \"2021-09-05 12:23:36.281176\",",
+        "                \"expire-date\": \"2021-09-05 13:23:36.281176\",",
+        "                \"status\": \"not yet ready\",",
+        "                \"tkey-exchange\": true",
+        "            }",
+        "        ]",
+        "    }",
+        "]"
+    ]
+}
diff --git a/src/share/api/gss-tsig-key-del.json b/src/share/api/gss-tsig-key-del.json
new file mode 100644 (file)
index 0000000..115f56c
--- /dev/null
@@ -0,0 +1,23 @@
+{
+    "access": "write",
+    "avail": "2.0.0",
+    "brief": [ "This command deletes the specified GSS-TSIG key." ],
+    "cmd-syntax": [
+        "{",
+        "    \"command\": \"gss-tsig-key-del\",",
+        "    \"arguments\": {",
+        "        \"key-name\": \"1234.sig-foo.com.\"",
+        "    }",
+        "}"
+    ],
+    "description": [ "See <xref linkend=\"command-gss-tsig-key-del\"/>" ],
+    "hook": "gss_tsig",
+    "name": "gss-tsig-key-del",
+    "support": [ "kea-dhcp-ddns" ],
+    "resp-syntax": [
+        "{",
+        "    \"result\": 0,",
+        "    \"text\": \"GSS-TSIG key '1234.sig-foo.com.' deleted\"",
+        "}"
+    ]
+}
diff --git a/src/share/api/gss-tsig-key-expire.json b/src/share/api/gss-tsig-key-expire.json
new file mode 100644 (file)
index 0000000..7dff6e5
--- /dev/null
@@ -0,0 +1,23 @@
+{
+    "access": "write",
+    "avail": "2.0.0",
+    "brief": [ "This command expires the specified GSS-TSIG key." ],
+    "cmd-syntax": [
+        "{",
+        "    \"command\": \"gss-tsig-key-expire\",",
+        "    \"arguments\": {",
+        "        \"key-name\": \"1234.sig-foo.com.\"",
+        "    }",
+        "}"
+    ],
+    "description": [ "See <xref linkend=\"command-gss-tsig-key-expire\"/>" ],
+    "hook": "gss_tsig",
+    "name": "gss-tsig-key-expire",
+    "support": [ "kea-dhcp-ddns" ],
+    "resp-syntax": [
+        "{",
+        "    \"result\": 0,",
+        "    \"text\": \"GSS-TSIG key '1234.sig-foo.com.' expired\"",
+        "}"
+    ]
+}
diff --git a/src/share/api/gss-tsig-key-get.json b/src/share/api/gss-tsig-key-get.json
new file mode 100644 (file)
index 0000000..480579e
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "access": "read",
+    "avail": "2.0.0",
+    "brief": [
+        "This command retrieves information about the specified GSS-TSIG key."
+    ],
+    "cmd-syntax": [
+        "{",
+        "    \"command\": \"gss-tsig-key-get\",",
+        "    \"arguments\": {",
+        "        \"key-name\": \"1234.sig-foo.com.\"",
+        "    }",
+        "}"
+    ],
+    "description": [ "See <xref linkend=\"command-gss-tsig-key-get\"/>" ],
+    "hook": "gss_tsig",
+    "name": "gss-tsig-key-get",
+    "support": [ "kea-dhcp-ddns" ],
+    "resp-syntax": [
+        "{",
+        "    \"result\": 0,",
+        "    \"text\": \"GSS-TSIG key '1234.sig-foo.com.' found\"",
+        "    \"arguments\": {",
+        "        \"name\": \"1234.sig-foo.com.\",",
+        "        \"inception-date\": \"2021-09-05 12:23:36.281176\",",
+        "        \"expire-date\": \"2021-09-05 13:23:36.281176\",",
+        "        \"status\": \"not yet ready\",",
+        "        \"tkey-exchange\": true",
+        "    }",
+        "}"
+    ]
+}
index f7c15768f01d0566563d2fe37dcee8068ed685b5..821d0529894caa0009d04d7cd8717235f18e2026 100644 (file)
@@ -35,6 +35,7 @@
     "name": "statistic-get-all",
     "support": [
         "kea-dhcp4",
-        "kea-dhcp6"
+        "kea-dhcp6",
+        "kea-dhcp-ddns"
     ]
 }
index 57ad9aa8c98d28d42ae3b65f1971433598f407d5..b6c9cca08f7f9837541d87dd87a65ca4ec0974c5 100644 (file)
@@ -27,6 +27,7 @@
     "name": "statistic-get",
     "support": [
         "kea-dhcp4",
-        "kea-dhcp6"
+        "kea-dhcp6",
+        "kea-dhcp-ddns"
     ]
 }
index 708eefd2149b8ebaaf781101beedb1665851eed1..c8347de77ebe4acbd222ace971426508b82480e9 100644 (file)
@@ -17,6 +17,7 @@
     "name": "statistic-reset-all",
     "support": [
         "kea-dhcp4",
-        "kea-dhcp6"
+        "kea-dhcp6",
+        "kea-dhcp-ddns"
     ]
 }
index 95f1ea7a556f606b7fbe17bf547e41e2d31c1c0b..8a758f62d425048dbb891f865a611be4d203f343 100644 (file)
@@ -19,6 +19,7 @@
     "name": "statistic-reset",
     "support": [
         "kea-dhcp4",
-        "kea-dhcp6"
+        "kea-dhcp6",
+        "kea-dhcp-ddns"
     ]
 }