Мастерская

Прошивка TomatoUSB для роутера ASUS RT-N16. Часть 2

⇣ Содержание

В первой части мы познакомились с установкой альтернативной прошивки TomatoUSB на роутер ASUS RT-N16, а также настроили базовые функции, установили torrent-клиент Transmission, настроили доступ к накопителю по FTP и NetBIOS и сделали принтер сетевым. В этот раз повествование коснётся настройки VPN-соединения для доступа из Интернета к локальной сети за роутером, что понадобится нам для удалённого управления компьютером. Например, для того чтобы скинуть на почту забытый дома важный документ или чего-нибудь подобного. Также мы немного коснёмся настройки QoS, а напоследок затронем вопросы, связанные с разгоном процессора роутера и дальнейшими экспериментами с Optware. Итак, приступим.

#Настройка OpenVPN

Нам понадобится дистрибутив OpenVPN. Последнюю версию можно скачать на официальном сайте, выбрав в разделе загрузок Windows Installer. При установке отметьте галочками все компоненты. Мы воспользуемся простейшим вариантом организации VPN-туннеля с авторизацией по статическому ключу. Этот способ даёт возможность создать одно подключение к одному серверу (желающим заморочиться — сюда). В нашем случае таким сервером будет выступать роутер. Сгенерируем наш ключ. Для этого из главного меню в разделе OpenVPN → Utilities запустите Generate a static OpenVPN key. Готовый ключ находится в файле C:\Program Files\OpenVPN\config\key.txt.

В веб-интерфейсе роутера перейдём к разделу VPN Tunneling → Server и на вкладке Server 1 → Basic поставим галочку напротив Start with WAN. В Interface Type выбираем TUN, а в  Protocol — UDP. Port оставляем равным 1194. Для Firewall выбираем значение Automatic и переключаем Authorization Mode в режим Static Key. В оставшихся двух полях указываем внутренние IP-адреса сервера и клиента — 10.8.0.1 и 10.8.0.2.

На вкладке Advanced надо будет добавить несколько строк в поле Custom Configuration:

keepalive 10 60

ping-timer-rem

persist-tun

persist-key

Наконец, на вкладке Keys потребуется внести ключ, который мы сгенерировали ранее. Открываем файл с ключом (см. выше) и копируем всё от строки -----BEGIN OpenVPN Static key V1----- до строки -----END OpenVPN Static key V1----- включительно, а затем вставляем это в поле Static Key. Должно получиться так, как на скриншоте.

Не забываем кликнуть на кнопочку Save и запускаем сервер нажатием на Start now. На вкладке Status можно посмотреть текущее состояние сервера OpenVPN (включен или выключен), а также статистику по переданным и полученным данным, если сервер запущен. Теперь можно перейти к настройке клиента. На клиентской машине (например, на рабочем ноутбуке) также надо будет установить OpenVPN и скопировать на неё файл key.txt. В папке C:\Program Files\OpenVPN\config\ надо создать новый текстовый файл и скопировать в него следующие строки:

remote ddns_имя_роутера

dev tun

ifconfig 10.8.0.2 10.8.0.1

secret "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\key.txt"

comp-lzo

keepalive 10 60

ping-timer-rem

persist-tun

persist-key

route 192.168.1.0 255.255.255.0

В директиве remote указывается IP-адрес или DDNS-имя роутера (в нашем примере это было tomatorouter.dyndns-ip.com). Директива ifconfig содержит внутренние IP-адреса клиента и сервера OpenVPN соответственно. В secret надо указать полный путь до скопированного файла key.txt, причём использование двойных слешей (\\) в пути обязательно. Последняя строчка (route 192.168.1.0 255.255.255.0) прописывает маршрут до локальной сети за роутером. Сохраняем файл под каким-нибудь понятным именем (например, homeroutervpn) и меняем у него расширение с txt на ovpn. При двойном клике по нему будет подниматься OpenVPN-туннель до роутера. Либо можно запустить OpenVPN GUI из главного меню. После запуска в трее появится иконка, двойной клик по которой также поднимет туннель. При подключении будет показано окно с ходом операции, которое автоматически скроется после установки туннеля. Если всё прошло успешно, то цвет экранчиков иконки сменится на зелёный (уж простите за такое «блондинистое» объяснение). Ещё один двойной клик по иконе покажет окно с логом. Для отключения от VPN надо будет нажать кнопку Disconnect.

Кстати, с помощью OpenVPN можно легко объединить две удалённые сети, например в разных офисах. Нужно, чтобы в них использовались два роутера с одинаковой прошивкой TomatoUSB. Один из них конфигурируется как сервер, а второй как клиент (VPN Tunneling → Client). Нелишним будет в очередной раз повторить, что в брандмауэре должен быть открыт соответствующий порт для OpenVPN (1194 по умолчанию), а также то, что адресация в подсетях клиента, роутера (роутеров) и VPN-туннеля не должна совпадать.

#Настройка TightVNC

Для удалённого доступа к домашнему компьютеру мы воспользуемся программой TightVNC. Она, конечно, во многом уступает встроенным средствам Windows RDP, особенно в скорости отрисовки, но при этом бесплатна и очень проста в настройке. Обладателям Professional-версий Windows XP/Vista/7 лучше всё-таки воспользоваться RDP. (Откровенно говоря, и для Home Premium есть обходные пути.) Впрочем, альтернативных решений, бесплатных и не очень, существует немало. Но вернёмся к TightVNC, скачивание которой доступно отсюда. Можно установить либо только сервер или клиент, либо и то и другое сразу. При установке лучше отметить галочками все дополнительные операции.

Заодно потребуется задать пароль для доступа к VNC-серверу и к его настройкам. Вот и всё — сервис VNC будет автоматически запускаться при загрузке компьютера.

На машине, с которой мы будем получать доступ к домашнему компьютеру, достаточно установить только клиент VNC. Его можно запустить из главного меню TightVNC → TightVNC Viewer. Естественно, перед подключением у нас уже должен быть запущен OpenVPN-туннель. Дальше всё просто — вводим IP-адрес домашнего компьютера и нажимаем Connect, а затем вводим пароль, который был задан при установке сервера VNC.

Для достижения оптимального быстродействия придётся поиграться с дополнительными настройками в разделе Options. Можно выбрать алгоритм кодирования (Use encoding) и вручную задать уровень сжатия трафика (Custom compression level). Альтернативным вариантом доступа является запуск JAVA-апплета, который находится по адресу http://ip_домашнего_пк:5800.

#Static DHCP и WOL

Естественно, получить доступ к домашнему ПК можно, если он включен. Энтузиастов, которые не выключают компьютер круглые сутки, не так уж много. Нам же поможет функция Wake-on-LAN (WOL), которую поддерживают большинство материнских плат и многие ноутбуки. Эту опцию надо включить в BIOS. Она может так и называться «Wake-on-LAN» или, например, «PCI device Power On». В общем, посмотрите в документации или просто поищите в Google. Обратите внимание, что при подключении по Wi-Fi WOL работать не будет. Также нам потребуется узнать MAC-адрес сетевой карты: «Пуск» → «Выполнить» → cmd. Вводим команду

ipconfig /all

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

Для запуска машины удалённо надо зайти в веб-интерфейс роутера  (https://ddns_имя_роутера:8080) и перейти в раздел Tools → WOL. Если нужный ПК есть в списке, то достаточно кликнуть по нему для его запуска. В противном случае потребуется ввести в поле MAC Address List соответствующий MAC-адрес, нажать Wake Up и подождать, пока запустится ОС, после чего уже можно будет подключаться к VNC-серверу.

IP-адрес для VNC-подключения можно посмотреть в списке активных устройств в разделе Status → Devices List. Чтобы у компьютера всегда был один и тот же IP-адрес, надо нажать на ссылку static под его MAC-адресом в списке.

В результате будет предложено настроить привязку IP к MAC. Можно вручную прописать такую привязку для каждого устройства в локальной сети. Делается это в разделе Basic → Static DHCP. Вписываем MAC, указываем желаемый IP, добавляем имя (Hostname) и нажимаем Add, а затем Save.

#Настройка QoS

С помощью данной опции, в общих чертах, можно приоритезировать передаваемый трафик. Например, сделать так, чтобы для передачи какого-то определённого вида данных выделялась некоторая полоса пропускания. Для включения этой опции надо поставить галочку Enable QoS в разделе QoS → Basic Settings. Также рекомендуется привести настройки к виду, который показан на скриншоте ниже. Класс трафика по умолчанию (Default class) можно выбрать другой, в зависимости от дальнейшей настройки.

Затем в полях Max Bandwidth в разделах Outbound Rate / Limit и Inbound Limit надо вручную указать максимальные скорости (в кбит/с) исходящего и входящего трафика вашего интернет-соединения. Далее необходимо настроить классы трафика и для каждого класса указать скорость в процентах от общей ширины канала. Обратите внимание, что нет смысла указывать 100% скорости — не бывает так, что в каждый конкретный момент есть только какой-то один определяемый тип трафика. Всего даётся 10 классов. Максимальный приоритет имеет Highest, минимальный — Class E. Важно понимать, что приоритет и ширина канала напрямую не связаны, это не одно и то же. Если появляется некий тип трафика класса Highest, то он будет обработан в первую очередь. Это не значит, что трафик любого другого типа или класса будет «медленным». Для домашнего использования можно вполне обойтись первыми пятью классами.

 

Это просто пример, использовать его необязательно

Любой трафик, который идёт напрямую от компьютера к роутеру, не классифицируется. Аналогичным образом не классифицируется трафик, который идёт к роутеру извне или напрямую к какой-либо машине со стороны Сети. В общем, QoS применяется только к тем данным, которые находятся внутри локальной сети (интернет-трафик всех типов после прохождения роутера тоже становится локальным). При появлении любой сетевой активности роутер попытается определить тип данных и применить к ним соответствующие правила. Правила создаются на основе адресов (MAC или IP), типа протокола (TCP, UDP, ICMP, IGMP etc) + номера порта, P2P-протоколов и фильтров L7 (Layer 7), а также по количеству переданного трафика (не всегда). Фильтр IPP2P способен определять трафик популярных файлообменных сетей, а фильтр L7 содержит готовые правила для некоторых онлайн-сервисов. Определить тип трафика удаётся не всегда, особенно если он передаётся в зашифрованном виде.

Это тоже просто пример

Разберём пример настройки QoS, который приведён на скриншоте. В первой строке с максимальным приоритетом идут служебные протоколы. Им отведена очень небольшая ширина канала, так как размер передаваемых данных совсем мал, но при этом от DNS-сервера для нас важнее как можно быстрее получить ответ. В Dst Port указываются порты, к которым идут обращения. Затем есть несколько правил с классом Medium, которые обслуживают потоковые данные. Для таких данных важна стабильность канала. Смысл использования фильтрации по объёму проходящего трафика прост. В примере у нас есть два похожих правила, касающихся HTTP/HTTPS-трафика. В первом случае стоит фильтр Transferred: 0-256kb, а во втором Transferred: 256 kb+. Предполагается, что большинство веб-страничек укладывается в 256 Кбайт, а всё, что выше, скорее всего, является уже не просто попыткой открыть сайт, а что-то скачать с него. Поэтому в этих двух случаях применяются разные классы. Для правила FTP,SFTP,WLM File Transfers указан фильтр просто по портам без разделения на входящий/исходящий, так как велика вероятность того, что мы не только скачиваем данные, но и заливаем их, например, на сервер. Наконец, последнее правило пытается в первую очередь ограничить работу uTP, который используется в некоторых torrent-клиентах и зачастую создаёт излишне высокую нагрузку на сеть.

Перед тем как настраивать QoS следует десять раз подумать, надо ли оно вам. Если и так всё хорошо работает, то смысла накручивать что-то ещё нет. В принципе, с помощью QoS можно решить одну очень распространённую задачу — распределить интернет-канал между несколькими пользователями. Делается это несложно. Надо создать класс, который лимитирует скорость. К примеру, надо поделить канал напополам. Тогда мы настраиваем одинаковые классы в Outbound и Inbound, в которых выставляем ограничение в 50%. Создаём два фильтра с параметрами Src MAC/Any Protocol/IPP2P (disabled)/Layer 7 (disabled) и указываем в каждом из них MAC-адреса машин. Несколько упростить работу по созданию правил QoS позволит утилита Robson’s QoS Script Generator, которую можно скачать здесь. Готовый скрипт надо скопировать в Administration → Scripts → Firewall. Только учтите, что корректность его работы не гарантируется.

#Статистика и мониторинг

TomatoUSB предоставляет довольно неплохие средства по мониторингу и сбору статистики всего, что происходит на роутере и в локальной сети. В разделе QoS → View Graph в реальном времени обновляются наглядные графики распределения проходящего трафика по классам. Если кликнуть по имени класса в таблице слева, то можно увидеть точный список соединений. Сводная информация с указанием, что и куда передаётся, доступна в QoS → View Details. Если появляется слишком много Unclassified-трафика, то зачастую это повод призадуматься над правильностью работы сети или настроек QoS.

В разделе Bandwidth в реальном времени отображаются графики загрузки канала на каждом из сетевых интерфейсов, а также доступна общая статистка прошедшего трафика за сутки, неделю или месяц. Чтобы включить сбор статистики, надо нажать на ссылку Configure и поставить галочку Enable, а в Save History Location выбрать место для хранения логов.

Для отладки полезно включить возможность просмотра логов системы. Делается это в разделе Status → Logs, где надо кликнуть по ссылке Enable, а затем выставить примерно такие настройки:

Там же можно включить сбор статистики по всем посещённым сайтам, а также поисковым запросам, и затем просмотреть ее в Status → Web Usage. Все логи можно не только смотреть в онлайн-режиме, но и скачивать на компьютер, например, для последующего детального анализа.

#Управление частотой процессора

Частота CPU в ASUS RT-N16 специально снижена с 533 до 480 МГц. Исправить это «упущение» можно, введя в веб-интерфейсе в Tools → System → Command приведённый ниже набор команд и нажав Execute. Команда nvram set clkfreq устанавливает частоту процессора и памяти. Её параметры указываются по формуле «4x,2x,1x», то есть первое число (как раз частота CPU) вчетверо больше последнего и в два раза — предпоследнего.

nvram set clkfreq=532,266,133

nvram commit

reboot

После перезагрузки частота процессора и памяти поднимется. Однако в таком режиме роутер, скорее всего, будет очень нестабильно работать. Более того, даже с частотой по умолчанию могут наблюдаться проблемы в работе роутера. Например, перегрев. Чтобы избежать этого, можно принудительно снизить частоту:

nvram set clkfreq=440,220,110

nvram commit

reboot

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

#Вместо заключения

На этом, пожалуй, следует закончить. Мы рассмотрели не очень много дополнительных опций, которые появляются после установки альтернативной прошивки. Все инструкции, данные в статье, в определённой степени подойдут и для большинства других моделей роутеров с установленной TomatoUSB. Если вы планируете и в дальнейшем экспериментировать с Optware, то рекомендуется устанавливать его не в JFFS (и не включать эту опцию), а на внешний накопитель. Для этого на нём надо будет создать отдельную папку

mkdir /mnt/sda1/opt

и дописать в USB and NAS → USB Support → Run after mounting в самом начале строчку

mount -o bind /mnt/sda1/opt /opt

Также полезно завести отдельную папку под данные. Например, вот так

mkdir /mnt/sda1/data

А во всех местах, где у нас идёт доступ к данным (FTP, NetBIOS, запуск Transmission), использовать именно её. Дальнейшее расширение возможностей роутера зависит от ваших потребностей и фантазии. Только помните, что во всём надо знать меру. Если вы установили кучу приложений и сервисов, то не стоит удивляться, что роутер вдруг стал перегреваться, перезагружаться или просто зависать. Начать более глубокое знакомство с Optware можно с официальных инструкций и форума TomatoUSB. Полезно заглянуть и на страничку одного из разработчиков. В общем, информации на просторах Сети очень много. Удачных вам экспериментов!

 
 
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Материалы по теме
⇣ Комментарии
window-new
Soft
Hard
Тренды 🔥