WDS — технология, позволяющая расширить зону покрытия беспроводной сети путем объединения нескольких WiFi точек доступа в единую сеть без необходимости наличия проводного соединения между ними, что является обязательным при традиционной схеме построения сети.
Поводом для написания этой заметки послужил заказ на реализацию недорогой в построении домашней сети wifi с несколькими точками доступа. Оказалось, что есть несколько тонкостей в реализации WDS сети на оборудовании «домашнего» уровня.
Как выяснилось в ходе работы, не все точки доступа предоставляют возможность реализации WDS, а те, что были в наличии и позволяли (по описанию) создавать распределенную сеть, на деле не поддерживали шифрование канала при организации WDS.
Быстро было найдено решение в перепрошивке роутеров под альтернативные прошивки, поддерживающие нужные функции.
Но и тут были некоторые трудности: 1) не все чипы в роутерах производителей поддерживают шифрование канала при организации WDS; 2) роутеры должны быть одной модели и основаны на одинаковых чипах, т.к. разные чипы могут «не захотеть» работать друг с другом в нужном режиме; 3) В связи с использованием нестандартных решений нет четкого руководства по реализации WDS или они написаны неточно.
В итоге были выбраны роутеры ASUS WL-520GC и dd-wrt прошивка под них: dd-wrt v24 sp1 micro_generic.
Проверить поддерживает ли ваше оборудование данная прошивка (и скачать ее) можно тут.
Страница загрузки стабильных версий (я брал stable версию).
Так как дом большой, то потребовалось приобрести четыре wifi роутера для покрытия необходимых помещений беспроводной сетью.
Роутеры размещаются по следующей схеме:
В основной роутер приходит интернет, остальные роутеры соединены с ним по wifi каналу. Роутер-2 не видит основной роутер из своей комнаты, интернет он получает через роутер-1.
Данные роутеры шьются прямо из web-интерфейса. Однако, залить dd-wrt разрешает только оригинальная прошивка до версии 2.0.0.8. Более поздние ругаются. Для обхода ограничения просто заливаем в роутер старую прошивку 2.0.0.8 предварительно переименовав ее в 2.0.1.2 (или более новую, зависит от вашей текущей прошивки). Перед перепрошивкой сбросьте роутер к заводским настройкам, если он у вас использовался ранее. Рекомендую после каждой завершенной операции (перепрошивки, сброса) перезагружать роутер выдергивая из него кабель питания на несколько секунд, а в момент перепрошивки отойти от роутера, отвернуться от него и почти не дышать. Лучше не торопиться, иначе понадобится читать ветки форума по процедуре «раскирпичивания» устройства.
После перезагрузки роутера мы попадаем на заглавную страницу dd-wrt, где нам предлагают ввести имя пользователя и пароль.
Настраиваем главный роутер
Настраиваем WAN, LAN порт, включаем DHCP сервер. Включаем STP (Spanning Tree Protocol) по рекомендациям для наших чипов из wiki dd-wrt.
В разделе SetupAdvanced Routing включаем режим работы роутера как Gateway.
В разделе WirelessBasic Settings задаем тип работы роутера как AP (Access Point), номер канала, SSID сети. Учтите, что каждая из других wifi точек должна быть настроена аналогичным образом, т.е. с таким же режимом работы (AP), именем SSID и номером канала.
Далее настраиваем шифрование в разделе WirelessWireless Security.
Рекомендованный в wiki тип шифрования для работы WDS: WEP или WPA2-Personal AES. Другие типы шифрования могут не позволить организовать WDS. Учтите, что для всех wifi точек требуется задать один и тот же тип шифрования и ключ шифрования.
Настраиваем WDS в разделе WirelessWDS.
Здесь требуется задать MAC адреса тех wifi точек, с которыми непосредственно будет связан данный роутер. Обратите внимание, что сюда нужно забивать MAC адреса не с задней крышки роутеров или их коробок, а MAC адреса wifi интерфейсов, которые можно посмотреть в каждом роутере в этом же разделе web интерфейса.
Настройка клиентских роутеров
Теперь можно настроить остальные роутеры: 1) присвоить LAN интерфейсу адрес из подсети главного роутера, но не в диапазоне его DHCP сервера; 2) отключить DHCP сервер; 3) указать шлюзом по умолчанию и DNS сервером наш основной роутер 4) в соответствии с рекомендациями убрать некоторые галочки.
В разделе SetupAdvanced Routing включаем режим работы роутера как Router.
В разделе WirelessBasic Settings задаем тип работы роутера как AP (Access Point), номер канала, SSID сети. Не забываем задавать точно те же параметры, что и на главном роутере.
Далее настраиваем шифрование в разделе WirelessWireless Security. Используем те же данные, что и на главном роутере.
Настраиваем WDS в разделе WirelessWDS. Тут указываем MAC адрес wifi интерфейса главного роутера и (если необходимо) остальных роутеров, с которыми он будет связан.
Соответственно, в моем случае роутер-1 связан с главным роутером и роутером-2. Поэтому в данном разделе я прописал MAC адреса обоих этих роутеров. На роутере-2 вписан только MAC адрес роутера-1.
После всех настроек расставляем наши роутеры согласно плану и включаем их. Работоспособность WDS можно проверить зайди в раздел StatusWireless.
В подразделе WDS Nodes должны появиться все роутеры, с которым связан данный роутер. Если уровень сигнала 0%, то роутер выключен или связь установить не удалось.
Если вы подключились к wifi сети и можете зайти на web интерфейс каждого роутера, то все получилось хорошо.
Настройка WDS Connection Watchdog
При обрыве связи по какой-либо причине роутеры иногда не могут установить коннект друг с другом. Для того, чтобы роутер перезагружался и заново устанавливал связь со своими соседями необходимо настроить WDS Connection Watchdog в разделе AdministrationKeep Alive. Указываем там ip адрес роутера, который должен быть виден данному устройству. Можно указать три адреса используя между ними пробел. Если связь потеряна, то железка перезагружается и восстанавливает соединение.
В целом решением я доволен, все работает хорошо. Однако следует учитывать, что при длинных цепочках: роутер < – > роутер < – > роутер, будет наблюдаться падение скорости в wifi сети на оконечном участке.
Автор: nekopilot