dhcp Plugin
Purpose
The dhcp plugin for libcharon allows to forward requests for
virtual IP addresses to a DHCPv4 server.
The plugin is disabled by default and can be enabled with the
./configure option
--enable-dhcp
Behavior
When an IKEv2 client requests a virtual IP address
via a CP configuration payload, the plugin allows the daemon to forward this
request to a DHCP server. By default the plugin uses broadcasts, but a
designated DHCP server can be configured in
strongswan.conf.
The MAC address used in the DHCP request is either randomly generated or can
optionally be based on the IKEv2 identity of the client. DNS/WINS server
information is additionally served to clients if the DHCP server provides
such information.
In combination with the farp plugin this plugin lets a
road-warrior fully act as a client on the local LAN of the responder.
Configuration
The following entry in swanctl.conf enables
the plugin for a connection:
connections.<conn>.pools = dhcp
The dhcp plugin is configured using the following options in the
charon.plugins.dhcp
section of strongswan.conf:
| Key | Default | Description [Default] | 
|---|---|---|
force_server_address  | 
  | 
Always use the configured server address[1]  | 
identity_lease  | 
  | 
Derive user-defined MAC address from hash of IKE identity. The client identity
   | 
interface  | 
Interface name the plugin uses for address allocation. The default is to bind
 to any (  | 
|
server  | 
[→]  | 
  | 
use_server_port  | 
  | 
Use the   | 
dhcp.force_server_address and then set dhcp.server  to the local broadcast address, e.g. 192.168.0.255. That’s because some DHCP  daemons do not listen on the loopback interface and thus can’t be reached via  unicast (or even broadcast 255.255.255.255) from the same host.
DHCP server will always send packets to the  DHCP server port and if no process binds that port an ICMP port unreachable  message will be sent back that might be problematic for some DHCP servers. To  avoid that, enabling this option will cause the plugin to bind the DHCP server  port to send its requests when acting as relay agent. This is not necessary if  a DHCP server is already running on the same host and might even cause conflicts  and since the server port is already bound, ICMP messages should not be an  issue.