По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Работая в экосистеме DevOps, скоро понимаешь, насколько важно иметь инструменты DevOps для уменьшения ручной работы. Для каждого этапа DevOps есть несколько наборов инструментов с различными функциональными возможностями. Kubernetes является одним из обязательных, если вы работаете в домене DevOps и запускаете свои приложения внутри контейнеров. Для большей функциональности Kubernetes можно использовать сотни различных инструментов. Говоря об инструментах имеется ввиду утилиты для упрощения управления, улучшения безопасности, различные панели и средства мониторинга Kubernetes кластеров. 1. Helm Helm - это менеджер пакетов для Kubernetes, который позволяет легко управлять приложениями и службами, которые используются во многих различных сценариях, облегчая их развертывание в типичном кластере Kubernetes. Используя Helm, вы можете найти, поделиться и использовать программное обеспечение, которое построено для Kubernetes. Он использует диаграммы, называемые Helm Charts, для определения, установки и обновления сложных приложений Kubernetes. Функции Helm: Отображает состояние всех Kubernetes приложений с помощью диаграмм Использует настраиваемые крючки, чтобы легко проводить обновления. Диаграммы можно использовать на общедоступных или частных серверах. Простой откат к предыдущему состоянию с помощью одной команды Повышение производительности разработчиков и эксплуатационной готовности 2. Flagger Flagger - это оператор прогрессивной доставки для Kubernetes. Он автоматизирует продвижение канареечного развертывания с помощью Istio, App Mesh, Nginx, Linkerd, Contour, Gloo, Skipper для маршрутизации трафика и Prometheus для анализа канарей. При канареечном развертывании выпуски развертываются для небольшой группы пользователей, тестируются, если работает нормально, то выпуски развертываются для всех. Он использует сетку служб, которая выполняется в кластере, для управления трафиком между развертыванием. Для переноса трафика в канарейку он измеряет такие показатели производительности, как средняя продолжительность запросов, частота успешных запросов HTTP, работоспособность модуля и т.д. Flagger может выполнять автоматизированный анализ приложений, продвижение и откат для нескольких стратегий развертывания, таких как Canary, A/B-тестирование, Blue/Green-развертывание. 3. Kubewatch Kubewatch это наблюдатель с открытым исходным кодом для Kubernetes, который отправляет уведомление через Slack. Он написан на языке Go и разработан Bitnami Labs. Он используется для мониторинга ресурсов Kubernetes и уведомляет, есть ли какие-либо изменения. Установить Kubewatch можно через kubectl или с помощью диаграмм helm. В нем легко разобраться и имеет очень простой в использовании интерфейс. Кроме Slack, он также поддерживает HipChat, Mattermost, Flock, webhook и SMTP. В зависимости от того, какой Kubernetes кластер вы хотите отслеживать, вы можете установить значение true или false для этих ресурсов в файле ConfigMap. После установки конфигурации kubewatch и запуска модуля вы начнете получать уведомления о событии Kubernetes, как показано ниже. 4. Gitkube Gitkube - это инструмент, который использует git push для создания и развертывания докер образов на Kubernetes. Имеет три компонента - Remote, gitkube-контроллер, gitkubed. Remote состоит из пользовательских ресурсов, управляемых gitkube-контроллером. gitkube-controller отправляет изменения в gitkubed, который затем строит образ докера и развертывает его. Особенности Gitkube: Простота установки, подключения и развертывания Обеспечивает управление доступом на основе ролей для обеспечения безопасности Проверки подлинности с помощью открытого ключа Поддерживается пространство имен для множественной аренды Никаких дополнительных зависимостей, кроме kubectl и git 5. kube-state-metrics kube-state-metrics - сервис, который генерирует метрики объекта состояния, прослушивая сервер API Kubernetes. Он используется для проверки работоспособности различных объектов, таких как узлы, модули, пространства имен и развертывания. Он предоставляет необработанные, немодифицированные данные из API Kubernetes. Ниже приведена информация, предоставленная kube-state-metrics: Задания Cron и статус задания Состояние модулей (готовность, выполнение и т.д.) Запросы на ресурсы и их диапазон Пропускная способность узла и его состояние Спецификация наборов реплик 6. Kamus Kamus - это инструмент GitOps с открытым исходным кодом, который используется для шифрования и дешифрования секретных ключей для приложений Kubernetes. Зашифрованные ключи, которые делает Kamus, могут быть расшифрованы только приложениями, работающими в кластере Kubernetes. Для шифрования ключей используется AES, Google Cloud KMS, Azure KeyVault. Начать работу с Kamus можно с помощью helm. Kamus поставляется с двумя утилитами - Kamus CLI и Kamus init container. Kamus CLI используется для интеграции с шифрованным API, а контейнер Kamus init - для интеграции с расшифровкой API. По умолчанию, пароли в Kubernetes закодированы в base64 и не зашифрованы. Поэтому, из соображений безопасности, нельзя держать такие ключи на. Любой, кто имеет доступ к репозиторию, сможет использовать эти секреты. Следовательно, необходимо правильное решение для шифрования/дешифрования, как, например, Kamus. Он также предоставляет модель угроз, которая учитывает угрозы и делает секреты безопасными. 7. Untrak Untrak - инструмент с открытым исходным кодом, используемый в Kubernetes для поиска неотслеживаемых ресурсов и сбора мусора. Он помогает находить и удалять файлы из кластера, которые не отслеживаются. После ввода манифестов в конвейер CI/CD с использованием шаблона kubectl apply или helm Kubernetes не знает, когда объект будет удален из репозитория. После удаления объектов они не отслеживаются в процессе доставки и по-прежнему находятся в кластере Kubernetes. Он выполняет команду внутренне, используя простой конфигурационный файл untrak.yaml, чтобы найти ресурсы, которые больше не являются частью управления исходным кодом. 8. Weave Scope Weave Scope предназначена для визуализации, мониторинга и устранения неполадок Docker и Kubernetes. Он отображает всю структуру контейнерного приложения сверху вниз, и полную инфраструктуру, с помощью которой вы можете легко выявить любые проблемы и диагностировать их. Выполнение приложений микросервисной архитектуры в контейнерах докеров не так просто. Компоненты здесь очень динамичны и трудно поддаются мониторингу. С помощью Weave Scope можно легко устранять утечки памяти и контролировать потребление ЦП, визуализировать узкие места сети. Функции Weave Scope: Помогает отслеживать контейнеры докеров в режиме реального времени Простая навигация между процессами, выполняемыми в контейнерах Показывает хост или службу использования ЦП и памяти Перезапуск, остановка или приостановка контейнеров с помощью интерфейса командной строки, не выходя из окна браузера Weave Scope. Поддержка пользовательских подключаемых модулей для получения более подробной информации о контейнерах, процессах и хостах 9. Kubernetes Dashboard Kubernetes Dashboard - веб-интерфейс, предоставляемый компанией Kubernetes. Он используется для развертывания, устранения неполадок и управления контейнерным приложением в кластере Kubernetes. Он предоставляет всю информацию о кластере, такую как сведения о узлах, пространствах имен, ролях, рабочих нагрузках и т.д. Можно использовать helm для развертывания панели управления Kubernetes или воспользоваться простой командой kubectl: kubectl apply - https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml 10. Kops Kops, который расшифровывается как Kubernetes Operations - это проект с открытым исходным кодом, используемый для создания готовых к запуску в производственной среде кластеров Kubernetes. Kops, в первую очередь, можно использовать для развертывания кластеров Kubernetes на AWS и GCE. Небольшой кластер Kubernetes легко создать и обслуживать, но при масштабировании кластера добавляется множество конфигураций, и становится трудно управлять им. Kops - это инструмент, который помогает решать подобные задачи. Он использует подход, основанный на настройке, при котором кластер всегда находится в актуальном состоянии и в безопасености. Kops также имеет множество сетевых бэкэндов, и выбор одного из них, в зависимости от варианта использования, упрощает настройку различных типов кластеров. 11. cAdvisor cAdvisor - это инструмент с открытым исходным кодом для мониторинга контейнера. Он используется для чтения характеристик производительности и использования ресурсов контейнеров, работающих в кластере. Он работает на уровне узла и может автоматически обнаруживать все контейнеры, работающие на определенном узле, и собирать статистику использования памяти, файловой системы, ЦП и сети. Он предоставляет веб-интерфейс, который отображает динамические данные всех контейнеров в кластере. Для начала работы с cAdvisor необходимо запустить его docker образ google/cadvisor, а затем получить к нему доступ по адресу http://localhost:8080 в веб-браузере. 12. Kubespray Kubespray - это бесплатный инструмент, который был создан путём объединения playbooks Ansible и Kubernetes. Используется для управления жизненным циклом кластера Kubernetes. С помощью Kubespray можно быстро развернуть кластер и настроить все параметры реализации кластера, такие как режимы развертывания, сетевые плагины, конфигурация DNS, версии компонентов, методы создания сертификатов и т.д. Для начала работы кластера достаточно запустить один единственный ansible-playbook. Вы можете легко масштабировать или обновлять кластер Kubernetes. 13. K9s K9s - это терминальный инструмент с открытым исходным кодом, и его утилита панели мониторинга может делать все, что делает веб-интерфейс Kubernetes. Он используется для навигации, наблюдения и управления приложением, развернутым в кластере Kubernetes. K9s функции: Отслеживание кластера в реальном времени Настройка отображения для каждого ресурса Глубокий анализ проблем с ресурсами кластера Поддерживает управление доступом на основе ролей Встроенные эталонные тесты для проверки производительности ресурсов 14. Kubetail Kubetail - это простой сценарий bash, который используется для агрегирования журналов из нескольких модулей в одном потоке. Последняя версия Kubetail также имеет функции выделения и фильтрации. Эта функция позволяет выделять нужные части логов отдельным цветом. Используя homebrew, можно установить Kubetail с помощью одной команды. Чтобы упростить работу Kubetail можно добавить значения, как KUBETAIL_NAMESPACE, KUBETAIL_TAIL, KUBETAIL_SKIP_COLORS и т.д. в переменные среды. 15. PowerfulSeal PowerfulSeal - мощный инструмент хаос-инжиниринга с открытым исходным кодом, написанный на языке python для кластеров Kubernetes. Хаос-инжиниринг используется для того, чтобы проверить отказоустойчивость системы, ее способность справляться с проблемными ситуациями в производственной среде. Он вводит в кластер Kubernetes ошибки, чтобы выявить проблемы в нем как можно раньше. Создателей PowerfulSeal вдохновил Netflix Chaos Monkey и она используется для повышения устойчивости Kubernete. Используя Seal, инженеры сознательно пытаются нарушить работу кластера, чтобы проверить, как система реагирует. Seal работает в трех режимах - автономный, интерактивный, и режим меток. В автономном режиме он выполняет сценарии, считывая предоставленный файл политики. В интерактивном режиме он рассказывает о компонентах кластера, которые вручную пытаются разорвать. В режиме меток целевые объекты в кластере, такие как модули, уничтожаются с помощью меток. 16. Popeye Popeye - это утилита для очистки кластеров Kubernetes. Он сканирует весь кластер и сообщает о проблемах, связанных с конфигурациями и ресурсами. Это помогает применять лучшие практики в кластере Kubernetes, чтобы избежать распространенных проблем. Эта утилита доступна для Windows, Linux и macOS. В настоящее время он работает только с узлами, модулями, пространствами имен, службами. С помощью Popeye можно легко идентифицировать мертвые и неиспользуемые ресурсы, несоответствия портов, правила RBAC, использование метрик и многое другое.
img
В данной главе рассматриваются вопросы технической диагностики системы автоматического мониторинга ВОЛС, необходимость в которой возникает из-за сложности этой системы. Техническое диагностирование - процесс определения технического состояния изделия с определенной точностью. Цель технического диагностирования это поддержание достаточного уровня надежности. При наступлении отказа диагностирование предполагает обнаружение факта отказа и его локализацию. Система технического диагностирования (СТД) - совокупность средств, осуществляющих измерение количественных значений параметров (диагностических параметров ДП), анализ и обработку результатов измерений по установленным алгоритмам. Техническим средством диагностирования являются автоматические измерительные системы, рассмотренные в главе 2. Одним из основных методов решения задач диагностирования является моделирование объекта технического диагностирования и выделение взаимосвязей в этих моделях. Модель объекта - это формализованная сущность, характеризующая определенные свойства реального объекта в удобной и желательно для инженера в наглядной форме. Существуют аналитические модели, в которых модель строится на основе уравнений, связывающих различные параметры; графоаналитические, основанные на представлении диаграмм (в частности направленных графов) прохождения сигналов; информационные модели представляют собой информационные описания в терминах энтропия, информация и т.п. Чаще всего используемым в практических целях и наиболее наглядным являются функционально-логические модели, которые реализуются различными способами, определяемыми особенностью функциональной схемы диагностируемого изделия. В настоящей работе применяется диагностирование, основанное на функционально-логическом моделировании и реализуемое инженерным способом. В соответствии с решаемой задачей выбирается та или иная "функция предпочтения". В данном случае решается задача поиска неисправности, для которой выбирается W4 функция предпочтения о которой ниже. Разработка алгоритма диагностирования Считаем, что объект диагностирования задан следующей функциональной схемой (рисунок 1). После построения функциональной модели необходимо определить множество возможных состояний объекта, который диагностируется. Общее число состояний при N функциональных элементов при двоичных исходах проверок (1 исправно, 0 неисправно) равно при диагностировании системы 2N - 1. Предполагается, что одновременное появление двух независимых отказов маловероятно, поэтому число сочетаний из N элементов по одному, равно N. Число всех возможных различных состояний аппаратуры, которая диагностируется, одновременно с учетом отказов одного функционального - сводятся в таблицу состояний (матрицу исправностей, матрицу неисправностей и т. п.), которая используется при разработке программы (алгоритма) поиска неисправностей. Матрица состояний строится по следующим правилам: S0 - строка, соответствующая работоспособному состоянию; Sj - строка, соответствующая состоянию в котором оказался j-тый элемент модели. Например, состояние S4 = 0 означает событие, при котором отказал 4-ый четвертый элемент модели; S2 = 0- второй и т.п.). Этому событию соответствует недопустимое значение сигнала Zi, и тогда на пересечении пишется 0. Если любой другой i - й элемент также недопустимое значение Zi, то на пересечении j ой строки и Zi - ого столбца таким же образом записывается "0"; при этом, если значение параметра будет находиться в допуске, то на пересечении пишется "1". Считается, что значения всех внешних входных сигналов xi всегда будут находиться в пределах допуска, а линии связи между элементами абсолютно надежны. Если есть сомнение в надежности линии, то её принимают за функциональный элемент. Транспонируем матрицу (таблица 1). Так как мы осуществляем построение алгоритма поиска неисправности, то первую строку S0, означающее исправное состояние исключаем. Последний столбец функция предпочтения W4, которую установили из следующих соображений. Так как матрица заполнена нулями и единицами, то равенство некоторого ij элемента соответствует тому, отказ i-го элемента влияет на j-ый выходной параметр j-го элемента, если контролировать выходной параметр Zj можно определить, в каком именно состоянии находится i-ый элемент. Следовательно, чем больше "0" в строке Zj матрицы, тем более большое количество информации может нести этот параметр о состоянии объекта, который находится под контролем. Для этого в качестве предпочтительной функции решении данной задачи контроля работоспособности необходимо принимать функцию вида: Где ; - означает количество нулей в I-ой строке матрицы. Если для объекта контроля известны вероятности состояний P(Zi): Также заданы C(Zi) стоимости контроля параметров: Так как строится алгоритм нахождения неисправности, то функция предпочтения будет: где суммы означают количество нулей и единиц соответственно в I-той строке транспонированной матрицы состояний. Значения W4(Zi) для каждой строки приведены в последнем столбце транспонированной матрицы (таблица 3.2). Последовательность решения следующая: 1) Выбираем ту строку, в которой функция предпочтения W4(Zi) минимальна, так как эта строка несет максимальное количество информации, разбивая все возможные состояния объекта на две равные части. 2) Минимально значение для 6,7,13 и 14 строк, т.е. по этому критерию они равнозначны. Для контроля выбираем строку 7. Итог контроля по этому параметру W4(Zi) разбивает матрицу на равные части W4(Z7) - первое разложение: 2.1) Эти состояния не влияют на данный выходной параметр функционального элемента; 2.2) Значения параметра не в допуске, что говорит о неисправности объекта. 3) Дальше аналогично анализируются обе получившиеся части (3-е, 4-е и последующие разложения (как показано на рисунке 6). 4) Процедура продолжается, пока множество N=14 возможных состояний объекта диагностирования не будут разделены на отдельные состояния. Чтобы упорядочить для дальнейшего осколки введём следующее обозначение для каждого конкретного осколка: Где m - номер разбиения; "H" - принимает значение 1 или 0 в зависимости от состояния строки матрицы; n - номер осколка, считая, что осколки всегда располагаются, начиная с "1". Например, обозначение 3«0»6 значит, что это осколок при третьем разбиении для значения "0". (впрочем, "1" всегда соответствуют нечетные значения "n", а «0» - четные) Ниже представлены результаты анализа для принятой конкретной функциональной модели на рисунке 3. Первое разбиение по строке Z7, имеющая W7 = 0 z7, имеющая W7 = 0 В таблице 3.3. представлена матрица (осколок) после первого разбиения для результатов проверки «1», т.е. при введенных обозначениях: 1«1»1. Для второго разбиения взята строка Z11, имеющая меньшее значение функции предпочтения W4 = 1 В таблице 3.4 представлена таблица после первого разбиения с «0»,, т.е. 1«0»,1. Дальше "заливкой" показаны строчки, выбранные для следующих разбиений. Для первого разбиения матрицы взята строка Z11, функция предпочтения которой W4 = 1. S8 S9 S10 S11 S12 S13 S14 W4 z8 0 1 1 1 1 1 1 5 z9 1 0 1 1 1 1 1 5 z10 1 1 0 1 1 1 1 5 z11 1 1 0 0 0 1 1 1 z12 1 1 0 0 0 1 1 1 z13 1 1 0 0 0 0 1 1 z14 1 1 0 0 0 1 0 1 Таблица 3. - 1«1»1 S1 S2 S3 S4 S5 S6 S7 W4 z1 0 1 1 1 1 1 1 5 z2 0 0 0 1 1 1 1 1 z3 1 1 0 1 1 1 1 1 z4 1 1 0 0 0 1 1 1 z5 1 1 0 0 0 1 1 3 z6 1 1 0 0 0 0 1 7 z7 1 1 0 0 0 1 0 7 Таблица 4. - 1«0»1 Матрица после второго разбиения при «1». Для 3-го разбиения взята строка Z13 Результаты третьего разбиения: Результаты четвертого разбиения: По результатам разбиений получаем номера ФБ для контроля: результат третьего разбиения: 3«0»2→13; 3«1»4→11 и 12; 3«0»4→10; 3 «1»5→6 и 7; 3«0»6→5; 3 «1»7→4. Результат четвертого разбиения: 4«0»2 → 9. Результат пятого разбиения: 5«1»1 → 8; 5«0» →14; 5«1»15 → 2 и 3; 5«0»16 →1. По полученным в результате анализа матрицы состояний номерам контролируемых ФБ для определения неисправного блока строим алгоритм контроля. Алгоритм контроля Рисунок 2. Как видно из алгоритма, максимальное количество элементарных проверок для нахождения неисправного ФБ равно 5 (в данном случае ФБ 8 и 14) Заключение 1.На основе функционально-логической модели и инженерного способа разработан оптимальный алгоритм диагностирования гипотетической систем, которая моделирует систему автоматического контроля и мониторинга. 2. Проведен расчет и в результате получен алгоритм. Для принятой модели максимальное число элементарных испытаний равно 5.
img
Классический стандарт связующего дерева работает нормально, но в настоящее время для современных сетей он слишком медленный 🐌 В настоящее время мы наблюдаем в наших сетях все больше и больше маршрутизации. Протоколы маршрутизации, такие как OSPF и EIGRP, намного быстрее адаптируются к изменениям в сети, чем spanning-tree. Чтобы не отставать от скорости этих протоколов маршрутизации, была создана еще одна разновидность связующего дерева... (rapid spanning tree) быстрое связующее дерево. Rapid spanning tree - это не революция spanning tree, а его эволюция. Некоторые вещи были изменены для того, что бы ускорить процесс, но с точки зрения конфигурации - это то же самое, что классический spanning tree . Я называю оригинальное spanning tree "классическим spanning tree". Азы Rapid spanning tree Помните состояние портов spanning tree? У нас есть блокирующее, прослушивающее, обучающее и пересылающее состояние порта. Это первое различие между spanning tree и rapid spanning tree. Rapid spanning tree имеет только три состояния портов: Отбрасывание; Обучение; Пересылка. Вы уже знакомы с состоянием порта в режиме обучения и пересылки, но отбрасывание - это новое состояние порта. В основном он объединяет в себе блокировку и прослушивание состояния порта. Вот хороший обзор с различными состояниями портов для spanning tree и rapid spanning tree. В таблице отображено состояние портов: активны ли они и узнают ли они MAC-адреса или нет. Помните ли вы все остальные роли портов, которые есть у spanning tree? Давайте сделаем небольшой обзор, и будет показано отличие от rapid spanning tree. Коммутатор с лучшим ID моста (priority + MAC -адрес) становится корневым мостом. Другие коммутаторы (non-root) должны найти кратчайший путь стоимости к корневому мосту. Это корневой порт. Здесь нет ничего нового, все это работает аналогично и в rapid spanning tree. На каждом сегменте может быть только один назначенный порт, иначе мы получим петлю. Порт станет назначенным портом, если он сможет отправить лучший BPDU. Коммутатор А, как корневой мост, всегда будет иметь лучшие порты, поэтому все интерфейсы будут назначены. Интерфейс fa0/16 на коммутаторе B будет назначенным портом в моем примере, потому что он имеет лучший идентификатор моста, чем коммутатор C. Здесь все еще нет ничего нового по сравнению с классическим связующим деревом. Коммутатор C получает лучшие BPDU на своем интерфейсе fa0/16 от коммутатора B, и таким образом он будет заблокирован. Это альтернативный порт, и это все еще то же самое, что и для rapid spanning tree. Вот вам новый порт, взгляните на интерфейс fa0/17 коммутатора B. Он называется резервным портом и является новым для rapid spanning tree. Однако вы вряд ли увидите этот порт в производственной сети. Между коммутатором B и коммутатором C был добавлен хаб. Обычно (без промежуточного концентратора) оба fa0/16 и fa0/17 будут назначены портами. Из-за хаба интерфейсы fa0/16 и fa0/17 коммутатора B теперь находятся в одном домене коллизий. Fa0/16 будет выбран в качестве назначенного порта, а fa0/17 станет резервным портом для интерфейса fa0/16. Причина, по которой коммутатор B видит интерфейс fa0/17 в качестве резервного порта, заключается в том, что он получает свои собственные BPDU на интерфейсах fa0/16 и fa0/17 и понимает, что у него есть два соединения с одним и тем же сегментом. Если вы удалите хаб, то fa0/16 и fa0/17 будут назначены портами точно так же, как classic spanning tree. BPDU отличается для rapid spanning tree. В classic spanning tree поле flags использовало только два бита: Topology change.; Topology change acknowledgment.; Теперь используются все биты поля flags. Роль порта, который создает BPDU, будет добавлена с помощью поля port role, оно имеет следующие параметры: Unknown; Alternate / Backup port; Root port; Designated port. Эта BPDU называется BPDUv2. Коммутаторы, работающие со старой версией spanning tree, проигнорируют эту новую версию BPDU. Если вам интересно ... rapid spanning tree и старое spanning tree совместимы! Rapid spanning tree способно работать с коммутаторами, работающими под управлением более старой версии spanning tree. Что поменялось BPDU теперь отправляются каждый hello time. Только корневой мост генерирует BPDU в classic spanning tree, и они ретранслировались non-root, если они получали его на свой корневой порт. Rapid spanning tree работает по-разному...все коммутаторы генерируют BPDU каждые две секунды (hello time). Это hello timeпо умолчанию, но вы можете его изменить. classic spanning tree использует максимального время жизни (20 секунд) для BPDU, прежде чем они будут отброшены. Rapid spanning работает по-другому! BPDU теперь используются в качестве механизма поддержания активности, аналогичного тому, что используют протоколы маршрутизации, такие как OSPF или EIGRP. Если коммутатор пропускает три BPDU от соседнего коммутатора, он будет считать, что подключение к этому коммутатору было потеряно, и он немедленно удалит все MAC-адреса. Rapid spanning tree будет принимать низшие BPDU. Classic spanning tree игнорирует их. Скорость перехода (время сходимости) является наиболее важной характеристикой rapid spanning tree. Classic spanning tree должно было пройти через состояние прослушивания и обучения, прежде чем оно переведет интерфейс в forwarding состояние, это занимает 30 секунд (таймер по умолчанию). Classic spanning было основано на таймерах. Rapid spanning не использует таймеры, чтобы решить, может ли интерфейс перейти в forwarding состояние или нет. Для этого он будет использовать переговорный (negotiation) механизм. Чуть позже я покажу вам, как это работает. Помните ли вы понятие portfast? Если мы включим portfast во время запуска classic spanning tree, оно пропустит состояние прослушивания и обучения и сразу же переведет интерфейс в forwarding состояние. Помимо перевода интерфейса в forwarding состояние, он также не будет генерировать изменения топологии, когда интерфейс переходит в состояние UP или DOWN. Мы все еще используем portfast для rapid spanning tree, но теперь он называется пограничным портом (edge port). Rapid spanning tree может только очень быстро переводить интерфейсы в forwarding состояние на edge ports (portfast) или интерфейсы типа point-to-point. Он будет смотреть на link type, и есть только два ink types: Point-to-point (full duplex); Shared (half duplex). Обычно мы используем коммутаторы, и все наши интерфейсы настроены как full duplex, rapid spanning tree видит эти интерфейсы как point-to-point. Если мы введем концентратор в нашу сеть, то у нас будет half duplex, который рассматривается как shared interface к rapid spanning-tree. Позвольте мне описать механизм быстрой синхронизации spanning tree, используя рисунок выше. Коммутатор А сверху - это корневой мост. Коммутатор B, C и D- некорневые мосты (non-root). Как только появится связь между коммутатором А и коммутатором B, их интерфейсы будут находиться в режиме блокировки. Коммутатор B получит BPDU от коммутатора A, и теперь будет происходить согласование, называемое синхронизацией. После того, как коммутатор B получил BPDU от корневого моста, он немедленно блокирует все свои порты, не обозначенные в списке non-edge. Non-edge порты - это интерфейсы для подключения к другим коммутаторам, пока edge порты- интерфейсы, настроены как portfast. Как только коммутатор B блокирует свои non-edge порты, связь между коммутатором A и коммутатором B переходит в forwarding состояние. Коммутатор B также выполнит операцию синхронизации как с коммутатором C, так и с коммутатором D, чтобы они могли быстро перейти в forwarding состояние. Главное, что следует усвоить здесь, заключается в том, что rapid spanning tree использует этот механизм синхронизации вместо механизма "таймера", который использует classic spanning tree (прослушивание → обучение → forwarding). Давайте увеличим масштаб механизма синхронизации rapid spanning tree, подробно рассмотрев коммутатор A и коммутатор B. Сначала интерфейсы будут заблокированы до тех пор, пока они не получат BPDU друг от друга. В этот момент коммутатор B поймет, что коммутатор A является корневым мостом, потому что он имеет лучшую информацию BPDU. Механизм синхронизации начнется, потому что коммутатор А установит proposal bit в поле flag BPDU. Коммутатор B получает предложение от коммутатора A и понимает, что он должен что-то сделать. Он заблокирует все свои non-edge интерфейсы и запустит синхронизацию в направлении коммутатора C и коммутатора D. Как только коммутатор B перевед свои интерфейсы в режим синхронизации, это позволит коммутатору А узнать об этом, отправив соответствующее соглашение. Это соглашение является копией proposal BPDU, где proposal bit, был switched off, а agreement bit - switched on. Интерфейс fa0/14 на коммутаторе B теперь перейдет в режим forwarding. Как только коммутатор A получит соглашение от коммутатора B, он немедленно переведет свой интерфейс fa0/14 в режим пересылки. А как насчет интерфейса fa0 / 16 и fa0 / 19 на коммутаторе B? Точно такой же механизм синхронизации будет иметь место и сейчас на этих интерфейсах. Коммутатор B направит предложение по своим интерфейсам fa0/16 и fa0/19 в сторону коммутатора C и коммутатора D. Коммутатор C и коммутатор D не имеют никаких других интерфейсов, поэтому они отправят соглашение обратно на коммутатор B. Коммутатор B переведет свои интерфейсы fa0/16 и fa0/19 в режим forwarding, и на этом мы закончим. Этот механизм синхронизации - всего лишь пара сообщений, летающих туда-сюда, и очень быстро, это намного быстрее, чем механизм на основе таймера classic spanning tree! Что еще нового в rapid spanning tree? Есть еще три вещи: UplinkFast; Механизм изменения топологии; Совместимость с классическим связующим деревом. Когда вы настраиваете classic spanning tree, вы должны включить UplinkFast самостоятельно. Rapid spanning tree использует UpLinkFast по умолчанию, вам не нужно настраивать его самостоятельно. Когда коммутатор теряет свой корневой порт, он немедленно переводит свой альтернативный порт в forwarding. Разница заключается в том, что classic spanning tree нуждалось в multicast кадрах для обновления таблиц MAC-адресов всех коммутаторов. Нам это больше не нужно, потому что механизм изменения топологии для rapid spanning tree отличается. Так что же изменилось в механизме изменения топологии? С classic spanning tree сбой связи вызвал бы изменение топологии. При использовании rapid spanning tree сбой связи не влияет на изменение топологии. Только non-edge интерфейсы (ведущие к другим коммутаторам), которые переходят в forwarding состояние, рассматриваются как изменение топологии. Как только коммутатор обнаружит изменение топологии это произойдет: Он начнет изменение топологии при значении таймера, которое в два раза превышает hello time. Это будет сделано для всех назначенных non-edge и корневых портов.; Он будет очищать MAC-адреса, которые изучаются на этих портах.; До тех пор, пока происходит изменение топологии, во время активности таймера, он будет устанавливать бит изменения топологии в BPDU, которые отправляются из этих портов. BPDU также будет отправлен из своего корневого порта.; Когда соседний коммутатор получит этот BPDU с установленным битом изменения топологии, произойдет следующее: Он очистит все свои MAC-адреса на всех интерфейсах, кроме того, на котором он получил BPDU с включенным изменением топологии.; Он запустит изменение топологии во время самого таймера и отправит BPDU на все назначенные порты и корневой порт, установив бит изменения топологии.; Вместо того, чтобы отправлять изменения топологии вплоть до корневого моста, как это делает classic spanning tree, изменение топологии теперь быстро распространяется по всей сети. И последнее, но не менее важное, давайте поговорим о совместимости. Rapid spanning tree и classic spanning tree совместимы. Однако, когда коммутатор, на котором работает Rapid spanning tree, связывается с коммутатором, на котором работает classic spanning tree, все функции скоростной передачи данных не будут работать! В приведенном выше примере у меня есть три коммутатора. Между коммутатором A и коммутатором B мы запустим rapid spanning tree. Между коммутатором B и коммутатором C мы вернемся к classic spanning tree.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59