А в чем вопрос? Чаще всего проблема с неправильным разбором данных от коммутатора. Для начала проверь, добавляет ли коммутатор опцию 82 (tcpdump,wireshark). Потом попытайся получить логгирование (
if exists agent.circuit-id
{
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface ", binary-to-ascii (10, 8, "", suffix ( option agent.circuit-id, 1)), ", vlan", binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)), " on switch ", binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6))));
}.
Потом выясняй в какой позиции находятся нужные тебе данные (опция 82 у различных коммутаторов отличается).
Пиши подробности в личку, помогу чем могу.
Два сегмента сети, работаем с тем, что есть ;)
Вот этого я и опасался, надеялся, что subnetами получится разрулить.