Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Сетевые операционные системы (Особенности алгоритмов управления ресурсами)

Содержание:

Введение

Я выбрал эту тему, так как за последние 5-10 лет роль цифровых телекоммуникаций сильно выросла, что не могло сказаться на сетевых ОС.

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

На данный момент развитие сетевых операционных систем позволяет выполнять основные сетевые функции на обычном сервере. К примеру таких систем относятся Linux(с демонами маршрутизации Bird и Quagga) и Router OS(Mikrotik). Не уступают и решения для аппаратно-программного комплекса JunOS и Cisco IOS.

В данной работе мы рассмотрим упомянутые выше ОС, а также сравним их архитектуру, основные возможности и интерфейсы управления.

1. Классификация ОС

Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов проектирования, типами аппаратных платформ, областями использования и многими другими свойствами.

Ниже приведена классификация ОС по нескольким наиболее основным признакам.

1.1 Особенности алгоритмов управления ресурсами

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

1.1.1 Поддержка многозадачности.

По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:

  • однозадачные (например, MS-DOS, MSX) и
  • многозадачные (OC EC, OS/2, UNIX, Windows).

Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.

Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.

1.1.2 Поддержка многопользовательского режима

По числу одновременно работающих пользователей ОС делятся на:

  • однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
  • многопользовательские (UNIX, Windows NT).

Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.

1.1.3 Вытесняющая и невытесняющая многозадачность

Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов[1]:

  • невытесняющая многозадачность (NetWare, Windows 3.x);
  • вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

1.1.4 Поддержка многонитевости

Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).

1.1.5 Многопроцессорная обработка

Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами[2].

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.

Выше были рассмотрены характеристики ОС, связанные с управлением только одним типом ресурсов - процессором. Важное влияние на облик операционной системы в целом, на возможности ее использования в той или иной области оказывают особенности и других подсистем управления локальными ресурсами - подсистем управления памятью, файлами, устройствами ввода-вывода.

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

1.2 Особенности аппаратных платформ

На свойства операционной системы непосредственное влияние оказывают аппаратные средства, на которые она ориентирована. По типу аппаратуры различают операционные системы персональных компьютеров, мини-компьютеров, мейнфреймов, кластеров и сетей ЭВМ. Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные. В любом случае специфика аппаратных средств, как правило, отражается на специфике операционных систем.

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

Сетевая ОС имеет в своем составе средства передачи сообщений между компьютерами по линиям связи, которые совершенно не нужны в автономной ОС.[3] На основе этих сообщений сетевая ОС поддерживает разделение ресурсов компьютера между удаленными пользователями, подключенными к сети. Для поддержания функций передачи сообщений сетевые ОС содержат специальные программные компоненты, реализующие популярные коммуникационные протоколы, такие как IP, IPX, Ethernet и другие.

Многопроцессорные системы требуют от операционной системы особой организации, с помощью которой сама операционная система, а также поддерживаемые ею приложения могли бы выполняться параллельно отдельными процессорами системы. Параллельная работа отдельных частей ОС создает дополнительные проблемы для разработчиков ОС, так как в этом случае гораздо сложнее обеспечить согласованный доступ отдельных процессов к общим системным таблицам, исключить эффект гонок и прочие нежелательные последствия асинхронного выполнения работ.

Другие требования предъявляются к операционным системам кластеров. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима и программная поддержка со стороны операционной системы, которая сводится в основном к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической реконфигурации системы. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Недавно этой компанией заключено соглашение с корпорацией Microsoft о разработке кластерной технологии, использующей Windows NT. Несколько компаний предлагают кластеры на основе UNIX-машин.

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

1.3 Особенности областей использования

Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:[4]

  • системы пакетной обработки (например, OC EC),
  • системы разделения времени (UNIX, VMS),
  • системы реального времени (QNX, RT/11).

Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени. Для достижения этой цели в системах пакетной обработки используются следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины; так, например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается "выгодное" задание. Следовательно, в таких ОС невозможно гарантировать выполнение того или иного задания в течение определенного периода времени. В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например, из-за необходимости выполнить операцию ввода-вывода. Поэтому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач. Таким образом, взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок снижает эффективность работы пользователя.[5]

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

Системы реального времени применяются для управления различными техническими объектами, такими, например, как станок, спутник, научная экспериментальная установка или технологическими процессами, такими, как гальваническая линия, доменный процесс и т.п.[6] Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа, управляющая объектом, в противном случае может произойти авария: спутник выйдет из зоны видимости, экспериментальные данные, поступающие с датчиков, будут потеряны, толщина гальванического покрытия не будет соответствовать норме. Таким образом, критерием эффективности для систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия). Это время называется временем реакции системы, а соответствующее свойство системы - реактивностью. Для этих систем мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется исходя из текущего состояния объекта или в соответствии с расписанием плановых работ.

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

1.4 Особенности методов построения

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

К таким базовым концепциям относятся:

Способы построения ядра системы - монолитное ядро или микроядерный подход[7]. Большинство ОС использует монолитное ядро, которое компонуется как одна программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую, не требующие переключения из привилегированного режима в пользовательский и наоборот.

Альтернативой является построение ОС на базе микроядра, работающего также в привилегированном режиме и выполняющего только минимум функций по управлению аппаратурой, в то время как функции ОС более высокого уровня выполняют специализированные компоненты ОС - серверы, работающие в пользовательском режиме. При таком построении ОС работает более медленно, так как часто выполняются переходы между привилегированным режимом и пользовательским, зато система получается более гибкой - ее функции можно наращивать, модифицировать или сужать, добавляя, модифицируя или исключая серверы пользовательского режима. Кроме того, серверы хорошо защищены друг от друга, как и любые пользовательские процессы.

Построение ОС на базе объектно-ориентированного подхода дает возможность использовать все его достоинства, хорошо зарекомендовавшие себя на уровне приложений, внутри операционной системы, а именно: аккумуляцию удачных решений в форме стандартных объектов, возможность создания новых объектов на базе имеющихся с помощью механизма наследования, хорошую защиту данных за счет их инкапсуляции во внутренние структуры объекта, что делает данные недоступными для несанкционированного использования извне, структуризованность системы, состоящей из набора хорошо определенных объектов.

Наличие нескольких прикладных сред дает возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, часть которых реализуют прикладную среду той или иной операционной системы.

Распределенная организация операционной системы позволяет упростить работу пользователей и программистов в сетевых средах. В распределенной ОС реализованы механизмы, которые дают возможность пользователю представлять и воспринимать сеть в виде традиционного однопроцессорного компьютера. Характерными признаками распределенной организации ОС являются: наличие единой справочной службы разделяемых ресурсов, единой службы времени, использование механизма вызова удаленных процедур (RPC) для прозрачного распределения программных процедур по машинам, многонитевой обработки, позволяющей распараллеливать вычисления в рамках одной задачи и выполнять эту задачу сразу на нескольких компьютерах сети, а также наличие других распределенных служб.

2. Обзор сетевых операционных систем

2.1 Сетевая ОС Cisco IOS

Cisco IOS или Internetwork Operating System (межсетевая операционная система) это программное обеспечение, которое используется в большинстве коммутаторов и маршрутизаторов Cisco (ранние версии коммутаторов работали на CatOS). IOS включает в себя функции маршрутизации, коммутации, межсетевого взаимодействия и телекоммуникаций, интегрированных в мультизадачную операционную систему.[8]

Cisco IOS является многозадачной операционной системой, выполняющей функции сетевой организации, маршрутизации, коммутации и передачи данных.

В Cisco IOS есть специфичный интерфейс командной строки (command line interface, CLI), который был скопирован многими другими сетевыми продуктами. Интерфейс IOS предлагает набор многословных команд, согласно выбранному режиму и уровню привилегий пользователя.

2.1.1 Предоставляемая функциональность

Существуют разные компоновки IOS отличающиеся функционалом, так называемые feature sets[9]:

IP Base — начальный уровень функциональности, включается во все другие. Обеспечивает базовую маршрутизацию (статические маршруты, RIP, OSPF, EIGRP для IPv4), VLAN (802.1Q и ISL) и NAT.

IP Services (для L3 свитчей) — протоколы динамической маршрутизации, NAT, IP SLA.

Advanced IP Services — добавляется поддержка IPv6.

IP Voice — добавляет функциональность VoIP и VoFR.

Advanced Security — добавляется IOS/Firewall, IDS, SCTP, SSH и IPSec (DES, 3DES и AES).

Service Provider Services — добавляется Netflow, SSH, BGP, ATM и VoATM.

Enterprise Base — добавляется поддержка L3-протоколов (IPX и AppleTalk), а также DLSw+, STUN/BSTUN и RSRB.

2.1.2 Архитектура

Во всех версиях Cisco IOS маршрутизация пакетов и пакетная передача (коммутация) являются разными функциями. Маршрутизация и другие протоколы выполняются в качестве процессов и составляют Базу Маршрутизации (Routing Information Base). Это необходимо для составления конечной таблицы IP-передачи (FIB, Forwarding Information Base), которая используется для передачи функций маршрутизатора. На платформах маршрутизаторов с передачей "software-only" (например Cisco 7200) большинство манипуляций с трафиком, включая фильтрацию и передачу контрольного списка доступа, осуществляются на уровне прерываний с использованием Cisco Express Forwarding (CEF) или dCEF (Distributed CEF). Это означает, что у IOS нет необходимости переключать контекст для передачи пакетов. Функции маршрутизации, такие как OSPF и BGP работают на уровне процессов. В маршрутизаторах с передачей на уровне железа (Cisco 12000) таблицы IP-передачи вычисляется на программном уровне и загружается в передающее устройство (например сетевой процессор), который и осуществляет передачу пакетов.[10]

Cisco IOS имеет "монолитную" архитектуру. Это означает, что система работает как единый объект и все процессы разделяют между собой единое пространство памяти. Между процессами не предусмотрена защита памяти, поэтому из-за каких либо дефектов в коде системы один процесс может повредить память другого процесса. Планировщик работает по принципу "работа до завершения", что означает, что процесс должен сообщить ядру о том, что он завершился и настала очередь следующего процесса. Для продуктов Cisco, требующих высокий уровень доступности (например Cisco CRS-1), такие ограничения неприемлемы. В добавок, конкурирующие ОС, появившиеся через 10-20 лет после IOS, такие как JUNOS от Juniper Networks, Inc., этих ограничений не содержали. Ответом Cisco была разработка новой версии Cisco IOS под названием IOS XR, предлагающей модульный принцип организации и защиту памяти между процессами, оптимизированные потоки, "упреждающий" планировщик и возможность независимо перезапускать неудачные процессы. IOS XR использует стороннее микроядро операционной системы реального времени QNX, поэтому большая часть кода IOS была переписана с целью использовать преимущества нового ядра. Микроядро устроено таким образом, что если нет необходимости исполнять процесс в само́м ядре, то он исполняется в качестве процесса обычного приложения. Благодаря такому методу, IOS XR способна достигать уровня доступности, подходящего для новых платформ маршрутизаторов. Таким образом IOS и IOS XR, имея мало общего в кодовой базе, сильно связаны по своему устройству и функционалу.

2.1.3 Основные команды

«?» : на первый взгляд использование «?» для вызова помощи кажется достаточно простым. Однако Cisco IOS кардинально отличается от других операционных систем в плане использования команды помощи. Поскольку Cisco IOS – это операционная система с командным интерфейсом, существуют тысячи команд для настройки и управления, а использование “?” поможет сэкономить немало времени. Эту команду можно применять различными способами. Во-первых, используйте ?, если не знаете какую команду написать. Например, вы можете написать ? в командной строке для вывода всех возможных команд. Также можно использовать «?», если вы не знаете аргумент какой-либо команды. Например, можно ввести «show ip ? ». Если команде не нужно никаких аргументов, роутер предложит только CR (возврат каретки).

Наконец, можно использовать «?» для просмотра всех команд, начинающихся с определённой буквы. Например, «show c?» покажет все команды, начинающиеся с буквы c.

«show running-configuration»: команда show running-config показывает текущую конфигурацию устройства. Running-configuration – это конфигурация, загруженная в данный момент в оперативную память роутера. Когда вы вносите изменения в оборудование, как раз эта конфигурация изменяется.

Важно помнить, что конфигурация не сохраняется пока не выполнить «copy running-configuration startup-configuration». Команду «show running-config» можно сокращать до «sh run».

«copy running-configuration startup-configuration»: команда сохранит текущие модификации в настройках (running-configuration, которая хранится в RAM), в энергонезависимую RAM (NVRAM). Если внезапно исчезнет электропитание, то данные в NVRAM сохранятся. Другими словами, если вы внесёте изменения в конфигурацию роутера или перезагрузите его, не используя перед этим данную команду, то все изменения будут утеряны. Команду можно сократить до copy run start. Команда copy также используется для копирования текущей или стартовой конфигурации на TFTP-сервер.

«show interface»: команда «show interface» отображает состояние интерфейсов маршрутизатора. Вот некоторые выводимые параметры: состояние интерфейса (вкл./выкл.), состояние протокола на интерфейсе, использование, ошибки, MTU. Эта команда играет важную роль для диагностики роутера или свитча. Её также можно использовать с указанием конкретного интерфейса, например, «sh int fa0/0.»

«show ip interface»: более распространёнными, чем «show interface» являются команды «show ip interface» и «show ip interface brief». Команда «show ip interface» предоставляет огромное количество информации о конфигурации и состоянии протокола IP и его службах на всех интерфейсах. Команда «show ip interface brief» даёт краткий обзор интерфейсов, включая IP-адрес, статусы Layer 2 и Layer 3.

«config terminal, enable, interface, and router»: у роутеров Cisco есть несколько разных режимов управления, в каждом из них отображаются или изменяются определённые параметры. Очень важно уметь перемещаться между этими режимами для успешной настройки маршрутизатора.

Когда вы авторизуетесь на роутере (SSH, Telnet, Console), сначала вы попадаете в user mode (пользовательский режим, где приглашение выглядит как >). В этом режиме можно написать enable для переключения в привилегированный режим (приглашение выглядит как #). В привилегированном режиме отображается любая информация, но нельзя вносить никакие изменения. Для того, чтобы попасть в режим глобальной конфигурации введите «config terminal» (или «config t»), приглашение станет выглядеть как «(config)#» . В этом режиме можно изменять любые настройки. Для изменения параметра интерфейса (например, IP-адреса) переключитесь в режим конфигурирования командой interface (приглашение выглядит как (config-if)#). Помимо этого, из режима глобальной конфигурации вы можете попасть в режим конфигурации роутера с помощью команды router {protocol}. Для выхода из любого режима введите exit.

«no shutdown»: команда no shutdown включает интерфейс. Она используется в режиме конфигурации интерфейса. Может быть полезна при диагностике или конфигурации новых интерфейсов. Если с каким-либо интерфейсом возникла проблема, можно попробовать ввести «shut» и «no shut». Разумеется, для того, чтобы выключить интерфейс введите «shutdown». Команду можно сократить до «no shut».

«show ip route»: команда «show ip route» выводит таблицу маршрутизации роутера. Она состоит из списка всех сетей, которые доступны роутеру, их метрике (приоритет маршрутов) и шлюза. Команду можно сократить до «sh ip ro». Также после неё могут быть параметры, например «sh ip ro ospf» (показывает всю маршрутизацию OSPF). Для очистки всей таблицы маршрутизации необходимо выполнить «clear ip route *». Для удаления конкретного маршрута необходимо указать адрес сети после команды, например «clear ip route 1.1.1.1».

«show version»: команда show version показывает регистр конфигурации (в основном настройки загрузки маршрутизатора), когда последний раз роутер загружался, версию IOS, имя файла IOS, модель устройства, а также количество оперативной и флэш-памяти. Команду можно сократить до «sh ver».

«debug»: у команды debug есть много параметров, и она не работает без них. Эта команда предоставляет детальную отладочную информацию по конкретному приложению, протоколу или службе. Например, debug ip route будет сообщать вам каждый раз, когда маршрут добавляется или удаляется из роутера.[12]

2.2 Сетевая ОС JUNOS

2.2.1 Предоставляемая функциональность

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

2.2.2 Архитектура

Функциональность ОС JUNOS разобщена на несколько процессов программного обеспечения. Каждый процесс потребляет часть функциональности устройства. Каждый процесс выполняется в собственном защищенном пространстве памяти, гарантируя, что один процесс не может непосредственно вмешиваться в другой. Когда один процесс терпит сбой, вся система не рухнет. Эта модульность также гарантирует, что новые возможности могут быть добавлены с меньшей вероятностью потери функциональности. Ядро JUNOS основано на операционной системе FreeBSD UNIX - ОС с открытым исходным кодом.[13]

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

Другой аспект модульности - разделение плоскостей управления и пересылки. Процессы, управляющие протоколами маршрутизации и коммутации отделены от процессов, отвечающих за пересылку фреймов, пакетов. Такая конструкция позволяет настраивать каждый процесс для максимальной производительности и надежности. Разделение плоскостей управления и пересылки - одна из ключевых причин, почему Junos OS может поддерживать множество различных платформ с единым базовым кодом.

Плоскость управления работает на механизме маршрутизации (Routing Engine - RE). RE - мозг платформы, несет ответственность за выполнение обновлений протоколов и систему управления. RE отвечает за работу различных протоколов, а также управляет программными процессами, которые находятся внутри защищенной среды памяти. RE основан на архитектуре Х86 или PowerPC, в зависимости от конкретной платформы. RE поддерживает таблицы маршрутизации, таблицу мостов, первичную таблицу пересылки и соединяется с механизмом пересылки пакетов (Packet Forwarding Engine - PFE) через внутренний линк. Хотя все Junos устройства соответствуют этой конструкции, конкретные компоненты, которые составляют плоскость управления и пересылки варьируются в зависимости от платформы..

PFE как правило работает на отдельных аппаратных средствах и несет ответственность за передачу транзитного трафика через устройство. На многих платформах PFE использует специализированную интегральную схему (application-specific integrated circuits - ASIC) для увеличения производительности.

Благодаря тому, что архитектура разделена, устройства под управлением Junos отличаются стабильностью и надежностью.

PFE принимает таблицу пересылки (forwarding table - FT) от RE по внутреннему линку. Обновления FT имеют высокий приоритет для ядра Junos OS и осуществляются поэтапно. Так как RE выполняет интеллектуальную часть работы, PFE может просто выполнять инструкции - перенаправлять пакеты и фреймы с высокой степенью устойчивости и с детерминированной производительностью. Эта архитектурная конструкция также делает возможным включение функций высокой доступности (GRES, NSR, ISSUs).

RE управляет всеми процессами протокола в дополнение к другим программным процессам, которые управляют интерфейсами устройства, компонентами шасси, системой управления и доступом пользователей на устройство. Эти программные процессы работают на вершине ядра Junos, которое взаимодействует с PFE. ПО направляет весь трафик протоколов из сети к RE для необходимой обработки.

RE обеспечивает работу интерфейса командной строки (CLI), так же как и J-Web GUI. Эти пользовательские интерфейсы работают на вершине ядра Junos и обеспечивают пользовательский доступ и управление устройством.

RE управляет Packet Forwarding Engine путем предоставления актуальных Layer 2 и Layer 3 таблиц пересылки, а также путем управления программными процессами, которые находятся в микрокоде PFE. RE принимает статусные сообщения оборудования и среды из PFE и воздействует на них по мере необходимости.

2.2.3 Основные команды

«commit confirmed <время_в_минутах>»: применяет кандидатскую конфигурацию на указанное количество минут (по умолчанию (если не указывать количество минут) на 10). По истечению времени происходит откат на предыдущую конфигурацию. Для применения конфигурации (перевода ее из временной в постоянную) необходимо ввести команду «commit» или «commit check». Повторный ввод команды «commit confirmed» не приведет к сбросу времени. Вместо этого, временная конфигурация будет подтверждена (как при подтверждении временной конфигурации командой «commit» или «commit check»), а временной конфигурацией станет кандидатская (на момент повторного ввода «commit confirmed») конфигурация, даже если никаких изменений не проводилось (в таком случае временной станет «нулевая» конфигурация).

«show system commit»: выводит историю применения конфигураций (когда они были сделаны и кем). В случае, если активирована команда «commit confirmed» или «commit at», дополнительно будет выведена оставшееся время до отката (rollback) или планируемое время до применения конфигурации соответственно.

«rollback ?»: выводит историю применения конфигураций (когда они были сделаны и кем). Можно загрузить одну из старых конфигураций, если вместо «?» подставить номер конфигурации (конфигурация загрузится в качестве кандидатской, но не применится).

«rollback rescue»: загружает rescue-конфигурацию в качестве кандидатской

«show | compare»: показывает различия между текущей активной конфигурацией (rollback 0) и кандидатской конфигурацией.

«replace pattern <что_заменить> with <на_что_заменить>»: поиск и замена всех выражений в конфигурации.

«commit check»: проверяет кандидатскую конфигурацию на возможные ошибки.

«save <filename>»: сохраняет кандидатскую конфигурацию в виде файла. По умолчанию конфигурация сохранится на flash-памяти устройства (собственной памяти, а не вставленной флешке) в папке /var/home/<имя_пользователя>. Если нужно сохранить конфигурацию в другое место, нужно указать вместо <filename> полный путь до файла (включая имя файла).

«show groups junos-defaults»: вывод скрытой стандартной конфигурации (не выводится при просмотре текущей конфигурации; вывести можно только с помощью данной команды; нельзя редактировать или удалить; содержит предустановленные заводские значения, которые можно переопределить (override) в «обычной» конфигурации).

«show groups junos-defaults applications»: вывод предустановленных «приложений» (applications). «Приложения» представляют собой сочетание протокола, порта (если есть) и типа данных (если есть), которые можно использовать при написании правил для фаерволла.

2.3 OC Linux

2.3.1 Предоставляемая функциональность

На данный момент Linux обеспечивает полный набор протоколов TCP/IP для сетевой работы. Это включает драйверы устройств для многих популярных карт Ethernet, SLIP (Serial Line Internet Protocol, обеспечивающие вам доступ по TCP/IP при последовательном соединении), PLIP (Parallel Line Internet Protocol), PPP (Point-to-Point Protocol), NFS (Network File System), и так далее. Поддерживается весь спектр клиентов и услуг TCP/IP, таких как FTP, telnet, NNTP и SMTP.

При запуске, Linux создает виртуальную файловую систему (адресное пространство) с четким разграничением прав для доступа ко внутренним ресурсам, на чем и основывается безопасность всей системы. Именно эта файловая система и видна впоследствии пользователю как корневая (/).

Для обмена данными между физическими ресурсами компьютера и операционной системой ядро Linux создаёт в этой файловой системе специальные файлы-"порты", по одному для каждого из устройств. Таким образом все устройства в компьютере получают логические адреса, которые начинаются обычно с /dev.

Linux, использует разделы жёсткого диска не в качестве отдельных виртуальных, а так же как и любое другое физический ресурс - в качестве файлов в папке /dev. Специальная система присоединения (монтирования) файловых систем к основной корневой системе позволяет разворачивать их содержимое во внутренних папках, адреса которых обычно начинаются с /media.

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

Поверх ядра Linux функционирует программная оболочка GNU - многоуровневая система, достижение загрузки каждого из уровней которой характеризуется запуском соответствующего набора системных программ и утилит.

В частности, третий уровень - пользовательская командная строка, консоль для работы с системой. Первый, второй и четвёртый уровни - системные. Пятый - графический, запуск которого инициализирует запуск оконной системы X11. Шестой - уровень выключения и перезагрузки компьютера.

Гибкость такой системы состоит в том, что каждый из её компонентов, приложений запускаемых на разных уровнях загрузки, заменяем и почти всегда имеет альтернативу. Именно таким образом получается возможность работы с разными рабочими столами, мультимедийными системами, системами взаимодействия с физическими ресурсами компьютера: аудио-, видео- и другими устройствами.

Настройка сетевого соединения, устанавливаемого по протоколу TCP/IP в операционной системе Linux, и управление им — не столь сложная задача, как принято считать. Для пользователя в системе имеется ряд конфигурационных файлов, при помощи содержимого которых система производит настройку и управление сетевыми соединениями. Многими из этих файлов можно управлять с помощью конфигурирующих программ из набора утилит администратора, например, утилитой netcfg. Также очень желательно использовать программы netstat, ifconfig, route. Вообще конфигурационные файлы легко отредактировать при помощи любого текстового редактора. Перечислим программы для настройки и работы с сетевым соединением:

• netcfg — программа конфигурирования сетевых интерфейсов и управления ими;

• ifconfig — программа конфигурирования сетевого интерфейса;

• route — программа маршрутизации сетевого интерфейса (при запуске без параметров выдает таблицу маршрутизации);

• ping — проверяет доступность удаленной системы (Попробовали запустить? Не знаете, как выйти из нее? Тогда Ctrl+C);

• netstat — выдает отчет о состоянии сетевых соединений

• hostname — выдает текущее имя вашей системы

2.3.2 Архитектура

Linux – сетевая многопользовательская многозадачная операционная система с открытым кодом. Свободно распространяемая версия Unix, первоначально разработанная Линусом Торвальдсом (Linus Torvalds), начавшим работу над ней, будучи студентом Хельсинкского университета в Финляндии. Сейчас Линус работает в Transmeta Corporation, молодой фирме в городе Санта-Клара в Калифорнии, и продолжает поддерживать ядро Linux, т. е. основной низкоуровневый компонент операционной системы. Сегодня Linux является полноценным клоном Unix. Под ним работают X Window, TCP/IP, Emacs, Web, программы для работы с электронной почтой и телеконференциями - трудно все перечислить. Почти все основные свободно распространяемые программные пакеты перенесены на Linux. На практике многие разработчики сначала пишут свои приложения для Linux, а затем переносят их на другие Unix-системы. Поддерживается большее разнообразие аппаратных средств, чем в первоначальных версиях ядра. Было выполнено много тестов производительности Linux-систем, которые показали, что они работают быстрее рабочих станций Sun и Compaq. В большом числе тестов Linux-системы работают лучше или, по крайней мере, не хуже, чем Windows 98 или Windows NT.

Linux - монолитное (большое) ядро операционной системы.[15] Оно включает в себя все необходимые для работы системы драйверы (графические X11 и звуковые ALSA в т.ч.) и функционирует логически целостно. Однако, Linux так же поддерживает и динамическое, "горячее", подключение внешних модулей для поддержки оборудования, в виде которых и распространяются, например, закрытые (проприетарные) драйверы для видеокарт NVidia и AMD/ATI.

Загрузкой ядра Linux при старте операционной системы в большинстве случаев управляет универсальный загрузчик Grub (хотя встречаются и конфигурации с загрузчиком LILO), код которого может записываться как в загрузочный сектор основного носителя данных, так и одного из его логических разделов (для активации загрузочным флагом впоследствии).

Основная функции ядра системы Linux – связывать между собой прикладные программы и аппаратную часть (внешние и внутренние устройства). Ядро состоит из трех основных подсистем:

Файловая подсистема обеспечивает интерфейс к доступа к данным. Она получает запрос на доступ к данным, проверяет права доступа и выдает (или записывает)

Подсистема управления памятью и процессами, которая контролируем все программы запущенные на исполнение. Следит за тем, чтобы не было конфликтов по памяти. Контролирует создание и удаление процессов, распределяет системные ресурсы между процессами.

Подсистема ввода-вывода управляет доступом к периферийным устройствам, взаимодействует с драйверами устройств, организует и управляет очередями к внешним устройствам.

При работе с файлами программы могут не заботиться о типе безжалостного диска и файловой системе на нем. Системные вызовы заручат безопасность и стабильность системы. Так как ядро работает арбитром между ресурсами системы и программами, оно может получать решения о предоставлении доступа в соответствии с правами юзера и другими критериями. Ядро Linux предоставляет комплект интерфейсов, именуемых системными вызовами, которые дают обеспечение взаимодействие прикладных программ, работающих в пространстве юзера, и аппаратной части компьютера. POSIX, WinAPI – образцы таких API. Прикладные программы разрабатываются с применением программных интерфейсов прибавлений (Application Programming Interface, API). В этом случае нет нужды между в корре ляции между интерфейсами, какие используют приложения и интерфейсами, которые предоставляет ядро.

Сможет существовать один и тот же API для различных операционных систем, а осуществление его может отличаться. Например, операционные системы Linux и FreeBSD отвечают стандарту POSIX (Linux на 100% соответствует эталону POSIX 1003.1), и многие приложения, написанные для FreeBSD, смогут сравнительно легко быть перенесены в Linux и и наоборот. Этим объясняется схожесть наборов приложений для данных операционных систем. Частично интерфейс к системным функциям дает обеспечение библиотека C. Например, функция printf() формирует строчку в соответствии с заданным форматом и передает ее системному призыву write(), который отправляет ее на стандартное механизм вывода (чаще всего терминал).

Само ядро непосредственно пользователю недоступно, поэтому пользователь взаимодействует с ядром при помощи специальной программной оболочки (shell) или с помощью прикладных программ, в которых предусмотрены средства передачи команд от пользователя в ядро. Оболочки shell бывают различные: командные или графические.

К прикладным программам можно отнести различные редакторы тестовых файлов, офисные приложения, графические системы управления ресурсами, игры, системы управления базами данных и т.п.

Некоторые shell-оболочки и прикладные программы могут использовать утилиты – специальные программы, каждая из которых выполняет отдельную специфическую функцию (например, анализирует оперативную память, управляет буферами обмена и т.п.)

С системными и внешними устройствами ядро взаимодействует с помощью драйверов - специальных программ нижнего уровня, которые выполняют функции управления этими устройствами (драйверы похожи на утилиты, но связаны с управлением устройствами). Одной из причин, влияющих на сдерживание процесса распространения ОС Linux среди начинающих пользователей («юзеров») персональных компьютеров , является то, что раньше большинство драйверов приходилось искать и настраивать самим пользователям, что без специальной подготовки является задачей достаточно трудной.

В настоящее время многие дистрибутивы Linux, аналогично Windows, имеют библиотеки драйверов и специальные приложения, которые легко настраиваются на стандартное оборудование без вмешательства пользователя. С нестандартным малоизвестным или совсем новым оборудованием проблемы поиска драйвера под Linux остаются (между, прочим, как и под Windows). Обычно решение этих проблем значительно облегчается, если Вы приобрели дистрибутив Linux официально и пользуетесь услугами технической поддержки какого-нибудь профессионального Linux-центра или сайтами фирм разработчиков специфического оборудования.

2.3.3 Основные команды

«Ping»: посылает ICMP ECHO_REQUEST пакет указанному хосту. Если хост отвечает, вы получаете ICMP пакет обратно. Звучит странно? Вы можете 'ping-овать адрес, чтобы посмотреть, жив ли компьютер, ему соответствующий. Вот пример общения между двумя пользователями Linux. Синтаксис применения прост: "$ping <ip адрес или имя хоста> Конечно, программа так же имеет некоторые опции. Загляните в ping(1) man страницу, для информации.[16]

«telnet»: когда-то сказал, что telnet это самое крутое, из всего, что он когда либо видел в мире компьютеров. Возможность удалённо подключаться и делать что-то на другом компьютере, выделяет Unix и Unix-подобные системы от других систем. Telnet позволяет вам войти в удалённую систему точно так же, как если бы вы сидели за этим компьютером. Указав ваше имя пользователя и пароль, вам выдаётся приглашение командной строки оболочки. С этого момента вы можете делать всё то же, что обычно выполняете в текстовой консоли. Писать письма, читать группы новостей, перемещать файлы, и т.д. Если вы в X и вы соединились с другим компьютером по telnet из xterm, вы можете выполнять программы на удалённом компьютере, а отображать на вашем. Для подключения к удалённому компьютеру, воспользуйтесь таким синтаксисом: «$telnet <hostname>». Если хост ответит, вы получите приглашение входа в систему. Введите имя пользователя и пароль. Ну вот. Теперь вы в оболочке. Чтобы выйти из вашей сессии telnet, воспользуйтесь либо exit, либо logout, на ваше усмотрение.

«wget»: это утилита командной строки, которая скачивает файлы с указанного URL. Она полезна при скачивании целых вэб сайтов, для просмотра в offline, или для более надёжной загрузки файлов с HTTP или FTP серверов, чем из Netscape. Основной синтаксис: «$wget <url>». Вы так же можете указать опции. Например, такая команда загрузит Slackware вэб сайт: wget -recursive http://www.slackware.com. Wget создаст каталог www.slackware.com и запишет в него файлы, как они расположены на сайте. С помощью этой программы так же может загружать файлы с FTP сайтов; просто укажите FTP URL вместо HTTP URL-а. У wget есть гораздо больше опций, что делает её пригодной для использования в скриптах (зеркалирование вэб сайтов, и т.д.). man страничка будет вашей следующей остановкой.

«traceroute»: это полезный инструмент для диагностики системы, traceroute показывает каждый хост, через который пакеты путешествуют на пути достижения цели. Вы можете посмотреть, сколько ''прыжков'' пакеты совершают, путешествую от вас до Slackware вэб сайта, воспользовавшись такой командой: $traceroute www.slackware.com. Каждый из хостов будет показан, вместе со временем ответа.

«ifconfig»: команда выдает информацию про все сетевые устройства вашего компьютера, MAC-адреса, IP-адрес, сетевую маску и т.д.

«arp» :команда arp отображает ARP-таблицу данного хоста. С помощью параметра -i можно специфицировать сетевой интерфейс, информация о котором интересует. Таблица с информацией о канальном уровне содержит связь IP- и MAC-адресов. При использовании параметра -n IP-адреса не будут заменяться символьными именами хостов.

«route»: эта команда используется для просмотра и изменения таблицы маршрутизации хоста. Для этой команды также работает параметр -n, при использовании которого IP-адреса не будут заменяться символьными именами хостов. Особый интерес представляет адрес 0.0.0.0, который соответствует хосту назначения по умолчанию. Для добавление нового маршрута к определённому хосту используются параметры add и -host. "route add -host 192.168.0.1 eth0" - эта команда создаёт новую строку в таблице маршрутизации, согласно которой все пакеты к узлу 192.168.0.1 должны отправляться в сетевой интерфейс eth0.

«tcpdump»: команда используется для мониторинга сети на канальном и более высоких уровнях. Программа «слушает» на одним или нескольких сетевых интерфейсах и выводит дамп пакетов, проходящих через этот интерфейс. Параметр -i задаёт имя сетевого интерфейса, на котором запускается прослушивание. При просмотре захватываемых данных удобно использовать ключ -l, который буферезует вывод построчно. Для этой команды также работает параметр -n, при использовании которого IP-адреса не будут заменяться символьными именами хостов.

«nmap»: сетевой сканер, с помощью которого можно определить уязвимость удалённых хостов. Основное назначение этой программы – определение состояние портов удалённого хоста (закрыты они, открыты или заблокированны). Также программа может на основании собственной базы знаний определить по поведению удалённого хоста, какая операционная система запущена на нём.

2.4 Router OS

2.4.1 Предоставляема функциональность

Mikrotik Router OS это мощный инструмент для создания сетей и их управлением, включающий в свой арсенал огромное количество функций для работы практически со всеми возможными сетевыми протоколами. Поддерживаются такие функции для работы с протоколом TCP/IP как:

- Firewall NAT (Network Address Translation) - механизм распределение пакетов с реализацией функций SNAT и DNAT; внутреннее распределение и маршрутизация пакетов; фильтрация по IP адресам, диапазонам адресов, портам и их диапазонам, протоколам, интерфейсам, маркировка пакетов и многое другое; списки адресов; полная поддержка IPv4 и IPv6; PCC (Per Connection Classifier) - механизм распределения нагрузки;

- Routing статическая маршрутизация, виртуальная маршрутизация (VRF); маршрутизация на базе политик; маршрутизация на базе интерфейсов; динамические протоколы маршрутизации RIP v1/v2, OSPFv2, BGP v4 и RIPng, OSPFv3, BGP для IPv6 протокола;

- VPN и туннели IPsec - IP security AH и ESP протоколы, с поддержка аппаратного шифрования на некоторых моделях оборудования RouterBoard;

- PTP (Point to Point) протоколы, включая OpenVPN, PPTP, PPPoE, L2TP, SSTP с поддержкой PAP, CHAP, MSCHAPv1 и MSCHAPv2 авторизации; поддержка простых туннелей по протоколам IP2IP и EoIP в сетях IPv4 и IPv6; поддержка виртуальных сетей VLAN;

тунели на базе MPLS;

- DHCP базовый DHCP сервер с поддержкой IPv6 (DHCPv6-PD); DHCP клиент с поддержкой IPv6 (DHCPv6); статический и динамический DHCP; персональные DHCP настройки;

- QoS возможность динамического управления полосой пропускания для IP, протокола, подсети, порта и цепочки при помощи протокола HTB (Hierarchical Token Bucket); Simple queues (простые очереди) для быстрой реализации функции QoS; динамическое выравнивание скорости клиента (PCQ);

- Proxy встроенный FTP и HTTP/HTTPS прокси-сервер с возможностью кэширования; прозрачный DNS и HTTP прокси-сервер;

- поддержка SOCKS протокола; DNS static записи; поддержка Parent proxy; список доступа Access control list;

- ISDN ISDN dial-in / dial-out; поддержка протоколов авторизации PAP, CHAP, MSCHAPv1 и MSCHAPv2; поддержка протоколов Cisco HDLC, x75i, x75ui, x75bui; дозвон по требованию;

Реализована в Router OS и полная поддержка работы с беспроводными протоколами: Wireless беспроводной клиент или точка доступа по протоколам IEEE802.11a/b/g/n; полная поддержка протокола IEEE802.11n; проприетарные (разработанные компанией) протоколы Nstreme и Nstreme2; NV2 протокол; полная поддержка функций протокола беспроводного распределения WDS; создание виртуальных точек доступа Virtual AP; Wireless client roaming; поддержка протоколов HWMP+ Wireless MESH и MME wireless routing; Wireless security протоколы защищённого беспроводного доступа WEP, WPA, WPA2; поддержка AES и TKIP; списки доступа Access control list; Hotspot возможность построения Plug-n-Play точек коллективного пользования Internet; авторизация пользователей локальной сети; учет пользователей; возможность создания зон; возможность задания скорости, времени работы клиента и пр.

2.4.2 Архитектура

Mikrotik Router OS - это специализированная операционная система, предназначенная исключительно для построения многофункциональных маршрутизаторов, фаерволлов, бриджей, базовых станций, vpn-серверов, web-серверов и прочих устройств управления сетями. При этом работать операционная система может как на аппаратных платформах Mikrotik RouterBoard, построенной как правило на процессорах PowerPC и Atheros, так и на оборудовании построенном на базе х86 архитектуры, проще говоря - обычные персональные компьютеры.[17]

архитектура i386; SMP – поддержка нескольких ядер и нескольких процессоров; минимальное количество оперативной памяти 32Мб (максимальное 2Гб); поддержка IDE, SATA, USB накопителей с объемом от 64Мб; сетевые карты поддерживаемые ядром linux v2.6 kernel (PCI, PCI-X); Полный список всего поддерживаемого оборудования, можно найти на официальном сайте производителя. Не смотря на то, что сама операционная система построена на ядре linux, она не является OpenSource проектом. Код Mikrotik Router OS не доступен общественности и получить доступ к командной строке linux, не представляется возможным. Так же нет возможности создания собственных пакетов программного обеспечения. Все изменения в самой Mikrotik Router OS и добавление функционала осуществляется исключительно разработчиком. Но в этом есть и свои плюсы. Главный из которых, это не высокие требования к аппаратному обеспечению на котором можно запустить Router OS. Для этих целей, достаточно процессора с тактовой частотой в 100МГц и 32Мб оперативной памяти. При этом сама операционная система предоставляет большие возможности при построении локальных сетей любой сложности и управления ими. Установить Router OS можно несколькими способами, так на персональный компьютер, она может быть установлена при помощи установочного CD диска, iso файла который можно найти на сайте компании Mikrotik или через сеть, при помощи утилиты Netinstall, которую так же можно найти на сайте разработчика. Установка на специализированное оборудование RouterBoard, если ОС не была предустановленна на заводе, осуществляется при помощи все той же утилиты Netinstall. После установки, есть много вариантов последующей конфигурации и дальнейшего управления Mikrotik Router OS и всеми функциями: MAC based - доступ к устройству на уровне MAC адреса; WinBox – утилита для Windows OS; WebBox - вебинтерфейс; Webfig - расширенный конфигурационный веб-интерфейс; Командная строка (консоль) со встроенной поддержкой скриптов и работай по telnet и ssh протоколам; API - возможность создания собственных приложений для настройки или мониторинга сети. Поддерживается сохранение/восстановление и импорт всех настроек конфигурации, как в бинарный файл, так и в понятный человеку текстовый формат.

2.4.3 Основные команды

Некоторые команды являются общими почти для всех уровней меню. Такие команды имеют одинаковое поведение на разных уровнях меню.

Добавление, редактирование и удаление элементов:[18]

  • «add» - эта команда обычно имеет все те же аргументы, как set, кроме аргумента с номером элемента. Это добавляет новый элемент со значениями, которые Вы определили, как правило, в конце списка позиций, в тех местах, где порядок элементов имеет значение. Есть некоторые необходимые свойства, которые вы должны поставить, например, как интерфейс для нового адреса, в то время как для других свойств устанавливаются значения по умолчанию, если вы явно не указали их.
  • «copy-from» - копировать параметры из уже существующего элемента. Если вы не хотите, сделать точную копию, то вы можете указать новые значения для некоторых свойств. При копировании элементов, которые имеют имена, вы, как правило, должны дать новое имя копии;
  • «place-before» - помещает новый элемент перед существующим элементом с указанной позиции. Таким образом, вам не нужно использовать команду перемещения после добавления элемента в список;
  • «disabled» - управление состоянием отключено / включено для вновь добавленного элемента(-ов);
  • «comment» - содержит описание вновь созданного пункта. Возвращаемые значения: добавляет команду возврата внутреннего номера элемента который был добавлен.
  • «edit» - эта команда связана с командой set. Она может быть использована для редактирования значений свойств, которые содержат большое количество текста, например, скрипты, но она работает со всеми редактируемыми свойствами. В зависимости от возможностей терминала, либо полноэкранный редактор, или один редактор строки запускается для редактирования значения указанного свойства.
  • «set» - позволяет изменять значения общих параметров или параметров изделия. Команда имеет множество аргументов с именами соответствующих значений, которые вы можете изменить. Используйте ? или двойной [Tab], чтобы увидеть список всех аргументов. Если есть список элементов для которых доступны действия, установите аргумент соответственно номеру элемента (или список номеров), который(е) вы хотите настроить. Эта команда не возвращает ничего.

- «remove» - удалить определенный(ые) элемент(ы) из списка.

Включение и выключение элементов

- «enable» - включение опции

- «disable» - выключение опции

- «enabled» - со значением =yes включено, а со значением =no выключено

- «disabled» - со значением =no выключено, а со значением =no включено

Прочие команды:

- comment - добавить комментарий

- brief - краткое описание

- detail - отобразить подробную информацию

- export - отобразить конфигурацию текущего уровня иерархии. При выполнении из корня отобразит всю текущую конфигурацию.

- find - команда find имеет те же аргументы, что и set, плюс флаг аргументы, как disabled или active, которые принимают значения yes или no в зависимости от значения соответствующего флага. Для того чтобы увидеть все флаги и их имена, смотрите на начало вывода команды print. Команда find возвращает внутренние номера всех элементов, которые имеют те же значения аргументов, как указано команде.

- move - меняет порядок элементов в списке. Первый аргумент определяет перемещаемый элемент(-ы). Второй аргумент задает элемент, перед которым, будут размещены перемещаемые элементы (они помещаются в конец списка, если второй аргумент опущен).

- print - показывает всю информацию, которая доступна из определенного уровня команд. Таким образом, /system clock print показывает системные дату и время, /ip route print показывает все маршруты и т.д. Если есть список элементов в текущем уровне, и они не только для чтения, то есть вы можете изменить или удалить их (пример только для чтения элемента списка или системной истории, которая показывает историю выполненных действий), а затем напечатать команду также правопреемников номера, которые используются всеми командами, которые работают с элементами в этом списке.

- from - показать только указанные элементы, в том же порядке, в котором они даны.

- where - показать только те элементы, которые соответствуют указанным критериям. Синтаксис свойства where аналогичен команде find.

- brief - заставляет команду печати использовать табличную форму вывода

- detail - заставляет команду печати использовать форму вывода property=value(свойство=значение)

- count-only - показывает количество элементов

- file - печатает содержимое конкретного подменю в файл на маршрутизаторе.

- interval - обновление вывода команды print через интервал, заданный в секундах.

- oid - печатает значение OID для свойств, которые доступны из SNMP

without-paging - печатает вывод без остановки после каждого заполненного экрана.

  • quit - выйти из командной строки (консоли)

Заключение

Приведенные в курсовой работе сетевые операционные системы, на первый взгляд, сильно отличаются друг от друга, как по интерфейсам управления, так и по архитектуре сетевого стэка, но все они предоставляют примерно одинаковый базовый функционал: основные протоколы маршрутизации(OSPF, BGP, RIP), функции фильтрации трафика(netfilter, firewall). При выборе сетевой ОС нужно исходить из того насколько вы готовы глубоко погружаться во внутренние процессы ОС и насколько гибко вы хотите настраивать каждую из функций.

Безусловным лидером по гибкости настройки является ОС Linux, вы можете подключать любые демоны маршрутизации, встроенные функции фильтрации трафика очень гибкие(iptables), но вы наверняка столкнетесь с проблемами производительности при больших объемах трафика и это потребует тонкой настройки прерываний CPU с разбиением буферов сетевой карты по очередям.

Router OS является промежуточным вариантом между коробочными решениями и гибкостью Linux. Эту OS вы также можете установить на обычный сервер и без предварительной настройки получите внушительный сетевой функционал, который будет работать “из коробки”.

JunOS представляют собой операционную систему адаптированную к конкретным аппаратным платформам, но в отличие от Cisco IOS вы можете развернуть инсталяцию этой ОС в облачной инфраструктуре, без покупки физической платформы.

Cisco IOS является представителем ОС созданной под конкретные аппаратные платформы и плотно взаимодействует с дополнительным платами для передачи обработки трафика с CPU на узко-специализированные микросхемы.

Так же, немаловажным при сравнении сетевых ОС является открытость исходного кода. Это позволит провести аудит основных моделей на “закладки” в ПО и возможно справиться с любой проблемой не прибегая к помощь производителя.

Список литературы

  1. Системы с ыытесняющей и невытесняющей многозадачностью [интернет-ресурс] https://life-prog.ru/1_7788_sistemi-s-vitesnyayushchey-i-nevitesnyayushchey-kooperativnoy-mnogozadachnostyu.html
  2. В чем разница между поточной и многопроцессорной обработкой? [интернет-ресурс] https://bunkerbook.ru/uroki-po-python/v-chem-raznitsa-mezhdu-potochnoj-i-mnogoprotsessornoj-obrabotkoj/
  3. Сетевые ОС, функции и компоненты сетевых операционных систем [интернет-ресурс] http://itandlife.ru/os/setevye-os-funkcii-i-komponenty-setevyx-operacionnyx-sistem/
  4. Особенности использования программных инструментальных платформ параллельных вычислительных систем общего назначения [интернет-ресурс] https://www.intuit.ru/studies/courses/3457/699/lecture/14135
  5. Специфика построения аппаратных платформ высокопроизводительных вычислительных систем с микропрограммным уровнем доступа [интернет-ресурс] https://www.intuit.ru/studies/courses/3457/699/lecture/14137
  6. Операционные системы реального времени для начинающих [интернет-ресурс] https://habr.com/post/208780
  7. Архитектуры ОС [интернет-ресурс] http://bourabai.ru/os/lecture03.htm
  8. ПРО ОПЕРАЦИОННУЮ СИСТЕМУ CISCO IOS [интернет-ресурс] https://wiki.merionet.ru/servernye-resheniya/10/pro-operacionnuyu-sistemu-cisco-ios/
  9. Структура операционной системы Cisco IOS [интернет-ресурс] http://www.ciscopress.ru/books/Cisco_IOS.html
  10. CiscoIOS [интернет-ресурс] https://ru.bmstu.wiki/Cisco_IOS_(Internetwork_Operating_System)
  11. Command References [интернет-ресурс] https://www.cisco.com/c/en/us/support/ios-nx-os-software/ios-15-2m-t/products-command-reference-list.html
  12. Command References [интернет-ресурс] https://www.cisco.com/c/en/us/support/ios-nx-os-software/ios-15-2m-t/products-command-reference-list.html
  13. Junos OS [интернет-ресурс] https://ru.bmstu.wiki/Junos_OS
  14. Overview of Junos OS CLI Operational Mode Commands [интернет-ресурс] https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-cli-operational-mode-commands-overview.html
  15. Микроядро vs. монолит [интернет-ресурс] https://habr.com/post/344826
  16. Основные команды Linux - Справочник команд Линукс [интернет-ресурс] http://www.raaar.ru/unix/linux_uch/spravochnik_comand_Linux.pdf
  17. Mikrotik Router OS — описание и возможности - [интернет-ресурс] https://www.skleroznik.in.ua/2015/04/07/mikrotik-router-os-opisanie-i-vozmozhnosti/
  18. Настройка роутера Mikrotik: детальный мануал.- [интернет-ресурс] https://phocs.ru/configuring-the-mikrotik-router-detailed-manualsssss/
  1. Системы с ыытесняющей и невытесняющей многозадачностью [интернет-ресурс] https://life-prog.ru/1_7788_sistemi-s-vitesnyayushchey-i-nevitesnyayushchey-kooperativnoy-mnogozadachnostyu.html

  2. В чем разница между поточной и многопроцессорной обработкой? [интернет-ресурс] https://bunkerbook.ru/uroki-po-python/v-chem-raznitsa-mezhdu-potochnoj-i-mnogoprotsessornoj-obrabotkoj/

  3. Сетевые ОС, функции и компоненты сетевых операционных систем [интернет-ресурс] http://itandlife.ru/os/setevye-os-funkcii-i-komponenty-setevyx-operacionnyx-sistem/

  4. Особенности использования программных инструментальных платформ параллельных вычислительных систем общего назначения [интернет-ресурс] https://www.intuit.ru/studies/courses/3457/699/lecture/14135

  5. Специфика построения аппаратных платформ высокопроизводительных вычислительных систем с микропрограммным уровнем доступа [интернет-ресурс] https://www.intuit.ru/studies/courses/3457/699/lecture/14137

  6. Операционные системы реального времени для начинающих [интернет-ресурс] https://habr.com/post/208780/

  7. Архитектуры ОС [интернет-ресурс] http://bourabai.ru/os/lecture03.htm

  8. ПРО ОПЕРАЦИОННУЮ СИСТЕМУ CISCO IOS [интернет-ресурс] https://wiki.merionet.ru/servernye-resheniya/10/pro-operacionnuyu-sistemu-cisco-ios/

  9. Структура операционной системы Cisco IOS [интернет-ресурс] http://www.ciscopress.ru/books/Cisco_IOS.html

  10. CiscoIOS [интернет-ресурс] https://ru.bmstu.wiki/Cisco_IOS_(Internetwork_Operating_System)

  11. Command References [интернет-ресурс] https://www.cisco.com/c/en/us/support/ios-nx-os-software/ios-15-2m-t/products-command-reference-list.html

  12. Command References [интернет-ресурс] https://www.cisco.com/c/en/us/support/ios-nx-os-software/ios-15-2m-t/products-command-reference-list.html

  13. Junos OS [интернет-ресурс] https://ru.bmstu.wiki/Junos_OS

  14. Overview of Junos OS CLI Operational Mode Commands [интернет-ресурс] https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-cli-operational-mode-commands-overview.html

  15. Микроядро vs. монолит [интернет-ресурс] https://habr.com/post/344826/

  16. Основные команды Linux - Справочник команд Линукс [интернет-ресурс] http://www.raaar.ru/unix/linux_uch/spravochnik_comand_Linux.pdf

  17. Mikrotik Router OS — описание и возможности - [интернет-ресурс] https://www.skleroznik.in.ua/2015/04/07/mikrotik-router-os-opisanie-i-vozmozhnosti/

  18. Настройка роутера Mikrotik: детальный мануал.- [интернет-ресурс] https://phocs.ru/configuring-the-mikrotik-router-detailed-manualsssss/