forked from Nativu5/coredhcp-rangeredis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.yml.example
179 lines (157 loc) · 8.14 KB
/
config.yml.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
# CoreDHCP configuration (yaml)
# In this file, lines starting with "## " represent default values,
# while uncommented lines are examples which have no default value
# The base level configuration has two sections, one for each protocol version
# (DHCPv4 and DHCPv6). There is no shared configuration at the moment.
# At a high level, both accept the same structure of configuration
# DHCPv6 configuration
# server6:
# listen is an optional section to specify how the server binds to an
# interface or address.
# If unset, the server will join the link-layer multicast group for all
# dhcp servers and relays on each interface, as well as the site-scoped
# multicast group for all dhcp servers.
# Note that in this default configuration the server will not handle
# unicast datagrams, and is equivalent to:
## listen:
## - "[ff02::1:2]"
## - "[ff05::1:3]"
# In general, listen takes a list of addresses, with the general syntax
# "[address%interface]:port", where each part is optional.
# Omitting the address results in the wildcard address being used
# Omitting the interface skips binding the listener to a specific interface
# and listens on all interfaces instead
# Omitting the port uses the default port for DHCPv6 (547)
#
# For example:
# - "[::]"
# Listen on the wildcard address on all interfaces on the default port.
# Note that no multicast group will be joined, so this will *not* work with
# most clients
#
# - ":44480"
# Listens on the wildcard address on a specific port. This can be used if
# you have a relay setup that can contact this server using unicast
#
# - "[::%eno1]"
# Listens on the wildcard address on one interface. This can be used if you
# want to spawn multiple servers with different configurations for multiple
# interfaces, behind a relay that can use unicast
#
# There are some special considerations for multicast:
# - "[ff02::1:2%eno1]"
# Listens on a link-layer multicast address bound to an interface. Also
# used to spawn multiple servers, but for clients on the same subnet
#
# - "[ff05::1:3%eno1]"
# Joining a multicast group with an interface allows to skip the default
# routing table when responding to clients, which can be useful if
# multicast is not otherwise configured system-wide
#
# - "[ff02::1:2]"
# Using a multicast address without an interface will be auto-expanded, so
# that it listens on all available interfaces
# plugins is a mandatory section, which defines how requests are handled.
# It is a list of maps, matching plugin names to their arguments.
# The order is meaningful, as incoming requests are handled by each plugin
# in turn. There is no default value for a plugin configuration, and a
# plugin that is not mentioned will not be loaded at all
#
# The following contains examples of the most common, builtin plugins.
# External plugins should document their arguments in their own
# documentations or readmes
# plugins:
# server_id is mandatory for RFC-compliant operation.
# - server_id: <DUID format> <LL address>
# The supported DUID formats are LL and LLT
# - server_id: LL 00:de:ad:be:ef:00
# file serves leases defined in a static file, matching link-layer addresses to IPs
# - file: <file name> [autorefresh]
# The file format is one lease per line, "<hw address> <IPv6>"
# When the 'autorefresh' argument is given, the plugin will try to refresh
# the lease mapping during runtime whenever the lease file is updated.
# - file: "leases.txt"
# dns adds information about available DNS resolvers to the responses
# - dns: <resolver IP> <... resolver IPs>
# - dns: 2001:4860:4860::8888 2001:4860:4860::8844
# nbp can add information about the location of a network boot program
# - nbp: <NBP URL>
# - nbp: "http://[2001:db8:a::1]/nbp"
# prefix provides prefix delegation.
# - prefix: <prefix> <allocation size>
# prefix is the prefix pool from which the allocations will be carved
# allocation size is the maximum size for prefixes that will be allocated to clients
# EG for allocating /64 or smaller prefixes within 2001:db8::/48 :
# - prefix: 2001:db8::/48 64
# DHCPv4 configuration
server4:
# listen is an optional section to specify how the server binds to an
# interface or address.
# If unset, the server will listen on the broadcast address on all
# interfaces, equivalent to:
## listen:
## - "0.0.0.0"
listen:
- "%ens19"
# In general, listen takes a list of addresses, with the general syntax
# "address%interface:port", where each part is optional.
# * Omitting the address results in the wildcard address being used
# * Omitting the interface skips binding the listener to a specific interface
# and listens on all interfaces instead
# * Omitting the port uses the default port for DHCPv4 (67)
#
# For example:
# - ":44480" Listens on a specific port.
# - "%eno1" Listens on the wildcard address on one interface.
# - "192.0.2.1%eno1:44480" with all parts
# plugins is a mandatory section, which defines how requests are handled.
# It is a list of maps, matching plugin names to their arguments.
# The order is meaningful, as incoming requests are handled by each plugin
# in turn. There is no default value for a plugin configuration, and a
# plugin that is not mentioned will not be loaded at all
#
# The following contains examples of the most common, builtin plugins.
# External plugins should document their arguments in their own
# documentations or readmes
plugins:
# lease_time sets the default lease time for advertised leases
# - lease_time: <duration>
# The duration can be given in any format understood by go's
# "ParseDuration": https://golang.org/pkg/time/#ParseDuration
- lease_time: 30m
# server_id advertises a DHCP Server Identifier, to help resolve
# situations where there are multiple DHCP servers on the network
# - server_id: <IP address>
# The IP address should be one address where this server is reachable
- server_id: 10.0.0.2
# dns advertises DNS resolvers usable by the clients on this network
# - dns: <IP address> <...IP addresses>
- dns: 8.8.8.8 8.8.4.4
# router is mandatory, and advertises the address of the default router
# for this network
# - router: <IP address>
- router: 10.0.0.1
# netmask advertises the network mask for the IPs assigned through this
# server
# - netmask: <network mask>
- netmask: 255.255.0.0
# range allocates leases within a range of IPs
# - range: <lease file> <start IP> <end IP> <lease duration>
# * the lease file is an initially empty file where the leases that are
# allocated to clients will be stored across server restarts
# * lease duration can be given in any format understood by go's
# "ParseDuration": https://golang.org/pkg/time/#ParseDuration
# - range: leases.txt 10.0.0.3 10.0.255.254 30m
# staticroute advertises additional routes the client should install in
# its routing table as described in RFC3442
# - staticroute: <destination>,<gateway> [<destination>,<gateway> ...]
# where destination should be in CIDR notation and gateway should be
# the IP address of the router through which the destination is reachable
# - staticroute: 10.20.20.0/24,10.10.10.1
# range-redis allocates leases within a range of IPs, however, use redis
# for lease storage.
# - range-redis: <uri> <start IP> <end IP> <lease duration>
# * the uri is in format redis://<user>:<pass>@localhost:6379/<db>
# * lease duration can be given in any format understood by go's
# "ParseDuration": https://golang.org/pkg/time/#ParseDuration
- range-redis: redis://192.168.120.1:6379/0 10.0.0.3 10.0.255.254 30m