Дорогие все, мы будем признательны за вашу помощь в следующей проблеме: IOS7 использует функцию Captive Network Assistant (CNA) для определения, открыт ли хотспот или есть ли переносной портал. При подключении к беспроводной сети устройство Apple iOS отправляет запрос на определённую страницу на сайте Apple, чтобы проверить подключение к интернету. • Если страница открывается успешно, устройство предполагает, что у него есть подключение к сети. • В случае сбоя CNA предполагает наличие переносного портала и запускает браузер CNA, чтобы предложить пользователю Splash Portal. В IOS6 можно было избежать этой проблемы, открыв домен apple.com в изолированной сети переносного портала. В IOS7 этот трюк больше не работает, так как белый список конкретных URL недостаточен, поскольку список этих доменов очень длинный (Cisco утверждает, что больше 200… и, конечно, список URL не доступен публично!). В результате возникают проблемы с входом в наши инфраструктуры хотспотов. Некоторые слухи говорят, что у Cisco Meraki есть встроенная функция, чтобы избежать этой проблемы (они добавили в белый список полный список тестовых доменов) Ссылка: http://blogs.cisco.com/wireless/get-your-network-ready-for-ios7/ и http://www.cisco.com/en/US/products/ps11640/products_tech_note09186a0080bfe93c.shtml . Поэтому, когда вы подключаетесь к хотспоту Cisco Meraki, вы не должны сталкиваться с этой проблемой. Есть ли возможность, что Mikrotik может что-то сделать по этому поводу, так как это критично для наших установок хотспотов, поскольку более 50% устройств — это устройства на IOS. Ждем ваших мыслей и предложений. С наилучшими пожеланиями.
Привет, ребята, кто-нибудь нашел обходной путь для этой проблемы? Я заметил, что у пользователей iOS7 (только) возникли проблемы с подключением, и простой метод обхода больше не работает. В идеале я хотел бы использовать все возможности помощников для порталов Apple и не прибегать к обходам. Любые советы или код о том, как модифицировать MikroTik hotspot / firewall / систему, были бы очень полезны.
Аналогично этому, я пытался реализовать это решение с помощью правила межсетевого экрана уровня 7, но безуспешно. Регулярное выражение — «user-agent: (captivenetworksupport|server-bag)», но я не могу понять, как его применить. Идея заключается в том, чтобы пропустить аутентификацию в хотспоте, когда пакет совпадает с этой строкой (на tcp/80). Это возможно до тех пор, пока не появится корректный код хотспота, совместимый с CNS/CNA?
У нас была такая же проблема с RB1200 5.26 в отеле. Windows и Android смогли подключиться, но IOS 7.x.x и MacOS — нет. Мы выяснили, что в MacOS адрес hotspot.local не разрешался. После множества предположений я понял, что это проблема с DNS-разрешением. Пинг hotspot.local работал на Android, Windows, Linux, но не работал на MacOS и IOS 7.x.x. Пинг www.hotspot.local работал на всех платформах. Секрет заключался в том, чтобы переименовать DNS имя веб-сервера страницы входа в точку доступа с hotspot.local на www.hotspot.local IP → hotspot → Профиль сервера → Имя DNS → [http://www.hotspot.local]. Похоже, что новые версии IOS и MacOS используют MDNS резольвер вместо DNS-запроса при поиске IP адреса hotspot.local. Теперь Safari может корректно перенаправляться на страницу входа, и устройства с IOS 7 аутентифицируются. Я также добавил несколько вещей в "огражденный сад" [admin@MikroTik] > ip hotspot walled-garden export # nov/08/2013 11:14:15 от RouterOS 5.26 # идентификатор программы = EH11-RCFX # /ip hotspot walled-garden добавление action=allow comment="разместите правила точки доступа здесь" disabled=yes dst-port="" добавление action=allow disabled=no dst-host=*.apple.com dst-port="" добавление action=allow disabled=no dst-host=*.apple.com.edgekey.net dst-port="" добавление action=allow disabled=no dst-host=*.akamaiedge.net dst-port="" добавление action=allow disabled=no dst-host=*.akamaitechnologies.com dst-port="" /ip hotspot walled-garden ip добавление action=accept disabled=no dst-host=captive.apple.com добавление action=accept disabled=no dst-host=www.appleiphonecell.com добавление action=accept disabled=no dst-host=www.itools.info добавление action=accept disabled=no dst-host=www.ibook.info добавление action=accept disabled=no dst-host=www.airport.us добавление action=accept disabled=no dst-host=www.thinkdifferent.us добавление action=accept disabled=no dst-host=static.ess.apple.com добавление action=accept disabled=no dst-host=init-p01md.apple.com добавление action=accept disabled=no dst-host=ess.apple.com добавление action=accept disabled=no dst-host=apple.com добавление action=accept disabled=no dst-host=gps.apple.com [admin@MikroTik] > и для профиля точки доступа /ip hotspot profile установите [find default=yes] dns-name="" hotspot-address=0.0.0.0 html-directory=hotspot http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=default rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=no добавьте dns-name=www.hotspot.local hotspot-address=172.17.2.1 html-directory=hotspot http-cookie-lifetime=2h http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=hsprof1 nas-port-type=wireless-802.11 radius-accounting=yes radius-default-domain="" radius-interim-update=received radius-location-id="" radius-location-name="" radius-mac-format=XX:XX:XX:XX:XX:XX rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=yes
Я думаю, нам стоит объединить усилия, чтобы исправить Apple IOS. Почему все, включая Cisco, Mikrotik и других, должны менять свой код, когда это Apple всё испортила?
Да, у меня есть два iPhone: один с iOS 7.0, второй с iOS 7.0.4. Я пытался заставить это работать с перенаправлением по ссылке, но не знаю, как использовать переменные на Mikrotik. У меня такая идея: поскольку я хочу, чтобы окно iPhone всплывало ОДИН РАЗ, чтобы сказать пользователю перейти в Safari, — я видел это в других хотспотах (не знаю, какое ПО для порталов используется) rlogin.html, если mivap=“”, то перенаправлять нормально (на my_php.php (ip, открытый в саду) постить ссылку на перенаправление) my_php.php, если link-redirect — один из используемых iPhone 6 или 7 (http://www.itools.info, www.thinkdifferent.us, www.airport.us …) ПОМЕНЯТЬ КАК-ТО ПЕРЕМЕННУЮ MIKROTIK (имя пользователя, ошибка …) имя пользователя=‘CAPTIVE’ и перенаправить на новый php. iPhone снова проверит соединение, так что rlogin теперь с этой переменной будет знать, что это iPhone. rlogin.html, если myvar=“CAPTIVE”, успех… может быть, в логине то же самое. В этот момент iPhone подумает, что есть интернет, и всплывающее окно iPhone (которое должно появиться, чтобы уведомить пользователя о необходимости войти) изменится на ОК, нажмите ОК, и вы сможете просматривать в Safari. Я пытался, но не знаю, как изменить переменные.
Вот пользовательский агент, который нужно использовать, ты записал его или скопировал? Попробуй полную строку ниже, с wispr или без него: GET /library/test/success.html HTTP/1.0 Host: www.apple.com User-Agent: CaptiveNetworkSupport/1.0 wispr Connection: close
Привет, не работает, пробовал все комбинации с "" с '' с /1.0 с //1.0... Но ничего не изменилось. Если я просто напишу HTML-код с Success, то CNA не открывается. Я заметил с openWRT следующее поведение, которое, думаю, это ЛУЧШЕЕ решение. Подключает WIFI Открывает CNA (Некоторые работают с php, HTML ¿?¿?) CNA думает, что wifi имеет интернет, и меняет ссылку CANCEL в правом верхнем углу на ссылку GO. Затем вставляешь сообщение, предлагающее открыть БРАУЗЕР, чтобы ПОЛУЧИТЬ ДОСТУП В ИНТЕРНЕТ, или какую-то ссылку на любую страницу, и потом перенаправляет через БРАУЗЕР на каптивный портал. Нам стоит попробовать сделать это с mikrotik... я пробовал много вариантов, но у меня не получается.
Привет, все еще не удалось решить проблему с cna. Я пробовал на rlogin.html и login.html вот это: $(if user-agent == CaptiveNetworkSupport) Success1Success1-$(user-agent) $(elif user-agent == Mozilla) Success2Success2-$(user-agent) $(else) Success3Success3-$(user-agent) $(endif) Всегда возвращает Success2-Mozilla. Даже с CNA и Safari (ты можешь вручную отменить CNA в Safari и выбрать Использовать без интернета). Так что, пожалуйста, Mikrotik, дайте нам решение, чтобы iPhone показывал CNA, а затем возвращал успех или что-то еще, чтобы заставить верить CNA, что ты достиг интернета, и поменяйте кнопку отмены на ОК. Спасибо.
Это не работает… этот user-agent == CaptiveNetworkSupport Неверно определяет. Я делал $(if user-agent == CaptiveNetworkSupport) перенаправление на pag1 $(else) перенаправление на pag2 $(endif) на всех устройствах перенаправляет на pag2. Спасибо.