123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- // This is an example configuration file for DHCPv4 server in Kea.
- // It covers some of the more advanced features. This file may not be coherent
- // as its main purpose is to demonstrate the features. They don't necessarily
- // have to make sense used together.
- // The new parser supports 3 comment styles:
- // This is C++ style.
- # This is a bash style.
- /* This is a C style comment. */
- /* C style comment
- can span
- multiple lines */
- { "Dhcp4":
- {
- // Kea is told to listen on ethX interface only.
- "interfaces-config": {
- "interfaces": [ "ethX" ],
- // This specifies what type of socket Kea uses. Currently supported
- // are 'raw' (which is the default) and 'udp'. Raw has the benefit
- // of receiving all traffic every time and a downside of bypassing
- // all firewall rules and having marginally bigger performance impact.
- // 'udp' is generally better if you have only relayed traffic. Kea
- // than opens up normal UDP socket and the kernel does all the
- // Ethernet/IP stack processing.
- "dhcp-socket-type": "udp"
- },
- // We need to specify the the database used to store leases. As of
- // September 2016, four database backends are supported: MySQL,
- // PostgreSQL, Cassandra, and the in-memory database, Memfile.
- // We'll use memfile because it doesn't require any prior set up.
- // For memfile, it's important to always specify lfc-interval, so
- // the lease file would not grow without bounds and be sanitized
- // once per hour.
- "lease-database": {
- "type": "memfile",
- "lfc-interval": 3600
- },
- // This defines a control socket. If defined, Kea will open a UNIX socket
- // and will listen for incoming commands. See section 15 of the Kea User's
- // Guide for list of supported commands.
- "control-socket": {
- "socket-type": "unix",
- "socket-name": "/tmp/kea4-ctrl-socket"
- },
- // Addresses will be assigned with a lifetime of 4000 seconds.
- // The client is told to start renewing after 1000 seconds. If the server
- // does not respond within 2000 seconds of the lease being granted, client
- // is supposed to start REBIND procedure (emergency renewal that allows
- // switching to a different server).
- "valid-lifetime": 4000,
- "renew-timer": 1000,
- "rebind-timer": 2000,
- // RFC6842 says that the server is supposed to echo back client-id option.
- // However, some older clients do not support this and are getting confused
- // when they get their own client-id. Kea can disable RFC6842 support.
- "echo-client-id": false,
- // Some clients don't use stable client identifier, but rather generate them
- // during each boot. This may cause a client that reboots frequently to get
- // multiple leases, which may not be desirable. As such, sometimes admins
- // prefer to tell their DHCPv4 server to ignore client-id value altogether
- // and rely exclusively on MAC address. This is a parameter that is defined
- // globally, but can be overridden on a subnet level.
- "match-client-id": true,
- // The following list defines subnets. Each subnet consists of at
- // least subnet and pool entries.
- "subnet4": [
- {
- "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ],
- "subnet": "192.0.2.0/24"
- },
- {
- // This particular subnet has match-client-id value changed.
- // This causes Kea to ignore client-id values in this subnet
- // and rely exclusively on MAC addresses.
- "pools": [ { "pool": "192.0.3.100 - 192.0.3.200" } ],
- "subnet": "192.0.3.0/24",
- "match-client-id": false
- },
- {
- "pools": [ { "pool": "192.0.4.1 - 192.0.4.254" } ],
- "subnet": "192.0.4.0/24",
- // Sometimes the relay may use an IPv4 address that does not match
- // the subnet. This is discouraged, but there are valid cases when it
- // makes sense. One case is when there is a shared subnet.
- "relay": {
- "ip-address": "192.168.1.1"
- }
- }
- ]
- },
- // The following configures logging. It assumes that messages with at least
- // informational level (info, warn, error and fatal) should be logged to stdout.
- "Logging": {
- "loggers": [
- {
- "name": "kea-dhcp4",
- "output_options": [
- {
- "output": "stdout"
- }
- ],
- "severity": "INFO"
- }
- ]
- }
- }
|