Встала задача: определять на каком порту какого свитча находится конкретный IP-адрес. На самом деле задача глобальнее, но сейчас имеет смысл именно это. В ходе гугления вышел на DHCP Option 82. Инфы много, но кроме теории важно это.
Суть в том, что коммутатор в запрос DHCP добавляет два поля: Agent Remote ID (идентификатор коммутатора) и Agent Circuit ID (идентификатор порта). Казалось бы, всё просто. Но я столкнулся с некоторыми трудностями.
Дело в том, что сеть поделена на сегменты для улучшения безопасности, выделения потоков трафика и уменьшения широковещательного трафика. Каждый сегмент имеет свою адресацию и, соответственно, свой DHCP-сервер.
Чтобы настроить работу Option 82, коммутатор необходимо настроить как DHCP-relay. Это значит, что при получении DHCP request’a коммутатор просто отправит этот запрос DHCP серверу, указанному в настройках релея. Таким образом можно уменьшить количество широковещательного трафика в пределах сегмента и иметь один DHCP сервер на несколько подсетей. Но, DHCP-relay может работать только с одним DHCP-сервером (указанным в настройках релея), соответственно, все наши сегменты получат адреса из одной подсети, что
нас совсем не устраивает.