Можно ли назначать VLAN в Linux на основе MAC-адреса клиента? Если да, то как? Страницы руководства vconfig, похоже, указывают, что он работает только на основе порта.
Я пытаюсь настроить беспроводную сеть, при которой новые клиенты назначаются на «неутвержденный» vlan, в котором они будут оставаться до тех пор, пока администратор не утвердит их (или, возможно, пока они не зарегистрируются на локальном адаптивном портале), и в этот момент я хочу чтобы переназначить их к «одобренному» vlan.
Как я могу настроить сопоставление MAC: VLAN ID под Linux, если оно существует?
В общем, есть режим работы большинства точек доступа бизнес-уровня, который называется примерно так: «динамическое назначение VLAN» (это термин торговой марки Cisco, другие могут называть его по-другому). Основная идея состоит в том, что клиент WLAN помещается в VLAN в зависимости от отправленных учетных данных для аутентификации. Ваша инфраструктура, включая сервер RADIUS, должна обеспечивать это.
В "динамические VLAN" функция (опять же, термин под брендом Cisco), в основном предназначенная для проводной инфраструктуры, также довольно близка к тому, что вы ищете.
Если у вас нет оборудования Cisco, существует также срок VLAN на основе MAC для сетей VLAN, построенных не с помощью тегов 802.1q, а просто определяемых MAC-адресами клиентов. Поскольку MAC-адреса могут быть произвольно заданы клиентами, этот метод явно небезопасен, но, тем не менее, может быть полезен. Реализации VLAN до 802.1q поддерживали этот вид VLAN (около 12-15 лет назад), но в настоящее время в основном исчезли.
Но недавно опубликованный патч для основных исходных кодов ядра 3.2.1 представляет новый «исходный» режим для модуля «macvlan» как реализацию той же функции VLAN на основе MAC, которая использовалась в былые времена. Патч еще не включен в состав ядра, так как он все еще требует некоторой доработки, но вы, очевидно, можете применить его самостоятельно, если возникнет необходимость. Или просто дождитесь официального слияния - если код хороший, это не займет много времени.
Я думаю, нам понадобится больше деталей о вашей физической конфигурации. Короче говоря, если ваш Linux-сервер не действует как какой-то транкинговый контроллер беспроводного доступа или не может управлять вещами на лету, я сомневаюсь в этом. Я полагаю, вы могли бы запустить несколько SSID с аутентификацией на основе MAC, возможно, каждый SSID на другом vlan.
Вы не можете этого сделать с VLAN. Это скорее функция переключения, а Linux - скорее клиент.
То, что вы хотите, называется «перехватывающим порталом», существует ряд доступных решений, для реализации которых используется брандмауэр iptables.
Некоторыми примерами распределений адаптивного портала являются pfsense, zeroshell.
Вот статья о более автономном программном обеспечении Linux, которое можно установить на существующий компьютер: