По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Допустим, Вы решили обзавестись IP телефонией для своего офиса. Вы закупили необходимое количество телефонов, настроили voice VLAN, DHCP, TFTP серверы и определились с номерным планом. Однако, прежде чем Ваш IP Phone зазвонит, ему еще предстоит пройти процедуру загрузки, так называемый Bootup или Startup process, которому и будет посвящена данная статья. В качестве примера будет рассмотрен процесс загрузки Cisco IP Phone под управлением Cisco CallManager. Понимание данного процесса даст более полное представление о работе телефонов Cisco и IP телефонии в целом, а также поможет в оперативном траблшутинге неисправностей. Итак, пусть имеется некая сеть, содержащая: сервер с Cisco CallManager, сервер DHCP, сервер TFTP, коммутатор с поддержкой PoE (Power over Ethernet) и Cisco IP Phone, как показано на рисунке ниже. Допустим, что наш коммутатор и телефон поддерживают протокол PoE. Тогда, сразу после того, как телефон будет подключен к одному из Ethernet портов, коммутатор отреагирует специальным сигналом FLP (Fast Link Pulse), который определяет, имеет ли подключенное устройство питание. Возвращение FLP в форме петли (loopback) на порт коммутатора, к которому недавно было подключено новое устройство, сигнализирует о том, что на данный порт необходимо незамедлительно подать питание. Таким образом, IP Phone по протоколу PoE 802.3af получает питание в 48 Вольт. Cisco IP Phone имеет встроенную, энергонезависимую Flash-память, в которой хранится образ прошивки и начальные пользовательские настройки. В процессе начальной загрузки телефон, загружая из Flash-памяти образ прошивки, инициализирует своё программное обеспечение и аппаратные средства. Как только телефон получил питание и прошел POST (Power-on self-test) для проверки базовой функциональности, коммутатор, по проприетарному протоколу CDP (Cisco Discovery Protocol), отправляет на телефон информацию о том, какой voice VLAN необходимо использовать. Затем, IP Phone отправляет на широковещательный адрес 255.255.255.255 запрос DHCPDISCOVER, в свою очередь DHCP сервер возвращает ответ DHCPOFFER, который содержит следующую информацию: Свободный IP адрес Маска подсети Адрес шлюза по умолчанию (Default Gateway) Адрес DNS (Domain Name System) сервера. (опционально) Адрес TFTP (Trivial File Transfer Protocol) сервера, на котором хранится файл конфигурации для телефонов. Адрес TFTP сервера задается при конфигурировании DHCP по средствам, так называемой опции 150 (option 150). Синтаксис команды приведен ниже: option 150 ip 'TFTP server IP address' После того как телефон с помощью option 150 получил адрес TFTP сервера, он скачивает конфигурационный файл, содержащий параметры для подключения к CallManager. Если телефон был зарегистрирован на CallManager’е вручную, то он начинает проверять файл .cnf.xml, который определяет какую версию программного обеспечения должны использовать все телефоны, зарегистрированные в данном CallManager’е. Если обнаруживается, что загруженный образ не соответствует общепринятому, то телефон вновь обращается на TFTP сервер для получения корректного образа, хранящегося там в формате .bin. После обращения к TFTP, загрузив новый образ, телефон инициирует установление TCP соединения с CallManager’ом. Данное соединение открывает возможность использования функционала Cisco IP Phone в полной степени. Как видите, с того момента как наш IP Phone был подключен в один из портов коммутатора и до того момента, когда мы можем совершать звонки, он проходит еще множество всевозможных этапов загрузки, большинство из которых, конечный пользователь даже не заметит.
img
В программно-конфигурируемой сети (SDN) происходит разделение плоскости передачи и управления данными, позволяющее осуществить программное управление плоскостью передачи, которое может быть физически или логически отделено от аппаратных коммутаторов и маршрутизаторов. Подобный подход дает большое количество плюсов: Возможность видеть топологию всей сети; Возможность конфигурации всей сети в целом, а не отдельных единиц оборудования; Возможность производить независимое обновление оборудования в сети; Возможность контролировать всей сети из высокоуровневого приложения. SDN сети То есть, основное отличие программно-конфигурируемых сетей - делегация задачи вычисления маршрутов контроллеру (плоскость управления) и оставить функцию передачи пакетов (плоскость передачи данных) на отдельных устройствах (коммутаторы OpenFlow) , что снизит нагрузку на маршрутизатор и увеличит его производительность. Для оценки функциональности SDN-сети с элементами NFV можно использовать два основных подхода, со своими достоинствами и недостатками: Метод Достоинства Недостатки Эмуляция Высокая точность, возможность использования настоящего ПО Возможная несовместимость конфигурации с реальным оборудованием Построение сети на реальном оборудовании Высокая точность результатов Высокая стоимость С началом развития в сфере SDN-сетей появилось два эмулятора SDN-сетей, которые в добавок поддерживают симуляцию (возможность тестирования сети, часть оборудования в которой реальна и часть - эмулирована). Рассмотрим эмуляторы подробнее. Mininet Эмулятор, находящийся в свободном доступе, большая часть которого написана на языке Python. Работает с “легковесной” виртуализацией, то есть вся эмулируемая сеть реальна, в том числе и конечные виртуальные машины. Есть возможность подключения любых виртуальных коммутаторов и контроллеров. Достоинства Недостатки Открытый код, бесплатность, быстродействие, поддержка всех контроллеров SDN и протоколов OpenFlow вплоть до 1.3, большое количество обучающих видео Высокая сложность, необходимо знание Python и Linux, отсутствие полноценного графического интерфейса Estinet Эмулятор, все права на который имеет компания Estinet, но для студентов и всех желающих попробовать есть свободный доступ на месяц. Есть удобный графический интерфейс для построения топологии сети, редакции свойств оборудования и запуска эмуляции. Достоинства Недостатки Наглядность, простота настройки и установки, возможность эмуляции LTE и Wi-Fi сетей Закрытость, малое количество обучающих статей и видео, низкая производительность работы, более высокая сложность настройки при использовании не встроенного контроллера Ниже приведена часть программного кода на языке Python для построения сети в эмуляторе Mininet: # Инициализация топологии Topo.__init__( self, **opts ) # Добавление узлов, первые - коммутаторы S1 = self.addSwitch( 's0' ) S2 = self.addSwitch( 's1' ) S3 = self.addSwitch( 's2' ) S4 = self.addSwitch( 's3' ) S5 = self.addSwitch( 's4' ) S6 = self.addSwitch( 's5' ) S7 = self.addSwitch( 's6' ) S8 = self.addSwitch( 's7' ) S9 = self.addSwitch( 's8' ) S10= self.addSwitch( 's9' ) S11= self.addSwitch( 's10') # Далее - рабочие станции(виртуальные машины) H1= self.addHost( 'h0' ) H2 = self.addHost( 'h1' ) H3 = self.addHost( 'h2' ) H4 = self.addHost( 'h3' ) H6 = self.addHost( 'h5' ) H7 = self.addHost( 'h6' ) H8 = self.addHost( 'h7' ) H9 = self.addHost( 'h8' ) H10 = self.addHost( 'h9' ) H11 = self.addHost( 'h10' ) # Добавление каналов связи между коммутатором и рабочей станцией self.addLink( S1 , H1 ) self.addLink( S2 , H2 ) self.addLink( S3 , H3 ) self.addLink( S4 , H4 ) self.addLink( S7 , H7 ) self.addLink( S8 , H8) self.addLink( S9 , H9) self.addLink( S10 , H10) self.addLink( S11 , H11) # Добавление каналов связи между коммутаторами self.addLink( S1 , S2, bw=1, delay='0.806374975652ms') self.addLink( S1 , S3, bw=1, delay='0.605826192092ms') self.addLink( S2 , S11, bw=1000, delay='1.362717203ms') self.addLink( S3 , S10, bw=1000, delay='0.557936322ms') self.addLink( S4 , S5, bw=1000, delay='1.288738ms') self.addLink( S4 , S7, bw=1000, delay='1.1116865ms') self.addLink( S5 , S6, bw=1000, delay='0.590828707ms') self.addLink( S5 , S7, bw=1000, delay='0.9982281ms') self.addLink( S6 , S10, bw=1000, delay='1.203263ms') self.addLink( S7 , S8, bw=1000, delay='0.2233403ms') self.addLink( S8 , S9, bw=1000, delay='1.71322726ms') self.addLink( S8 , S11, bw=1000, delay='0.2409477ms') self.addLink( S9 , S10, bw=1000, delay='1.343440256ms') self.addLink( S10 , S11, bw=1000, delay='0.544934977ms') Сравнение контроллеров для построения сети В данный момент, существует большое количество платных и бесплатных(открытых) контроллеров. Все нижеперечисленные можно скачать и установить на домашнюю систему или виртуальную машину. Рассмотрим самые популярные открытые контроллеры и их плюсы и минусы: NOX - один из первых контроллеров, написан на языке C++; POX - контроллер, похожий на NOX и написанный на языке Python; OpenDayLight- контроллер, поддерживаемый многими корпорациями, написан на языке Java и постоянно развивающийся; RunOS- российская разработка от Центра Прикладного Исследования Компьютерных Сетей (ЦПИКС), имеет графический интерфейс, подробную документацию и заявлена самая высокая производительность. В таблице ниже рассмотрим плюсы и минусы каждого из контроллеров: Название контроллера Достоинства Недостатки NOX Скорость работы Низкое количество документации, необходимость знания C++ POX Проще обучиться, много документации Низкая скорость работы, необходимость знания Python, сложная реализация совместимости с NFV OpenDayLight Наличие графического интерфейса, поддержка VTN-сетей(NFV), наличие коммерческих продуктов на базе данного контроллера(Cisco XNC) Сложность в использовании, сложная установка RunOS Высокая производительность, Российская разработка, Открытый код, Наличие графического интерфейса Ранняя версия, возможные проблемы в эксплуатации по причине сырости продукта.
img
Ядро - это центральный компонент операционной системы. Ядро также считается сердцем операционной системы. Он отвечает за управление всеми процессами, памятью, файлами и т. д. Ядро функционирует на самом низком уровне операционной системы. Он действует как интерфейс (мост) между пользовательским приложением (программным обеспечением) и аппаратным обеспечением. Поэтому связь между программным обеспечением и аппаратным обеспечением осуществляется через ядро. Основные функции, которые выполняет ядро: управление процессами управление памятью управление устройством обработка прерываний операции ввода/вывода Теперь давайте разберемся подробнее в этих функциях ядра... Функции ядра в операционной системе Управление процессами Создание, выполнение и завершение процессов выполняются внутри системы всякий раз, когда система находится во включенном состоянии (режиме ON). Процесс содержит всю информацию о задаче, которую необходимо выполнить. Таким образом, для выполнения любой задачи внутри системы создается процесс. В то же время существует множество процессов, которые находятся в активном состоянии внутри системы. Управление всеми этими процессами очень важно для предупреждения тупиковых ситуаций и для правильного функционирования системы, и оно осуществляется ядром. Управление памятью Всякий раз, когда процесс создается и выполняется, он занимает память, и когда он завершается, память должна быть освобождена и может быть использована снова. Но память должна быть обработана кем-то, чтобы освобожденная память могла быть снова назначена новым процессам. Эта задача также выполняется ядром. Ядро отслеживает, какая часть памяти в данный момент выделена и какая часть доступна для выделения другим процессам. Управление устройствами Ядро также управляет всеми различными устройствами, подключенными к системе, такими как устройства ввода и вывода и т. д. Обработка прерываний При выполнении процессов возникают условия, при которых сначала необходимо решить задачи с большим приоритетом. В этих случаях ядро должно прерывать выполнение текущего процесса и обрабатывать задачи с большим приоритетом, которые были получены в промежутке. Операции ввода/вывода Поскольку ядро управляет всеми подключенными к нему устройствами, оно также отвечает за обработку всех видов входных и выходных данных, которыми обмениваются эти устройства. Таким образом, вся информация, которую система получает от пользователя, и все выходные данные, которые пользователь получает через различные приложения, обрабатываются ядром. Типы ядер в операционной системе Как выше было сказано ядро - это программа, которая является основным компонентом операционной системы. Теперь давайте рассмотрим типы ядер. Ядро подразделяется на два основных типа: монолитное ядро Микро-Ядра Существует еще один тип ядра, который является комбинацией этих двух типов ядер и известен как гибридное ядро. Рассмотрим каждый из них вкратце... Монолитное Ядро В этом типе архитектуры ядра все функции, такие как управление процессами, управление памятью, обработка прерываний и т. д. выполняются в пространстве ядра.Монолитные ядра сначала состояли только из одного модуля, и этот модуль отвечал за все функции, которые выполнялись ядром. Это увеличило производительность ОС, так как все функции присутствовали внутри одного модуля, но это также привело к серьезным недостаткам, таким как большой размер ядра, очень низкая надежность, потому что даже если одна функция ядра отказала, это привело к отказу всей программы ядра и плохому обслуживанию, по той же причине. Таким образом, для повышения производительности системы был применен модульный подход в монолитных ядрах, в которых каждая функция присутствовала в отдельном модуле внутри пространства ядра. Таким образом, для исправления любых ошибок или в случае сбоя, только этот конкретный модуль был выгружен и загружен после исправления. Микроядра В этом типе архитектуры ядра основные пользовательские службы, такие как управление драйверами устройств, управление стеком протоколов, управление файловой системой и управление графикой, присутствуют в пространстве пользователя, а остальные функции управление памятью, управление процессами присутствует внутри пространства ядра. Таким образом, всякий раз, когда система имеет потребность в услугах, присутствующих в пространстве ядра, ОС переключается в режим ядра, а для служб пользовательского уровня она переключается в режим пользователя. Этот тип архитектуры ядра уменьшает размер ядра, но скорость выполнения процессов и предоставления других услуг значительно ниже, чем у монолитных ядер. Гибридное Ядро Для наилучшей производительности системы нам требуется как высокая скорость, так и малый размер ядра, чтобы наша система могла иметь максимальную эффективность. Поэтому для решения этой задачи был разработан новый тип ядра, который представлял собой комбинацию монолитного ядра и микроядра. Этот тип ядра известен как гибридное ядро. Такой тип архитектуры используется практически во всех системах, которые производятся в настоящее время.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59