HenriWahl / dhcpy6d

MAC address aware DHCPv6 server written in Python
https://dhcpy6d.de
GNU General Public License v2.0
94 stars 27 forks source link

"Link-Local" mac format? #15

Open James-E-A opened 6 years ago

James-E-A commented 6 years ago

I've got my network set up currently as:

               prefix ~ address
                      |
fd 04 : b9 0a : 14 30 : fe 80 : $llamac$
|   |   |   |   |   |   "fe80"
ULA |   185.10.68.174
"IPv4"

(Yeah, it's not exactly kosher per se; but that's beside the point, which is everything past the /48 line)

Where llamac translates to the link-local formatted MAC address of the device.

However, this requires adding entries manually. (Thankfully, the devices still work well under fd04:b90a:1430::$mac$ until they're added to the database!)

Is there a way to do any kind of processing on MAC addresses to calculate the assigned IPv6 address? Whether that be for this, or for something with a bit more utility; it seems like this would be a nice feature. Does it already exist, though? / Am I just missing it?

HenriWahl commented 6 years ago

I am sorry but do not fully get the question - can you explain deeper what you want to achieve? Should the MAC be part of the IPv6 address (which is possible right now)? Or the EUI-64 formatted address part of the fe80 link local address? In the second case there is no way right now but I guess it would not make much sense because the same job with the same resulting addresses could be done by a plain router software like radvd.

James-E-A commented 6 years ago

Basically, right now, it has built in to it the ability to literally translate a MAC address into a piece of an IPv6 address, byte-for-byte.

Is there currently any way to apply any sort of algorithm to interpreting MAC addresses? (other than direct "cat-style translation")

For instance, if I wanted to only use the last 3 bytes of the MAC in determining the assigned IPv6 of clients, could that be done? Or to use a particular hashing algorithm?

Or even a way just to feed all the known attributes of a host into a script or such, to hook in any kind of arbitrary assignment system, whether stateless or centralized

HenriWahl commented 6 years ago

Well, this is not possible right now. What would be the benefit?