Synopsis: iked.conf(5) needs clearer documentation about which configuration
payload options are supported when receiving configurations and their system
effects.
Description:
The documentation of configuration payloads in iked.conf(5) has two
issues:
1. Missing Implementation Details for Receiving Configuration:
- ikev2_pld_cp() only processes INTERNAL_IP4_ADDRESS and
INTERNAL_IP4_DNS
- However, ikev2_add_cp() shows code exists to send many more
options:
* INTERNAL_IP4_NETMASK
* INTERNAL_IP4_NBNS (NetBIOS/WINS)
* INTERNAL_IP4_DHCP
* INTERNAL_IP4_SERVER
- This creates an asymmetric implementation where iked can send
configurations it cannot process when received
2. Man Page Documentation Issues:
- No distinction made between sendable and receivable configurations
- System effects of supported configurations not documented
- No details about address configuration using host routes
- No description of DNS configuration via routing socket
- No mention of cleanup behavior
3. Real-world Impact:
- Users waste time configuring options that won't work
- Admins may not understand the network configuration effects
- Interoperability problems when peers send configurations that iked
ignores
- Log messages show iked receives but ignores valid configuration
data from peers
Fix:
Update man page to:
1. Split and clarify config vs request directives:
- Document which features only work when sending
- Document receive limitations
2. Document system effects of supported configurations:
- Explain host route address configuration
- Detail DNS configuration via routing socket
- Describe automatic cleanup behavior
Index: iked.conf.5
===================================================================
RCS file: /cvs/src/sbin/iked/iked.conf.5,v
diff -u -p -u -r1.98 iked.conf.5
--- iked.conf.5 13 Jul 2024 12:58:51 -0000 1.98
+++ iked.conf.5 4 Jan 2025 21:31:18 -0000
@@ -683,9 +683,9 @@ Use RSA public key authentication with S
.Pp
The default is to allow any signature authentication.
.Pp
+
.It Cm config Ar option address
-.It Cm request Ar option address
-Request or serve one or more optional configuration payloads (CP).
+Configure one or more configuration payloads (CP) to be sent to peers.
The configuration
.Ar option
can be one of the following with the expected address format:
@@ -716,6 +716,44 @@ included.
.It Ic access-server Ar address
The address of an internal remote access server.
.El
+.Pp
+.It Cm request Ar option address
+Request one or more configuration payloads (CP) from peers.
+Currently only the following options are supported when receiving
configuration:
+.Pp
+.Bl -tag -width Ds -compact -offset indent
+.It Ic address Ar address
+Request an IPv4 or IPv6 address on the internal network.
+Only the first received address will be used.
+When applied to an interface, addresses are configured as host routes
+(/32 for IPv4, /128 for IPv6) since netmasks are not negotiated
+in the IKEv2 configuration payload.
+.It Ic name-server Ar address
+Request the DNS server address (IPv4 or IPv6).
+Only the first received DNS server will be used.
+DNS configuration is applied system-wide via routing socket proposals
+which update the system resolver configuration.
+.El
+.Pp
+Other configuration requests may be sent but their values will be ignored if
received.
+Received configurations can be applied to an interface using the
+.Ic iface
+directive.
+When applied, the following changes occur:
+.Bl -dash -offset indent -compact
+.It
+Interface is configured with received address as a host route
+.It
+Routes are added for negotiated subnets using the virtual IP as gateway
+.It
+A direct route to the peer is established
+.It
+DNS configuration is applied via routing socket
+.El
+.Pp
+All configuration changes are automatically cleaned up when the SA is
terminated.
+The cleanup process removes configured addresses, routes, and DNS settings,
+restoring the original network configuration.
.Pp
.It Ic iface Ar interface
Enable automatic network configuration as initiator.