Специализированное ПО для работы с маршрутизаторами

Опубликовано: 21 Марта, 2023

Введение

Когда многие люди думают об операционных системах, они думают о таких реализациях, как Windows 7 от Microsoft или Mac OS-X от Apple. Мало кто думает об операционных системах, работающих на оборудовании, обеспечивающем работу сетей. В этой статье я расскажу о различных операционных системах, используемых на оборудовании для сетевой маршрутизации, уделяя особое внимание крупномасштабным реализациям.

Маршрутизаторы являются очень важной частью любой крупной сети и Интернета в целом. Маршрутизаторы имеют очень специфическую рабочую функцию; для маршрутизации пакетов. Для успешного выполнения этой задачи маршрутизаторам часто требуется гораздо меньше аппаратного и программного обеспечения, чем требуется домашнему компьютеру. Например, маршрутизаторы не нуждаются в графических возможностях. Аппаратное и программное обеспечение маршрутизатора выбирается таким образом, чтобы маршрутизация происходила максимально эффективно и оперативно; наличие такой операционной системы, как Windows 7, работающей на маршрутизаторе, хотя это и возможно, было бы пустой тратой возможностей и, скорее всего, отняло бы ресурсы у основной функции маршрутизатора по маршрутизации пакетов.

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

СИСКО

Маршрутизаторы CISCO поставляются с операционной системой (ОС) CISCO IOS (Internetwork Operating System). Большинство версий этой ОС используют монолитное ядро. Это означает, что все функции, необходимые для работы ОС, работают внутри пространства ядра, которое обеспечивает системные вызовы для управления процессами, параллелизма и управления памятью. Диаграмму архитектуры монолитного ядра см. на рис. 2 ниже. Хотя это гораздо более простой (концептуально) метод, который легче адаптировать для высокопроизводительных приложений, он не способствует высокой доступности; если один процесс поврежден, работая на монолитном ядре, это часто может привести к сбою всей ОС. Дополнительные сведения о высокой доступности см. в моей ранее опубликованной статье на эту тему. За последние несколько лет CISCO работала над изменением некоторых своих предложений IOS, чтобы использовать преимущества микроядра, которое по определению не является монолитным. Продукты CISCO, которые поставляются с этими микроядерными версиями IOS, ориентированы на рынок высокой доступности. CISCO использует стороннее микроядро под названием QNX. Преимущество микроядер, таких как QNX, заключается в том, что многие функции ОС работают как запущенные процессы и не используют то же пространство памяти, что и ядро. Следовательно, если запущенный процесс поврежден, этот процесс завершится с ошибкой, но другие процессы не будут, и ядро останется работающим и перезапустит (или может быть запрограммировано) процесс по мере необходимости.

Микро и монолитные архитектуры

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

Изображение 19650
Рисунок 1: Схема архитектуры микроядра предоставлена www.brokenthorn.com

Конечно, микроядра не идеальны. Микроядрам довольно сложно работать на высоких скоростях, тогда как монолитным ядрам легче справляться со скоростью. Кроме того, микроядра могут занимать больше памяти. Это нелогично, потому что микроядра сами по себе намного меньше (отсюда и термин микро). Однако они могут увеличиваться, если добавляются дополнительные модули, чтобы микроядро плюс модули выполняли те же функции, что и монолитное ядро. Это из-за всего «связующего кода», необходимого для того, чтобы все это работало. Конечно, все эти факторы за и против каждого ядра сильно зависят от качества кода, из которого оно сделано. Например, микроядро QNX, лицензированное CISCO, широко считается впечатляюще быстрым. Точно так же FreeBSD считается очень стабильной и основана на монолитной архитектуре ядра.

Изображение 19651
Рис. 2:

Схема монолитной архитектуры ядра предоставлена www.brokenthorn.com

Можжевельник

Маршрутизаторы Juniper поставляются с операционной системой JUNOS. JUNOS основана на FreeBSD, использующей монолитную архитектуру ядра. Некоторые могут возразить, что, поскольку JUNOS основана на монолитной архитектуре ядра, она не будет столь же надежной, как ОС на основе микроядерной архитектуры, например, некоторые из предложений CISCO IOS, однако это не так однозначно. Многие люди возразят (я уверен, что Juniper будет среди них), что, поскольку Juniper сосредотачивает свои усилия на разработке только одной операционной системы, они могут уделять больше внимания мелким деталям, которые могут иметь большое влияние на такие факторы, как надежность. Важнейшим фактором, определяющим производительность готового продукта, является не архитектура, а качество кода; выбранная архитектура просто запускает продукт с правильной ноги.

В то время как FreeBSD имеет открытый исходный код, JUNOS от Juniper — нет. Однако существует реализация BSD с открытым исходным кодом, специально оптимизированная для использования маршрутизаторами. Эта ОС называется проектом маршрутизатора BSD (BSDRP). ОС BSDRP, хотя и бесплатна, предназначена не для домашнего использования, а для малого и среднего бизнеса, например, небольшого интернет-провайдера (ISP). BSDRP разработана как универсальная операционная система, хотя она оптимизирована для оптимального выполнения задач маршрутизации.

Аппаратное обеспечение

Проприетарные операционные системы независимо от того, произведены ли они CISCO, Juniper или другой компанией, лучше всего работают, когда они оптимизированы для аппаратного обеспечения маршрутизатора. Это основное преимущество, которое они имеют по сравнению с программным обеспечением с открытым исходным кодом, таким как BSDRP, и лучше всего подходят для ситуаций с высокой производительностью и высокой доступностью, таких как сети операторского класса. Однако этот процесс оптимизации сильно зависит от качества аппаратного обеспечения. Вот почему многие производители маршрутизаторов начинают отказываться от готовых процессоров RISC (компьютер с сокращенным набором команд) в пользу специализированных архитектур ASIC (специализированных интегральных схем). Например, в 2008 году компания CISCO анонсировала свой процессор QuantumFlow, представляющий собой 40-ядерный процессор, который поставляется с их продуктами Aggregation Services Router (ASR).

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

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