По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
Классификация сама по себе не приводит к определенному состоянию переадресации со стороны сетевого устройства. Скорее, классификация трафика - это первый необходимый шаг в создании основы для дифференцированного поведения пересылки. Другими словами, пакеты были классифицированы и дифференцированы, но это все. Выявление различий - это не то же самое, что дифференцированные действия с этими классами. Наше обсуждение QoS теперь переходит в сферу политики. Как управлять перегруженными интерфейсами? Когда пакеты ожидают доставки, как сетевое устройство решает, какие пакеты будут отправлены первыми? Точки принятия решения основаны в первую очередь на том, насколько хорошо пользовательский интерфейс может выдерживать джиттер, задержку и потерю пакетов. Для решения этих проблем возникают различные проблемы и инструменты QoS. Своевременность: организация очередей с малой задержкой Сетевые интерфейсы пересылают пакеты как можно быстрее. Когда трафик проходит со скоростью, меньшей или равной пропускной способности выходного интерфейса, трафик доставляется по одному пакету за раз, без каких-либо проблем. Когда интерфейс может соответствовать предъявляемым к нему требованиям, перегрузки не возникает. Без перегрузок нет необходимости беспокоиться о дифференцированных типах трафика. Отметки на отдельных пакетах можно наблюдать в статистических целях, но политики QoS, которую нужно применять, нет. Трафик поступает на выходной интерфейс и доставляется. Как было рассказано ранее в лекции "Коммутация пакетов", пакеты доставляются в кольцо передачи после коммутации. Физический процессор исходящего интерфейса удаляет пакеты из этого кольца и синхронизирует их с физической сетевой средой. Что произойдет, если будет передано больше пакетов, чем может поддерживать канал связи? В этом случае пакеты помещаются в очередь, выходную очередь, а не в кольцо передачи. Политики QoS, настроенные на маршрутизаторе, фактически реализуются в процессе удаления пакетов из очереди вывода на кольцо передачи для передачи. Когда пакеты помещаются в очередь вывода, а не в кольцо передачи, интерфейс считается перегруженным. По умолчанию перегруженные сетевые интерфейсы доставляют пакеты в порядке очереди (FIFO). FIFO не принимает стратегических решений на основе дифференцированных классов трафика; скорее, FIFO просто обслуживает буферизованные пакеты по порядку настолько быстро, насколько это позволяет выходной интерфейс. Для многих приложений FIFO - неплохой способ удаления пакетов из очереди. Например, в реальном мире может быть небольшое влияние, если пакет протокола передачи гипертекста (HTTP, протокол, используемый для передачи информации World Wide Web) с одного веб-сервера передается раньше, чем пакет с другого веб-сервера. Для других классов трафика большое внимание уделяется своевременности. В отличие от FIFO, некоторые пакеты следует переместить в начало очереди и отправить как можно быстрее, чтобы избежать задержки и влияния на работу конечного пользователя. Одно из последствий - это пакет, прибывающий слишком поздно, чтобы быть полезным. Другой удар заключается в том, что пакет вообще не поступает. Стоит рассмотреть каждый из этих сценариев, а затем несколько полезных инструментов QoS для каждого. Голосовой трафик по IP (VoIP) должен вовремя. При рассмотрении голосового трафика подумайте о любом голосовом чате в реальном времени, который осуществляется через Интернет с помощью такого приложения, как Skype. В большинстве случаев качество связи приличное. Вы можете слышать другого человека. Этот человек может вас слышать. Разговор протекает нормально. С таким же успехом вы можете находиться в одной комнате с другим человеком, даже если он находится на другом конце страны. Иногда качество звонков VoIP может снижаться. Вы можете услышать серию субсекундных заиканий в голосе человека, при этом скорость передачи голоса нерегулярна. В этом случае вы испытываете джиттер, что означает, что пакеты не поступают стабильно вовремя. Чрезмерно длинные промежутки между пакетами приводят к слышимому эффекту заикания. Хотя пакеты не были потеряны, они не были своевременно доставлены по сетевому пути. Где-то по пути пакеты задерживались достаточно долго, чтобы появились слышимые артефакты. На рисунке 5 показан джиттер при пакетной передаче. Качество вызова VoIP также может пострадать из-за потери пакетов, когда пакеты на сетевом пути были сброшены по пути. Хотя существует множество потенциальных причин потери пакетов в сетевых путях, рассмотренный здесь сценарий - это "отбрасывание хвоста", когда поступило такое количество трафика, которое выходит за пределы возможностей выходного интерфейса, и в буфере не остается места для добавления в очередь дополнительных излишков. В результате отбрасываются самые последние поступления трафика; это падение называется хвостовым падением. Качество вызова VoIP также может пострадать из-за потери пакетов, когда пакеты на сетевом пути были сброшены по пути. Хотя существует множество потенциальных причин потери пакетов в сетевых путях, рассмотренный здесь сценарий - это "отбрасывание хвоста", когда поступило такое количество трафика, которое выходит за пределы возможностей выходного интерфейса, и в буфере не остается места для добавления в очередь дополнительных излишков. В результате отбрасываются самые последние поступления трафика; это падение называется хвостовым падением. Когда трафик VoIP отбрасывается, слушатель слышит результат потери. Есть пробелы, в которых голос говорящего полностью отсутствует. Отброшенные пакеты могут проходить в виде тишины, поскольку последний бит принятого звука зацикливается, чтобы заполнить пробел, продолжительное шипение или другой цифровой шум. На рисунке ниже показаны отброшенные пакеты через маршрутизатор или коммутатор. Чтобы обеспечить стабильное качество вызовов даже в условиях перегруженности сетевого пути, необходимо применять схему приоритезации QoS. Эта схема должна соответствовать следующим критериям. Трафик VoIP должен быть доставлен: потеря пакетов VoIP приводит к слышимому прерыванию разговора. Трафик VoIP должен доставляться вовремя: задержка или прерывание пакетов VoIP приводит к слышимым заиканиям. Трафик VoIP не должен ограничивать пропускную способность других классов трафика: так же важно, как и VoIP, хорошо написанные политики QoS уравновешивают своевременную доставку голосовых пакетов с необходимостью для других классов трафика также использовать канал. Распространенной схемой, используемой для определения приоритетов трафика, чувствительного к потерям и jitter, является организация очередей с низкой задержкой (LLQ). Никакие RFC IETF не определяют LLQ; скорее, поставщики сетевого оборудования изобрели LLQ в качестве инструмента в наборе политик QoS для определения приоритетов трафика, требующего низкой задержки, jitter и потерь, например, голоса. LLQ есть два ключевых элемента. Трафик, обслуживаемый LLQ, передается как можно быстрее, чтобы избежать задержки и минимизировать джиттер. Трафик, обслуживаемый LLQ, не может превышать определенный объем полосы пропускания (обычно рекомендуется не более 30% доступной полосы пропускания). Трафик, превышающий предел пропускной способности, скорее отбрасывается, чем передается. Этот метод позволяет избежать потери трафика других классов. В этой схеме подразумевается компромисс для услуг классов трафика посредством LLQ. Трафик будет обслуживаться как можно быстрее, эффективно перемещая его в начало очереди, как только он обнаруживается на перегруженном интерфейсе. Загвоздка в том, что существует ограничение на то, сколько трафика в этом классе будет обрабатываться таким образом. Это ограничение налагается сетевым инженером, составляющим политику QoS. В качестве иллюстрации предположим, что канал WAN имеет доступную пропускную способность 1024 Кбит/с. Этот канал соединяет головной офис с облаком WAN поставщика услуг, которое также соединяет несколько удаленных офисов с головным офисом. Это загруженный канал WAN, по которому проходит трафик VoIP между офисами, а также трафик веб-приложений и резервный трафик время от времени. Кроме того, предположим, что система VoIP кодирует голосовой трафик с помощью кодека, требующего 64 Кбит/с на разговор. Теоретически, этот канал с пропускной способностью 1024 Кбит/с может обеспечить одновременные разговоры VoIP 16 × 64 Кбит/с. Однако это не оставит места для других типов трафика, которые присутствуют. Это занятое соединение WAN! Решение должно быть принято при написании политики QoS. Сколько голосовых разговоров будет разрешено LLQ, чтобы избежать нехватки оставшегося трафика полосы пропускания? Можно было бы сделать выбор, чтобы ограничить LLQ пропускной способностью только 512 Кбит/с, что было бы достаточно для обработки восьми одновременных разговоров, оставив остальную часть канала WAN для других классов трафика. Предполагая, что канал перегружен, что произойдет с девятым разговором VoIP, если он должен находиться в ситуации, чтобы политика QoS была эффективной? Этот вопрос на самом деле наивен, потому что он предполагает, что каждый разговор обрабатывается отдельно политикой QoS. Фактически, политика QoS рассматривает весь трафик, обслуживаемый LLQ, как одну большую группу пакетов. После присоединения девятого разговора VoIP будет трафик на 576 Кбит/с, который будет обслуживаться LLQ, которому выделено только 512 Кбит/с. Чтобы найти количество отброшенного трафика, вычтите общий трафик, выделенный для LLQ, из общего предлагаемого трафика: 576 Кбит/с - 512 Кбит/с = 64 Кбит/с трафик LLQ будет отброшен в соответствии с ограничением полосы пропускания. Отброшенные 64 Кбит/с будут исходить от класса трафика LLQ в целом, что повлияет на все разговоры VoIP. Если десятый, одиннадцатый и двенадцатый разговор VoIP присоединиться к LLQ, проблема станет более серьезной. В этом случае 64 Кбит/с × 4 = 256 Кбит/с несоответствующего трафика, который будет отброшен из LLQ, что приведет к еще большим потерям во всех разговорах VoIP. Как показывает этот пример, для управления перегрузкой необходимо знать состав приложений, время пиковой нагрузки, требования к полосе пропускания и доступные варианты сетевой архитектуры. Только после того, как будут учтены все моменты, можно найти решение, отвечающее бизнес-целям. Например, предположим, что 1024 Кбит/с - это максимальное значение, которое вы можете сделать для линии дальней связи из-за ограничений по стоимости. Вы можете увеличить ограничение полосы пропускания LLQ до 768 Кбит/с, чтобы обеспечить 12 разговоров со скоростью 64 Кбит/с каждый. Однако для другого трафика останется только 256 Кбит/с, чего, возможно, недостаточно для удовлетворения потребностей вашего бизнеса в других приложениях. В этом случае можно согласовать с администратором системы голосовой связи использование голосового кодека, требующего меньшей полосы пропускания. Если новый кодек, требующий только 16 Кбит/с полосы пропускания на вызов, развернут вместо исходных 64 Кбит/с, 32 разговора VoIP могут быть перенаправлены без потерь через LLQ с выделенной полосой пропускания 512 Кбит/с. Компромисс? Качество голоса. Человеческий голос, закодированный со скоростью 64 Кбит/с, будет звучать более четко и естественно по сравнению с голосом, закодированным на скорости 16 Кбит/с. Также может быть лучше кодировать со скоростью 16 Кбит/с, чтобы отбрасывать меньше пакетов и, следовательно, общее качество лучше. Какое решение применить, будет зависеть от конкретной ситуации. Через интерфейс может пройти больше трафика, чем указано в ограничении полосы пропускания LLQ. Если ограничение полосы пропускания для трафика, обслуживаемого LLQ, установлено на максимум 512 Кбит/с, возможно, что трафик класса более чем на 512 Кбит/с пройдет через интерфейс. Такое запрограммированное поведение проявляется только в том случае, если интерфейс не перегружен. В исходном примере, где используется кодек 64 Кбит/с, передача 10 разговоров со скоростью 64 Кбит/с по каналу приведет к передаче голосового трафика 640 Кбит/с по каналу пропускной способности 1024 Кбит/с (1024 Кбит/с - 640 Кбит/с = 384 Кбит/с осталось). Пока все другие классы трафика остаются ниже общего использования полосы пропускания 384 Кбит / с, канал не будет перегружен. Если канал не перегружен, политики QoS не вступают в силу. Если политика QoS не действует, то ограничение полосы пропускания LLQ в 512 Кбит/с не влияет на 640 Кбит/с агрегированного голосового трафика. В этой статье о LLQ контекстом был голосовой трафик, но имейте в виду, что LLQ может применяться к любому желаемому виду трафика. Однако в сетях, где присутствует VoIP, VoIP обычно является единственным трафиком, обслуживаемым LLQ. Для сетей, в которых нет трафика VoIP, LLQ становится интересным инструментом, гарантирующим своевременную доставку с малой задержкой и дрожанием других видов трафика приложений. Однако LLQ - не единственный инструмент, доступный для составителя политики QoS. Также пригодятся несколько других инструментов.
img
Сегодня речь в статье пойдет о Docker. Все, кто хоть как-то касаются сферы IT слышали про Docker, но не все знают, что же это такое. Итак, сегодня мы простыми словами расскажем о том, что такое Docker, чем это отличается от виртуализации, покажем подробный процесс инсталляции на CentOS 7 и установим просто графический интерфейс Portainer, для управления контейнерами. Также немного коснемся команд для использования Docker. Что такое Docker? Docker - это платформа, которая может “упаковать” приложение, его зависимости, middleware и так далее в так называемый “контейнер”, после чего у вас появится возможность развернуть данный контейнер на любом сервере, на котором установлен Docker - причем буквально за доли секунды, одной командой. Благодаря этим решается сразу несколько задач - в первую очередь, процесс запуска приложения на сервере многократно упрощается, во вторую - какие-либо баги в контейнеризированном приложении никак не повлияют на сам сервер, также как и специфические настройки сервера не повлияют на приложение. И хоть кажется, что Docker выглядит и работает как виртуальная машина, на самом деле они очень разные: виртуальная машина эмулирует сервер целиком, включая все аппаратные ресурсы, а контейнер изолирует приложение, процессы, юзеров и файловую систему. При этом все контейнеры используют общее Linux ядро хоста и запускается в нативном режиме только на Linux машинах, но зато на одной машине можно запустить примерно в 5-6 раз больше контейнеров, чем виртуальных машинах. Ниже на схеме показаны различия: Установка Docker Как было упомянуто в начале статьи, устанавливать Докер мы будем на CentOS 7 - процесс установки крайне простой и быстрый. Итак, сначала необходимо установить с помощью yum несколько пакетов: yum install -y yum-utils device-mapper-persistent-data Lvm2 Далее необходимо установить stable репозиторий для Докера, который вам понадобится, даже если вы захотите устанавливать билды из edge и test репозиториев: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Затем устанавливаем сам Docker: yum install docker-ce И, наконец, запускаем Docker: systemctl start docker Проверяем, что Docker запустился и работает в два шага: systemctl status docker Вы должны увидеть следующий вывод: После этого пробуем развернуть контейнер hello-world: docker run hello-world Если все шаги были выполнены корректно, то на экране должно появится следующее: Установка Portainer Portainer - это очень удобный графический интерфейс для управления Docker или Docker Swarm. Устанавливается он практически в одно действие - так как сам точно также является контейнером. Итак: Создаем разметку для Portainer: docker volume create portainer_data И затем запускаем сам контейнер: docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer После чего заходите на сетевой адрес вашего сервера на порт 9000, и вы должны увидеть окно с предложением установить пароль администратора: Далее выбираем где находится наш Докер - на этом же сервере, или на другом (в нашем случае - Local) и кликаем Connect. После чего вас встретит красивый дэшборд: Я предлагаю вам попробовать разобраться со всем многообразием дэшборда самим и задавать нам вопросы в комментариях - а мы пока продемонстрируем несколько фич. Итак, сначала кликните на Containers - вы увидите все имеющиеся контейнеры с информацией о них: Как вы можете видеть, у нас на данный момент запущен только один контейнер - Portainer, и доступ к нему открыт по порту 9000 (столбец Published Ports), и адрес во внутренней сети Docker - 172.17.0.2. Далее кликните на App Templates в меню справа - и вы увидите весь список приложений, который можно запустить одним кликом: Зайдем во вкладку Httpd: Сперва, назовите данный контейнер как-нибудь - мы назвали test-merionet. Затем, можете кликнуть на Show advanced options и вы увидите возможность выбора какой порт, протокол и том будет использоваться данным контейнером. Затем просто нажмите на Deploy the container. Пройдет буквально несколько секунд и вас должно перекинуть обратно на вкладку Containers, но, с уже вторым запущенным контейнером: Отсюда вы увидите, что httpd сервер доступен на 32768 порту. Итак, пробуем зайти на данный сервер через браузер: Вы должны будете увидеть надпись It works! так же как на скриншоте выше - дальнейшую настройку httpd мы пока оставляем за кадром. Донастройка Docker и полезные команды Итак, вы уже познакомились с Docker и получили представление о его возможностях. Ниже в тексте мы опишем действия, которые также необходимо сделать после установки и некоторые команды, без которых буквально трудно жить, если активно используешь Докер. Первым делом, настройте автозапуск для сервиса Docker: systemctl enable docker Затем, вы можете проверить запущенные контейнеры в консоли (на случай если вам не нравится идея использования GUI) с помощью команды docker ps Теперь немного о командах и синтаксисе - будем показывать на примерах: Допустим, нам нужно запустить CentOS и выполнить в нем команду echo: docker run centos echo “Hello from Merion Networks” Запустить CentOS и подключиться к его терминалу: docker run -t-i centos /bin/bash Можете сразу указать нужные порты с помощью ключа -p и запустить контейнер в бэкграунде с помощью ключа --d: docker run -p 80:80 --d nodejs-app Итак, совсем немного об опциях для команды docker run - полный список можно найти по ссылке https://docs.docker.com/engine/reference/commandline/run/#description -p - открываем конкретные порты через пробел - порт доступа и порт на контейнере, к примеру docker run -p 9876:80 %imagename% -P - открываем сразу все порты; -t - подключение к терминалу контейнера; -i - интерактивный режим, STDIN все время будет открыт; Обязательно посетите Docker Hub, так как там можно найти кучу интересных контейнеров с примерами их установки и доступом к Docker-файлу, это что-то вроде GitHub только для контейнеров. Заключение На этом всё, спасибо за внимание! Пишите в комментариях, что еще вам интересно узнать про Докер - в следующих статьях мы покроем такие темы как: создание своего собственного Докер-файла и образа, как подключить папку файловой системы с вашего хоста, интересное на Docker Hub и так далее.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59