openwrt / luci

LuCI - OpenWrt Configuration Interface
Apache License 2.0
6.36k stars 2.53k forks source link

Client Id to send When requesting DHCP defaults to 'root' #3068

Closed RobGray-au closed 5 years ago

RobGray-au commented 5 years ago

causes error with some DHCP servers (including NetGear r6400 and my ISP) [OpenWrt 18.06.4]

wan is setting up now udhcp: malformed hex string 'root'

the fix was pointed out by [eduperez] WRT3200ACM no connect to ISP ... but i didnt know where to find setting in LuCi

for those coming later.... Network Interfaces WAN

Client Id to send When requesting DHCP swap root with A1 or other HEXstring <save & Apply>

dhcp connected almost immediately.

jow- commented 5 years ago

This is a browser bug, LuCI does not perform any kind of autocomplete.

RobGray-au commented 5 years ago

I dont believe it is either browser or LuCi.

from [https://openwrt.org/docs/guide-user/network/ipv4/start#protocol_dhcp]( ) clientid | string | no | system default | Override client identifier in DHCP requests

it appears the system default is root , where some (presumably poorly implemented) DHCP servers expect a MAC address, or any valid Hex string. ie F2 works. note that LuCi wont allow a blank ClientId, it reverts to [root]

I couldnt find this hack/workaround easily, so perhaps hope this helps others to do so now. this issue hasnt raised for me previosly as the device was set with a static IP when acting as access point only. same output on a different hardware running 18.06.2

jow- commented 5 years ago

There is no root default for client id, as can be seen here: https://github.com/openwrt/openwrt/blob/8852a09d85e5b0c2ffab55578a9624edb2fb6dd1/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh#L54

If not set, -C is passed to udhcpc which instructs it to not set any ID at all. The root value is added by some browsers because they confuse the interface setting with a login form and helpfully add nonsense into the input field. It is certainly not LuCI which adds root as value.