Стоит задача запустить услугу wifi на существующие интернет-договоры.
Т.е. у всех желающих должна быть возможность подключить опцию в ЛК и получить доступ в инет через городской wifi.
Привязка wifi-сессии должна быть к существующему договору, авторизация wifi по логину/паролю через EAP, далее авторизация сессии ISG по mac-адресу.
Собрали такую схему:
Вложение:
Комментарий к файлу: схема
EAP+WIFI+ISG.png [ 12.45 КБ | Просмотров: 4505 ]
1. Клиент подключается к wifi-точке, вводит логин и пароль, подтверждает использование сертификата.
2. Wifi-точка отправляет запрос на авторизацию на радиус. Freeradius используем потому-что не смогли
подружить BG-Radius с EAP. В радиус-запросе имеем логин и mac-адрес.
3. Freeradius проксирует запрос на БГ, но уже без EAP. БГ авторизует сессию по логину и паролю и отправляет Access-Accept обратно.
После авторизации, wifi-точка шлёт Start-пакет, в итоге получаем "EAP-сессию" в БГ с username и callingStationId=mac-адресу клиента.
4. Клиент получает IP от standalone dhcp-сервера, который никак с БГ не связан. Framed-Ip-Address wifi не умеет.
5. При первом пакете, NAS пытается поднять ISG-сессию.
6. В радиус-запросе от NAS мы имеем mac-адрес в поле User-Name (на кошке стоит ip subscriber l2-connected, initiator unclassified mac-address)
и только по нему мы можем авторизовать ISG-сессию на основе авторизованной EAP-сессии. Для этого в preprocessAccessRequest
ищутся все активные сессии с callingStationId=User-Name и если такая сессия находится, то в обратку посылаем Access-Accept. Далее серсвисная сессия
уже привязывается к ISG-сессии как обычно.
Первый вопрос - не изобрели-ли мы велосипед? Может можно как-то проще и стандартнее что-ли?
Не нравится костыль по поиску EAP-сессий для авторизации ISG-сессии. Не нравится, что ip выдаёт отдельный dhcp (не БГ-шный) и мы никак не управляем
привязкой IP.
По этой схеме в БГ имеются две независимые сессии и если прекращается EAP-сессия, то ISG продолжает жить до таймаута.
Можно-ли как-то биллингу сказать, что это зависимые сессии? Конкретно хочется чтобы при получаении Stop-пакета от wifi, разрывалась бы и ISG-сессия.
Ну и хочется услышать критику/замечания, будет-ли такая схема реально работать? На стенде пока работает...