Всем привет, эта небольшая инструкция посвещается моим коллегам и всем тем, кому нужно реализовать сценарий Router-On-A-Stick на устройствах с интернет-центром Keenetic. Делаете все на свой страх и риск, хотя ничего сломаться не должно.
Проблема
Хотел бы начать со своего варианта использования. Есть два помещения, в которых требуется WiFi покрытие для комфортной работы в Интернете. В первое помещение заходит WAN кабель от провайдера, в этом же помещении находится роутер. Во втором помещении этот сигнал очень слабый из-за металлических стенок, иногда даже к сети не удается подключиться. Сразу на ум приходит желание усилить WiFi сигнал каким-нибудь репитером или вторым роутером, однако и второй роутер не может подцепиться к первому. Сразу приходит на ум прокладка кабеля между первым и вторым роутером для объединения их в LAN-сеть, вариант этот стопроцентный, но зная про существование VLANов, можно чутка упроситить задачу.
Поскольку на территории объекта, на котором работает провайдер, пользователям запрещено правилами прокладывать кабели самостоятельно и вмешиваться в инфраструктуру объекта, то провайдер предоставляет услугу подключения локальных сетей через провайдерские коммутаторы на объекте. Это означает, что через стену или потолок клиенту нельзя кинуть кабель между своими хостами. В этом есть свои плюсы, особенно если ваши помещения находятся далеко друг от друга, не придется платить за два WAN соединения, также сохраняются все приемущества работы в одной локальной сети, сохранится удобное взаимодействие компьютеров и принтеров.
В подключении дополнительного роутера к коммутатору нет ничего сложного, провайдер прокладывает витую пару, выделяет для вашей локалки VLAN ID и он назначется на порт коммутатора (UNTAGGED, ACCESS MODE). Однако, тянуть второй кабель от основного роутера до коммутатора по тому же маршртуту может быть затратно и не всегда имеется техническая возможность. Конечно можно раздвоить кабель на два RJ-45 с обеих концов как на риснуках 1 и 2, но мы так делать конечно же не будем.
Решение с использованием VLAN
Если оборудование клиента поддерживает работу с VLAN (802.1Q или 802.1ad), то имеет смысл настроить его таким образом, чтобы порт на основном роутере клиента стал транковым и оперировал тегированными пакетами при работе с WAN и LAN. Это позволить избежать проятяжки второго кабеля до коммутатора и сэкономить порт. Будет очень хорошо, если клиент имеет роутер на RouterOS, OpenWRT или других прошивках, где можно работать с мостами, VLANами и сетевыми интерфейсами. Но к сожалению для нас, потребитель делает выбор в пользу более простого оборудования с большим количеством абстракций, коим является Keenetic.
Будем использовать VLAN ID 1000 для выхода в интернет, а VLAN ID 2000 для локалки. Основной роутер — Keenetic Giant, второй — Keenetic Air.
В настройках вебке Keenetic есть настройка VLAN, которая позволяет принимать теггированный трафик на порт для WAN подключения, позволяет разбить локальную сеть на сегменты включая и исключая порты. Однако нельзя в настройках сегмента с заданным VLANом включить в сегмент порт, который считается WANом (см. Рисунок 3).
К счастью, весь этот веб-интерфейс это абстракция над Keenetic CLI, опыт работы с которым похож на работу с консолью Cisco. Через Keenetic CLI можно настроить всё, а вводить команды можно через вебку, ssh (надо доставить пакет), telnet. Стоит отметить, что инициализация роутера — это последовательное исполнение операторов в Keenetic CLI из файла startup-config, который можно скачать и просмотреть.
Ниже представлен упрощенный файл конфигурации после настройки роутера через вебку (настройка статики от провайдера, назначен VLAN 1000 на WAN порт и т.д.).
interface GigabitEthernet0 up ! interface GigabitEthernet0/0 rename 1 switchport mode access switchport mode trunk switchport access vlan 1 up ! interface GigabitEthernet0/1 rename 2 switchport mode access switchport access vlan 1 up ! interface GigabitEthernet0/2 rename 3 switchport mode access switchport access vlan 1 up ! interface GigabitEthernet0/3 rename 4 switchport mode access switchport access vlan 1 up ! interface GigabitEthernet0/Vlan1 description "Home VLAN" security-level private ip dhcp client dns-routes ip name-servers up ! interface GigabitEthernet1 rename ISP description "Ethernet-подключение" mac address factory wan security-level public ip dhcp client dns-routes ip name-servers ipv6 no name-servers up ! interface GigabitEthernet1/0 rename 0 up ! interface GigabitEthernet1/Vlan1000 description "Ethernet-подключение" mac address factory wan security-level public ip address <IP от провайдера> <маска от провайдера> ip dhcp client hostname Keenetic-1234 ip dhcp client dns-routes ip mtu 1500 ip global 700 ip name-servers igmp upstream ipv6 no name-servers up ! interface WifiMaster0 country-code RU compatibility BGN tx-burst rekey-interval 86400 vht up ! interface WifiMaster0/AccessPoint0й rename AccessPoint description "Wi-Fi access point" mac access-list type none security-level private wps wps no auto-self-pin authentication wpa-psk ns3 secret encryption enable encryption wpa2 ip dhcp client dns-routes ip name-servers ssid secret wmm rrm ft mdid 11 ft enable up ! interface WifiMaster0/AccessPoint1 rename GuestWiFi description "Guest access point" mac access-list type none security-level private encryption disable ip dhcp client dns-routes ip name-servers down ! interface Bridge0 rename Home description "Home network" inherit GigabitEthernet0/Vlan1 include AccessPoint include AccessPoint_5G mac access-list type none security-level private ip address 192.168.1.1 255.255.255.0 ip dhcp client dns-routes ip name-servers igmp downstream iapp key ns3 secret up !
Конечно же, можно сделать все необходимые настройки для работы принципа Router-On-A-Stick через консоль если у вас есть опыт, однако это равносильно настройке роутера с нуля. Поскольку надо будет создавать новый интерфейс GigabitEthernet1/Vlan2000, создать под него новый Bridge (потому что в существующий Bridge не получилось включить новый интерфейс, операторы include и inherit не сработают), также непонятно как этот новый бридж и интерфейсы будут работать с вебкой и не сломается ли сама вебка (как бывает с OpenWRT и интерфейсом LuCi). Поэтому для настройки будем править только конфиг, эти действия должны привести к успеху.
Правим startup-config
Поскольку в конфиге везде фигурирует VLAN ID 1 под локалку, логично предположить, что все единицы нужно заменить на число VLAN ID под локалку, полученный от провайдера, в нашем случае 2000. Советую открыть конфиг в VSCode или другом редакторе и воспользоваться инструментом замены.
Для начала, нужно на всех портах роутера настроить Untagged VLAN ID. Для этого нужно заменить все строки «switchport access vlan 1» на «switchport access vlan x», где x — номер желаемого VLANа. На рисунке 4 показано как это делается, а на рисунке 5 результат (слева — до, справа — после)
Вторым шагом надо переименовать интерфейс для локалки, найдите GigabitEthernet0/Vlan1, он должен выглядить следующим образом:
interface GigabitEthernet0/Vlan1 description "Home VLAN" security-level private ip dhcp client dns-routes ip name-servers up
Его надо переименовать, но только сделать это надо с заменой всех совпадений, это для того, чтобы заменить все ссылки в файле на этот интерфейс и не было проблем. Переименуйте его в GigabitEthernet1/VlanX, где X — VLAN ID для локалки, полученный от провайдера. На рисунке 6 показано как это можно сделать.
Третьим действием убедиться, что существует GigabitEthernet1/VlanX, где X — VLAN ID для выхода в интернет от провайдера. Если вы настроили WAN через веб-интерфейс и правильно указали VLAN ID, то будет примерно так:
interface GigabitEthernet1/Vlan1000 description "Ethernet-подключение" mac address factory wan security-level public ip address <IP от провайдера> <маска от провайдера> ip dhcp client hostname Keenetic-1234 ip dhcp client dns-routes ip mtu 1500 ip global 700 ip name-servers igmp upstream ipv6 no name-servers up !
После этого, сохраняем конфиг, заливаем его в роутер и проверяем, не потеряли ли мы доступ к роутеру и все ли работает. Если что-то пошло не так и не можем зайти на роутер, то сбрасываем его к заводским.
После таких действий, интерфейс работает как ни в чем не бывало. Поскольку настройка была произведена правя конфиг не могу дать гарантий, будет ли работать должным образом добавление новых сегментов (например Гостевая сеть или др.), другие пункты настроек роутера должны нормально работать.
Настройка второго роутера
Второй роутер у нас является тоже кинетиком, однако его можно настроить в режим точки доступа, переключив физический переключатель на корпусе или выставить в настройках его режим на «Ретранслятор» и подключить второй роутер к коммутатору. На первом роутере зайти в настройки Mesh и подключить второй роутер как ретранслятор, после этого заработает интернет на втором роутере, автоматом подятянутся названия сетей и паролей, а также заработает бесшовный роуминг 802.1r/k/v.
Если второй роутер не является Keenetic’ом, то на нем нужно сменить статический IP на отличный от основного роутера (в моем случае на 192.168.1.2), чтобы не было конфликтов в сети, также отключить DHCP-сервер, NAT, Firewall и настроить роутер под себя. Тем самым, сделать из него обычную точку доступа без функций маршрутизатора.
Заключение
Это мой первый опыт написания статей, также с Keenetic’ами опыт работы тоже небольшой у меня. К этой настройке я пришел методом тыка, сначала пытался через Web, затем через CLI, полезной информации для себя в Интернете по этому поводу я не нашел, да и документация по CLI не совсем понятная для меня, поэтому родилось мое собственное решение, которое оказалось простым.
Надеюсь что ничего не упустил, потому что сейчас не имею возможность все это провернуть еще раз и проверить из-за отстствия железок, имею только конфиги.
ссылка на оригинал статьи https://habr.com/ru/articles/850532/
Добавить комментарий