По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
CORS – это механизм браузера, который позволяет серверам указывать сторонние источники, которые имеют право запрашивать у них ресурсы. Этот механизм обеспечивает безопасность и не дает вредоносным сайтам красть данные, которые принадлежат другим источникам. CORS расшифровывается как Cross-Origin Resource Sharing, что переводится как «обмен ресурсами с запросом происхождения». В случае, когда для загрузки ресурса используется CORS, браузер отправляет предварительный HTTP-запрос  OPTIONS . Сервер должен ответить, указав все источники, с которыми он собирается взаимодействовать. Также он может определить дополнительные ограничения, например, указать HTTP-заголовки, которые могут быть отправлены.  Браузер проверяет текущий источник и исходящий запрос на соответствие спецификациям сервера. Если все проверки были пройдены успешно, то запрос одобряется. В противном случае запрос будет отклонен. Если это произойдет, вы увидите предупреждение в консоли.  Когда используется CORS Браузеры применяют CORS для запросов Ajax и Fetch. Этот механизм также используется для веб-шрифтов, текстур WebGL и отрисовки изображения холста с помощью  drawImage() . CORS также потребуется для любого правомерного запроса к стороннему источнику. CORS не применяется в том случае, если запрос рассматривается как «простой». Простой запрос должен начинаться с  GET ,  HEAD или  POST и иметь тип содержимого  text/plain ,  application/x-www-form-urlencoded или  multipart/form-data . Единственные заголовки простых запросов, которые допускаются, - это  Accept ,  Accept-Language ,  Content-Language и  Content-Type . Если запрос не соответствует всем критериям, которые мы перечислили выше, то современные браузеры запускают CORS. Важно понимать, что CORS – это технология для браузера, и вы не сможете использовать его при самостоятельной отправке запросов, например, с помощью утилиты  curl в своем терминале.  CORS не всегда отправляет предварительный запрос  OPTIONS . Предварительная проверка нужна и используется только тогда, когда запрос может вызвать «побочные эффекты» на сервере. Как правило, это относится ко всем методам запроса, кроме  GET .  Предположим, что есть запрос  POST к /api/users/create . Сервер всегда будет создавать нового пользователя, но при этом браузер может отказать в доступе к ответу на этот запрос, если для запроса был использован CORS. Есть шанс, что сервер может отклонить реальный запрос, если перед этим был отправлен запрос  OPTIONS . Это обеспечивает то, что учетная запись пользователя на самом деле не будет создаваться.  Управление CORS на стороне клиента Несмотря на то, что CORS является технологией для браузера, вы все равно не можете влиять на нее напрямую с помощью клиентского кода. Это гарантирует, что вредоносные скрипты не смогут обойти защиту CORS, чтобы загрузить данные со сторонних доменов.  CORS, как правило, незаметен, поэтому вы даже не будете знать о том, что он работает. Если в процессе CORS произойдет сбой, то ваш код JavaScript увидит обычную сетевую ошибку. Получить точную информацию о том, что пошло не так, невозможно, поскольку это может представлять риск нарушения безопасности. Все подробности записываются в консоль.  Единственный способ устранить сбои CORS – это убедиться, что ваш сервер отправляет корректные заголовки ответов. Теперь давайте посмотрим, как это делается.  Управление CORS на стороне сервера Для начала вам следует убедиться в том, что ваш сервер правильно обрабатывает запросы  OPTIONS . Возможно, вам придется создать новый маршрут обработки запросов в вашей веб-среде. В большинстве случаев вам придется принимать запросы  OPTIONS к каждой конечной точке, которая может получить CORS-запрос от браузера. Ответ не обязательно должен иметь тело, но он должен включать в себя определенные заголовки, которые сообщают браузеру, что делать дальше.  Начните с заголовка  Access-Control-Allow-Origin . Он укажет на сторонний источник, который имеет право взаимодействовать с вашей конечной точкой. Указать можно только один источник; но вы можете обрабатывать несколько источников, динамически устанавливая в качестве значения заголовка источник, из которого был отправлен запрос. Текущий источник можно найти в заголовке запроса  Origin . Access-Control-Allow-Origin принимает * в качестве специального подстановочного символа. Это позволит принимать запросы CORS из всех источников. Здесь следует быть осторожным, поскольку указание разрешенных источников обеспечивает контроль и не дает вредоносным скриптам запрашивать данные с вашего сервера.  Access-Control-Allow-Origin должен быть включен в ответ вашего сервера на реальный запрос и в ответ на запрос  OPTIONS . После того, как этот заголовок будет настроен, будет разрешен базовый обмен данными со сторонним клиентом браузера.  Указание CORS-заголовков  CORS-запросы, как правило, поддерживают только заголовки «простых» запросов, которые были перечислены выше. Если вы хотите использовать какой-то другой заголовок, например,  Authorization или настраиваемый заголовок, то вашему серверу необходимо будет явно разрешить его в ответе на предварительный запрос.  Установите заголовок  Access-Control-Allow-Headers . Его значение – это список названий заголовков через запятую, которые будут приняты с реальным запросом.  Access-Control-Allow-Headers: Authorization, X-Custom-Header Теперь браузер разрешит запросы с заголовками  Authorization или  X-Custom-Header . Браузер отправляет заголовок  Access-Control-Allow-Headers вместе с предварительным CORS-запросом. Он содержит список заголовков, которые будут отправлены с реальным запросом. Ваш серверный код может использовать эту информацию для того, чтобы понять, как нужно ответить на предварительный запрос.  Ограничение на определенные методы запроса Аналогично тому, как мы указываем заголовки запроса, так и конечные точки сервера могут определять, какие HTTP-методы из различных источников будут разрешены. Установите заголовок  Access-Control-Allow-Methods . Его значение – список названий методов через запятую.  Access-Control-Allow-Methods: GET, POST, DELETE Браузер отправляет заголовок  Access-Control-Request-Method с предварительным запросом. Таким образом сервер узнает HTTP-метод, который будет использоваться для выполнения окончательного запроса.  Cookie-файлы и учетные данные CORS-запросы, как правило, не отправляют cookie-файлы, так как в них может содержаться конфиденциальные учетные данные, которые идентифицируют отправителя. Если вам необходимо добавить cookie-файл к запросу на другой источник, то это нужно явно разрешить в клиентском коде: fetch("https://localhost/demo", {    mode: "cors",    credentials: "include" }); К тому же сервер должен установить заголовок ответа  Access-Control-Allow-Credentials: true , чтобы сообщить о том, что он соглашается на обмен cookie-файлами, которые содержат учетные данные.  Если вы используете заголовок  Access-Control-Allow-Credentials , то нельзя использовать подстановочный символ (*) в заголовке  Access-Control-Allow-Origin . Сервер должен явно указать источник для того, чтобы обезопасить конфиденциальность пользователя. Если вы будете использовать подстановочный символ, то браузер не выполнит запрос и вернет ошибку.  Предварительное кэширование Предварительные запросы  OPTIONS усиливают нагрузку на каждый запрос, который вы отправляете. При хорошем соединении задержка должна быть почти незаметной, и все же нерационально вызывать одну и ту же конечную точку раз за разом.  Вы можете указать браузеру кэшировать ответы на предварительные запросы. Для этого вам нужно установить заголовок  Access-Control-Max-Age . Значение этого заголовка – это время, выраженное в секундах. В течение этого времени браузер может хранить кэшированный ответ. Последующие запросы к той же конечной точке в течении заданного периода времени не будут сопровождаться предварительными запросами.  Заключение При первом знакомстве с технологией CORS она может сбивать с толку. Эта технология браузера, которая контролируется ответами сервера. Использование CORS неизбежно, но при этом оно может оказаться неуправляемым, если у вас нет доступа к серверному коду, с которым вы взаимодействуете.  Фактическая реализация CORS довольно проста. Убедитесь, что ваш API или CDN отправляет корректные заголовки ответов, в особенности это касается заголовка  Access-Control-Allow-Origin . Если с этим проблем нет, то у вас будет безопасная связь между источниками, которая поможет избежать вмешательства злоумышленников. 
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
Перед тем как начать, почитайте материал про топологию сетей. Обнаружение соседей позволяет плоскости управления узнать о топологии сети, но как узнать информацию о достижимых пунктах назначения? На рисунке 8 показано, как маршрутизатор D узнает о хостах A, B и C? Существует два широких класса решений этой проблемы - реактивные и упреждающие, которые обсуждаются в следующих статьях. Реактивное изучение На рисунке 8 предположим, что хост A только что был включен, а сеть использует только динамическое обучение на основе передаваемого трафика данных. Как маршрутизатор D может узнать об этом недавно подключенном хосте? Одна из возможностей для A - просто начать отправлять пакеты. Например, если A вручную настроен на отправку всех пакетов по назначению, он не знает, как достичь к D, A должен отправить в хотя бы один пакет, чтобы D обнаружил его существование. Узнав A, D может кэшировать любую релевантную информацию на некоторое время - обычно до тех пор, пока A, кажется, отправляет трафик. Если A не отправляет трафик в течение некоторого времени, D может рассчитать запись для A в своем локальном кэше. Этот процесс обнаружения достижимости, основанный на фактическом потоке трафика, является реактивным открытием. С точки зрения сложности, реактивное обнаружение торгует оптимальным потоком трафика против информации, известной и потенциально переносимой в плоскости управления. Потребуется некоторое время, чтобы сработали механизмы реактивного обнаружения, то есть чтобы D узнал о существовании A, как только хост начнет посылать пакеты. Например, если хост F начинает посылать трафик в сторону а в тот момент, когда A включен, трафик может быть перенаправлен через сеть на D, но D не будет иметь информации, необходимой для пересылки трафика на канал, а следовательно, и на A. В течение времени между включением хоста A и обнаружением его существования пакеты будут отброшены-ситуация, которая будет казаться F в худшем случае сбоем сети и некоторым дополнительным джиттером (или, возможно, непредсказуемой реакцией по всей сети) в лучшем случае. Кэшированные записи со временем должны быть отключены. Обычно для этого требуется сбалансировать ряд факторов, включая размер кэша, объем кэшируемой информации об устройстве и частоту использования записи кэша в течение некоторого прошедшего периода времени. Время ожидания этой кэшированной информации и любой риск безопасности какого-либо другого устройства, использующего устаревшую информацию, являются основой для атаки. Например, если A перемещает свое соединение с D на E, информация, которую D узнал об A, останется в кэше D в течение некоторого времени. В течение этого времени, если другое устройство подключается к сети к D, оно может выдавать себя за A. Чем дольше действительна кэшированная информация, тем больше вероятность для выполнения этого типа атаки. Упреждающее изучение Некоторая информация о доступности может быть изучена заранее, что означает, что маршрутизатору не нужно ждать, пока подключенный хост начнет отправлять трафик, чтобы узнать об этом. Эта возможность имеет тенденцию быть важной в средах, где хосты могут быть очень мобильными; например, в структуре центра обработки данных, где виртуальные машины могут перемещаться между физическими устройствами, сохраняя свой адрес или другую идентифицирующую информацию, или в сетях, которые поддерживают беспроводные устройства, такие как мобильные телефоны. Здесь описаны четыре широко используемых способа упреждающего изучения информации о доступности: Протокол обнаружения соседей может выполняться между граничными сетевыми узлами (или устройствами) и подключенными хостами. Информация, полученная из такого протокола обнаружения соседей, может затем использоваться для введения информации о доступности в плоскость управления. Хотя протоколы обнаружения соседей широко используются, информация, полученная через эти протоколы, не используется широко для внедрения информации о доступности в плоскость управления. Информацию о доступности можно получить через конфигурацию устройства. Почти все сетевые устройства (например, маршрутизаторы) будут иметь доступные адреса, настроенные или обнаруженные на всех интерфейсах, обращенных к хосту. Затем сетевые устройства могут объявлять эти подключенные интерфейсы как достижимые места назначения. В этой ситуации доступным местом назначения является канал (или провод), сеть или подсеть, а не отдельные узлы. Это наиболее распространенный способ получения маршрутизаторами информации о доступности сетевого уровня. Хосты могут зарегистрироваться в службе идентификации. В некоторых системах служба (централизованная или распределенная) отслеживает, где подключены хосты, включая такую информацию, как маршрутизатор первого прыжка, через который должен быть отправлен трафик, чтобы достичь их, сопоставление имени с адресом, услуги, которые каждый хост способен предоставить, услуги, которые каждый хост ищет и/или использует, и другую информацию. Службы идентификации распространены, хотя они не всегда хорошо видны сетевым инженерам. Такие системы очень распространены в высокомобильных средах, таких как беспроводные сети, ориентированные на потребителя. Плоскость управления может извлекать информацию из системы управления адресами, если она развернута по всей сети. Однако это очень необычное решение. Большая часть взаимодействия между плоскостью управления и системами управления адресами будет осуществляться через локальную конфигурацию устройства; система управления адресами назначает адрес интерфейсу, а плоскость управления выбирает эту конфигурацию интерфейса для объявления в качестве достижимого назначения. Объявление достижимости и топология После изучения информации о топологии и доступности плоскость управления должна распространить эту информацию по сети. Хотя метод, используемый для объявления этой информации, в некоторой степени зависит от механизма, используемого для расчета путей без петель (поскольку какая информация требуется, где рассчитывать пути без петель, будет варьироваться в зависимости от того, как эти пути вычисляются), существуют некоторые общие проблемы и решения, которые будут применяться ко всем возможным системам. Основные проблемы заключаются в том, чтобы решить, когда объявлять о доступности и надежной передаче информации по сети. Решение, когда объявлять достижимость и топологию Когда плоскость управления должна объявлять информацию о топологии и доступности? Очевидным ответом может быть "когда это будет изучено", но очевидный ответ часто оказывается неправильным. Определение того, когда объявлять информацию, на самом деле включает в себя тщательный баланс между оптимальной производительностью сети и управлением объемом состояния плоскости управления. Рисунок 9 будет использован для иллюстрации. Предположим, хосты A и F отправляют данные друг другу почти постоянно, но B, G и H вообще не отправляют трафик в течение некоторого длительного периода. В этой ситуации возникают два очевидных вопроса: Хотя для маршрутизатора C может иметь смысл поддерживать информацию о доступности для B, почему D и E должны поддерживать эту информацию? Почему маршрутизатор E должен поддерживать информацию о доступности хоста A? С точки зрения сложности существует прямой компромисс между объемом информации, передаваемой и удерживаемой в плоскости управления, и способностью сети быстро принимать и пересылать трафик. Рассматривая первый вопрос, например, компромисс выглядит как способность C отправлять трафик из B в G при его получении по сравнению с C, поддерживающим меньше информации в своих таблицах пересылки, но требующимся для получения информации, необходимой для пересылки трафика через некоторый механизм при получении пакетов, которые должны быть переадресованы. Существует три общих решения этой проблемы. Проактивная плоскость управления: плоскость управления может проактивно обнаруживать топологию, вычислять набор путей без петель через сеть и объявлять информацию о достижимости. Упреждающее обнаружение топологии с реактивной достижимостью: плоскость управления может проактивно обнаруживать топологию и рассчитывать набор путей без петель. Однако плоскость управления может ждать, пока информация о доступности не потребуется для пересылки пакетов, прежде чем обнаруживать и / или объявлять о доступности. Реактивная плоскость управления: плоскость управления может реактивно обнаруживать топологию, вычислять набор путей без петель через сеть (обычно для каждого пункта назначения) и объявлять информацию о доступности. Если C изучает, сохраняет и распределяет информацию о доступности проактивно или в этой сети работает проактивная плоскость управления, то новые потоки трафика могут перенаправляться через сеть без каких-либо задержек. Если показанные устройства работают с реактивной плоскостью управления, C будет: Подождите, пока первый пакет в потоке не направится к G (к примеру) Откройте путь к G с помощью некоторого механизма Установите путь локально Начать пересылку трафика в сторону G Тот же процесс должен быть выполнен в D для трафика, перенаправляемого к A от G и F (помните, что потоки почти всегда двунаправленные). Пока плоскость управления изучает путь к месту назначения, трафик (почти всегда) отбрасывается, потому что сетевые устройства не имеют никакой информации о пересылке для этого достижимого места назначения (с точки зрения сетевого устройства достижимый пункт назначения не существует). Время, необходимое для обнаружения и создания правильной информации о пересылке, может составлять от нескольких сотен миллисекунд до нескольких секунд. В это время хост и приложения не будут знать, будет ли соединение в конечном итоге установлено, или если место назначения просто недоступно. Плоскости управления можно в целом разделить на: Проактивные системы объявляют информацию о доступности по всей сети до того, как она понадобится. Другими словами, проактивные плоскости управления хранят информацию о доступности для каждого пункта назначения, установленного на каждом сетевом устройстве, независимо от того, используется эта информация или нет. Проактивные системы увеличивают количество состояний, которые передаются и хранятся на уровне управления, чтобы сделать сеть более прозрачной для хостов или, скорее, более оптимальной для краткосрочных и чувствительных ко времени потоков. Реактивные системы ждут, пока информация о пересылке не потребуется для ее получения, или, скорее, они реагируют на события в плоскости данных для создания информации плоскости управления. Реактивные системы уменьшают количество состояний, передаваемых на уровне управления, делая сеть менее отзывчивой к приложениям и менее оптимальной для кратковременных или чувствительных ко времени потоков. Как и все компромиссы в сетевой инженерии, описанные здесь два варианта, не являются исключительными. Можно реализовать плоскость управления, содержащую некоторые проактивные и некоторые реактивные элементы. Например, можно построить плоскость управления, которая имеет минимальные объемы информации о доступности, описывающей довольно неоптимальные пути через сеть, но которая может обнаруживать более оптимальные пути, если обнаруживается более длительный или чувствительный к качеству обслуживания поток. Что почитать дальше? Советуем материал про реактивное и упреждающее распределение достижимости в сетях.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59