По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сетевые устройства добавляются в сети для решения целого ряда проблем, включая подключение различных типов носителей и масштабирование сети путем переноса пакетов только туда, куда они должны идти. Однако маршрутизаторы и коммутаторы сами по себе являются сложными устройствами. Сетевые инженеры могут построить целую карьеру, специализируясь на решении лишь небольшого набора проблем, возникающих при передаче пакетов через сетевое устройство. Рисунок 1 используется для обсуждения обзора проблемного пространства. На рисунке 1 есть четыре отдельных шага: Пакет необходимо скопировать с физического носителя в память устройства; это иногда называют синхронизацией пакета по сети. Пакет должен быть обработан, что обычно означает определение правильного исходящего интерфейса и изменение пакета любым необходимым способом. Например, в маршрутизаторе заголовок нижнего уровня удаляется и заменяется новым; в фильтре пакетов с отслеживанием состояния пакет может быть отброшен на основании внутреннего состояния и т.п. Пакет необходимо скопировать из входящего интерфейса в исходящий. Это часто связано с перемещениями по внутренней сети или шине. Некоторые системы пропускают этот шаг, используя один пул памяти как для входящего, так и для исходящего интерфейсов; они называются системами с общей памятью. Пакет необходимо скопировать обратно на исходящий физический носитель; это иногда называют синхронизацией пакета по проводу. Примечание. Небольшие системы, особенно те, которые ориентированы на быструю и последовательную коммутацию пакетов, часто используют общую память для передачи пакетов с одного интерфейса на другой. Время, необходимое для копирования пакета в память, часто превышает скорость, с которой работают интерфейсы; системы с общей памятью избегают этого при копировании пакетов в память. Таким образом, проблемное пространство, обсуждаемоениже, состоит из следующего: Как пакеты, которые необходимо пересылать сетевым устройством, переносятся с входящего на исходящий физический носитель, и как пакеты подвергаются обработке на этом пути? Далее обсуждается часть решения этой проблемы. Физический носитель – Память Первым шагом в обработке пакета через сетевое устройство является копирование пакета с провода в память. Для иллюстрации этого процесса используется рисунок 2. На рисунке 2 представлены два этапа: Шаг 1. Набор микросхем физического носителя (PHY chip) будет копировать каждый временной (или логический) слот с физического носителя, который представляет один бит данных, в ячейку памяти. Эта ячейка памяти фактически отображается в приемное кольцо, которое представляет собой набор ячеек памяти (буфер пакетов), выделенный с единственной целью - прием пакетов, синхронизируемых по сети. Приемное кольцо и вся память буфера пакетов обычно состоят из памяти одного типа, доступной (совместно используемой) всеми коммутирующими компонентами на принимающей стороне линейной карты или устройства. Примечание. Кольцевой буфер используется на основе одного указателя, который увеличивается каждый раз, когда новый пакет вставляется в буфер. Например, в кольце, показанном на рисунке 2, указатель будет начинаться в слоте 1 и увеличиваться через слоты по мере того, как пакеты копируются в кольцевой буфер. Если указатель достигает слота 7 и поступает новый пакет, пакет будет скопирован в слот 1 независимо от того, было ли обработано содержимое слота 1 или нет. При коммутации пакетов наиболее трудоемкой и трудной задачей является копирование пакетов из одного места в другое; этого можно избежать, насколько это возможно, за счет использования указателей. Вместо перемещения пакета в памяти указатель на ячейку памяти передается от процесса к процессу в пределах пути переключения. Шаг 2. Как только пакет синхронизируется в памяти, некоторый локальный процессор прерывается. Во время этого прерывания локальный процессор удалит указатель на буфер пакетов, содержащий пакет, из кольца приема и поместит указатель на пустой буфер пакетов в кольцо приема. Указатель помещается в отдельный список, называемый входной очередью. Обработка пакета Как только пакет окажется во входной очереди, его можно будет обработать. Обработку можно рассматривать как цепочку событий, а не как одно событие. Рисунок 3 иллюстрирует это. Перед коммутацией пакета должна произойти некоторая обработка, например преобразование сетевых адресов, поскольку она изменяет некоторую информацию о пакете, используемом в фактическом процессе коммутации. Другая обработка может происходить после переключения. Коммутация пакета - довольно простая операция: Процесс коммутации ищет адрес назначения Media Access Control (MAC) или физического устройства в таблице пересылки (в коммутаторах это иногда называется таблицей обучения моста или просто таблицей моста). Исходящий интерфейс определяется на основе информации в этой таблице. Пакет перемещается из входной очереди в выходную очередь. Пакет никоим образом не изменяется в процессе коммутации; он копируется из очереди ввода в очередь вывода. Маршрутизация Маршрутизация - более сложный процесс, чем коммутация. Рисунок 4 демонстрирует это. На рисунке 4 пакет начинается во входной очереди. Тогда коммутационный процессор: Удаляет (или игнорирует) заголовок нижнего уровня (например, кадрирование Ethernet в пакете). Эта информация используется для определения того, должен ли маршрутизатор получать пакет, но не используется во время фактического процесса коммутации. Ищет адрес назначения (и, возможно, другую информацию) в таблице пересылки. Таблица пересылки связывает место назначения пакета со next hop пакета. Next hop может быть следующий маршрутизатор на пути к месту назначения или сам пункт назначения. Затем коммутирующий процессор проверяет таблицу interlayer discovery, чтобы определить правильный физический адрес, по которому следует отправить пакет, чтобы доставить пакет на один шаг ближе к месту назначения. Новый заголовок нижнего уровня создается с использованием этого нового адреса назначения нижнего уровня и копируется в пакет. Обычно адрес назначения нижнего уровня кэшируется локально вместе со всем заголовком нижнего уровня. Весь заголовок перезаписывается в процессе, называемом перезапись заголовка MAC. Теперь весь пакет перемещается из очереди ввода в очередь вывода. Почему именно маршрутизация? Поскольку маршрутизация-это более сложный процесс, чем коммутация, то почему именно маршрутизация? Для иллюстрации будет использован рисунок 5. Существует по меньшей мере три конкретных причины для маршрутизации, а не коммутации в сети. На рисунке 5 в качестве примера приведена небольшая сеть: Если канал связи [B,C] является физическим носителем другого типа, чем два канала связи, соединяющиеся с хостами, с различными кодировками, заголовками, адресацией и т. д., то маршрутизация позволит A и D общаться, не беспокоясь об этих различиях в типах каналов связи. Это можно было бы преодолеть в чисто коммутируемой сети с помощью преобразования заголовков, но преобразование заголовков на самом деле не уменьшает количество работы, чем маршрутизация в пути коммутации, поэтому нет особого смысла не маршрутизировать для решения этой проблемы. Другое решение может заключаться в том, чтобы каждый тип физического носителя согласовывал единую адресацию и пакетный формат, но, учитывая постоянное развитие физических носителей и множество различных типов физических носителей, это кажется маловероятным решением. Если бы вся сеть была коммутируемой, то B должен был бы знать полную информацию о достижимости для D и E, в частности, D и E должны были бы знать адреса физического или нижнего уровня для каждого устройства, подключенного к сегменту хоста за пределами C. Это может быть не большой проблемой в малой сети, но в больших сетях с сотнями тысяч узлов или глобальным интернетом это не будет масштабироваться—просто слишком много состояний для управления. Можно агрегировать информацию о достижимости с помощью адресации нижнего уровня, но это сложнее, чем использовать адрес более высокого уровня, назначенный на основе топологической точки присоединения устройства, а не адрес, назначенный на заводе, который однозначно идентифицирует набор микросхем интерфейса. Если D отправляет широковещательную рассылку «всем устройствам в сегменте», A получит широковещательную рассылку, если B и C являются коммутаторами, но не если B и C являются маршрутизаторами. Широковещательные пакеты нельзя исключить, поскольку они являются неотъемлемой частью практически каждого транспортного протокола, но в чисто коммутируемых сетях широковещательные передачи представляют собой очень трудно решаемую проблему масштабирования. Трансляции блокируются (или, скорее, потребляются) на маршрутизаторе. Примечание. В мире коммерческих сетей термины маршрутизация и коммутация часто используются как синонимы. Причина этого в первую очередь в истории маркетинга. Первоначально маршрутизация всегда означала «переключаемая программно», тогда как коммутация всегда означала «переключаемая аппаратно». Когда стали доступны механизмы коммутации пакетов, способные переписывать заголовок MAC на аппаратном уровне, они стали называться «коммутаторами уровня 3», которые в конечном итоге были сокращены до простой коммутации. Например, большинство «коммутаторов» центров обработки данных на самом деле являются маршрутизаторами, поскольку они действительно выполняют перезапись MAC-заголовка для пересылаемых пакетов. Если кто-то называет часть оборудования коммутатором, то лучше всего уточнить, является ли это коммутатором уровня 3 (правильнее - маршрутизатор) или коммутатором уровня 2 (правильнее - коммутатором). Примечание. Термины канал связи и соединение здесь используются как синонимы. Канал связи - это физическое или виртуальное проводное или беспроводное соединение между двумя устройствами. Equal Cost Multipath В некоторых проектах сети сетевые администраторы вводят параллельные каналы между двумя узлами сети. Если предположить, что эти параллельные каналы равны по пропускной способности, задержке и т. д., они считаются равными по стоимости. В нашем случае каналы считаются многопутевыми с равной стоимостью (equal cost multipath - ECMP). В сетевых технологиях в производственных сетях часто встречаются два варианта. Они ведут себя одинаково, но отличаются тем, как каналы группируются и управляются сетевой операционной системой.
img
Выходим на новый уровень. Для изучения следующей темы вы уже должны хорошо понимать связующее дерево. Связующее дерево (Spanning Tree Protocol STP) — это важная тема. Есть много вещей, которые могут пойти не так, и в этой статье мы рассмотрим ряд инструментов, которые мы можем использовать для защиты нашей топологии связующего дерева. Для профессионалов PortFast: мы видели это в статье о spanning tree и rapid spanning tree. Он настроит порт доступа как пограничный порт, поэтому он переходит в режим forwarding немедленно. BPDU Guard: это отключит (err-disable) интерфейс, который имеет настроенный PortFast, если он получает BPDU. BPDUFilter: это будет подавлять BPDU на интерфейсах. Root Guard: это предотвратит превращение соседнего коммутатора в корневой мост, даже если он имеет лучший идентификатор моста. UplinkFast: мы видели это в статье о связующем дереве. Он улучшает время конвергенции. BackboneFast: мы также видели это в статье о связующем дереве. Оно улучшает время конвергенции, если у вас есть сбой косвенной связи. UplinkFast и BackboneFast не требуются для rapid spanning tree, поскольку оно уже реализовано по умолчанию. Мы начнем с BPDUguard: В топологии выше мы имеем идеально работающую топологию остовного дерева. По умолчанию связующее дерево будет отправлять и получать BPDU на всех интерфейсах. В нашем примере у нас есть компьютер, подключенный на интерфейсе fa0/2 коммутатора B. Есть кто-то, кто с враждебными намерениями мог бы запустить инструмент, который сгенерирует BPDU с превосходящим ID моста. Что же произойдет- так это то, что наши коммутаторы будут считать, что корневой мост теперь может быть достигнут через коммутатор B, и у нас будет повторный расчет связующего дерева. Звучит не очень хорошо, правда? Можно поставить человека (хакера) в середине топологии для атаки так, чтобы никто не знал. Представьте себе, что хакер подключает свой компьютер к двум коммутаторам. Если хакер станет корневым мостом, то весь трафик от коммутатора А или коммутатора C к коммутатору В будет проходить через него. Он запустит Wireshark и подождет, пока произойдет чудо. BPDUguard гарантирует, что, когда мы получаем BPDU на интерфейс, интерфейс перейдет в режим err-disable. Чтобы продемонстрировать работу BPDUguard будем использовать два коммутатора. Настроем интерфейс fa0/16 коммутатора B так, что он перейдет в режим err-disable, если он получит BPDU от коммутатора C. SwitchB(config)#interface fa0/16 SwitchB(config-if)#spanning-tree bpduguard enable Вот как вы включаете его в интерфейсе. Имейте в виду, что обычно вы никогда не будете делать это между коммутаторами. Вы должны настроить это на интерфейсах в режиме доступа, которые подключаются к компьютерам. А-а... вот и наш интерфейс. SwitchB(config-if)#no spanning-tree bpduguard SwitchB(config-if)#shutdown SwitchB(config-if)#no shutdown Избавиться от BPDUguard можно используя команды shut/no shut, чтобы сделать интерфейс снова рабочим. SwitchB(config)#spanning-tree portfast bpduguard Вы также можете использовать команду spanning-tree portfast bpduguard. Это позволит глобально активировать BPDUguard на всех интерфейсах, которые имеют включенный portfast. SwitchB(config)#spanning-tree portfast default Portfast также может быть включен глобально для всех интерфейсов, работающих в режиме доступа. Это полезная команда, позволяющая проверить свою конфигурацию. Вы видите, что portfast и BPDUGuard были включены глобально. BPDUGuard переведет интерфейс в режим err-disable. Кроме того, можно фильтровать сообщения BPDU с помощью BPDUfilter. BPDUfilter может быть настроен глобально или на уровне интерфейса и есть разница: Глобальный: если вы включите bpdufilter глобально, любой интерфейс с включенным portfast станет стандартным портом. Интерфейс: если вы включите BPDUfilter на интерфейсе, он будет игнорировать входящие BPDU и не будет отправлять никаких BPDU. Вы должны быть осторожны, когда включаете BPDUfilter на интерфейсах. Вы можете использовать его на интерфейсах в режиме доступа, которые подключаются к компьютерам, но убедитесь, что вы никогда не настраиваете его на интерфейсах, подключенных к другим коммутаторам. Если вы это сделаете, вы можете получить цикл. Для демонстрации работы BPDUfilter мы будем снова использовать коммутатор B и коммутатор C. SwitchB(config)#interface fa0/16 SwitchB(config-if)#spanning-tree portfast trunk SwitchB(config-if)#spanning-tree bpdufilter enable Он перестанет посылать BPDU и будет игнорировать все, что будет получено. SwitchB#debug spanning-tree bpdu Вы не увидите никаких интересных сообщений, но если вы включите отладку BPDU, то заметите, что он больше не отправляет никаких BPDU. Если вы хотите, вы также можете включить отладку BPDU на коммутаторе C, и вы увидите, что нет ничего от коммутатора B. SwitchB(config)#interface fa0/16 SwitchB(config-if)#no spanning-tree bpdufilter enable Давайте избавимся от команды BPDUfilter на уровне интерфейса. SwitchB(config)#spanning-tree portfast bpdufilter default Вы также можете использовать глобальную команду для BPDUfilter. Это позволит включить BPDUfilter на всех интерфейсах, которые имеют portfast. Еще один вариант, с помощью которого мы можем защитить наше связующее дерево, - это использовать RootGuard. Проще говоря, RootGuard позаботится о том, чтобы вы не принимали определенный коммутатор в качестве корневого моста. BPDU отправляются и обрабатываются нормально, но, если коммутатор внезапно отправляет BPDU с идентификатором верхнего моста, вы не будете принимать его в качестве корневого моста. Обычно коммутатор D становится корневым мостом, потому что у него есть лучший идентификатор моста, к счастью, у нас есть RootGuard на коммутатое C, так что этого не произойдет! Рассмотрим с вами конфигурацию с коммутатором B и коммутатором C. SwitchB(config)#spanning-tree vlan 1 priority 4096 Давайте убедимся, что коммутатор C не является корневым мостом. Вот как мы включаем RootGuard на интерфейсе. SwitchB#debug spanning-tree events Spanning Tree event debugging is on Не забудьте включить отладку, если вы хотите увидеть события. SwitchC(config)#spanning-tree vlan 1 priority 0 Давайте перенастроим коммутатор B, изменив приоритет на наименьшее возможное значение 0 на коммутаторе C. Он теперь должен стать корневым мостом. Вот так коммутатор B не будет принимать коммутатор C в качестве корневого моста. Это заблокирует интерфейс для этой VLAN. Вот еще одна полезная команда, чтобы проверить, работает ли RootGuard. Связующее дерево становится все более безопасным с каждой минутой! Однако есть еще одна вещь, о которой мы должны подумать… Если вы когда-либо использовали волоконные кабели, вы могли бы заметить, что существует другой разъем для передачи и приема трафика. Если один из кабелей (передающий или принимающий) выйдет из строя, мы получим однонаправленный сбой связи, и это может привести к петлям связующего дерева. Существует два протокола, которые могут решить эту проблему: LoopGuard UDLD Давайте начнем с того, что внимательно рассмотрим, что произойдет, если у нас произойдет сбой однонаправленной связи. Представьте себе, что между коммутаторами волоконно-оптические соединения. На самом деле имеется другой разъем для передачи и приема. Коммутатор C получает BPDU от коммутатора B, и в результате интерфейс стал альтернативным портом и находится в режиме блокировки. Теперь что-то идет не так... transmit коннектор на коммутаторе B к коммутатору C был съеден мышами. В результате коммутатор C не получает никаких BPDU от коммутатора B, но он все еще может отправлять трафик для переключения между ними. Поскольку коммутатор C больше не получает BPDU на свой альтернативный порт, он перейдет в forwarding режим. Теперь у нас есть one way loop (петля в один конец), как указано зеленой стрелкой. Один из методов, который мы можем использовать для решения нашего однонаправленного сбоя связи — это настройка LoopGuard. Когда коммутатор отправляет, но не получает BPDU на интерфейсе, LoopGuard поместит интерфейс в состояние несогласованности цикла и заблокирует весь трафик! Мы снова будем использовать эту топологию для демонстрации LoopGuard. SwitchA(config)#spanning-tree loopguard default SwitchB(config)#spanning-tree loopguard default SwitchC(config)#spanning-tree loopguard default Используйте команду spanning-tree loopguard по умолчанию, чтобы включить LoopGuard глобально SwitchB(config)#interface fa0/16 SwitchB(config-if)#spanning-tree portfast trunk SwitchB(config-if)#spanning-tree bpdufilter enable В примере у нас нет никаких волоконных разъемов, поэтому мы не сможем создать однонаправленный сбой связи. Однако мы можем смоделировать его с помощью BPDUfilter на интерфейсе SwitchB fa0/16. Коммутатор C больше не будет получать никаких BPDU на свой альтернативный порт, что заставит его перейти в режим переадресации. Обычно это вызвало бы петлю, но, к счастью, у нас есть настроенный LoopGuard. Вы можете увидеть это сообщение об ошибке, появляющееся в вашей консоли. Проблема решена! SwitchC(config-if)#spanning-tree guard loop Если вы не хотите настраивать LoopGuard глобально, вы т можете сделать это на уровне интерфейса. Другой протокол, который мы можем использовать для борьбы с однонаправленными сбоями связи, называется UDLD (UniDirectional Link Detection). Этот протокол не является частью инструментария связующего дерева, но он помогает нам предотвратить циклы. Проще говоря, UDLD — это протокол второго уровня, который работает как механизм keepalive. Вы посылаете приветственные сообщения, вы их получаете, и все прекрасно. Как только вы все еще посылаете приветственные сообщения, но больше их не получаете, вы понимаете, что что-то не так, и мы блокируем интерфейс. Убедитесь, что вы отключили LoopGuard перед работой с UDLD. Мы будем использовать ту же топологию для демонстрации UDLD. Существует несколько способов настройки UDLD. Вы можете сделать это глобально с помощью команды udld, но это активирует только UDLD для оптоволоконных линий связи! Существует два варианта для UDLD: Normal (default) Aggressive Когда вы устанавливаете UDLD в нормальное состояние, он помечает порт как неопределенный, но не закрывает интерфейс, когда что-то не так. Это используется только для того, чтобы «информировать» вас, но это не предотвратит циклы. Агрессивный - это лучшее решение, когда пропадает связь с соседом. Он будет посылать кадр UDLD 8 раз в секунду. Если сосед не отвечает, интерфейс будет переведен в режим errdisable. SwitchB(config)#interface fa0/16 SwitchB(config-if)#udld port aggressive SwitchC(config)#interface fa0/16 SwitchC(config-if)#udld port aggressive Мы будем использовать коммутатор B и C, чтобы продемонстрировать UDLD. Будем использовать агрессивный режим, чтобы мы могли видеть, что интерфейс отключается, когда что-то не так. Если вы хотите увидеть, что UDLD работает, вы можете попробовать выполнить отладку. Теперь самое сложное будет имитировать однонаправленный сбой связи. LoopGuard был проще, потому что он был основан на BPDUs. UDLD запускает свой собственный протокол уровня 2, используя собственный MAC-адрес 0100.0ccc.сссс. SwitchC(config)#mac access-list extended UDLD-FILTER SwitchC(config-ext-macl)#deny any host 0100.0ccc.cccc SwitchC(config-ext-macl)#permit any any SwitchC(config-ext-macl)#exit SwitchC(config)#interface fa0/16 SwitchC(config-if)#mac access-group UDLD-FILTER in Это творческий способ создавать проблемы. При фильтрации MAC-адреса UDLD он будет думать, что существует сбой однонаправленной связи! Вы увидите много отладочной информации, но конечным результатом будет то, что порт теперь находится в состоянии err-disable. Вы можете проверить это с помощью команды show udld. LoopGuard и UDLD решают одну и ту же проблему: однонаправленные сбои связи. Они частично пересекаются, но есть ряд различий, вот общий обзор: LoopGuardUDLDНастройкиГлобально/на портуГлобально (для оптики)/на портуVLAN?ДаНет, на портуАвтосохранениеДаДа, но вам нужно настроить errdisable timeout.Защита от сбоев STP из-за однонаправленных связейДа - нужно включить его на всех корневых и альтернативных портахДа - нужно включить его на всех интерфейсах.Защита от сбоев STP из-за сбоев программного обеспечения (нет отправки BPDU)ДаНетЗащита от неправильного подключения (коммутационный оптический приемопередающий разъем)НетДа Есть еще одна последняя тема, которую хотелось бы объяснить, это не протокол связующего дерева, но речь идет о избыточных ссылках, поэтому я оставлю ее здесь. Это называется FlexLinks. Вот в чем дело: при настройке FlexLinks у вас будет активный и резервный интерфейс. Мы настроим это на коммутаторе C: Fa0/14 будет активным интерфейсом. Fa0/16 будет интерфейс резервного копирования (этот блокируется!). При настройке интерфейсов в качестве FlexLinks они не будут отправлять BPDU. Нет никакого способа обнаружить петли, потому что мы не запускаем на них связующее дерево. Всякий раз, когда наш активный интерфейс выходит из строя, резервный интерфейс заменяет его. SwitchC(config)#interface fa0/14 SwitchC(config-if)#switchport backup interface fa0/16 Именно так мы делаем интерфейс fa0/16 резервной копией интерфейса fa0/14. Вы можете видеть, что связующее дерево отключается для этих интерфейсов. Проверьте нашу конфигурацию с помощью команды show interfaces switchport backup. Вот и все, что нужно было сделать. Это интересное решение, потому что нам больше не нужно связующее дерево. Ведь в любой момент времени активен только один интерфейс. SwitchC(config)#interface f0/14 SwitchC(config-if)#shutdown Давайте закроем активный интерфейс. Вы можете видеть, что fa0/16 стал активным. Вот и все.
img
Продолжаем рассказывать про механизмы QoS (Quality of Service) . Мы уже рассказаывали про то, какие проблемы могут быть в сети и как на них может повлиять QoS. В этой статье мы поговорим про механизмы работы QoS. Механизмы QoS В связи с тем, что приложения могут требовать различные уровни QoS, возникает множество моделей и механизмов, чтобы удовлетворить эти нужды. Рассмотрим следующие модели: Best Effort –негарантированная доставка используется во всех сетях по умолчанию. Положительная сторона заключается в том, что эта модель не требует абсолютно никаких усилий для реализации. Не используются никакие механизмы QoS, весь трафик обслуживается по принципу “пришел первым – обслужили первым”. Такая модель не подходит для современных сетевых сред; Integrated Services (IntServ) – эта модель интегрированного обслуживания использует метод резервирования. Например, если пользователь хотел сделать VoIP вызов 80 Кбит/с по сети передачи данных, то сеть, разработанная исключительно для модели IntServ, зарезервировала бы 80 Кбит/с на каждом сетевом устройстве между двумя конечными точками VoIP, используя протокол резервирования ресурсов RSVP (Resource Reservation Protocol) . На протяжении звонка эти 80 Кбит/с будут недоступны для другого использования, кроме как для VoIP звонка. Хотя модель IntServ является единственной моделью, обеспечивающей гарантированную пропускную способность, она также имеет проблемы с масштабируемостью. Если сделано достаточное количество резервирований, то сеть просто исчерпает полосу пропускания; Differentiated Services (DiffServ) – модель дифференцированного обслуживания является самой популярной и гибкой моделью для использования QoS. В этой модели можно настроить каждое устройство так, чтобы оно могло использовать различные методы QoS, в зависимости от типа трафика. Можно указать какой трафик входит в определенный класс и как этот класс должен обрабатываться. В отличие от модели IntServ, трафик не является абсолютно гарантированным, поскольку сетевые устройства не полностью резервируют полосу пропускания. Однако DiffServ получает полосу, близкую к гарантированной полосе пропускания, в то же время решая проблемы масштабируемости IntServ. Это позволило этой модели стать стандартной моделью QoS; Инструменты QoS Сами механизмы QoS представляют собой ряд инструментов, которые объединяются для обеспечения уровня обслуживания, который необходим трафику. Каждый из этих инструментов вписывается в одну из следующих категорий: Классификация и разметка (Classification and Marking) - Эти инструменты позволяют идентифицировать и маркировать пакет, чтобы сетевые устройства могли легко идентифицировать его по мере пересечения сети. Обычно первое устройство, которое принимает пакет, идентифицирует его с помощью таких инструментов, как списки доступа (access-list), входящие интерфейсы или deep packet inspection (DPI), который рассматривает сами данные приложения. Эти инструменты могут быть требовательны к ресурсам процессора и добавлять задержку в пакет, поэтому после того как пакет изначально идентифицирован, он сразу помечается. Маркировка может быть в заголовке уровня 2 (data link), позволяя коммутаторам читать его и/или заголовке уровня 3 (network), чтобы маршрутизаторы могли его прочитать. Для второго уровня используется протокол 802.1P, а для третьего уровня используется поле Type of Service. Затем, когда пакет пересекает остальную сеть, сетевые устройства просто смотрят на маркировку, чтобы классифицировать ее, а не искать глубоко в пакете; Управление перегрузками (Congestion Management)– Перегрузки возникают, когда входной буфер устройства переполняется и из-за этого увеличивается время обработки пакета. Стратегии очередей определяют правила, которые маршрутизатор должен применять при возникновении перегрузки. Например, если интерфейс E1 WAN был полностью насыщен трафиком, маршрутизатор начнет удерживать пакеты в памяти (очереди), чтобы отправить их, когда станет доступна полоса пропускания. Все стратегии очередей направлены на то, чтобы ответить на один вопрос: “когда есть доступная пропускная способность, какой пакет идет первым?“; Избегание заторов (Congestion Avoidance) – Большинство QoS механизмов применяются только тогда, когда в сети происходит перегрузка. Целью инструментов избегания заторов является удаление достаточного количества пакетов несущественного (или не очень важного) трафика, чтобы избежать серьезных перегрузок, возникающих в первую очередь; Контроль и шейпинг (Policing and Shaping) – Этот механизм ограничивает пропускную способность определенного сетевого трафика. Это полезно для многих типичных «пожирателей полосы» в сети: p2p приложения, веб-серфинг, FTP и прочие. Шейпинг также можно использовать, чтобы ограничить пропускную способность определенного сетевого трафика. Это нужно для сетей, где допустимая фактическая скорость медленнее физической скорости интерфейса. Разница между этими двумя механизмами заключается в том, что shaping формирует очередь из избыточного трафика, чтобы выслать его позже, тогда как policing обычно сбрасывает избыточный трафик; Эффективность линков (Link Efficiency) – Эта группа инструментов сосредоточена на доставке трафика наиболее эффективным способом. Например, некоторые низкоскоростные линки могут работать лучше, если потратить время на сжатие сетевого трафика до его отправки (сжатие является одним из инструментов Link Efficiency); Механизмы Link Efficiency При использовании медленных интерфейсов возникают две основных проблемы: Недостаток полосы пропускания затрудняет своевременную отправку необходимого объема данных; Медленные скорости могут существенно повлиять на сквозную задержку из-за процесса сериализации (количество времени, которое маршрутизатору требуется на перенос пакета из буфера памяти в сеть). На этих медленных линках, чем больше пакет, тем дольше задержка сериализации; Чтобы побороть эти проблемы были разработаны следующие Link Efficiency механизмы: Сжатие полезной нагрузки (Payload Compression) – сжимает данные приложения, оправляемые по сети, поэтому маршрутизатор отправляет меньше данных, по медленной линии; Сжатие заголовка (Header Compression) – Некоторый трафик (например, такой как VoIP) может иметь небольшой объем данных приложения (RTP-аудио) в каждом пакете, но в целом отправлять много пакетов. В этом случае количество информации заголовка становится значимым фактором и часто потребляет больше полосы пропускания, чем данные. Сжатие заголовка решает эту проблему напрямую, устраняя многие избыточные поля в заголовке пакета. Удивительно, что сжатие заголовка RTP, также называемое сжатым транспортным протоколом реального времени (Compressed Real-time Transport Protocol - cRTP) уменьшает 40-байтовый заголовок до 2-4 байт!; Фрагментация и чередование (Link Fragmentation and Interleaving) - LFI решает проблему задержки сериализации путем измельчения больших пакетов на более мелкие части до их отправки. Это позволяет маршрутизатору перемещать критический VoIP-трафик между фрагментированными частями данных (которые называются «чередованием» голоса); Алгоритмы очередей Постановка в очереди (queuing) определяет правила, которые маршрутизатор должен применять при возникновении перегруженности. Большинство сетевых интерфейсов по умолчанию используют базовую инициализацию First-in, First-out (FIFO) . В этом методе сначала отправляется любой пакет, который приходит первым. Хотя это кажется справедливым, не весь сетевой трафик создается равным. Основная задача очереди - обеспечить, чтобы сетевой трафик, обслуживающий критически важные или зависящие от времени бизнес-приложения, отправлялся перед несущественным сетевым трафиком. Помимо очередности FIFO используются три первичных алгоритма очередности: Weighted Fair Queuing (WFQ)– WFQ пытается сбалансировать доступную полосу пропускания между всеми отправителями равномерно. Используя этот метод, отправитель с высокой пропускной способностью получает меньше приоритета, чем отправитель с низкой пропускной способностью; Class-Based Weighted Fair Queuing (CBWFQ) – этот метод массового обслуживания позволяет указать гарантированные уровни пропускной способности для различных классов трафика. Например, вы можете указать, что веб-трафик получает 20 процентов полосы пропускания, тогда как трафик Citrix получает 50 процентов пропускной способности (вы можете указать значения как процент или конкретную величину полосы пропускания). Затем WFQ используется для всего неуказанного трафика (остальные 30 процентов в примере); Low Latency Queuing (LLQ) - LLQ часто упоминается как PQ-CBWFQ, потому работает точно так же, как CBWFQ, но добавляется компонент приоритета очередей (Priority Queuing - PQ). Если вы указываете, что определенный сетевой трафик должен идти в приоритетную очередь, то маршрутизатор не только обеспечивает пропускную способность трафика, но и гарантирует ему первую полосу пропускания. Например, используя чистый CBWFQ, трафику Citrix может быть гарантированно 50% пропускной способности, но он может получить эту полосу пропускания после того, как маршрутизатор обеспечит некоторые другие гарантии трафика. При использовании LLQ приоритетный трафик всегда отправляется перед выполнением любых других гарантий. Это очень хорошо работает для VoIP, делая LLQ предпочтительным алгоритмом очередей для голоса; Существует много других алгоритмов для очередей, эти три охватывают методы, используемые большинством современных сетей
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59