Как современные девайсы определяют что они внутри hotspot - запрашивают определенную страничку со своих серверов и если не получают ожидаемые ответ то считают что они в ограниченной сети и нужно пройти авторизацию.
И казалось-бы, все просто настраиваешь DNAT для 80 порта для неавторизованных пользователей и девайсы при запросе своей странички увидят что их перекинуло не туда и откроют страничку авторизации в браузере.
Но нет! Они ожидают что им прийдет HTTP ответ с кодом 511 (в ранних драфтах был 302) в котором будет адрес странички на которую нужно сделать переход. Тоесть нужно в форме авторизации делать костыль, который при первом запросе отправляет 511 с адресом странички авторизации.
Ну и читаем rfc внимательно:
The 511 status SHOULD NOT be generated by origin servers; it is intended for use by intercepting proxies that are interposed as a means of controlling access to the network.
Что они имеют в виду под «origin server»? Сервер который производит авторизацию? Тоесть если роутер не может сам отдать подобный ответ мне требуется дополнительно извращаться и поднимать второй web сервер, который будет отвечать только за 511 ответ или я чего-то не понял?
И вот зачем все эти сложности с 511 кодом, когда можно просто пройтись по DNAT (хотябы в качестве опции, если 511 не поступил) и открыть страничку в браузере?