можно с лёгким извратом сделать на свитче, который поддерживает фильтрацию на 3 уровне:
клиент на порту №2 сидит в вилане №102 (к примеру) и общем вилане
включает компутер, отправляется дхцп запрос
дхцп сервер смотрит, что запрос пришёл в вилане №102 и даёт соответствующий ип
осталось только резать дхцп запросы в общем вилане
соотв. для 3 порта номер вилана будет 103, а на другом свитче - 113, скажем
данные все будут бегать в общем вилане, а по этим выделенным - только дхцп запросы. интересно, на сколько это убьёт производительность свитча :)