====== netshe_doc_chap1 ====== {{netshe_doc_chap1.odt|Original file}} {{глава_1_-_общие_сведения_Image_0.gif}}**NETSHe Lab** |**Универсальное программное обеспечение **\\ **NETSHe**** **\\ **для сетевых устройств.**\\ Часть 1. Общие сведения|| | NETSHe Lab длительное время занимается разработками программного обеспечения для сетевых устройств, провайдеров услуг и операторов связи. Среди программного обеспечения центральное место занимает операционная система NETSHe, которая может быть использована в широком спектре сетевых устройств и сервисов.\\ || |Версия 2\\ Март, 2020|Станислав Корсаков, ООО «Нетше лаб»\\ (с) 2009-2020\\ Ярославль| Оглавление ====== Введение в NETSHe ====== В этом разделе Вы сможете узнать об устройстве NETSHe, основных функциях, системных требованиях NETSHe, способах и методах установки на устройства. NETSHe представляет собой набор программного обеспечения для сетевых и встраиваемых устройств (маршрутизаторы, точки доступа), телевизионных приставок, сетевых хранилищ и многих других. Программное обеспечение, построенное на базе ядра Линукс, включает в себя: - набор программных пакетов, реализующих функционал ПО; - подсистему хранения конфигурации системы/устройства; - подсистему инициализации; - подсистему событий, на основе которой происходит взаимодействие компонентов программного обеспечения; - веб-интерфейс управления устройством. ===== Основные функции NETSHe ===== ====== ====== NETSHe реализует следующий набор функций в части сетевого взаимодействия: - Управление сетевыми интерфейсами (в том числе динамическими, туннельными и радио); - Виртуальные интерфейсы и алиасы; - Управление маршрутизацией (в том числе статической, на основе правил, динамической с применением RIP, OSPF, BGP); - Сетевой мост; - Объединение интерфейсов; - DHCP-сервер (автоматическое назначение IP-адресов клиентским машинам) и DHCP-форвардер (пересыльщик DHCP запросов с внутренней сети на внешний DHCP-сервер) с гибкими правилами выделения адресов (фильтрация по MAC-адресам/статическое выделение адресов/динамическое выделение); - Сервер и клиент службы времени, интегрированный с сервером DHCP; в части формирования и управления трафиком: - Межсетевой экран с поддержкой зон; - Управление качеством обслуживания (QoS) и приоритизацией исходящего трафика; - Использование характерных для приложений последовательностей в трафике для построения правил межсетевого экрана и качества обслуживания (L7). Данная функция допускает написание правил фильтрации для определенных видов трафика, например, пиринговых сетей, а также повышение приоритета трафика аудио- и видео-приложений; - Фильтрация Ethernet-кадров; - HTTP-прокси с возможностью использования вышестоящего прокси-сервера (каскадирование); в части туннелирования соединений: - Сервер доступа с поддержкой протоколов PPTP, PPPoE, L2TP с авторизацией на внешнем RADIUS-сервере; - Концентратор для частных выделенных сетей (VPN) на протоколах PPTP и L2TP с поддержкой IPSEC (в связке L2TP/IPSEC) и OpenVPN; - DM VPN хаб и спок; - IPSec клиент и сервер; в части радио и беспроводных сервисов: - Расширенное управление радио-интерфейсами с поддержкой режимов клиента, базовой станции и повторителя, в том числе с режимами шифрования WEP и авторизации WPA-PSK, WPA-EAP, 802.11X; - Хот-спот контроллер с выделением адресов клиентам, авторизацией на внешнем UAM-сервере, управлением пропускной способностью и управляемым доступом к сайтам; в части мониторинга и управления устройствами: - Управление программным обеспечением устройства. Возможность удаления установленных программных пакетов, установки новых, подключения новых репозиториев; - Управление пользователями устройства с разделением уровней доступа через веб-интерфейс (полный или только для чтения); - Управление внешними накопителями и разделами с возможностью подключения внешних накопителей с пользовательскими разделами, разделами физической памяти (своп) и т.п.; - Мониторинг состояния системы (памяти/процессора/сетевых интерфейсов и т. п.) в режиме реального времени с наглядным отображением в виде графиков; - Мониторинг состояния системы через SNMP протокол (сетевые интерфейсы и физические разделы); - Резервное копирование любых каталогов устройства на внешние устройства/ftp-сервер и т. п.; - Восстановление каталогов и файлов устройства из ранее сохраненных образов; - Сохранение и восстановление файлов конфигурации. Сброс конфигурации в стартовую; - Обновление прошивки устройства; - Захват и анализ сетевого трафика, проходящего через устройство; - Утилиты проверки доступности хостов и маршрутов к ним (ping, traceroute); - Остановка и перезагрузка системы; ===== Используемое программное обеспечение и права ===== В составе используется, либо использовалось в качестве основы для производной работы разнообразное программное обеспечение под соответствующими лицензиями. Например: - Ядро Linux, код которого распространяется под лицензией GPL2. - Yahoo User Interface library (http://yui.uahoo.com). Библиотека имеет BSD лицензию. - Некоторый код из проекта m0n0wall. Код распространяется под BSD лицензией. - Некоторый код из проекта pfsense и от Scott Ulrich. Код распространяется под BSD лицензией. - Некоторый код из проекта phpsysinfo, распространяемый под лицензией GPL v2. - Некоторые иконки и изображения - часть проекта Tango (Авторы - Ulisse Perusin , Steven Garrity , Lapo Calamandrei , Ryan Collier , Rodney Dawes , Andreas Nilsson , Tuomas Kuosmanen , Garrett LeSage , Jakub Steiner <[[mailto:jimmac@novell.com|jimmac@novell.com]]>). Набор иконок распространяется под лицензией Creative Commons 2.5. - Используемые изображения из набора Nuvola распространяются под лицензией LGPL v2.1. Автор - David Vignoni ([[mailto:david@icon-king.com|david@icon-king.com]]). Иной код, аудио-визуальные образы имеют своих авторов и распространяются в соответствии с их лицензиями. Часть кода и изображений разработаны Станиславом Корсаковым, другими сотрудниками ООО «Нетше лаб» и распространяются под лицензией GPL v2. Остальная часть кода разработаны Станиславом Корсаковым, другими сотрудниками ООО «Нетше лаб» и распространяются на условиях коммерческой лицензии. Если Вы обнаружили нарушение чьих-либо прав, пожалуйста, свяжитесь с нами по электронной почте . ===== Основная идея NETSHe ===== Основной идеей NETSHe является предоставление значительного функционала (зачастую отсутствующего у прямых конкурентов, либо присутствующих в более дорогих продуктах) и управляемого через веб-интерфейс. NETSHe является универсальным программным обеспечением, функционирующем на многих аппаратных платформах. Для всех этих платформ NETSHe реализует сходные функционал и интерфейс управления, что сокращает стоимость владения устройством. Эффективное управление через веб-интерфейс снижает требования к квалификации владельца/обслуживающего персонала, что в свою очередь приводит к снижению стоимости сопровождения эксплуатации устройств. ===== Консоль или веб-интерфейс? ===== Безусловно, консоль дает максимальную гибкость в управлении устройством и максимальные возможности использования базового программного обеспечения. С другой стороны, консоль требует максимальной квалификации от эксплуатирующего персонала. При разработке NETSHe мы старались совместить максимальную гибкость управления устройствами, характерную для консоли, с простотой использования веб-интерфейса. ===== Терминология ===== Рассмотрим некоторые термины и понятия, которые применяются в отношении или внутри NETSHe. ==== Сетевые интерфейсы ==== Сетевой интерфейс - физическое или программное устройство, посредством которого система под управлением NETSHe связывается с другими устройствами. ([[http://ru.wikipedia.org/wiki/Сетевой_интерфейс|http://ru.wikipedia.org/wiki/Сетевой_интерфейс]]) Примерами сетевых интерфейсов являются: - Ethernet-порт / Ethernet-интерфейс ([[http://ru.wikipedia.org/wiki/Ethernet|http://ru.wikipedia.org/wiki/Ethernet]]). Внутри NETSHe обозначается как ethX, где X - число, записанное арабскими цифрами. - Виртуальный Ethernet-интерфейс, также VLAN-интерфейс ([[http://ru.wikipedia.org/wiki/VLAN|http://ru.wikipedia.org/wiki/VLAN]]). Внутри NETSHe обозначается как ethX.Y, где X и Y - числа, записанные арабскими цифрами. При этом X обозначает реальный Ethernet-порт, а Y указывает на номер VLAN (виртуальной локальной сети). - Алиас (или псевдоним) интерфейса. Чаще всего применяется к Ethernet-интерфейсам. Позволяет, например, назначить второй IP-адрес конкретному интерфейсу. Внутри NETSHe алиас для Ethernet-интерфейса обозначается как ethX:Y, где X и Y - числа, записанные арабскими цифрами. X обозначает реальный Ethernet-интерфейс, а Y указывает на порядковый номер алиаса / псевдонима. - Беспроводной интерфейс - радиомодуль, установленный в систему под управлением NETSHe. Внутри NETSHe обозначается как wlanX, где X - число, записанное арабскими цифрами. Каждому радиомодулю внутри NETSHe может быть сопоставлено до 8 сетевых интерфейсов. В приведенном примере Ethernet-интерфейс и беспроводной интерфейсы являются физическими устройствами и про них можно сказать, что они являются фиксированными интерфейсами (их нельзя изъять, не разобрав устройство). Очень часто к фиксированным интерфейсам применяется термин «порт». Характерной чертой фиксированного интерфейса является MAC-адрес ([[http://ru.wikipedia.org/wiki/MAC-адрес|http://ru.wikipedia.org/wiki/MAC-адрес]]) Алиасы, виртуальные VLAN-интерфейсы и беспроводные сетевые интерфейсы являются программными реализациями поверх фиксированных интерфейсов, хотя и используют (могут использовать) в своей работе аппаратные возможности фиксированных интерфейсов. Интерфейсы реализуемые программно, пусть даже с использованием дополнительно подключаемого оборудования вроде модемов, будем называть динамическими. Примерами таких являются интерфейсы, использующие множество протоколов типа "точка-точка" PPP, PPTP, PPPoE, L2TP и т.п. ([[http://ru.wikipedia.org/wiki/PPP_(сетевой_протокол)|http://ru.wikipedia.org/wiki/PPP_]]) Внутри NETSHe эти интерфейсы обозначаются как pppX (где X число, записанное арабскими цифрами), либо pppoe, l2tp, pptp, cellular (для упрощения восприятия и ассоциации с используемыми протоколами). Также динамическими в NETSHe считаются туннельные интерфейсы. Внутри NETSHe туннельные интерфейсы типа IPv4-IPv4 обозначаются как tunX, туннельные интерфейсы типа IPv6-IPv4 обозначаются как tunsitX, а туннельные интерфейсы типа GRE обозначаются как tungreX (где X число, записанное арабскими цифрами). Пожалуйста, обратите внимание, что использование части «tun» в имени туннельного интерфейса обязательно. Для интерфейсов типа "сетевой мост" ([[http://ru.wikipedia.org/wiki/Сетевой_мост|http://ru.wikipedia.org/wiki/Сетевой_мост]]) внутри NETSHe зарезервированы имена вида brX (где X число, записанное арабскими цифрами). Пожалуйста, обратите внимание, что использование части «br» в имени сетевого моста обязательно. Особыми программными интерфейсами в NETSHe являются интерфейсы с именами bondX и teqlX. Такие интерфейсы служат для логического объединения существующих интерфейсов в "мега"-интерфейс с целью повышения пропускной способности и (или) резервирования каналов связи. Loopback интерфейсы в NETSHe. В NETSHe можно создать неограниченное количество Loopback интерфейсов, имена которых должны начинаться с lo1 (lo1, lo2, lo3 и т. п.). Также, в NETSHe имеются псевдо-интерфейсы. Например, политики для IPSec задаются аналогичным интерфейсам образом, но должны содержать в своем имени часть «ipsec». Некоторые интерфейсы являются служебными внутри NETSHe, либо создаются автоматически. Чаще всего, подобные интерфейсы имеют часть «auto» в своем названии. ==== WAN, LAN, DMZ или зоны в NETSHe. ==== NETSHe (программное обеспечение) спроектировано с учетом концепции зон — логических групп сетевых интерфейсов, которые выполняют одинаковые функции и (или) к которым подключены сегменты вычислительной сети, требующие одинаковых правил взаимодействия (пропуска трафика и т.п.). Фиксированные сетевые интерфейсы, объединенные в зону, далее трактуются как порты зоны. Например, порт LAN. Управление многими сервисами внутри NETSHe построено с учетом концепции зон. Так, например, межсетевой экран работает только с настроенными зонами. Минимальное количество настроенных зон в NETSHe — одна зона LAN. Максимальное количество зон в NETSHe не ограничено. В целях совместимости NETSHe оперирует стандартными зонами LAN, WAN и DMZ: - LAN — локальная сеть ([[http://ru.wikipedia.org/wiki/LAN|http://ru.wikipedia.org/wiki/LAN]]). - WAN — внешняя по отношению к маршрутизатору сеть ([[http://ru.wikipedia.org/wiki/WAN|http://ru.wikipedia.org/wiki/WAN]]). - DMZ — демилитаризованная зона ([[https://ru.wikipedia.org/wiki/DMZ_%28компьютерные_сети%29|https://ru.wikipedia.org/wiki/DMZ_(компьютерные сети)]]). ==== Двойной доступ или Dual Access ==== В NETSHe не применяется термин Dual Access (двойной доступ) хотя механизм, который понимается под этим термином рядом производителей, реализован в NETSHe. Под данным термином понимается двухстадийное соединение с провайдером услуг. Например: подключение к провайдеру через Ethernet-интерфейс с получением IP-адреса, маршрутов и т.п. через DHCP на первом этапе и подключение с использованием семейства протоколов типа "точка-точка" (PPPoE, PPTP, L2TP) на втором этапе. Примером провайдера, использующего такое подключение, является Билайн: - Подключение к сети провайдера осуществляется через Ethernet-порт с выдачей провайдером клиенту IP-адреса, маршрутов, серверов имен. По завершении первой стадии подключения клиент получает доступ к локальным ресурсам провайдера и не имеет доступ в сеть Интернет. - На втором этапе устанавливается соединение по протоколу PPTP или L2TP с получением нового маршрута по-умолчанию, новых серверов имен и нового ip-адреса на новом интерфейсе (с именем l2tp или pptp). - По завершении второй стадии клиент получает доступ в сеть Интернет. Такое двухстадийное подключение реализуется в NETSHe, как показано на примерах в документации. ==== Клонирование MAC-адреса ==== Термин "Клонирование MAC-адреса" не используется в NETSHe, хотя такой механизм реализован. Ряд провайдеров выполняет "привязку" клиента к конкретному порту своего оборудования по MAC-адресу. Оставим за скобками суть и необходимость такой операции, которая для клиента оборачивается необходимостью выходить в сеть только с одного конкретного устройства, имеющего MAC-адрес зафиксированный провайдером, либо иметь возможность изменить MAC-адрес на своих устройствах на нужный. NETSHe предоставляет возможность поменять MAC-адрес на произвольный на любом Ethernet-интерфейсе устройства. При использовании данного механизма следует помнить, что кроме замены MAC-адреса на Ethernet-интерфейсе устройства, может потребоваться поменять и MAC-адрес на подключающемся к маршрутизатору устройстве (тот MAC-адрес, который клонируют). ===== Краткие сведения об устройстве NETSHe ===== NETSHe использует «срезы» SDK, ядра Linux и значительное число программных пакетов из состава OpenWRT, как основу для собственного SDK. «Срезы» производятся один-два раза в год и не привязаны к выходу версий OpenWRT. Чаще всего, NETSHe можно установить вместо OpenWRT, как и обратное - OpenWRT можно установить вместо NETSHe, используя стандартный механизм обновления / sysupgrade. Обновление / замена NETSHe / OpenWRT могут быть произведены из веб-интерфейса NETSHe. Следует заметить, что конфигурации в процессе замены не сохраняются. Мы не можем дать инструкций по установке / замене NETSHe и DD-WRT, NETSHe и других прошивок. Пожалуйста, обратите внимание, что несмотря на использование значительного числа компонентов OpenWRT, NETSHe не является совместимой с OpenWRT системой, т.к.: - NETSHe использует измененный SDK; - Ряд пакетов различаются между собой (версии, примененные наборы патчей, набор компонентов, места установки); - В NETSHe отсутствует инфраструктура UCI/UBUS; - NETSHe использует ряд оригинальных пакетов, драйверов и патчей, отсутствующих в OpenWRT; - В NETSHe используется оригинальная система конфигурации и запуска, основанная на едином файле настроек; - В NETSHe присутствует собственная система событий; - Полностью разные веб-интерфейсы; - Отличаются минимальные системные требования. ==== Системные требования ==== Минимальными системными требованиями для NETSHe являются 8 Мегабайт ПЗУ (флэш-памяти) и 32 Мегабайта ОЗУ (оперативной памяти). Рекомендуется использовать не менее 16 мегабайт ПЗУ и 64 мегабайт ОЗУ. Поддерживаемым NETSHe является/может являться любое устройство, поддерживаемое OpenWRT и соответствующее вышеуказанным требованиям. Также, NETSHe поддерживает ряд устройств, для которых отсутствует поддержка OpenWRT. Поддержка иных устройств может быть реализована по заказу. ==== Требования к интернет-обозревателю на компьютере пользователя. ==== Для нормальной работы веб-интерфейса требуется любой современный интернет-обозреватель с включенным приемом cookies, исполнением Java-скриптов и установленным флэш-плеером. ==== Установка и обновление NETSHe ==== Прошивки (или firmware) NETSHe поставляются в виде двоичных файлов с именами по типу NETSHe-версия-платформа.bin и NETSHe-версия-платформа-sysupgrade.bin. Например, NETSHe-1.2-alfa-nx-sysupgrade.bin означает, что в файле находится обновление прошивки NETSHe до версии 1.2 для устройств ALFA Networks N2/N5. Данный файл можно использовать для обновления до NETSHe уже установленной на устройство прошивки NETSHe или OpenWRT. Файл NETSHe-1.2-tl-wr1043nd.bin содержит прошивку NETSHe версии 1.2 для установки с помощью консольных утилит или из стандартной прошивки TP-Link. Следует знать, что на все платформы поддерживают обновление прошивок через веб-интерфейс. Некоторые платформы имеют только один файл как для первоначальной прошивки, так и для обновления (NETSHe-5.3-ac4300-sysupgrade.bin). Как правило, установка NETSHe на устройства выполняется производителем, однако иногда требуется установить/обновить встроенное ПО самостоятельно. Этот процесс зависит от моделей устройств и описан в документации к ним. ==== Консольный доступ к устройству. ==== По умолчанию, NETSHe предоставляет пользователю средства консольного доступа к устройству по протоколу ssh в случае нормального функционирования устройства и telnet в режиме восстановления после сбоя (failsafe mode). SSH доступ может быть получен с помощью стандартных ssh-клиентов на Linux, xBSD, MacOS или с помощью PuTTY под Windows. Адрес LAN-интерфейса, логин и пароль для SSH-доступа полностью соответствует таковым для веб-интерфейса. В режиме восстановления после сбоя предоставляется telnet-доступ без ввода имени пользователя и пароля по адресу 192.168.1.1 (на LAN порту). ==== Использование веб-интерфейса ==== По умолчанию веб-доступ к устройствам открыт по SSL (TCP 443) со стороны LAN, однако средствами NETSHe можно изменять и номер TCP-порта, и интерфейсы привязки. Веб- интерфейс (WebUI) является полноценным и достаточным средством управления, включающем полный набор инструментов для всех задач управления. Если устройство находится под управлением NMMS (Network Management and Monitoring Server), то в качестве порта привязки как правило устанавливается TCP 5556. При этом с NMMS доступны WebUI всех контролируемых устройств и их консоли. ==== Общая компоновка веб-интерфейса ==== ===== ===== Веб-интерфейс может быть изменен по заказу, при этом общая компоновка предусматривает следующие элементы: - В верхней части страницы может располагаться главное меню и логотип компании, при нажатии на который Вы будете перенаправлены на ее сайт. - Главное меню является выпадающим и отделяет собственно рабочую часть страницы (область ввода/вывода информации от ее верхней части). В главном меню присутствуют все функции системы в сгруппированном виде, состав их может меняться в зависимости от модели или проекта. - Ниже главного меню может присутствовать так называемая панель инструментов, которая может содержать кнопки вызова функций, типичных для материала или задачи в рабочей части страницы. Например «Новый», «Остановить сервис», «Поиск» и т. п. - После изменения каких-либо параметров в рабочей части страницы следует сохранить изменения нажатием на кнопку «Сохранить». Часто на рабочей части присутствует опция «Перезапустить службы после сохранения», при ее нажатии вместе с «Сохранить» соответствующие службы будут перезапущены. - В веб-интерфейсе применяются типизированные иконки для обозначения сходных задач. Так иконка {{глава_1_-_общие_сведения_Image_1.png}} применяется для обозначения действий типа «Добавить новую запись/свойство». Иконка в виде {{глава_1_-_общие_сведения_Image_2.png}} обозначает действия по удалению чего-либо/остановке службы/приложения. Иконка в виде {{глава_1_-_общие_сведения_Image_3.png}} обозначает операцию редактирования. Иконка в виде {{глава_1_-_общие_сведения_Image_4.png}} обозначает перезапуск чего-либо/обновление содержимого. {{глава_1_-_общие_сведения_Image_5.jpeg}} При разработке системы мы стремились дать Вам современный и элегантный инструмент, максимально оперативно и в наиболее удобной форме представляющий данные о системе и событиях, происходящих в ней. В частности, на странице «Информация о системе» (она же стартовая страница) мы в графике и режиме близком к онлайн отрисовываем загрузку процессора и памяти, разделов устройства, а также выводим информацию о ядре системы, типе процессора его производительности, установленных контроллерах. На стартовой странице расширенного режима в виде графиков выводится информация о загрузке сетевых интерфейсов и параметрах радио интерфейсов. {{глава_1_-_общие_сведения_Image_6.jpeg}} ==== Мастер настройки ==== Как и многие производители NETSHe включила в систему мастер настройки, который запускается при первом подключении к WebUI устройства. Шаги мастера реализуют минимально необходимые действия по стартовой настройке устройства. Однако мастер можно так же запустить в любое время с панели инструментов, в этом случае шаги мастера уже будут заполнены действующими параметрами. ==== Отличия документации от фактического состояния прошивки. ==== NETSHe — динамично развивающееся программное обеспечение, в которое постоянно вносятся изменения и улучшения. Мы стараемся поддерживать актуальным состояние документации, однако не считаем значительной проблемой некоторое несоответствие изображений в документации фактическому виду веб-интерфейса. Например, могут не соответствовать темы оформления веб-интерфейса, некоторые служебные изображения и сообщения, немного по-разному сгруппированы поля ввода, добавлены / удалены некоторые поля ввода / пункты меню. ==== Сообщить об ошибке ==== Создатели NETSHe - люди и, значит, имеют право на ошибки. Мы будет очень благодарны Вам за любые сообщения об ошибках, которые Вы можете разместить в соответствующем разделе сайта сообщества ([[http://netshe-lab.ru|http://netshe-lab.ru]]) или просто послав нам по электронной почте на адрес [[mailto:info@netshe-lab.ru|info@netshe-lab.ru]]__.__ В сообщении, пожалуйста, постарайтесь как можно подробнее описать:\\ Когда и при каких обстоятельствах возникла ошибка? Как она проявляется? Что предшествовало появлению ошибки? Если ошибка проявляется в веб-интерфейсе - сделайте скриншот и приложите его к сообщению. Многие модели и реализации NETSHe имеют возможность генерации отчета разработчикам через соответствующий пункт меню веб-интерфейса. Кроме того, если Вы - опытный пользователь, то приложите, по-возможности, файлы /var/log/messages, /etc/.ssxapp/main.conf и вывод команды dmesg из консоли устройств. |www.netshe-lab.ru|(+7 4852) 90-89-30| Info@netshe-lab.ru|