BeryJu/gravity

DHCP client roaming across scopes doesn't work correctly

jho1670 opened this issue · 3 comments

First, thanks for your work. I rely on this for an internal DNS resolver and it's great.

I tried migrating my MS DHCP server and ran into trouble.

I have two wireless SSIDs, each which tags clients on VLAN 20 and VLAN 40 respectively. A Ruckus/Brocade switch has a VE on each VLAN and the "helper-address" is set relay DHCP traffic the Gravity instance(s). In Gravity, I have two scopes 10.0.20.x and 10.0.40.x.

Using the hardware MAC:
If I connect a client to VLAN 20, it (successfully) obtains a lease like 10.0.20.100/24 (with router/gateway 10.0.20.1). If I then connect this client to VLAN 40, it fails to get a lease on 10.0.40.x.

If I get the client to use a random MAC, this appears to work successfully.

Is Gravity enforcing that the MAC address is unique across the two scopes? Is there a way to not enforce this, if so?

BeryJu commented

Gravity assumes to be MAC addresses (or rather DHCP client identifiers) to be globally unique, which is not necessarily the best idea; I suppose as a workaround you could set a relatively low TTL?

Makes sense.

I believe my DHCP relay appends additional VLAN hints - is it possible to use those with the provided client identifier?

Woot. Thank you!