* plugins/dns: Implemented DHCPv6 support
Signed-off-by: Anatole Denis <anatole@unverle.fr>
* plugins/file: Remove hardcoded DNS servers
Those are handled by the DNS plugin and don't need to be hardcoded anymore
Signed-off-by: Anatole Denis <anatole@unverle.fr>
* plugins/dns: Only send option when requested
Both DHCP versions have a means for the client to specify what
additional information to send with replies. This adds logic to respect
that.
There is a difference between the protocols as to what happens when this
option doesn't exist. In DHCPv6, the option is mandatory. In DHCPv4 it
is not and indicates the server may send whatever it deems relevant
Signed-off-by: Anatole Denis <anatole@unverle.fr>
* Update dhcp library dependency
This pulls the enhancement from https://github.com/insomniacslk/dhcp/pull/315
generated by `go get github.com/insomniacslk/dhcp && go mod tidy`
Signed-off-by: Anatole Denis <anatole@unverle.fr>
This is useful to automatically provide context about what component of
the framework is emitting a log line.
Example output:
```
$ go build && sudo ./coredhcp
[2019-08-25T21:39:26+01:00] INFO plugins: Registering plugin "dns"
[2019-08-25T21:39:26+01:00] INFO plugins: Registering plugin "file"
[2019-08-25T21:39:26+01:00] INFO plugins: Registering plugin "netmask"
[2019-08-25T21:39:26+01:00] INFO plugins: Registering plugin "range"
[2019-08-25T21:39:26+01:00] INFO plugins: Registering plugin "router"
[2019-08-25T21:39:26+01:00] INFO plugins: Registering plugin "server_id"
[2019-08-25T21:39:26+01:00] INFO config: Loading configuration
[2019-08-25T21:39:26+01:00] INFO config: DHCPv4: found plugin `server_id` with 1 args: [10.10.10.1]
[2019-08-25T21:39:26+01:00] INFO config: DHCPv4: found plugin `dns` with 2 args: [8.8.8.8 8.8.4.4]
[2019-08-25T21:39:26+01:00] INFO config: DHCPv4: found plugin `router` with 1 args: [10.10.10.1]
[2019-08-25T21:39:26+01:00] INFO config: DHCPv4: found plugin `netmask` with 1 args: [255.255.255.0]
[2019-08-25T21:39:26+01:00] INFO config: DHCPv4: found plugin `range` with 4 args: [leases.txt 10.10.10.100 10.10.10.200 60s]
[2019-08-25T21:39:26+01:00] INFO coredhcp: Loading plugins...
[2019-08-25T21:39:26+01:00] INFO coredhcp: DHCPv4: loading plugin `server_id`
[2019-08-25T21:39:26+01:00] INFO plugins/server_id: plugins/server_id: loading `server_id` plugin for DHCPv4
[2019-08-25T21:39:26+01:00] INFO coredhcp: DHCPv4: loading plugin `dns`
[2019-08-25T21:39:26+01:00] INFO plugins/dns: loaded plugin for DHCPv4.
[2019-08-25T21:39:26+01:00] INFO plugins/dns: loaded 2 DNS servers.
[2019-08-25T21:39:26+01:00] INFO coredhcp: DHCPv4: loading plugin `router`
[2019-08-25T21:39:26+01:00] INFO plugins/router: plugins/router: loaded plugin for DHCPv4.
[2019-08-25T21:39:26+01:00] INFO plugins/router: plugins/router: loaded 1 router IP addresses.
[2019-08-25T21:39:26+01:00] INFO coredhcp: DHCPv4: loading plugin `netmask`
[2019-08-25T21:39:26+01:00] INFO plugins/netmask: plugins/netmask: loaded plugin for DHCPv4.
[2019-08-25T21:39:26+01:00] INFO plugins/netmask: plugins/netmask: loaded client netmask
[2019-08-25T21:39:26+01:00] INFO coredhcp: DHCPv4: loading plugin `range`
[2019-08-25T21:39:26+01:00] INFO plugins/range: plugins/range: reading leases from leases.txt
[2019-08-25T21:39:26+01:00] INFO plugins/range: plugins/range: loaded 1 leases from leases.txt
[2019-08-25T21:39:26+01:00] INFO coredhcp: Starting DHCPv4 listener on 0.0.0.0:67
[2019-08-25T21:39:26+01:00] INFO coredhcp: Waiting
```
Signed-off-by: Andrea Barberio <insomniac@slackware.it>