По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сетевые устройства добавляются в сети для решения целого ряда проблем, включая подключение различных типов носителей и масштабирование сети путем переноса пакетов только туда, куда они должны идти. Однако маршрутизаторы и коммутаторы сами по себе являются сложными устройствами. Сетевые инженеры могут построить целую карьеру, специализируясь на решении лишь небольшого набора проблем, возникающих при передаче пакетов через сетевое устройство. Рисунок 1 используется для обсуждения обзора проблемного пространства. На рисунке 1 есть четыре отдельных шага: Пакет необходимо скопировать с физического носителя в память устройства; это иногда называют синхронизацией пакета по сети. Пакет должен быть обработан, что обычно означает определение правильного исходящего интерфейса и изменение пакета любым необходимым способом. Например, в маршрутизаторе заголовок нижнего уровня удаляется и заменяется новым; в фильтре пакетов с отслеживанием состояния пакет может быть отброшен на основании внутреннего состояния и т.п. Пакет необходимо скопировать из входящего интерфейса в исходящий. Это часто связано с перемещениями по внутренней сети или шине. Некоторые системы пропускают этот шаг, используя один пул памяти как для входящего, так и для исходящего интерфейсов; они называются системами с общей памятью. Пакет необходимо скопировать обратно на исходящий физический носитель; это иногда называют синхронизацией пакета по проводу. Примечание. Небольшие системы, особенно те, которые ориентированы на быструю и последовательную коммутацию пакетов, часто используют общую память для передачи пакетов с одного интерфейса на другой. Время, необходимое для копирования пакета в память, часто превышает скорость, с которой работают интерфейсы; системы с общей памятью избегают этого при копировании пакетов в память. Таким образом, проблемное пространство, обсуждаемоениже, состоит из следующего: Как пакеты, которые необходимо пересылать сетевым устройством, переносятся с входящего на исходящий физический носитель, и как пакеты подвергаются обработке на этом пути? Далее обсуждается часть решения этой проблемы. Физический носитель – Память Первым шагом в обработке пакета через сетевое устройство является копирование пакета с провода в память. Для иллюстрации этого процесса используется рисунок 2. На рисунке 2 представлены два этапа: Шаг 1. Набор микросхем физического носителя (PHY chip) будет копировать каждый временной (или логический) слот с физического носителя, который представляет один бит данных, в ячейку памяти. Эта ячейка памяти фактически отображается в приемное кольцо, которое представляет собой набор ячеек памяти (буфер пакетов), выделенный с единственной целью - прием пакетов, синхронизируемых по сети. Приемное кольцо и вся память буфера пакетов обычно состоят из памяти одного типа, доступной (совместно используемой) всеми коммутирующими компонентами на принимающей стороне линейной карты или устройства. Примечание. Кольцевой буфер используется на основе одного указателя, который увеличивается каждый раз, когда новый пакет вставляется в буфер. Например, в кольце, показанном на рисунке 2, указатель будет начинаться в слоте 1 и увеличиваться через слоты по мере того, как пакеты копируются в кольцевой буфер. Если указатель достигает слота 7 и поступает новый пакет, пакет будет скопирован в слот 1 независимо от того, было ли обработано содержимое слота 1 или нет. При коммутации пакетов наиболее трудоемкой и трудной задачей является копирование пакетов из одного места в другое; этого можно избежать, насколько это возможно, за счет использования указателей. Вместо перемещения пакета в памяти указатель на ячейку памяти передается от процесса к процессу в пределах пути переключения. Шаг 2. Как только пакет синхронизируется в памяти, некоторый локальный процессор прерывается. Во время этого прерывания локальный процессор удалит указатель на буфер пакетов, содержащий пакет, из кольца приема и поместит указатель на пустой буфер пакетов в кольцо приема. Указатель помещается в отдельный список, называемый входной очередью. Обработка пакета Как только пакет окажется во входной очереди, его можно будет обработать. Обработку можно рассматривать как цепочку событий, а не как одно событие. Рисунок 3 иллюстрирует это. Перед коммутацией пакета должна произойти некоторая обработка, например преобразование сетевых адресов, поскольку она изменяет некоторую информацию о пакете, используемом в фактическом процессе коммутации. Другая обработка может происходить после переключения. Коммутация пакета - довольно простая операция: Процесс коммутации ищет адрес назначения Media Access Control (MAC) или физического устройства в таблице пересылки (в коммутаторах это иногда называется таблицей обучения моста или просто таблицей моста). Исходящий интерфейс определяется на основе информации в этой таблице. Пакет перемещается из входной очереди в выходную очередь. Пакет никоим образом не изменяется в процессе коммутации; он копируется из очереди ввода в очередь вывода. Маршрутизация Маршрутизация - более сложный процесс, чем коммутация. Рисунок 4 демонстрирует это. На рисунке 4 пакет начинается во входной очереди. Тогда коммутационный процессор: Удаляет (или игнорирует) заголовок нижнего уровня (например, кадрирование Ethernet в пакете). Эта информация используется для определения того, должен ли маршрутизатор получать пакет, но не используется во время фактического процесса коммутации. Ищет адрес назначения (и, возможно, другую информацию) в таблице пересылки. Таблица пересылки связывает место назначения пакета со next hop пакета. Next hop может быть следующий маршрутизатор на пути к месту назначения или сам пункт назначения. Затем коммутирующий процессор проверяет таблицу interlayer discovery, чтобы определить правильный физический адрес, по которому следует отправить пакет, чтобы доставить пакет на один шаг ближе к месту назначения. Новый заголовок нижнего уровня создается с использованием этого нового адреса назначения нижнего уровня и копируется в пакет. Обычно адрес назначения нижнего уровня кэшируется локально вместе со всем заголовком нижнего уровня. Весь заголовок перезаписывается в процессе, называемом перезапись заголовка MAC. Теперь весь пакет перемещается из очереди ввода в очередь вывода. Почему именно маршрутизация? Поскольку маршрутизация-это более сложный процесс, чем коммутация, то почему именно маршрутизация? Для иллюстрации будет использован рисунок 5. Существует по меньшей мере три конкретных причины для маршрутизации, а не коммутации в сети. На рисунке 5 в качестве примера приведена небольшая сеть: Если канал связи [B,C] является физическим носителем другого типа, чем два канала связи, соединяющиеся с хостами, с различными кодировками, заголовками, адресацией и т. д., то маршрутизация позволит A и D общаться, не беспокоясь об этих различиях в типах каналов связи. Это можно было бы преодолеть в чисто коммутируемой сети с помощью преобразования заголовков, но преобразование заголовков на самом деле не уменьшает количество работы, чем маршрутизация в пути коммутации, поэтому нет особого смысла не маршрутизировать для решения этой проблемы. Другое решение может заключаться в том, чтобы каждый тип физического носителя согласовывал единую адресацию и пакетный формат, но, учитывая постоянное развитие физических носителей и множество различных типов физических носителей, это кажется маловероятным решением. Если бы вся сеть была коммутируемой, то B должен был бы знать полную информацию о достижимости для D и E, в частности, D и E должны были бы знать адреса физического или нижнего уровня для каждого устройства, подключенного к сегменту хоста за пределами C. Это может быть не большой проблемой в малой сети, но в больших сетях с сотнями тысяч узлов или глобальным интернетом это не будет масштабироваться—просто слишком много состояний для управления. Можно агрегировать информацию о достижимости с помощью адресации нижнего уровня, но это сложнее, чем использовать адрес более высокого уровня, назначенный на основе топологической точки присоединения устройства, а не адрес, назначенный на заводе, который однозначно идентифицирует набор микросхем интерфейса. Если D отправляет широковещательную рассылку «всем устройствам в сегменте», A получит широковещательную рассылку, если B и C являются коммутаторами, но не если B и C являются маршрутизаторами. Широковещательные пакеты нельзя исключить, поскольку они являются неотъемлемой частью практически каждого транспортного протокола, но в чисто коммутируемых сетях широковещательные передачи представляют собой очень трудно решаемую проблему масштабирования. Трансляции блокируются (или, скорее, потребляются) на маршрутизаторе. Примечание. В мире коммерческих сетей термины маршрутизация и коммутация часто используются как синонимы. Причина этого в первую очередь в истории маркетинга. Первоначально маршрутизация всегда означала «переключаемая программно», тогда как коммутация всегда означала «переключаемая аппаратно». Когда стали доступны механизмы коммутации пакетов, способные переписывать заголовок MAC на аппаратном уровне, они стали называться «коммутаторами уровня 3», которые в конечном итоге были сокращены до простой коммутации. Например, большинство «коммутаторов» центров обработки данных на самом деле являются маршрутизаторами, поскольку они действительно выполняют перезапись MAC-заголовка для пересылаемых пакетов. Если кто-то называет часть оборудования коммутатором, то лучше всего уточнить, является ли это коммутатором уровня 3 (правильнее - маршрутизатор) или коммутатором уровня 2 (правильнее - коммутатором). Примечание. Термины канал связи и соединение здесь используются как синонимы. Канал связи - это физическое или виртуальное проводное или беспроводное соединение между двумя устройствами. Equal Cost Multipath В некоторых проектах сети сетевые администраторы вводят параллельные каналы между двумя узлами сети. Если предположить, что эти параллельные каналы равны по пропускной способности, задержке и т. д., они считаются равными по стоимости. В нашем случае каналы считаются многопутевыми с равной стоимостью (equal cost multipath - ECMP). В сетевых технологиях в производственных сетях часто встречаются два варианта. Они ведут себя одинаково, но отличаются тем, как каналы группируются и управляются сетевой операционной системой.
img
Многие серверы не имеют никакого графического интерфейса, но бывает нужно зайти на какую-нибудь веб-страницу, и для этого привычные Chrome и FireFox не подходят – ведь предварительно вам придётся настраивать X11 port forwarding или устанавливать графический интерфейс. Но есть простое и изящное решение – установка текстового веб-браузера. Установка и использование веб-браузера Elinks Для начала немного истории – первым появился браузер Lynx, он также часто поставляется со многими Linux системами, не поддерживает такие фичи как Java Script и так далее. Далее начало появляться большое количество браузеров на его основе – Links, Links2, Elinks и прочих. Сегодня мы рассмотрим, как установить (крайне простая операция) и использовать данный браузер. Для установки введите команду yum install elinks и нажмите Enter. После установки введите в консоли elinks и адрес сайта – к примеру, merionet.ru. Далее вы увидите сам вебсайт – и вы будете лишены всплывающих баннеров, рекламы и прочих раздражающих, зачастую, элементов. Далее коротко об управлении данным браузером: Скроллинг - проматывать экраны можно с помощью стрелок вверх и вниз на клавиатуре Новая страница - нажмите g и введите новый URL Новая вкладка - нажмите t и введите новый URL Выход - для выхода необходимо нажать q Главное меню - после нажатия Escape вы увидите главное меню, в т.ч и остальные горячие клавиши – как на скриншоте ниже. Заключение Полезность текстового браузера сложно недооценить - во-первых, в нем вы не увидите рекламы и какого-либо вредоносного софта (ну только если специально искать не станете), во-вторых, он требует буквально самых минимальных ресурсов. То есть если у вас в распоряжении есть только какой-нибудь Raspberry Pi и старенький монитор – посёрфить в интернете всё равно получится :)
img
Повышение нагрузки на серверы Linux может быть хорошей идеей, если вы хотите увидеть, насколько хорошо они работают, когда они загружены. В этой статье мы рассмотрим некоторые инструменты, которые помогут вам нагрузить сервер и оценить результаты. Для чего вам необходимо подвергать свою систему Linux нагрузке? Потому что иногда вам может потребоваться узнать, как система будет вести себя, когда она находится под большим давлением из-за большого количества запущенных процессов, интенсивного сетевого трафика, чрезмерного использования памяти и т. д. Этот вид тестирования позволяет убедиться, что система готова к использованию. Если вам нужно спрогнозировать, сколько времени потребуется приложениям для ответа и какие процессы могут выйти из строя или работать медленно под большой нагрузкой, проведение стресс-тестирования заранее является очень хорошей идеей. К счастью для тех, кому нужно знать, как система Linux отреагирует на нагрузку, есть несколько полезных методов, которые вы можете использовать, и есть инструменты, которые вы можете использовать, чтобы упростить этот процесс. В этой статье мы рассмотрим несколько вариантов. Создаем циклы своими руками Данный первый метод предполагает запуск некоторых циклов в командной строке и наблюдение за тем, как они влияют на систему. Этот метод нагружает ЦП, значительно увеличивая нагрузку. Результаты можно легко увидеть с помощью команды uptime или аналогичных команд. В приведенной ниже примере мы начинаем четыре бесконечных цикла. Вы можете увеличить количество циклов, добавляя цифры или используя выражение bash, например {1..6} вместо «1 2 3 4». for i in 1 2 3 4; do while : ; do : ; done & done В примере выше, команда, запускает четыре бесконечных цикла в фоновом режиме. $ for i in 1 2 3 4; do while : ; do : ; done & done [1] 205012 [2] 205013 [3] 205014 [4] 205015 В этом случае были запущены задания 1-4. Отображаются как номера заданий, так и идентификаторы процессов. Чтобы увидеть влияние на средние значения нагрузки, используйте команду, подобную показанной ниже. В этом случае команда uptime запускается каждые 30 секунд: $ while true; do uptime; sleep 30; done Если вы собираетесь периодически запускать подобные тесты, вы можете поместить команду цикла в скрипт: #!/bin/bash while true do uptime sleep 30 done В выходных данных вы можете увидеть, как средние значения нагрузки увеличиваются, а затем снова начинают снижаться после завершения циклов. Поскольку показанные нагрузки представляют собой средние значения за 1, 5 и 15 минут, потребуется некоторое время, чтобы значения вернулись к нормальным для системы значениям. Чтобы остановить циклы, выполните команду kill, подобную приведенной ниже - при условии, что номера заданий равны 1-4, как было показано ранее в этой статье. Если вы не уверены, используйте команду jobs, чтобы проверить ID. $ kill %1 %2 %3 %4 Специализированные инструменты для добавления нагрузки Другой способ создать системный стресс - это использовать инструмент, специально созданный для того, чтобы нагружать систему за вас. Один из них называется stress и может воздействовать на систему разными способами. Стресс-инструмент - это генератор рабочей нагрузки, который обеспечивает стресс-тесты ЦП, памяти и I/O. С параметром --cpu команда stress использует функцию извлечения квадратного корня, чтобы заставить ЦП усердно работать. Чем больше указано количество ЦП, тем быстрее будет нарастать нагрузка. Второй сценарий watch-it (watch-it-2) может использоваться для оценки влияния на использование системной памяти. Обратите внимание, что он использует команду free, чтобы увидеть эффект стресса. $ cat watch-it-2 #!/bin/bash while true do free sleep 30 done Начало и наблюдение за стрессом: $ stress --cpu 2 Чем больше ЦП указано в командной строке, тем быстрее будет нарастать нагрузка. Команда stress также может вызвать нагрузку на систему, добавив I/O и загрузку памяти с помощью параметров --io (input/output) и --vm (memory). В следующем примере выполняется команда для добавления нагрузки на память, а затем запускается сценарий watch-it-2: $ stress --vm 2 Другой вариант для стресса - использовать параметр --io, чтобы добавить в систему действия по вводу/выводу. В этом случае вы должны использовать такую команду: $ stress --io 4 После чего вы можете наблюдать за стрессовым I/O с помощью iotop. Обратите внимание, что iotop требует привилегий root. До После stress - это лишь один из множества инструментов для добавления нагрузки в систему.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59