Введение

OpenWRT обычно используется либо в домашних сетях, либо на мелко-средних предприятиях. С недавнего времени мне пришлось в своей домашней сети перейти на данную прошивку и достать свой роутер купленный еще 3 года назад. Я у себя использую Xiaomi Redmi Router AC2100. На нем я создал несколько изолированных Wi-Fi сетей, а так же все физические порты ввел в нетеггированый режим VLAN. И хочу рассказать, как это делал.

Что я хотел получить перед началом конфигурации:

  • Нетегированную сеть, так скажем дефолтную, у которой был бы доступ к другим сетям
  • Админская сеть, доступ у которой был бы в домашнюю и доверенную сети
  • Домашняя сеть для подключения телевизоров, ноутбуков, телефонов членов семьи. У данной сети должен быть доступ в сеть IoT.
  • Сеть IoT, изолированная сеть должна иметь только доступ в интернет, и возможность подключаться из домашней сети для управления устройствами.
  • Гостевая сеть, для доступа только лишь в интернет.

Перед началом конфигурации, рекомендую нарисовать свое представление о сети на бумаге или еще где-либо.

Свое некое представление я нарисовал в Obsidian

Стоит обратить внимание, что сервер с Proxmox я вывел в не теггиромую сеть, для возможности установки VLAN’ов для самих виртуальных машинах. Так как в будущем я хочу создавать виртуалки с определенным функционалом, для определенной сети.

Стрелки, направления от одной сети к другой указывают предоставляемый доступ к сетям и доступ к самому интернету. Исключением является дефолтная сеть 192.168.99.0/24

Так же если обратить внимание на нумерацию сетей, я пропустил 192.168.88.0/24 на случай если мне потребуется подключить роутер от компании Mikrotik. От которого мне пришлось отказаться.

Роутеры компании Mikrotik довольно хороши и у них есть свои плюсы и минусы. Но мне потребовался более расширенный функционал от своего роутера, что послужило созданию данной статьи.

RouterOS более стабильна в сравнении с OpenWRT, если вы не готовы мериться с ситуациями, когда вам нужно будет ходить в ПУ роутера или ходить на него через SSH, то следует подумать, что Вам важнее стабильность или функционал. Я выбрал второе.

Перед настройкой, мы возьмем состояние Вашей сети как дефолтное после сброса всех настроек, то есть у вас одна подсеть условно говоря 192.168.0.0/24, один bridge, один wan интерфейс, дефолтные настройки как фаервола, так и правила форварда между интерфейсами.

У Вас будет показано мостовое устройство «br-lan», а затем «wan». Каждый порт коммутатора отображается как сетевое устройство, выделенное серым цветом (eth0, lan1, lan2, lanX).

Виртуальное устройство br-lan, является мостом для всех портов lanX и VLAN фильтром для физических портов вашего роутера.

На странице интерфейсов отображается информация о LAN, WAN и WAN6 сетях.

WAN6 это тот же самый WAN порт, только используется для протоколка IPv6.

Перед началом настроек вашего роутера необходимо сделать резервную копию конфигурации. Убедиться, что эта копия корректна. Убедиться, что бэкап восстанавливает вашу кофигурацию.

Так же понадобиться проводное подключение к роутеру. Если Вы подключаетесь к роутеру по Wi-Fi, то Вы не сможете настроить VLAN, Вы будете терять связь со своим роутером каждый раз при применении настроек VLAN. Стоит об этом помнить заранее.

Так же хочу напомнить о функционале прошивки OpenWRT. Если вы применили любые настройки. В окне вашего браузера появится окно с отчетом 90 секунд и если Вы где-то ошиблись в настройках и потеряли доступ к своему роутеру после применения этих настроек, то лучшим способом восстановить соединение это - не делать, вообще ничего.

По истечению 90 секунд, если бразуер не смог получить доступ к роутеру, OpenWRT автоматически откатит настройки и предложит разные варианты, как вернуться на шаг назад.

Хочу еще дополнить, что рекомендую дома держать два роутера, чтобы всегда один был на подмену. Это конечно может прозвучать странно, но учитывая, что в наш мир пришла удаленка, постоянное соединение с интернетом практически всегда необходимо. В моем случае пришлось свой роутер с OpenWRT подключать с микротику по Wi-Fi для тестов.

То есть мой роутер Xiaomi был клиентом для роутера Mikrotik, чтобы я без больших перебоев с доступом в интернет. Когда все настройки были завершены, я просто подменил роутер, внес заключительные настройки и еще раз подключил все Wi-Fi устройства к новым сетям. Конечно иметь два роутера нужно не всем, но в моем случае это оказалось необходимым. Так что о продаже своего микротика пришлось забыть, на случай обратного переезда и других возможных ситуаций :)

Так же рекомендую изменить вашу локальную подсеть, если Вам это необходимо. В моем случае я изменить сеть с 192.168.1.0/24 на 192.168.99.0/24.

Когда вся подготовка завершена. Можно приступать к настройке.

Важное замечание. Если Вы хотите повторить ту же настройку, что и у меня, адаптируя под свои нужды на ходу. То рекомендую не применять настройки сразу, а прочитать до конца заголовка, а затем применять настройки.

Настройка VLAN на br-lan

Подключитесь по кабелю к порту lan1 или lan3 перед началом работы и отключитесь от Wi-Fi.

Перейдем в настройки Bridge-device и зададим ему нужно количество VLAN’ов и их нумерацию. Последовательность номеров VLAN устанавливайте на свое усмотрение.

Что означают эти настройки:

Расскажу тут более расширено, как можно воспринимать данные настройки.

VLAN 99 - задан для моей сети 192.168.99.0/24, которую я хотел сделать нетегированой с доступом ко всем сетям. Получается устройства подключенные в lan1 и lan3 будут иметь доступ к сети 192.168.99.0/24 без дополнительного выставление тега на интерфейсе в операционной системе устройства.

В моем случае lan1 - это подключенный PiKVM lan3 - сервер Proxmox lan2 - не является участником сети с тегом VLAN 99

lan1 и lan3 - являются участниками сети 192.168.99.0/24 с VLAN 99 без передачи VLAN в своих сетевых пакетах, словно VLAN тега нет, но он есть, вроде :)

lan2 - не является участником сети VLAN 99

VLAN 22 - ни один из физических портов, подключенных к роутеру, не может быть участником сети VLAN 22 (192.168.22.0/24). Получается устройства не смогут получить доступ к сети с тегом 22 и устройства из сети с тегом 22 не смогут получить доступ ни к PiKVM, ни к серверу.

VLAN 55 - эту настройку можно воспринять так:

lan1 и lan2 - не являются участниками сети 192.168.55.0/24

lan3 - может быть участником сети 192.168.55.0/24, при условии, что он будет передавать номер VLAN в своих сетевых пакетах

VLAN 66 - настройки идентичны, что и для VLAN 55

VLAN 77 - настройки воспринимаем так

lan1 - не является участником сети VLAN77

lan2 - является участником сети 192.168.77.0/24 VLAN 77 без указания VLAN 77

lan3 - является участником сети 192.168.77.0/24 VLAN 77 c указанием VLAN 77

Нажмите сохранить и применить. Убедитесь, что соединение к роутеру у Вас не пропало, перед дальнейшими настройками.

Настройка lan интерфейса для использования br-lan, нетегированного VLAN 99 (br-lan.99)

Переходим во вкладку Interfaces и изменяем наш lan интерфейс. Настроим ее на VLAN 99.

В пункте Device выбирем наш br-lan.99 - что отвечает за VLAN 99. Сохраним и применим изменения. Таким образом Вам необходимо создать новые интерфейсы с уникальными именами, своими подсетями и своими VLAN тегами.

Рассмотрим на одном примере. Все в той же вкладе Interfaces создадим новый интерфейс кнопкой Add new interface…

Дадим ему новое имя, в поле Protocol выставим Static address, и в поле Device, выбираем br-lan.55 - отвечающий за VLAN 55. Жмем большую зеленую кнопку Create interface и попадаем в окно редактирования интерфейса.

Тут можно выставить множество разных настроек. Нас интересует поля IPv4 address и IPv4 netmask. Обязательно проверьте автозапуск данного интерфейса, настраивается это установкой галочки в поле Bring up on boot

Перейдем во вкладку DHCP Server, для настройки раздачи IP в этой сети.

И выставляем в поле Start последний октет. То есть первый IP адрес который сможет раздать DHCP Server в сети 192.168.55.0 - будет 192.168.55.2.

Limit - является ограничением на количество раздаваемых IP адресов DHCP сервера.

Lease time - количество часов, на которое DHCP сервер будет отдавать устройству IP адрес. Его еще называют “время аренды”. Если спустя 12 часов, устройство не будет отвечать, данный IP освободиться для другого устройства в сети.

Нажимаем Save, затем Save & Apply. И так создаем каждый интерфейса для каждого VLAN’а

Настройка зон фаервола

Чтобы контролировать доступы между созданными сетями. Можно воспользоваться Firewall - Zone Settings.

В данном меню мы настраиваем доступы из одной сети в другую. Если у Вас много VLAN’ов, чтобы не запутаться опирайтесь на ту карту, которую вы нарисовали себе в самом начале.

В моем случае доступы выглядят на данный момент вот так.

Из данных настроек можно понять следующее:

wan - имеет доступ только на выход в интернет и имеет возможность маскарадить IP адреса (NAT)

lan - (VLAN 99) имеет доступ в WAN без ограничений + настройки нетеггированого доступа к другим сетям.

admin - (VLAN 77) имеет тот же доступ без ограничений в сети lan, other, wan

other - (VLAN 66) не имеет доступ к роутеру, разрешен выход в интернет, разрешено общаться с другими интерфейсами. Имеет доступ к сети wan и iot

iot - (VLAN 55) не имеет доступ к ни роутеру, ни возможности ходить в другие сети, имеет доступ только в интернет через wan

guest - (VLAN 22) все тоже самое, что и iot.

Если почитать все внимательно, то получается, что сети которые не имею доступ к роутеру как к шлюзу, но имеют возможность выйти в интернет. То может возникнуть вопрос: “А как устройства подключенные например в guest сети, получат DNS адреса или IP адреса в локальной сети, если они заранее не прописаны в настройках”.

Для ответа на этот вопрос просто читайте статью дальше и будет видно, как можно сделать исключение по портам. Настраивается это в Traffic rules. После настройки зон, мы перейдем к этому пункту.

И так, давайте на примере создадим зону guest и запретим ей все, кроме выхода в интернет. Нажмем на кнопку Add

Приведем настройки к такому виду и разберем, что есть, что :)

Name - задаем имя для нашей зоны

Input - правила доступа к роутеру (запрещаем)

Output - правила доступа к выходу “в наружу”, в интернет или в другие сети находящимися за роутером (порт WAN поумолчанию) (разрешаем)

Forward - правила доступа к другим сетям (запрешаем)

Covered networks - сети для которых действует данные правила зоны

Allow forward to destination zones - сети в которые сети из поля Covered networks имеют доступ к сетям находящимися этом поле. Ставим wan

Все готово, жмем Save, затем Save & Apply

Приведу еще пример для админской сети, где у меня есть доступ почти ко всему

И так, настраиваем по этой же логике все зоны, для каждой сети и сохраняем наши изменения.

Завершим настройки исключениями запросов к роутеру, для получения DNS и DHCP.

В разделе Network -> Firewall -> Traffic Rules создадим одно правило для сети guest

Выглядит вот так

Name - имя правила для фаервола

Protocol - TCP, UDP сразу в одном правиле, чтобы не плодить много

Source zone - зона из которой должен приходить трафик на роутер

Destination zone - зона куда должен трафик прийти

Destination port - порты 53 - DNS, 67-68 порты DHCP

Action - accept, разрешить

При создании правил нужно рассматривать с точки зрения роутера (входные и выходные сети/устройства и т.д.)

Сохраняем и создаем еще одно правило например для сети IoT. Сохраняем и применяем, как это делали уже не раз.

Так же в случае, если сеть не получает нужные ограничение, проверить Firewall Settings для каждого из вашего созданного интерфейса.

И так, мы настроили VLAN и сегментацию сетей для физических и логических портов. Но большинство устройств используют Wi-Fi. Давайте приступим к заключающему этапу.

Настройка Wi-Fi для каждой сети

В зависимости от железа, данная картина может отличаться от моей. Рекомендую удалить дефолтные сети OpenWRT, потому как они не защищены паролем. Либо установить этот пароль.

Давайте для примера создадим Wi-Fi точку с доступом к админской сети.

Нажмем на кнопку Add, на против той сетевой карты, которую нам нужно (2,4 GHz или 5 GHz)

Mode - Access Point, является режимом точки доступа

ESSID - зададим имя нашей Wi-Fi сети, какое вам больше нравится

Netwrok - выбираем в какую сеть будут иметь доступ устройства, при подключении к этой Wi-Fi точке

А так же зададим шифрование WPA3 или WPA2 в поле Encryption

Key - пароль от Wi-Fi

Жмем Save и применяем настройки

Теперь должна появиться сеть с вашем именем и она подчиняется тем правилам доступа, что мы ранее настраивали.

Убедитесь, что у вас в настройках Wi-Fi клиента (телефон / ноутбук) не прописан свой DNS и IP адрес, а именно вы должны получить эти адреса от самого роутера.

Это может являться основной проблемой при первой настройке роутера. Я не внимательно настроил фаервол в первый раз и не мог принимать DNS запросы от роутера, на что потратил довольно много времени. Дело оказалось в невнимательности.

Как только доступ в инет есть после всех настроек, особенно в тех сетях, где больше всего ограничений (iot, guest) можно начинать проверку каждой из ваших Wi-Fi точек.

  • Убедитесь что вы получаете IP по DHCP именно той сети, что и планировалось изначально.
  • Убедитесь, что вы можете выполнить nslookup для google.com / ya.ru (DNS).
  • Убедитесь, что вы можете или не можете получать доступ к шлюзу через браузер в зависимости от того, в какой сети сейчас вы находитесь.
  • Убедитесь, что устройство находящиеся в нужной сети может или не может получать доступ в интернет, в зависимости от находящейся сети.

Настройка роутера в первый раз выглядит довольно запутанной, и если у Вас что-то, не получается. Возьмите 5 минутный перерыв и еще раз проверьте все настройки с самого начала и до конца. Не стоит перечитывать всю статью, достаточно остановиться на пунктах с настройками, где присутствуют скриншоты и объяснение настроек.

Анонсы и еще больше информации в Telegram-канале