# This is an example configuration file for the DHCPv4 server in Kea. # The purpose of this example is to showcase how clients can be classified. { "Dhcp6": { # Kea is told to listen on ethX interface only. "interfaces-config": { "interfaces": [ "ethX" ] }, # Let's use the simplest backend: memfile and use some reasonable values # for timers. They are of no concern for the classification demonstration. "lease-database": { "type": "memfile", "lfc-interval": 3600 }, "renew-timer": 1000, "rebind-timer": 2000, "preferred-lifetime": 3000, "valid-lifetime": 4000, # This list defines several classes that incoming packets can be assigned to. # One packet can belong to zero or more classes. "client-classes": [ # The first class attempts to match all packets coming in on ethX interface. { "name": "lab", "test": "pkt.iface == 'ethX'", "option-data": [{ "name": "dns-servers", "data": "2001:db8::1" }] }, # Let's classify all incoming RENEW (message type 5) to a separate # class. { "name": "renews", "test": "pkt6.msgtype == 5" }, # Let's pick cable modems. In this simple example we'll assume the device # is a cable modem if it sends a vendor option with enterprise-id equal # to 4491. { "name": "cable-modems", "test": "vendor.enterprise == 4491" } ], # The following list defines subnets. Each subnet consists of at # least subnet and pool entries. "subnet6": [ { "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "client-class": "cable-modems", "interface": "ethX" }, # The following subnet contains a class reservation for a client using # DUID 01:02:03:04:05:0A:0B:0C:0D:0E. This client will always be assigned # to this class. { "pools": [ { "pool": "2001:db8:2::/80" } ], "subnet": "2001:db8:2::/64", "reservations": [ { "duid": "01:02:03:04:05:0A:0B:0C:0D:0E", "client-classes": [ "cable-modems" ] } ], "interface": "ethX" } ] }, # 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-dhcp6", "output_options": [ { "output": "stdout" } ], "debuglevel": 0, "severity": "INFO" } ] } }