Протокол IP : IP-коммутация

Как выбрать наилучший путь коммутации маршрутизатора для вашей сети

16 ноября 2010 - Перевод, выполненный профессиональным переводчиком
Другие версии: PDF-версия:pdf | Машинный перевод (30 июля 2013) | Английский (10 августа 2005) | Отзыв

Быстрая коммутация

При быстрой коммутации используется двоичное дерево для хранения сведений о пересылке и перезаписи заголовка MAC. Двоичное дерево обеспечивает быстрое отыскание и сверку данных. Двоичное дерево показано на следующем рисунке.

/image/gif/paws/13706/20c.gif

В случае быстрой коммутации факт досягаемости подтверждается существованием узла в двоичном дереве для получателя пакета. Заголовок MAC и исходящий интерфейс для каждого получателя сохраняются в составе сведений об узле в дереве. Двоичное дерево может фактически иметь 32 уровня (приведенное выше дерево предельно упрощено для наглядности).

Для поиска в двоичном дереве нужно просто, двигаясь от левой цифры (старшего разряда) двоичного числа, переходить на левую или правую ветвь дерева в зависимости от конкретного числа. Например, если требуется отыскать сведения, связанные с числом 4 в этом дереве, то сначала нужно перейти на правую ветвь, потому что первая двоичная цифра – 1. Далее нужно следовать по дереву вниз, сравнивая следующую цифру в двоичном числе, пока не будет достигнут конец.

Характеристики быстрой коммутации

Быстрая коммутация обладает рядом характеристик, которые обусловлены структурой двоичного дерева и хранением данных о перезаписи заголовка MAC в составе узлов дерева.

  • Поскольку корреляция количества между таблицей маршрутизации и содержанием кэша быстрой коммутации (например, данными о перезаписи заголовка MAC) отсутствует, то при формировании записей кэша выполняется вся работа, которая должна быть выполнена в пути коммутации в контексте процесса. Поэтому записи кэша быстрой коммутации формируются при коммутации пакетов в контексте процесса.

  • Вследствие отсутствия корреляции между заголовками MAC (используемыми для перезаписи) в кэше ARP и структурой кэша быстрой коммутации, при изменении таблицы ARP часть кэша быстрой коммутации должна стать недействительной (и должна быть создана повторно при коммутации в контексте процесса).

  • Кэш быстрой коммутации может создавать записи на одном уровне (длиной в один префикс) для определенного места назначения в таблице маршрутизации.

  • Кэш быстрой коммутации не позволяет напрямую от одной записи перейти к другой (предполагается, что заголовок MAC и информация об исходящем интерфейсе находятся в пределах узла), поэтому все рекурсивные маршруты должны быть устранены на этапе формирования записи кэша. Другими словами, рекурсивные маршруты не могут быть разрешены непосредственно в пределах кэша быстрой коммутации.

Устаревание записей быстрой коммутации

Для того, чтобы записи быстрой коммутации не оказались рассинхронизированы с таблицей маршрутизации и кэшем ARP, а неиспользуемые записи в кэше не расходовали память маршрутизатора, каждую минуту из кэша произвольно удаляется 1/20 его часть. Когда объем свободной памяти маршрутизатора опускается ниже критически низкого уровня, каждую минуту удаляется 1/5 записей кэша.

Длина префикса при быстрой коммутации

Какой длины префикс используется средством скоростной коммутации при построении записей, если для каждого пункта назначения допустимо только одно значение длины? В терминах быстрой коммутации получатель – это одиночный доступный получатель из таблицы маршрутизации или основная сеть. Для определения длин префиксов при построении отдельных записей кэша действуют следующие правила:

  • При создании записи кэширования для скоростной политики кэшируются сети вплоть до /32.

  • В случае создания записи для мультипротокольного доступа по виртуальному каналу ATM (MPOA VC) всегда кэшируется /32.

  • Если сеть не разделена на подсети (запись основной сети):

    • В случае прямого подключения используется сеть /32.

    • В противном случае используется маска основной сети.

  • В случае суперсети используется маска суперсети.

  • Если сеть разделена на подсети:

    • В случае прямого подключения используется сеть /32.

    • Если к данной подсети ведет несколько маршрутов, используется сеть /32;

    • В этой основной сети во всех остальных случаях используется наибольшая длина префикса.

Распределение нагрузки

Быстрая коммутация целиком привязана к получателям; распределение нагрузки выполняется в масштабе отдельных получателей. При наличии нескольких путей равной стоимости для конкретной сети получателя кэш быстрой коммутации содержит одну запись для каждого хоста, доступного в этой сети, но весь трафик, адресованный конкретному хосту, проходит по одному и тому же соединению.

Оптимальная коммутация

В случае оптимальной коммутации сведения о пересылке и перезаписи заголовка MAC хранятся в разветвленном дереве (mtree) с 256 ветвями. Использование дерева типа mtree сокращает количество шагов, которые необходимо предпринять для отыскания префикса, как показано на следующем рисунке.

/image/gif/paws/13706/20d.gif

Каждый октет используется для определения конкретной ветви из 256 ветвей дерева, таким образом для отыскания любого получателя требуется не более 4 операций поиска. При меньшей длине префикса может быть достаточно одной-трех операций поиска. Сведения о перезаписи заголовка MAC и выходного интерфейса хранятся в составе узла дерева, поэтому аннулирование и устаревание записей кэша происходят таким же образом, как и при быстрой коммутации.

Оптимальная коммутация определяет длину префикса для каждой записи кэша таким же путем, как и быстрая коммутация.

Технология Cisco Express Forwarding

Технология быстрой коммутации Cisco Express Forwarding также использует структуру с 256 элементами для хранения информации о пересылке и заголовках MAC, но не использует древовидные структуры. Технология Cisco Express Forwarding использует TRIE-структуру. Это означает, что сами искомые сведения отсутствуют в структуре данных, вместо этого данные запоминаются в отдельной структуре, а TRIE-структура просто указывает на нее. Другими словами, вместо хранения информации об исходящем интерфейсе и перезаписи заголовка MAC непосредственно в самом дереве технология Cisco Express Forwarding хранит эту информацию в отдельной структуре данных, называемой таблицей смежности.

/image/gif/paws/13706/20e.gif

Это разделение сведений о доступности (в таблице Cisco Express Forwarding) и сведений о перенаправлении (в таблице соседей) предоставляет следующие преимущества:

  • Можно построить таблицу смежности отдельно от таблицы экспресс пересылки Cisco, что позволяет создавать обе таблицы без коммутации в контексте процесса.

  • Сведения о перезаписи заголовка MAC, используемые при пересылке, не хранятся в записях кэша, таким образом изменения в строке перезаписи заголовка MAC не требуют аннулирования записей кэша.

  • Рекурсивные маршруты можно разрешить через указание следующего повторного перехода вместо непосредственной информации о пересылке.

Фактически принцип устаревания кэша полностью устраняется, и кэш заранее формируется на основе сведений, содержащихся в кэше ARP и таблице маршрутизации. Для формирования записей кэша не требуется коммутировать какие-либо пакеты в контексте процесса.

Другие записи в таблице смежности

Таблица смежности может содержать иные записи, отличные от строк перезаписи заголовка MAC и сведений об исходящем интерфейсе. В числе различных типов записей, которые могут размещаться в таблице смежности, можно отметить следующие:

  • cache – строка перезаписи заголовка MAC в кэше и исходящий интерфейс, используемые для достижения определенного смежного узла или маршрутизатора.

  • receive – пакеты, предназначенные для этого IP-адреса, должны приниматься маршрутизатором. К подобным адресам относятся широковещательные адреса и адреса, настроенные непосредственно на маршрутизаторе.

  • drop – пакеты, направляемые на этот IP-адрес, подлежат удалению. Этот параметр может использоваться для трафика, отклоняемого списком контроля доступа, или направляемого на интерфейс NULL.

  • punt –технология Cisco Express Forwarding не может обработать этот пакет; обработка производится следующим по приоритету методом коммутации (обычно – быстрая коммутация).

  • glean – следующий переход подключен непосредственно, но в данный момент недоступны строки перезаписи заголовка MAC.

Смежности glean

Запись смежности glean указывает, что конкретный узел следующего перехода должен быть подключен непосредственно, но информация о перезаписи заголовка MAC недоступна. Каким образом формируются и используются эти сведения? Маршрутизатор под управлением Cisco Express Forwarding, подключенный к широковещательной сети, как показано на рисунке, по умолчанию создает несколько записей в таблице смежности.

/image/gif/paws/13706/20f.gif

По умолчанию создаются следующие четыре записи в таблице смежности:

10.1.1.0/24, version 17, attached, connected
0 packets, 0 bytes
  via Ethernet2/0, 0 dependencies
    valid glean adjacency
10.1.1.0/32, version 4, receive
10.1.1.1/32, version 3, receive
10.1.1.255/32, version 5, receive

Обратите внимание, что записей четыре: три записи типа receive и одна запись типа glean. Каждая запись типа receive представляет широковещательный адрес или адрес, настроенный на маршрутизаторе, а запись типа receive представляет остальную часть пространства адресов в подключенной сети. В случае приема пакета для хоста 10.1.1.50 маршрутизатор пытается выполнить его коммутацию и обнаруживает, что происходит разрешение пакета на данную смежность glean. Затем Cisco Express Forwarding сигнализирует о необходимости записи кэша ARP для 10.1.1.50, процесс ARP посылает пакет ARP, и соответствующая запись таблицы смежности создается на основе новых сведений из кэша ARP. После завершении этого этапа в таблице смежности будет присутствовать запись для адреса 10.1.1.50.

10.1.1.0/24, version 17, attached, connected
0 packets, 0 bytes
  via Ethernet2/0, 0 dependencies
    valid glean adjacency
10.1.1.0/32, version 4, receive
10.1.1.1/32, version 3, receive
10.1.1.50/32, version 12, cached adjacency 208.0.3.2
0 packets, 0 bytes
  via 208.0.3.2, Ethernet2/0, 1 dependency
    next hop 208.0.3.2, Ethernet2/0
    valid cached adjacency
10.1.1.255/32, version 5, receive

Следующий полученный маршрутизатором пакет, предназначенный для 10.1.1.50, коммутируется через эту новую смежность.

Распределение нагрузки

Технология Cisco Express Forwarding также использует в своих интересах разделение между таблицей Cisco Express Forwarding и таблицей смежности, что позволяет реализовать более эффективную форму распределения нагрузки по сравнению с другими режимами коммутации в контексте прерывания. Таблица распределения нагрузки вставляется между таблицей Cisco Express Forwarding и таблицей смежности, как показано на рисунке.

/image/gif/paws/13706/20g.gif

Таблица Cisco Express Forwarding указывает на эту таблицу распределения нагрузки, в которой, в свою очередь, содержатся указатели на записи таблицы смежности для доступных параллельных маршрутов. IP-адреса источника и получателя пропускаются через алгоритм хэширования для определения конкретной записи таблицы распределения нагрузки, используемой для каждого пакета. Может быть настроено разделение нагрузки на уровне отдельных пакетов. В этом случае каждый пакет использует отдельную запись из таблицы распределения нагрузки.

Каждая таблица распределения нагрузки содержит 16 записей, между которыми делятся доступные пути в зависимости от счетчика доли трафика в таблице маршрутизации. Если счетчики долей трафика в таблице маршрутизации все равны 1 (как в случае нескольких путей с равной стоимостью), то каждый следующий возможный переход получает равное количество указателей из таблицы распределения нагрузки. Если число доступных путей не будет делиться на 16 без остатка (с учетом того, что таблица распределения нагрузки содержит 16 записей), то некоторые пути будут иметь больше записей, чем другие.

Начиная с выпуска программного обеспечения Cisco IOS 12.0, количество записей в таблице распределения нагрузки уменьшается таким образом, чтобы каждый путь имел пропорциональное количество записей в таблице распределения нагрузки. Например, если в таблице маршрутизации имеются три пути с равной стоимостью, то используются только 15 записей из таблицы распределения нагрузки.

Какой путь коммутации следует выбрать?

По возможности для маршрутизаторов следует использовать коммутацию в контексте прерывания, поскольку этот режим как минимум на порядок быстрее, чем коммутация в контексте процесса. Коммутация Cisco Express Forwarding определенно быстрее и лучше любого другого режима коммутации. Мы рекомендуем использовать Cisco Express Forwarding, если эту технологию поддерживают используемый протокол и версия IOS. Это в особенности актуально при наличии нескольких параллельных соединений, по которым трафик должен передаваться с распределением нагрузки. На странице навигатора по функциям Cisco (доступной только зарегистрированным заказчикам) можно определить требуемую версию IOS для поддержки CEF.


Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 13706