Почитайте п. 3.2
RFC 2131 о том, как работает DHCP. Там, в итоге, от
клиента требуется перед окончательной установкой конфигурации проверить, что конфликтов не будет (послать ARP-запрос). Если он ставит себе в итоге конфликтный адрес — значит, виноват клиент.
В Ubuntu используется dhclient. Может быть, стоит про него почитать подробнее. Если захочется попробовать альтернативы — то это udhcpc, dhcpcd; как их ставить в Ubuntu — представления не имею.