There is a problem with requesting client IP address if other DHCP server exists in LAN.
'udhcpc' client used on GIS.lab client is sending broadcast request to network and will process only first response it will receive. If this response is not from GIS.lab server, but from some another server, it will refuse it and will try again. This can cause many loops until response from GIS.lab server will be a first one.
According RFC 2131, it is possible to send also unicast server to particular server.
RFC 2131
4.4.4 Use of broadcast and unicast
The DHCP client broadcasts DHCPDISCOVER, DHCPREQUEST and DHCPINFORM
messages, unless the client knows the address of a DHCP server.
The client unicasts DHCPRELEASE messages to the server. Because
the client is declining the use of the IP address supplied by the server,
the client broadcasts DHCPDECLINE messages.
When the DHCP client knows the address of a DHCP server, in either
INIT or REBOOTING state, the client may use that address
in the DHCPDISCOVER or DHCPREQUEST rather than the IP broadcast address.
The client may also use unicast to send DHCPINFORM messages
to a known DHCP server. If the client receives no response to DHCP
messages sent to the IP address of a known DHCP server, the DHCP
client reverts to using the IP broadcast address.
In 'busybox-1.18.5/networking/udhcp/dhcpc.c' 'raw_bcast_from_client_config_ifindex' function is used to send broadcast requests. It is possible to send unicast request using function 'udhcp_send_kernel_packet'.
We can try to add possiblity (commandline option) to choose between broadcast and unicast to DHCPDISCOVER and DHCPREQUEST requests .
See:
Downloading source code:
$ apt-get source busybox-static
Example running udhcpc:
$ sudo busybox udhcpc -h
$ sudo busybox udhcpc
Building Debian package
$ dpkg-buildpackage -us -uc
There is a problem with requesting client IP address if other DHCP server exists in LAN.
'udhcpc' client used on GIS.lab client is sending broadcast request to network and will process only first response it will receive. If this response is not from GIS.lab server, but from some another server, it will refuse it and will try again. This can cause many loops until response from GIS.lab server will be a first one.
According RFC 2131, it is possible to send also unicast server to particular server.
RFC 2131
4.4.4 Use of broadcast and unicast
The DHCP client broadcasts DHCPDISCOVER, DHCPREQUEST and DHCPINFORM
messages, unless the client knows the address of a DHCP server.
The client unicasts DHCPRELEASE messages to the server. Because
the client is declining the use of the IP address supplied by the server,
the client broadcasts DHCPDECLINE messages.
When the DHCP client knows the address of a DHCP server, in either
INIT or REBOOTING state, the client may use that address
in the DHCPDISCOVER or DHCPREQUEST rather than the IP broadcast address.
The client may also use unicast to send DHCPINFORM messages
to a known DHCP server. If the client receives no response to DHCP
messages sent to the IP address of a known DHCP server, the DHCP
client reverts to using the IP broadcast address.
In 'busybox-1.18.5/networking/udhcp/dhcpc.c' 'raw_bcast_from_client_config_ifindex' function is used to send broadcast requests. It is possible to send unicast request using function 'udhcp_send_kernel_packet'.
We can try to add possiblity (commandline option) to choose between broadcast and unicast to DHCPDISCOVER and DHCPREQUEST requests .
See:
Downloading source code:
$ apt-get source busybox-static
Example running udhcpc:
$ sudo busybox udhcpc -h
$ sudo busybox udhcpc
Building Debian package
$ dpkg-buildpackage -us -uc