Для варианта с циской я бы попробовал так. Создаем 3 сабинтерфеса например Fa0/1.100, 0/1.200,0/1.300. Их делаем unnumbered к Loopback1. На него вешаем для примера 192.168.0.1/24. На каждый из сабифов ip helper-address <ip_dhcp_server> и включаем ip proxy-arp. Соответственно на хосты раздаем 192.168.0.2-254. А доступ к серверам разрулить уже акцесс-листами на сабифах.
Если есть хосты со статическими адресам, то дополнительно нужны статические маршруты к ним. Например есть супер-пупер девайc не умеющий dhcp в 100 влане c адресом 50.
ip route 192.168.0.50 255.255.255.255 Fa0/1.100
Как вариант получаем
хосты 11-20 - влан 100
хосты 21-30 - влан 200
хосты 31-40 - влан 300
ну сами сервера можно либо в один из этих сегментов, либо в свой собственный. Идентификатором выдачи адресов может быть как мак устройства , так и например идентификатор порта свича к которому подключен девайс.
И да пересечения ip адресов быть не должно.