On 2021-08-18 12:48 UTC, Olivier Cherrier <[email protected]> wrote:
> Hi,
>
> I have a DHCP setup using dhcp-client-identifier option.
>
> On the DHCP server side, i use something similar to this:
> ---8<---- /etc/dhcpd.conf
> host rex {
> option dhcp-client-identifier "rex";
> fixed-address 192.168.1.219;
> }
> --->8----
>
>
> On the clients, I use to configure them like that:
> $ grep -v '^#' /etc/dhclient.conf
> send dhcp-client-identifier "rex";
> $
>
>
> Using -current and dhcpleased, I tried to configure it this way:
> ---8<---- /etc/dhcpleased.conf
> interface vio0 {
> send client id browser
> }
> --->8----
>
>
> But the generated packet doesn't seem to be well interpreted by dhcpd.
> Old packet (from dhclient machine called 'rex') is attached
> in packet_dhclient.txt and the new packet (from dhcpleased machine
> called 'browser') is attached in packet_dhcpleased.txt.
>
> The diff show some differences:
>
> 19,22c19,22
> < 0110: 0000 0000 0000 6382 5363 3501 030c 0372 ......c.Sc5....r
> < 0120: 6578 370b 011c 0279 030f 7706 0c43 423d ex7....y..w..CB=
> < 0130: 0372 6578 ff00 0000 0000 0000 0000 0000 .rex............
> < 0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
> ---
>> 0110: 0000 0000 0000 6382 5363 3501 030c 0762 ......c.Sc5....b
>> 0120: 726f 7773 6572 3d08 0062 726f 7773 6572 rowser=..browser
>> 0130: 3708 0103 060c 0f1c 7779 3204 c0a8 0162 7.......wy2....b
>> 0140: ff00 0000 0000 0000 0000 0000 0000 0000 ................
>
>
> It seems dhcpleased is automatically adding the hostname of the machine
> in the DHCP message. That's the first instance of "browser" seen above.
>
> dhcpd(8) doesn't seem to catch correctly the client identifier. Is it
> supposed to work like that ?
They both send the hostname, that's not the problem. Opinions differ on how
the client ID should be encoded.
> Aug 13 18:10:11.599556 fe:e1:bb:d1:b2:92 ff:ff:ff:ff:ff:ff 0800 342:
> 0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] xid:0xba962e2
> vend-rfc1048 DHCP:REQUEST HN:"browser"
^^^^ hostname
> CID:0.98.114.111.119.115.101.114 PR:SM+DG+NS+HN+DN+BR+119+121
^^^ client id
> RQ:192.168.1.98 [tos 0x10] (ttl 128, id 0, len 328)
> Aug 13 18:12:13.530188 fe:e1:bb:d1:c2:c4 fe:e1:ba:d0:b7:ec 0800 342:
> 192.168.1.219.68 > 192.168.1.12.67: [udp sum ok] xid:0xfbdfb850
> secs:4188 C:192.168.1.219 vend-rfc1048 DHCP:REQUEST HN:"rex"
^^^ hostname
> PR:SM+BR+TZ+121+DG+DN+119+NS+HN+BF+TFTP CID:114.101.120 [tos 0x10]
^^^ client id
> (ttl 128, id 38490, len 328)
dhclient sends this as client id:
CID:114.101.120
Which is hardware type 114 and hardware address 101.120 (in decimal)
Interpreted as ascii this is of course "rex".
RFC 2132 has this:
The client identifier MAY consist of type-value pairs similar to the
'htype'/'chaddr' fields defined in [3]. For instance, it MAY consist
of a hardware type and hardware address. In this case the type field
SHOULD be one of the ARP hardware types defined in STD2 [22]. A
hardware type of 0 (zero) should be used when the value field
contains an identifier other than a hardware address (e.g. a fully
qualified domain name).
dhcpleased sends this:
CID:0.98.114.111.119.115.101.114
Which is hardware type 0 + "browser"
dhcpleased.conf has this:
send client id client-id
Send the dhcp client identifier option with a value of client-id.
If client-id consists of a series of octets of two-digit
hexadecimal numbers separated by colons, the first octet is used
as the type and the rest as value. The MAC address
00:53:FF:AA:BB:CC would be configured as
send client id "01:00:53:FF:AA:BB:CC"
Otherwise the string client-id is sent verbatim with type zero.
The default is to send the interface's MAC address as client
identifier.
now, what will probably work for you is:
send client id "00:62:72:6f:77:73:65:72"
So in short, everything is terrible.
Should dhcpleased do what dhclient does?
People who actually use this please speak up.
>
> Thanks for any advice.
> Best.
>
> --
> Olivier Cherrier
> Phone: +352691570680
> mailto:[email protected]
>
>
>
--
I'm not entirely sure you are real.