DHCPY6D-CLIENTS.CONF(5)

πŸ“¦
version 1.2.3 Β· 2 versions
  • 1.2.3 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 1.0.7 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ dhcpy6d-clients.conf(5) ✨

okay so welcome to DHCPY6D-CLIENTS.CONF(5), the manual page that is literally just the client config file for the DHCPv6 server dhcpy6d. bestie, if you're here it's because you have clients and you have opinions about how they get their addresses. let's go πŸ’…


🌸 DESCRIPTION 🌸

this file holds all the client configuration data, but only if you've set these options over in dhcpy6d.conf:

store_config = file

and

store_file_config = /path/to/dhcpy6d-clients.conf

if that's not your vibe, there's another way to store client config: database storage with SQLite or MySQL or PostgreSQL databases. the full tea is at https://dhcpy6d.de/documentation/config. 🫢

this file follows RFC 822 style, parsed by the Python ConfigParser module. very demure, very mindful.

some options allow multiple values. those have to be separated by spaces. no commas, no vibes-based guessing, just spaces. periodt. ✨


🏠 CLIENT SECTIONS 🏠

  • [host_name] β€” every client gets its own section, one section per client, no sharing. it might have multiple attributes, and which ones it needs depends on the identification and general address settings you configured back in dhcpy6d.conf. iykyk πŸ’–

πŸ‘‘ CLIENT ATTRIBUTES πŸ‘‘

every client section contains several attributes. hostname and class are mandatory. a third one should match at least one of the identification attributes configured in dhcpy6d.conf.

both of the following 2 attributes are necessary β€” the class and at least one of the others.

πŸ’œ Mandatory client attribute 'class' πŸ’œ

  • class = <class> β€” every single client needs a class, no exceptions, it's giving non-negotiable. if a client is identified, which addresses it gets depends on its class. that whole relationship is configured over in dhcpy6d.conf. πŸŽ€

πŸ¦‹ Semi-mandatory client attributes πŸ¦‹

depending on the identification in dhcpy6d.conf, clients need to have the corresponding attributes. at least one of them is needed.

  • mac = <mac-address> β€” the MAC address of the client's Link Local Address in the DHCPv6 request, formatted like the most usual 01:02:03:04:05:06. iconic format, don't fight it.
  • duid = <duid> β€” the DUID of the client, which comes with the DHCPv6 request message. no hex and no \ needed, just like for example 000100011234567890abcdef1234 .
  • hostname = <hostname> β€” the client's non-FQDN hostname. it will be used for dynamic DNS updates. πŸ”₯

🌈 Extra attributes 🌈

these attributes do not serve for identification of a client β€” they're here for appropriate address generation instead. they're the little extras, the accessories of the config world πŸ’…

  • id = <id> β€” id has to be a hex number in the range 0-FFFF. the client ID from this directive will be inserted in the address pattern of category id instead of the $id$ placeholder. slay.
  • address = <address> [<address> ...] β€” addresses configured here will be sent to a client in addition to the ones it gets due to its class. might be useful for some extra static address definitions. ✨
  • prefix = <prefix> [<prefix> ...] β€” prefix configured here will be sent to the client in addition to the ones it gets due to its class. 🫢

πŸ’– EXAMPLES πŸ’–

the next lines contain some example client definitions:

[client1]
hostname = client1
mac = 01:01:01:01:01:01
class = valid_client

[client2]
hostname = client2
mac = 02:02:02:02:02:02
class = invalid_client

[client3]
hostname = client3
duid = 000100011234567890abcdef1234
class = valid_client
address = 2001:db8::babe:1

[client4]
hostname = client4
mac = 04:04:04:04:04:04
id = 1234
class = valid_client

[client5]
hostname = client5
mac = 01:01:01:01:01:02
class = valid_client
prefix = 2001:db8::/48

look at client3 with that 2001:db8::babe:1, main character energy honestly πŸ˜­πŸ’–


πŸ“œ LICENSE πŸ“œ

this program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

this program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. see the GNU General Public License for more details.

you should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

on Debian systems, the full text of the GNU General Public License version 2 can be found in the file /usr/share/common-licenses/GPL-2.


πŸ” SEE ALSO πŸ”


🌟 AUTHOR 🌟

Copyright (C) 2012-2022 Henri Wahl <h.wahl@dhcpy6d.de> πŸ‘‘


this manual page is licensed under the GPL-2 license.


and that's the whole page bestie, no cap 🫢 this was dhcpy6d-clients.conf(5) from version 1.0.3, dated 2020-12-21. go configure some clients, you're gonna eat πŸ’…βœ¨