Да.Но это очень широкий вопрос, и он зависит от используемого сетевого оборудования.Я дам вам обзор того, как я спроектировал бы такую систему.
В общем, вам будет легче, если вы сможете использовать тот же диапазон DHCP-сервера / IP для своего NAC и полного доступаVLAN.Это означает, что вам не нужно сигнализировать более высокие сетевые уровни в клиенте о том, что произошло изменение состояния, вы можете поменять VLAN за кулисами, чтобы изменить доступ к ним.
Вы настроили быБаза данных с записью для каждого клиента.Это не должно быть предварительно заполнено, это может быть заполнено во время первой попытки авторизации.Частью каждой записи клиента будет поле статуса, детализирующее время последнего заполнения NAC.
Вам также понадобится база данных учета, чтобы хранить информацию о том, где каждый клиент подключен к сети.
Если клиент никогда ранее не выполнял проверки NAC, вы бы назначили клиента для VLAN NAC и дали бы сигнал процессам NAC начать его опрос.
FreeRADIUS может действовать как сервер RADIUS и DHCPv4, поэтомувы, вероятно, дадите сигнал процессу NAC со стороны DHCPv4, потому что тогда вы будете знать, какой IP-адрес получил клиент.
Связывание сторон RADIUS и DHCPv4 можно выполнить несколькими способами.Наиболее очевидным является MAC, другой распространенный способ - это NAS / Port ID с использованием таблицы учета.
Как только проверки NAC будут завершены, процесс NAC позволит выписать квитанцию в подробном формате файла и получитькоторые считываются обратно прослушивателем подробных файлов (примеры этого можно найти на сайтах, доступных / в файлах виртуального сервера decoupled-accounting).Когда вы читаете эти записи обратно, вы изменяете состояние в базе данных и отправляете пакет CoA на коммутатор, используя информацию из базы данных учета для идентификации клиента.Это перевернет VLAN и позволит им использовать стандартный набор сетевых ресурсов.
Я знаю, что это очень высокий уровень, и его правильное документирование, вероятно, превысит ограничение на количество символов в StackOverflow.Если вам нужна дополнительная помощь в этом, я предлагаю вам изучить то, что я описал выше, а затем начать задавать вопросы, связанные с RADIUS, в списке рассылки пользователя FreeRADIUS https://freeradius.org/support/.