На днях попалась мне в новостной рассылке такая новость от компании D-Link. Собственно краткое изложение новости таково. Компания D-Link для некоторых своих Wi-Fi маршрутизаторов выпустила прошивку с функционалом который непритязательно назвали «Интеллектуальное распределение Wi-Fi клиентов». Суть в том, что в сети из нескольких маршрутизаторов, соединенных и настроенных определенным образом, Wi-Fi клиента вынуждают подключаться к маршрутизатору с наилучшим уровнем сигнала.
Ничего не понятно, скажете вы.
Представим ситуацию, когда вы решили сделать у себя в квартире небольшую беспроводную сеть. Купили несколько дешевых маршрутизаторов (будем называть их далее для краткости ТД — точка доступа), назначили им одинаковый SSID (имя сети) и установили для них одинаковый пароль. Теперь вы подключаетесь к любой ТД с одним паролем. При подключении, клиент выбирает ТД с наиболее сильным сигналом и цепляется к ней. Рано или поздно, у вас к одной ТД подключатся несколько клиентов (например телевизор, компьютер, планшет, пара телефонов). Один из них однажды окажется на границе охвата этой ТД и уровень его сигнала составит, например 10% (например вы ушли в «офис» в тишине полистать хабр). В этом случае есть два варианта развития событий:
1. ТД снижает скорость передачи, чтобы подстроиться под самого слабого клиента.
2. ТД не снижает скорость передачи, клиент и ТД продолжают вещать, часть пакетов теряется, идет повторная передача, возникает огромное количество служебного трафика, который забивает эфир.
В любом случае, снижается скорость передачи для всех клиентов этой ТД. Если другие клиенты пытаются в это время поболтать по скайпу, то им это вряд-ли удастся.
Единственный выход — отключить этого слабого клиента, либо перевести его на другую ТД, с более сильным сигналом. Но проблема в том, что решение о подключении к ТД принимает только клиент, а никак не точка доступа. Поэтому нужен механизм принудительного отключения этого клиента и переключения его на другую ТД (если таковая имеется). И, исходя из текста новости, именно этот механизм D-Link нам и предлагает. Точка доступа, которая держит клиента, опрашивает точки в своей сети на предмет более высокого уровня сигнала от «слабого» клиента. И в случае, если таковые точки имеются, сбрасывает соединение со «слабым» клиентом, вынуждая того переключиться.
По невероятному совпадению у меня в наличии оказалось два устройства из списка поддерживаемых: DIR-300 (который валялся в шкафу с подозрением на нерабочее состояние) и DIR-615A почти новый, небитый, некрашеный. Оба в гугл-дизайне (цилиндрической формы, один черный, другой белый).
Нужно обновить прошивку до последней. Где взять последнюю версию прошивки? Можно пойти на ftp.dlink.ru и попробовать там найти вашу модель. Честно говоря, не самый удобный вариант, поскольку присутствует куча папок с одинаковыми названиями. Поэтому я пошел на сайт dlink.ru, в разделе «продукты и решения» нашел свою модель. Во вкладке «Загрузки» есть список и описание прошивок. Выбрал самую последнюю и скачал. В зависимости от текущей прошивки, интерфейс может меняться, поэтому процесс перепрошивки показывать не буду, в интернете полно инструкций.
Теперь нужно выбрать, какое из устройств будет работать как маршрутизатор (получать и раздавать интернет, выполнять роль DHCP сервера), а какое как точка доступа (только обеспечивать подключение клиента к Wi-Fi). Соединяем устройства проводами согласно схеме.
Если у вас больше 2-х устройств, то все точки доступа соединяются с LAN-портами маршрутизатора. Назначаем всем LAN-интерфейсам статические IP-адреса, по этим адресам мы будем получать доступ к web-интерфейсу для настройки точек.
Настраиваем WAN соединение на маршрутизаторе согласно настройкам вашего провайдера.
На точках доступа удаляем все WAN соединения. В разделе настройки LAN, DHCP сервер выставляем в режим «Запретить».
Всё, теперь мы имеем один маршрутизатор с настроенным интернетом и DHCP сервером, а также устройство, работающее в режиме точки доступа.
На обоих устройствах необходимо сделать одинаковый SSID. Я назвал свою тестовую сеть «Roaming».
Теперь в web-интерфейсе в левой части ищем пункт «Wi-Fi», жмем на него и выпавшем списке выбираем пункт «Роуминг». Жмем его и в правой части экрана передвигаем ползунок вправо.
Важные настройки.
Минимальный уровень сигнала. Уровень сигнала клиента. При этом значении сигнала наша точка будет начнет опрашивать соседей на предмет того, кто лучше видит этого клиента.
«Мертвая» зона (от -50% до 50%). Уровень сигнала клиента на другой точке относительно уровня сигнала на текущей.
Пример. Минимальный уровень сигнала 70%. Мертвая зона 10%. Если уровень сигнала достигнет 70%, активная точка начнет опрос соседей «Кто видит этого клиента? Какой у него уровень сигнала?». Соседи отзываются: «Я вижу. Уровень 75%». Это попадание в мертвую зону.
Переключения не произойдет. Второй скажет «Я вижу. Уровень 90%». Это за пределами мертвой зоны. Активная точка сбросит соединение с клиентом. Вторая его подхватит. Эти настройки придуманы, видимо для того, чтобы клиент не прыгал постоянно между точками. Этими параметрами нужно поиграть в вашей конкретной сети.
С параметрами разобрались, повторяем настройку на втором устройстве. Теперь всё сделано согласно рекомендациям D-Link. Надо бы протестировать.
И тут до меня дошло, что для теста мне необходимо разнести точки на расстояние, когда клиент будет видеть обе точки, но при этом падение уровня сигнала будет значительным для срабатывания функции. Метров, эдак, 40-50. К сожалению, я не олигарх и у меня нет своего замка. К счастью, в ящике стола нашлась фольга. Покупка замка была отложена до лучших времён. Из фольги соорудил шапочку, которой накрывал точку доступа. С шапочкой дела пошли получше, мощность сигнала снижалась практически до границы видимости. Соответственно, и клиента эта точка видела очень плохо.
Сформировался следующий план испытаний:
1. Растащить обе точки максимально далеко. Получилось порядка 5 метров со стеной между ними.
2. Встать рядом с одной из них, присоединиться к тестовой сети. Клиент подключится к ближайшей точке, поскольку у неё сигнал лучше.
3. Потом двинуться ко второй точке. Для гарантии, активную накрыть шапочкой из фольги.
4. Переключение клиента отслеживать через web-интерфейс точек.
В общем, всё прошло по плану. Видимо потому, что это была 5 версия плана. Клиент цеплялся к точке с наилучшим сигналом. «Убитая» точка отбрасывала клиента, как и положено.
На этом можно было бы и закончить, заявленный функционал работает, клиент послушно прыгает от точки к точке. Переход происходит быстро.
Но насколько быстро? И хватит ли этого «быстро» для обеспечения непрерывного сервиса при передвижении в зоне действия всей сети? Поскольку цифры скорости переключения для меня, как для пользователя мало информативны, я решил протестировать, как будет вести себя сессия например, видеоконференции, при переключении между точками. План созрел такой:
1. Беру свой рабочий сервис ВКС. 2 аккаунта, один на ноутбуке, второй – на телефоне. Для чистоты эксперимента, ноутбук цепляю к рабочей сети, чтобы видео-поток шел не внутри одной Wi-Fi сети, а через провайдерские линии. Телефон цепляю к тестовой сети.
2. Звоню с телефона на ноутбук.
3. С телефоном ухожу ко второй точке, накрывая первую шапочкой из фольги. И слежу за качеством и наличием связи.
4. Потом контролирую через web-интерфейс факт переключения телефона между точками.
Результаты таковы. Прерывания связи не было, от слова вообще. Был момент возникновения артефакта на картинке и щелчок в звуке, предполагаю, что в момент переключения. Телефон, как и ожидалось, переключился на вторую точку.
Естественно, есть в моей программе тестирования ряд недостатков. Например, в тестовой сети было всего 2 клиента. Я не устраивал стресс-тестирование для определения максимальной скорости передвижения клиента без обрыва связи, просто ходил пешком. Я не знаю, как будут работать другие потоковые сервисы. Интересно было бы протестировать работу функции в разных подсетях (по заверениям производителя работать будет), но лень.
В качестве резюме.
1. Считаю, что функция вполне годная, по крайней мере при скромном бюджете и небольших масштабах.
2. Список поддерживаемых устройств достойный, есть в нем и AC устройства, компания обещает этот список расширять.
3. Человеку в D-Link, который писал инструкцию по настройке, я бы что-нибудь оборвал.
Ничего не понятно, скажете вы.
Представим ситуацию, когда вы решили сделать у себя в квартире небольшую беспроводную сеть. Купили несколько дешевых маршрутизаторов (будем называть их далее для краткости ТД — точка доступа), назначили им одинаковый SSID (имя сети) и установили для них одинаковый пароль. Теперь вы подключаетесь к любой ТД с одним паролем. При подключении, клиент выбирает ТД с наиболее сильным сигналом и цепляется к ней. Рано или поздно, у вас к одной ТД подключатся несколько клиентов (например телевизор, компьютер, планшет, пара телефонов). Один из них однажды окажется на границе охвата этой ТД и уровень его сигнала составит, например 10% (например вы ушли в «офис» в тишине полистать хабр). В этом случае есть два варианта развития событий:
1. ТД снижает скорость передачи, чтобы подстроиться под самого слабого клиента.
2. ТД не снижает скорость передачи, клиент и ТД продолжают вещать, часть пакетов теряется, идет повторная передача, возникает огромное количество служебного трафика, который забивает эфир.
В любом случае, снижается скорость передачи для всех клиентов этой ТД. Если другие клиенты пытаются в это время поболтать по скайпу, то им это вряд-ли удастся.
Единственный выход — отключить этого слабого клиента, либо перевести его на другую ТД, с более сильным сигналом. Но проблема в том, что решение о подключении к ТД принимает только клиент, а никак не точка доступа. Поэтому нужен механизм принудительного отключения этого клиента и переключения его на другую ТД (если таковая имеется). И, исходя из текста новости, именно этот механизм D-Link нам и предлагает. Точка доступа, которая держит клиента, опрашивает точки в своей сети на предмет более высокого уровня сигнала от «слабого» клиента. И в случае, если таковые точки имеются, сбрасывает соединение со «слабым» клиентом, вынуждая того переключиться.
По невероятному совпадению у меня в наличии оказалось два устройства из списка поддерживаемых: DIR-300 (который валялся в шкафу с подозрением на нерабочее состояние) и DIR-615A почти новый, небитый, некрашеный. Оба в гугл-дизайне (цилиндрической формы, один черный, другой белый).
Нужно обновить прошивку до последней. Где взять последнюю версию прошивки? Можно пойти на ftp.dlink.ru и попробовать там найти вашу модель. Честно говоря, не самый удобный вариант, поскольку присутствует куча папок с одинаковыми названиями. Поэтому я пошел на сайт dlink.ru, в разделе «продукты и решения» нашел свою модель. Во вкладке «Загрузки» есть список и описание прошивок. Выбрал самую последнюю и скачал. В зависимости от текущей прошивки, интерфейс может меняться, поэтому процесс перепрошивки показывать не буду, в интернете полно инструкций.
Теперь нужно выбрать, какое из устройств будет работать как маршрутизатор (получать и раздавать интернет, выполнять роль DHCP сервера), а какое как точка доступа (только обеспечивать подключение клиента к Wi-Fi). Соединяем устройства проводами согласно схеме.
Если у вас больше 2-х устройств, то все точки доступа соединяются с LAN-портами маршрутизатора. Назначаем всем LAN-интерфейсам статические IP-адреса, по этим адресам мы будем получать доступ к web-интерфейсу для настройки точек.
Настраиваем WAN соединение на маршрутизаторе согласно настройкам вашего провайдера.
На точках доступа удаляем все WAN соединения. В разделе настройки LAN, DHCP сервер выставляем в режим «Запретить».
Всё, теперь мы имеем один маршрутизатор с настроенным интернетом и DHCP сервером, а также устройство, работающее в режиме точки доступа.
На обоих устройствах необходимо сделать одинаковый SSID. Я назвал свою тестовую сеть «Roaming».
Теперь в web-интерфейсе в левой части ищем пункт «Wi-Fi», жмем на него и выпавшем списке выбираем пункт «Роуминг». Жмем его и в правой части экрана передвигаем ползунок вправо.
Важные настройки.
Минимальный уровень сигнала. Уровень сигнала клиента. При этом значении сигнала наша точка будет начнет опрашивать соседей на предмет того, кто лучше видит этого клиента.
«Мертвая» зона (от -50% до 50%). Уровень сигнала клиента на другой точке относительно уровня сигнала на текущей.
Пример. Минимальный уровень сигнала 70%. Мертвая зона 10%. Если уровень сигнала достигнет 70%, активная точка начнет опрос соседей «Кто видит этого клиента? Какой у него уровень сигнала?». Соседи отзываются: «Я вижу. Уровень 75%». Это попадание в мертвую зону.
Переключения не произойдет. Второй скажет «Я вижу. Уровень 90%». Это за пределами мертвой зоны. Активная точка сбросит соединение с клиентом. Вторая его подхватит. Эти настройки придуманы, видимо для того, чтобы клиент не прыгал постоянно между точками. Этими параметрами нужно поиграть в вашей конкретной сети.
С параметрами разобрались, повторяем настройку на втором устройстве. Теперь всё сделано согласно рекомендациям D-Link. Надо бы протестировать.
И тут до меня дошло, что для теста мне необходимо разнести точки на расстояние, когда клиент будет видеть обе точки, но при этом падение уровня сигнала будет значительным для срабатывания функции. Метров, эдак, 40-50. К сожалению, я не олигарх и у меня нет своего замка. К счастью, в ящике стола нашлась фольга. Покупка замка была отложена до лучших времён. Из фольги соорудил шапочку, которой накрывал точку доступа. С шапочкой дела пошли получше, мощность сигнала снижалась практически до границы видимости. Соответственно, и клиента эта точка видела очень плохо.
Сформировался следующий план испытаний:
1. Растащить обе точки максимально далеко. Получилось порядка 5 метров со стеной между ними.
2. Встать рядом с одной из них, присоединиться к тестовой сети. Клиент подключится к ближайшей точке, поскольку у неё сигнал лучше.
3. Потом двинуться ко второй точке. Для гарантии, активную накрыть шапочкой из фольги.
4. Переключение клиента отслеживать через web-интерфейс точек.
В общем, всё прошло по плану. Видимо потому, что это была 5 версия плана. Клиент цеплялся к точке с наилучшим сигналом. «Убитая» точка отбрасывала клиента, как и положено.
На этом можно было бы и закончить, заявленный функционал работает, клиент послушно прыгает от точки к точке. Переход происходит быстро.
Но насколько быстро? И хватит ли этого «быстро» для обеспечения непрерывного сервиса при передвижении в зоне действия всей сети? Поскольку цифры скорости переключения для меня, как для пользователя мало информативны, я решил протестировать, как будет вести себя сессия например, видеоконференции, при переключении между точками. План созрел такой:
1. Беру свой рабочий сервис ВКС. 2 аккаунта, один на ноутбуке, второй – на телефоне. Для чистоты эксперимента, ноутбук цепляю к рабочей сети, чтобы видео-поток шел не внутри одной Wi-Fi сети, а через провайдерские линии. Телефон цепляю к тестовой сети.
2. Звоню с телефона на ноутбук.
3. С телефоном ухожу ко второй точке, накрывая первую шапочкой из фольги. И слежу за качеством и наличием связи.
4. Потом контролирую через web-интерфейс факт переключения телефона между точками.
Результаты таковы. Прерывания связи не было, от слова вообще. Был момент возникновения артефакта на картинке и щелчок в звуке, предполагаю, что в момент переключения. Телефон, как и ожидалось, переключился на вторую точку.
Естественно, есть в моей программе тестирования ряд недостатков. Например, в тестовой сети было всего 2 клиента. Я не устраивал стресс-тестирование для определения максимальной скорости передвижения клиента без обрыва связи, просто ходил пешком. Я не знаю, как будут работать другие потоковые сервисы. Интересно было бы протестировать работу функции в разных подсетях (по заверениям производителя работать будет), но лень.
В качестве резюме.
1. Считаю, что функция вполне годная, по крайней мере при скромном бюджете и небольших масштабах.
2. Список поддерживаемых устройств достойный, есть в нем и AC устройства, компания обещает этот список расширять.
3. Человеку в D-Link, который писал инструкцию по настройке, я бы что-нибудь оборвал.