По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
У вас возникли проблемы с контролем использования пропускной способности вашей сети Linux? Вам нужна помощь? Здесь важно, чтобы вы могли визуализировать то, что происходит в вашей сети, чтобы вы могли понять, что вызывает замедление работы сети, или просто наблюдать за своей сетью. В данной статье мы рассмотрим 17 полезных средств контроля пропускной способности для анализа использования сети в системе Linux. Перечисленные ниже средства имеют открытый исходный код и смогут помочь вам ответить на вопрос из серии «почему сеть сегодня так медленно работает?» Эта статья включает в себя описание средств контроля пропускной способности на одном компьютере с Linux и описание комплексных решений контроля, которые способны обрабатывать несколько хостов в LAN (Local Area Network – локальная вычислительная сеть) или даже в WAN (Wide Area Network – глобальная вычислительная сеть). 1. vnStat – контроль сетевого трафика vnStat – это полнофункциональная программа на основе командной строки для контроля сетевого трафика Linux и использования полосы пропускания сети в режиме реального времени в системах Linux и BSD. Одно из преимуществ этого средства перед аналогичными средствами заключается в том, что он регистрирует статистику сетевого трафика и использования полосы пропускания сети для последующего анализа – это его поведение по умолчанию. Фактически вы можете просматривать эти журналы даже после перезагрузки системы. Установка vnStat в Linux $ sudo yum install sysstat [On Older CentOS/RHEL & Fedora] $ sudo dnf install sysstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install sysstat [On Debian/Ubuntu & Mint] $ sudo pacman -S sysstat [On Arch Linux] 2. iftop – отображение использования полосы пропускания сети iftop – это простое и удобное в использовании средство контроля пропускной способности сети в режиме реального времени на основе командной строки, который используется для быстрого обзора операций сетевого трафика в интерфейсе. Оно отображает обновленные данные пропускной способности сети в среднем каждые 2, 10 и 40 секунд. Установка iftop в Linux $ sudo yum install iftop [On Older CentOS/RHEL & Fedora] $ sudo dnf install iftop [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install iftop [On Debian/Ubuntu & Mint] $ sudo pacman -S iftop [On Arch Linux] 3. nload – отображение использование сети nload – еще одно простое и удобное средство командной строки для контроля сетевого трафика и использования полосы пропускания сети в режиме реального времени. Оно использует графическое представление информации, чтобы у вас была возможность контролировать входящий и исходящий трафик. Помимо этого, оно также отображает такую информацию, как общий объем переданных данных и минимальное/максимальное использование сети. Установка nload в Linux $ sudo yum install nload [On Older CentOS/RHEL & Fedora] $ sudo dnf install nload [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install nload [On Debian/Ubuntu & Mint] $ sudo pacman -S nload [On Arch Linux] 4. NetHogs – контроль пропускной способности сетевого трафика NetHogs – это текстовое средство, чем-то похожее на предыдущее, для контроля использования пропускной способности сетевого трафика каждым процессом или приложением в режиме реального времени, которое работает в системе Linux. Оно отображает статистику использования пропускной способности вашей сети в режиме реального времени для каждого процесса. Установка NetHogs в Linux $ sudo yum install nethogs [On Older CentOS/RHEL & Fedora] $ sudo dnf install nethogs [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install nethogs [On Debian/Ubuntu & Mint] $ sudo pacman -S nethogs [On Arch Linux] 5. bmon – контроль пропускной способности и оценка скорости bmon – это простое в использовании средство командной строки для контроля использования пропускной способности сети и оценки скорости в Linux. Оно собирает сетевую статистику и визуализирует ее в удобном для пользователя формате, чтобы он мог наблюдать за работой своей системы. Установка bmon в Linux $ sudo yum install bmon [On Older CentOS/RHEL & Fedora] $ sudo dnf install bmon [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install bmon [On Debian/Ubuntu & Mint] $ sudo pacman -S bmon [On Arch Linux] 6. Darkstat – захват сетевого трафика Darkstat – это небольшой, простой в использовании, кросс-платформенный, работающий в режиме реального времени, эффективный веб-анализатор сетевого трафика. Это средство контроля сетевой статистики, которое работает за счет захватывания сетевого трафика и статистики использования компьютера и предоставляет отчеты по протоколу HTTP в графическом формате. Его также можно использовать через командную строку, результаты будут те же. Установка Darkstat в Linux $ sudo yum install darkstat [On Older CentOS/RHEL & Fedora] $ sudo dnf install darkstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install darkstat [On Debian/Ubuntu & Mint] $ sudo pacman -S darkstat [On Arch Linux] 7. IPTraf – контроль IP-сети IPTraf – это простое в использовании настраиваемое средство, основанное на ncurses, для контроля входящего и исходящего сетевого трафика, проходящего через интерфейс. Это важно для контроля IP-трафика и просмотра общей и подробной статистики интерфейса и многого другого. Установка IPTraf в Linux $ sudo yum install iptraf [On Older CentOS/RHEL & Fedora] $ sudo dnf install iptraf [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install iptraf [On Debian/Ubuntu & Mint] $ sudo pacman -S iptraf [On Arch Linux] 8. CBM – (Color Bandwidth Meter) CBM – это небольшая утилита командной строки для отображения текущего сетевого трафика на всех подключенных устройствах в цветах Ubintu Linux и его производных, таких как Linux Mint, Lubuntu и других. Она показывает каждый подключенный сетевой интерфейс, полученные и переданные байты, а также общее количество байтов, что позволяет контролировать пропускную способность сети. Установка CBM в Linux $ sudo yum install cbm [On Older CentOS/RHEL & Fedora] $ sudo dnf install cbm [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install cbm [On Debian/Ubuntu & Mint] $ sudo pacman -S cbm [On Arch Linux] 9. Iperf/Iperf3 – средство измерения пропускной способности сети Iperf/Iperf3 – это мощный инструмент для измерения пропускной способности сети по таким протоколам, как TCP, UDP и SCTP. В первую очередь он создан для настройки TCP-соединений по определенному пути, а поэтому полезен и в тестировании и контроле максимально достижимой пропускной способности в IP-сетях (поддерживает как IPv4, так и IPv6). Для проведения тестирований, которые сообщают информацию о пропускной способности, потерях и других полезных параметрах производительности сети, требуются сервер и клиент. Установка Iperf3 в Linux $ sudo yum install iperf3 [On Older CentOS/RHEL & Fedora] $ sudo dnf install iperf3 [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install iperf3 [On Debian/Ubuntu & Mint] $ sudo pacman -S iperf3 [On Arch Linux] 10. Netperf – тестирование пропускной способности сети Netperf чем-то похож на iperf для тестирования производительности сети. Он может помочь в контроле пропускной способности сети в Linux путем измерения передачи данных с использованием TCP, UDP. Также он поддерживает измерения через интерфейсы Berkeley Sockets, DLPI, Unix Domain Sockets и другие. Для запуска тестов потребуется сервер и клиент. Установка Netperf в Linux $ sudo yum install netperf [On Older CentOS/RHEL & Fedora] $ sudo dnf install netperf [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install netperf [On Debian/Ubuntu & Mint] $ sudo pacman -S netperf [On Arch Linux] 11. SARG – (Squid Analysis Report Generator) SARG – это анализатор лог-файлов Squid и инструмент для контроля скорости Интернет-соединения. Он формирует отчеты в формате HTML, которые включают в себя информацию об IP-адресах и общем использовании полосы пропускания сети. Это удобное в использовании средство контроля скорости Интернет-соединения отдельными устройствами в одной сети. 12. Monitorix – средство контроля системы и сети Monitorix – это небольшое приложение для контроля ресурсов системы и сети, предназначенное для небольших серверов Linux/Unix, а также обеспечивающее отличную поддержку встроенных устройств. Это приложение поможет вам отслеживать сетевой трафик и статистику использования с неограниченного количества сетевых устройств. Оно поддерживает соединения IPv4 и IPv6, включая пакетный трафик и графики сбоя трафика, а также поддерживает до 9 дисков на каждый сетевой интерфейс. Установка Monitorix в Linux $ sudo yum install monitorix [On Older CentOS/RHEL & Fedora] $ sudo dnf install monitorix [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install monitorix [On Debian/Ubuntu & Mint] $ sudo pacman -S monitorix [On Arch Linux] 13. Cacti – средство контроля сети и отображения графической информации Cacti – это полнофункциональное веб-приложение PHP для построения сетевых трафиков с интуитивно понятным и простым в использовании интерфейсом. Для хранения собранных данных о производительности, которые в дальнейшем будут использоваться для построения графиков, оно использует базу данных MySQL. Это интерфейс для RRDTool, полезный для контроля небольших и сложных сетей с тысячами устройств. 14. Observium – платформа контроля сети Observium – это полнофункциональная платформа для контроля сети с изящным и мощным, надежным, но простым в использовании и интуитивно понятным интерфейсом. Оно поддерживает ряд платформ, таких как Linux, Windows, FreeBSD, Cisco, HP, Dell и другие, а также имеет функцию автоматического определения устройств. Данное приложение помогает пользователям собирать сетевые показатели и предлагает интуитивно понятное графическое представление показателей устройств, на основе собранных данных о производительности. 15. Zabbix – средство контроля приложений и сети Zabbix – это многофункциональная, широко известная и используемая платформа контроля сети, разработанная по модели «клиент-сервер» для контроля сетей, серверов и приложений в режиме реального времени. Она собирает данные различных типов, которые в дальнейшем использует для визуализации производительности сети или показателей нагрузки отслеживаемых устройств. Она может работать со многими широко известными протоколами, такими как HTTP, FTP, SMTP, IMAP и другими, без необходимости устанавливать какое-то дополнительное программное обеспечение на контролируемые устройства. 16. Nagios – контроль систем, сетей и инфраструктуры Nagios – это надежное, мощное, многофункциональное, широко известное и используемое программное обеспечение для контроля. Оно позволяет контролировать локальные и удаленные сетевые устройства, и их службы из единого окна. Оно предлагает контроль пропускной способности сетевых устройств, таких как коммутаторы и маршрутизаторы, через протокол SNMP, что позволяет легко выявлять чрезмерно используемые порты и возможных злоумышленников в сети. Помимо этого, Nagios также помогает отслеживать использования полосы пропускания сети для каждого порта и ошибки, а также может быстро обнаружить сбой в работе сети или протокола. Заключение В данной статье мы рассмотрели ряд полезных средств контроля пропускной способности сети и системы для Linux.
img
Статьи по тематике устранение неисправностей связаны с определенным набором решений проблем. В случае с Linux и Unix полезно иметь некое руководство по доступным инструментам, облегчающим работу по поиску и устранению проблем. Это такой документ, который содержит основные важные команды, позволяющие облегчить жизнь администраторам Linux/Unix при возникновении проблем. Команда "list open files" или команда lsof выглядит достаточно просто, но ее использование в качестве инструмента для устранения неполадок не так очевиден, как кажется на первый взгляд. Например, если у неизвестного процесса открыто несколько файлов, знание того, какие они есть, может помочь определить, является ли процесс легитимным. В первой статье рассмотрим множество вариантов использования команды lsof. Во второй статье рассмотрены рекомендации о том, как исправлять проблемы этим множеством вариаций данной команды. Контрольные вопросы, которые следует задать себе при диагностике проблем, является предметом нашей третьей статьи. Это поможет навести порядок в хаосе, который создают некоторые проблемы. Работа с базами данных Oracle - обычная задача администратора, и немного узнать о них и о том, как тестировать соединения с ними, - ценный инструмент, описанный в четвертой статье. Если проблема связана с подключением, отпадает потребность в вызове администратора баз данных. В завершении нашего руководства приведена статья с инструкциями по командам, необходимым для управления дисками и разбиения их на разделы. Команда lsof Команда lsof - это нечто большее, чем вы можете себе представить. Узнайте обо всех возможностях ее применения для поиска и устранения неполадок. lsof - команда Unix/Linux, которая отображает все открытые файлы или идентифицирует процессы, открытые конкретными файлами. Удобная для оценки безопасности ИС, а также для устранения проблем lsof предлагает широкий спектр параметров, позволяющие использовать её различными способами - иногда даже превосходя команду ps для просмотра процессов и команду netstat для исследования сетевых интерфейсов. Что такое открытые файлы? Для начала давайте рассмотрим, что такое открытые файлы и почему они вам могут быть интересны. Открытые файлы - это файлы, которые использует какой-либо процесс. Этот процесс может быть командой, которую вы выполняете, или приложением, запущенным на сервере, которым вы управляете. Открытые файлы могут включать файлы данных и библиотеки, которые предоставляют общие процедуры. Многие файлы открываются каждый раз, когда вы входите в систему. Вы можете быть удивлены их количеством. Если вам интересно, сколько файлов у вас открыто прямо сейчас, попробуйте эту команду: $ lsof -u admin | wc -l 1715 И если вы когда-нибудь слышали, что для Unix все является файлом, вы, возможно, не слишком удивитесь, узнав, что lsof работает с такими вещами, как сетевые интерфейсы, которые большинство из нас обычно не считают файлами. Почему нам это важно? Иногда появляется необходимость узнать об открытых файлах, потому что вы пытаетесь удалить файл и обнаруживаете, что он уже используется. Может быть, он заполняет ваше дисковое пространство. Вам необходимо узнать, каким файлом какой процесс открыт, чтобы можно было остановить его и очистить файл. В других случаях вам понадобится узнать, что делает неизвестный подозрительный процесс, и только изучение файлов, которые открыл подозрительный процесс, может предоставить ценную информацию. Принцип работы lsof? При применении команды lsof без параметров в терминале выводятся все файлы, которые открыты (используются) в вашей системе. Если вы запустите lsof от своего имени, вы получите длинный список файлов, но выходные данные будут включать в себя множество сообщений об отказе в разрешении - многие из них представляют открытые файлы в файловой системе /proc, которые вам не разрешено видеть. Запустите команду от имени root, и вы увидите больше выходных данных. Что еще интересного? Беглый взгляд на довольно большой справочник lsof отобразит вам, что мы увидели только меньшую ее часть возможностей. lsof имеет обширный список опций. В этой статье мы разберем наиболее полезные. Чтобы начать работу со всеми этими параметрами, вам необходимо о том знать о возможности использования более одной опции. Для этого используйте слово OR. Таким образом, вы получаете список, объединяющий результаты указанных вами параметров. Помимо этого вы можете выбрать вариант, со служебным словом AND. В этом случае ваши опции будут применяться вместе. Другими словами, вы увидите те файлы, процессы и т. д., которые соответствуют всем указанным вами параметрам. Для применения объединения AND, добавьте в свою команду параметр -a. Полезные параметры lsof Примеры использования lsof с параметрами, отображены на скриншотах ниже. Они демонстрируют наиболее полезные вещи, которые вы можете применить с данной командой. На скриншоте ниже lsof, перечисляет все процессы, у которых открыт конкретный файл: На этом скриншоте выводится список всех процессов, у которых есть открытые файлы в определенном каталоге: На этом скриншоте показаны файлы, открытые bash: На этом скриншоте, но с использованием подстроки вместо полного имени процесса: На этом скриншоте перечислены открытые файлы для определенного идентификатора процесса: lsof помогает изучить сетевые подключения: На скриншоте показан пример просмотра портов и/или установленных соединений. Также можно сетевые подключения для одного конкретного источника. Просмотр файлов пользователем На этом скриншоте lsof просматриваем открытые файлы для конкретного пользователя: Для просмотра открытых файлов всех пользователей, кроме определенного (здесь это root), используйте знак ^: Перечислить идентификаторы процессов для процессов, запускаемых конкретным пользователем: $ sudo lsof -t -u froggy 15352 15353 Завершить все процессы, принадлежащие конкретному пользователю: $ sudo kill lsof -t -u froggy Используйте параметр -a для использования оператора AND для объединения ваших опций вместе, помня, что это ограничивает вывод только тем, что соответствует всем указанным условиям:
img
Это продолжение статьи про пакетную коммутацию. Первая часть тут. Схемы агрегации каналов берут несколько физических каналов и объединяют их в один виртуальный канал. В целях протоколов маршрутизации и алгоритмов предотвращения петель, таких как связующее дерево, виртуальный канал обрабатывается, как если бы он был одним физическим каналом. Агрегирование каналов используется для увеличения пропускной способности между узлами сети без необходимости замены более медленных физических каналов на более быстрые. Например, два канала 10 Гбит/с можно объединить в один канал 20 Гбит/с, тем самым удвоив потенциальную полосу пропускания между двумя узлами, как показано на рисунке 6. Слово «потенциал» было выбрано тщательно, поскольку агрегированные каналы на практике не масштабируются линейно. Проблема, с которой сталкивается агрегация каналов, заключается в определении, какие пакеты должны быть отправлены по какому элементу связи. Интуитивно это может показаться не проблемой. В конце концов, казалось бы, имеет смысл использовать группу каналов связи в циклическом режиме. Первоначальный фрейм будет отправлен по первому элементу связки, второй фрейм - по второму элементу и так далее, в конечном итоге возвращаясь к первому элементу связки. Таким образом, канал должен использоваться идеально равномерно, а пропускная способность - линейно. В реальной жизни существует очень мало подобных реализаций, в которых агрегированные каналы используются на такой циклической основе, как эта, потому что они рискуют доставить неупорядоченные пакеты. Предположим, что первый кадр Ethernet отправляется первому звену нисходящего канала, а второй кадр - второму элементу нисходящего канала сразу после него. По какой-то причине второй кадр попадает на другой конец раньше первого кадра. Пакеты, содержащиеся в этих кадрах, будут доставлены принимающим узлам в неупорядоченном порядке - пакет два перед пакетом один. Это проблема, потому что теперь на хост возлагается вычислительная нагрузка по переупорядочению пакетов, чтобы можно было правильно собрать всю дейтаграмму. Поэтому большинство поставщиков реализуют хеширование потоков, чтобы гарантировать, что весь поток трафика использует один и тот же элемент пакета. Таким образом, нет никакого риска того, что хост получит пакеты не по порядку, так как они будут отправляться последовательно через один и тот же элемент канала. Хеширование потока работает путем выполнения математической операции над двумя или более статическими компонентами потока, такими как MAC-адреса источника и получателя, IP-адреса источника и получателя, протокол управления передачей (TCP) или протокол дейтаграмм пользователя (UDP). номера портов для вычисления элемента связи, который будет использовать поток. Поскольку характеристики потока статичны, алгоритм хеширования приводит к идентичным вычислениям для каждого кадра или пакета в потоке трафика, гарантируя, что один и тот же канал будет использоваться в течение всего срока службы потока. Хотя хеширование потока решает проблему неупорядоченных пакетов, оно создает новую проблему. Не все потоки имеют одинаковый размер. Некоторые потоки используют большую полосу пропускания, например те, которые используются для передачи файлов, резервного копирования или хранения. Их иногда называют «слоновьими потоками» (elephant flows). Другие потоки довольно малы, например, те, которые используются для загрузки веб-страницы или связи с использованием передачи голоса по IP. Их иногда называют «мышиными потоками» (mouse flows). Поскольку потоки имеют разные размеры, некоторые элементы связи могут работать на полную мощность, а другие - недостаточно. Это несоответствие в использовании возвращает нас к вопросу о линейном масштабировании. Если бы фреймы были сбалансированы по нагрузке через агрегированный набор каналов совершенно равномерно, то добавление новых каналов в набор равномерно увеличило бы емкость. Однако алгоритмы хэширования в сочетании с непредсказуемым объемом потоков трафика означают, что связанные каналы не будут загружаться равномерно. Задача сетевого администратора - понять тип трафика, проходящего через агрегированный канал, и выбрать доступный алгоритм хеширования, который приведет к наиболее равномерному распределению нагрузки. Например, некоторые соображения по этому поводу: Обмениваются ли многие хосты в одном широковещательном домене друг с другом через агрегированный канал? Хеширование против MAC-адресов, найденных в заголовке кадра Ethernet, является возможным решением, потому что MAC-адреса будут разными. Обменивается ли небольшое количество хостов с одним сервером через агрегированный канал? В этом сценарии может не хватить разнообразия MAC-адресов или IP-адресов. Вместо этого хеширование по номерам портов TCP или UDP может привести к наибольшему разнообразию и последующему распределению трафика по агрегированным ссылкам. Протокол управления агрегацией каналов (LACP) При объединении каналов связи необходимо учитывать сетевые устройства на обоих концах канала связи и проявлять особую осторожность, чтобы обеспечить формирование пакета каналов связи при сохранении топологии без петель. Наиболее распространенным способом решения этой проблемы является использование отраслевого стандарта Link Aggregation Control Protocol (LACP), кодифицированного как стандарт 802.3 ad института инженеров электротехники и электроники (IEEE). На каналах, обозначенных сетевым администратором, LACP объявляет о своем намерении сформировать агрегированный канал с другой стороной. Другая сторона, также выполняющая LACP, принимает это объявление, если объявленные параметры действительны, и формирует канал. Как только группа каналов сформирована, агрегированный канал переводится в состояние пересылки. Затем операторы сети могут запросить LACP для получения информации о состоянии агрегированного канала и о состоянии его членов. LACP также знает, когда элемент связки выходит из строя, так как управляющие пакеты больше не проходят через сбойный канал. Эта возможность полезна, так как позволяет процессу LACP уведомлять сетевую операционную систему о необходимости пересчета хэшей потока. Без LACP сетевой операционной системе может потребоваться больше времени, чтобы узнать о сбойном канале, что приведет к хешированию трафика к элементу связи, который больше не является допустимым путем. Существуют и другие протоколы управления агрегацией каналов. В некоторых случаях также возможно создавать пакеты каналов вручную без защиты управляющего протокола. Однако LACP доминирует в качестве стандарта, используемого сетевыми поставщиками, а также ведущими операционными системами и поставщиками гипервизоров для агрегации каналов. Multichassis Link Aggregation Multichassis Link Aggregation (MLAG) - это функция, предлагаемая некоторыми сетевыми поставщиками, позволяющая одному агрегированной связке каналов охватывать два или более сетевых коммутатора. Чтобы облегчить это, специальный протокол управления поставщика будет работать между коммутаторами-членами MLAG, заставляя несколько сетевых коммутаторов действовать так, как если бы они были одним коммутатором, в отношении LACP, протокола связующего дерева (STP) и любых других протоколов. Обычным обоснованием для MLAG является физическая избыточность, когда сетевому инженеру требуется более низкий уровень (например, Ethernet) смежности между сетевыми устройствами (вместо маршрутизируемого соединения), а также требуется, чтобы связка каналов оставалась включенной, если удаленная сторона канала выходит из строя. Распространение связки каналов между двумя или более коммутаторами позволяет выполнить это требование. Рисунок 7 демонстрирует это. В то время как многие сети используют некоторые разновидности MLAG в производстве, другие уклоняются от этой технологии, по крайней мере частично, потому что MLAG является собственностью. Нет такой вещи, как multivendor MLAG. Тенденции к лучшему проектированию сети в сторону от широко рассредоточенных коммутируемых доменов, сценарий, который выигрывает у MLAG. Вместо этого при проектировании сети наблюдается тенденция к ограниченным коммутируемым доменам, взаимосвязанным посредством маршрутизации, что устраняет необходимость в технологиях MLAG. Маршрутизированные параллельные каналы Маршрутизируемые плоскости управления, называемые протоколами маршрутизации, иногда вычисляют набор нескольких путей через сеть с равными затратами. В случае маршрутизации несколько каналов с одинаковой стоимостью могут даже не подключать одну пару устройств; Рисунок 8 демонстрирует это. На рисунке 8 есть три пути: [A, B, D] общей стоимостью 10 [A, D] общей стоимостью 10 [A, C, D] общей стоимостью 10 Поскольку эти три пути имеют одинаковую стоимость, все они могут быть установлены в локальной таблице переадресации в точках A и D. Маршрутизатор A, например, может пересылать трафик по любому из этих трех каналов в направлении D. Когда маршрутизатор имеет несколько вариантов. чтобы добраться до того же пункта назначения, как он решает, какой физический путь выбрать? Как и в случае с ECMP нижнего уровня, ответ - хеширование. Маршрутизированное хеширование ECMP может выполняться в различных областях. Общие поля для хеширования включают IP-адреса источника или назначения и номера портов источника или назначения. В результате хеширования выбирается согласованный путь на протяжении потока L3. Только в случае сбоя канала потребуется перестроить поток и выбрать новый канал пересылки. Механизмы обработки пакетов Шаги, связанные с маршрутизацией одного пакета, могут показаться очень простыми—найдите пункт назначения в таблице, создайте (или извлеките) перезапись заголовка MAC, перепишите заголовок MAC, а затем поместите пакет в правильную очередь для исходящего интерфейса. Как бы просто это ни было, все равно требуется время, чтобы обработать один пакет. На рисунке 9 показаны три различных пути, по которым пакет может быть коммутироваться в сетевом устройстве. Рисунок 9 иллюстрирует три различных пути коммутации через устройство; это не единственные возможные пути коммутации, но они являются наиболее распространенными. Первый путь обрабатывает пакеты через программное приложение, работающее на универсальном процессоре (GPP), и состоит из трех этапов: Пакет копируется с физического носителя в основную память Физический сигнальный процессор, чип PHY, посылает сигнал на GPP (вероятно, но не обязательно, главный процессор в сетевом устройстве), называемый прерыванием. Прерывание заставляет процессор останавливать другие задачи (вот почему это называется прерыванием) и запускать небольшой фрагмент кода, который будет планировать запуск другого процесса, приложения коммутации, для выполнения позже. Когда приложение коммутации запустится, оно выполнит соответствующий поиск и внесет соответствующие изменения в пакет. После коммутации пакета он копируется из основной памяти исходящим процессором. Такое переключение пакета через процесс часто называется коммутацией процесса (по понятным причинам) или иногда медленным путем. Независимо от того, насколько быстрым является GPP, для достижения полной линейной скорости коммутации на высокоскоростных интерфейсах требуется большая настройка - до такой степени, что это практически невозможно. Второй путь коммутации, показанный на рисунке 9, был разработан для более быстрой обработки пакетов: Пакет копируется с физического носителя в основную память Микросхема PHY прерывает GPP; код обработчика прерывания, а не вызов другого процесса, фактически обрабатывает пакет. После коммутации пакета, пакет копируется из основной памяти в процесс вывода, как описано ниже. По понятным причинам этот процесс часто называют interrupt context switching; многие процессоры могут поддерживать коммутацию пакетов достаточно быстро, чтобы передавать пакеты между интерфейсами с низкой и средней скоростью в этом режиме. Сам код коммутации, конечно же, должен быть сильно оптимизирован, потому что коммутация пакета заставляет процессор прекращать выполнение любых других задач (например, обработки обновления протокола маршрутизации). Первоначально это называлось - и до сих пор иногда называется fast switching path. Для действительно высокоскоростных приложений процесс коммутации пакетов должен быть выгружен с главного процессора или любого типа GPP на специализированный процессор, предназначенный для конкретной задачи обработки пакетов. Иногда эти процессоры называются сетевыми процессорами (Network Processing Units -NPU), подобно тому, как процессор, предназначенный для обработки только графики, называется графическим процессором (Graphics Processing Unit-GPU). Эти специализированные процессоры являются подмножеством более широкого класса процессоров, называемых специализированными интегральными схемами (Application-Specific Integrated Circuits -ASIC), и инженеры часто просто называют их ASIC. Переключение пакета через ASIC показано как шаги с 7 по 9 на рисунке 9: Пакет копируется с физического носителя в память ASIC Микросхема PHY прерывает работу ASIC; ASIC обрабатывает прерывание путем переключения пакета. После коммутации пакета пакет копируется из памяти ASIC в процесс вывода, как описано ниже. Многие специализированные ASIC для обработки пакетов имеют ряд интересных функций, в том числе: Структуры внутренней памяти (регистры) настроены специально для обработки различных типов адресов, используемых в сетях. Специализированные наборы команд, предназначенные для выполнения различных требований к обработке пакетов, таких как проверка внутренних заголовков, переносимых в пакете, и перезапись заголовка MAC. Специализированные структуры памяти и наборы инструкций, предназначенные для хранения и поиска адресов назначения для ускорения обработки пакетов Возможность повторного использования пакета через конвейер пакетов для выполнения операций, которые не могут поддерживаться за один проход, таких как глубокая проверка пакетов или специализированные задачи фильтрации.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59