Общие сведения
Предварительные условия
Требования
Используемые компоненты
Условные обозначения
Базовые сведения
Что такое балансировка нагрузки?
Перед экспресс-пересылкой Cisco - сбор информации о различных путях или маршрутах
Настройка распределения нагрузки в Cisco Express Forwarding
Внутренний механизм балансировки пересылаемой нагрузки Cisco Express Forwarding
Проверка балансировки нагрузки при экспресс-пересылке Cisco Express Forwarding
Деление нагрузки после смены канала передачи данных.
Данные о распределении нагрузки, предназначенные для удаления
Известные проблемы
Поддержка оборудования для балансировки нагрузки Cisco Express Forwarding
Дополнительные сведения
Этот документ поясняет, как программное обеспечение Cisco IOS® реализует распределение нагрузки третьего уровня через множественные параллельные каналы, используя экспресс-пересылку Cisco (Express Forwarding).
Этот документ предполагает знание основных сведений о двух структурах данных Cisco Express Forwarding:
База данных пересылки (FIB);
Таблица смежности.
Обзор операций Cisco Express Forwarding см. в разделе Дополнительные сведения данного документа.
Сведения, содержащиеся в данном документе, не ограничены определенными версиями программного и аппаратного обеспечения.
Сведения, представленные в данном документе, были получены на тестовом оборудовании в специально созданных лабораторных условиях. При написании данного документа использовались только устройства с пустой (стандартной) конфигурацией. При работе в активной сети необходимо осознавать потенциальное воздействие любой команды перед ее использованием.
Дополнительные сведения об условных обозначениях см. в документе "Технические рекомендации Cisco. Условные обозначения".
IP-коммутация – это внутренний механизм, используемый Cisco IOS для передачи пакетов через маршрутизатор. Доступные механизмы включают коммутацию процессов, быструю коммутацию и экспресс-пересылку Cisco. Подробнее об этом механизме см. "Обзор коммутации путей Cisco IOS". Общая производительность системы и распределение нагрузки изменяются в зависимости от того, какой из трех механизмов используется для коммутации основной части пакетов.
Механизмы IP-коммутации поддерживают два общих режима – пакетный и по месту назначения. В следующей таблице описываются преимущества и недостатки обоих режимов.
По месту назначения |
Пакетный |
|
---|---|---|
Механизм коммутации IP |
Быстрая коммутация и пересылка по месту назначения Cisco Express Forwarding. |
Коммутация процесса и пакетная пересылка Cisco Express Forwarding. |
Преимущества |
Быстрая коммутация гарантирует, что пакеты в данное место назначения будут отправляться по одному пути, даже если доступно несколько. Коммутация Cisco Express Forwarding гарантирует, что пакеты для определенного сочетания исходных и конечных узлов будут отправляться по одному пути, даже если доступно несколько. Трафик для различных сочетаний будет проходить разными путями. |
Распределение нагрузки по пакетам позволяет маршрутизатору распределять последовательные пакеты данных по разным путям, не учитывая адреса отдельных узлов и пользовательские сеансы. Использует метод карусели (round-robin) для определения пути каждого пакета к месту назначения |
Недостатки |
При быстрой коммутации коммутация по месту назначения может привести к неравномерной балансировке нагрузки, поскольку пакеты с одним назначением всегда проходят по одному и тому же пути. Коммутация Cisco Express Forwarding может привести к неравномерному распределению при малом числе пар исходных и конечных узлов. Поскольку балансировка нагрузки на получателя зависит от статистического распределения трафика, эффективность распределения нагрузки увеличивается по мере увеличения количества пар "источник-получатель". |
Пакеты для определенного сочетания исходных и конечных узлов могут передаваться по разным маршрутам, т. е. может потребоваться их переупорядочить. Это не рекомендуется для Voice over IP (VoIP) и других потоков, в которых пакеты должны доставляться последовательно. |
Балансировка (распределение) нагрузки описывает возможность маршрутизатора передавать пакеты IP-адресу места назначения (также известно, как префикс IP) по более чем одному пути.
При обсуждении балансировки нагрузки сначала следует задать следующие термины.
Термин |
Определение |
---|---|
Префикс |
Описывает IP-сеть назначения, например 192.16.10.0/24. Cisco IOS добавляет IP-префикс места назначения в маршрутную таблицу, используя сведения, полученные из обмена сообщениями по протоколу динамической маршрутизации или с помощью ручной конфигурации статических маршрутов. |
Путь |
Описывает действительный маршрут до префикса места назначения. Cisco IOS назначает каждому пути стоимость. Набор активных путей к префиксу места назначения может иметь равные или отличающиеся стоимости. |
Сеанс |
Описывает однонаправленный поток связи между двумя IP-узлами. Для всех пакетов сеанса используется одинаковый IP-адрес источника и места назначения. |
Подробнее см. "Как работает балансировка нагрузки?"
Информация о путях, содержащаяся в таблице IP-маршрутизации, используется в экспресс-пересылке Cisco для равномерного распределения трафика по нескольким физическим каналам. По этой причине проверка правильности распределения нагрузки с помощью функции экспресс-пересылки Cisco Express Forwarding начинается с проверки содержимого таблицы маршрутизации.
В следующей топологии два маршрутизатора, A и B, связываются встречно-параллельно по трем последовательным интерфейсам с инкапсуляцией высокоуровневого управления каналом передачи данных (HDLC).
Маршрутизатор A |
Маршрутизатор B |
---|---|
interface Ethernet 0 ip address 194.168.20.1 255.255.255.0 ! interface Serial1 ip address 10.10.10.1 255.255.255.0 ! interface Serial2 ip address 20.20.20.1 255.255.255.0 ! interface Serial3 ip address 30.30.30.1 255.255.255.0 ip ospf cost 100 ! router ospf 1 network 10.10.10.0 0.0.0.255 area 0 network 20.20.20.0 0.0.0.255 area 0 network 30.30.30.0 0.0.0.255 area 0 network 192.168.20.0 0.0.0.255 area 0 |
interface Serial1 ip address 10.10.10.2 255.255.255.0 clockrate 2000000 ! interface Serial2 ip address 20.20.20.2 255.255.255.0 clockrate 148000 ! interface Serial3 ip address 30.30.30.2 255.255.255.0 ip ospf cost 100 clockrate 148000 router ospf 1 network 10.10.10.0 0.0.0.255 area 0 network 20.20.20.0 0.0.0.255 area 0 network 30.30.30.0 0.0.0.255 area 0 maximum-paths 1 |
Давайте посмотрим, как маршрутизатор B выбирает один или более путей к IP-сети 194.168.20.0 на Ethernet-интерфейсе маршрутизатора A.
По умолчанию протокол маршрутизации с выбором кратчайшего пути (OSPF) поддерживает четыре маршрута одинаковой стоимости. В данном сценарии маршрутизатор B настроен с максимальным числом путей равным одному. Таким образом, маршрутизатор B будет выбирать только один путь среди всех доступных и равных, в зависимости от того, который получен первым. Сначала маршрутизатор B выбирает последовательный порт 2 как единственный путь к сети 194.168.20.0. Используйте команду show ip cef и show ip route для просмотра текущего набора пути.
RouterB#show ip cef 194.168.20.0 194.168.20.0/24, version 59, cached adjacency to Serial2 0 packets, 0 bytes via 20.20.20.1, Serial2, 0 dependencies next hop 20.20.20.1, Serial2 valid cached adjacency RouterB#show ip route 194.168.20.0 Routing entry for 194.168.20.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Redistributing via ospf 1 Last update from 20.20.20.1 on Serial2, 00:03:58 ago Routing Descriptor Blocks: * 20.20.20.1, from 204.204.204.1, 00:03:58 ago, via Serial2 Route metric is 74, traffic share count is 1
Команда maximum-paths под управлением OSPF разрешает использование нескольких путей к таблице маршрутизации. OSPF позволяет только распределение нагрузки в соответствии с равной стоимостью. Чтобы настроить распределение нагрузки для неравной стоимости, настройте протокол EIGRP/IGRP как протокол IGP. Подробнее см. "Как работает балансировка нагрузки путей c неравной стоимостью (вариация) в IGRP и EIGRP?".
RouterB(config)#router ospf 1 RouterB(config-router)#maximum-paths ? <1-6> Number of paths RouterB(config-router)#maximum-paths 3
Используйте команду show ip route, чтобы убедиться, что таблица маршрутизации содержит два пути к узлу 194.168.20.0.
RouterB#show ip route 194.168.20.0 Routing entry for 194.168.20.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Redistributing via ospf 1 Last update from 10.10.10.1 on Serial1, 00:00:11 ago Routing Descriptor Blocks: * 20.20.20.1, from 204.204.204.1, 00:00:11 ago, via Serial2 Route metric is 74, traffic share count is 1 10.10.10.1, from 204.204.204.1, 00:00:11 ago, via Serial1 Route metric is 74, traffic share count is 1 !--- Метрика маршрута равна 74 для обоих путей.
Хотя мы настроили OSPF на поддержку трех маршрутов одинаковой стоимости, в выводе команды show ip route видны только два активных маршрута. Определить причину можно с помощью команды show ip ospf interface. Serial 3 имеет более высокую стоимость, чем Serial 1 и Serial 2, таким образом, они не равны.
RouterB#show ip ospf interface s1 Serial1 is up, line protocol is up Internet Address 10.10.10.4/24, Area 0 Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64 RouterB#show ip ospf interface s2 Serial2 is up, line protocol is up Internet Address 20.20.20.2/24, Area 0 Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64 RouterB#show ip ospf interface s3 Serial3 is up, line protocol is up Internet Address 30.30.30.2/24, Area 0 Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 100
Используйте команду show run, чтобы убедиться, что Serial 3 настроен с помощью команды ip ospf cost 100. Используйте команду подчиненного интерфейса no ip ospf cost 100, чтобы удалить его из конфигурации и сделать стоимость трех последовательных каналов равной.
RouterB#show run interface s3 Building configuration... Current configuration: ! interface Serial3 ip address 30.30.30.2 255.255.255.0 no ip directed-broadcast ip ospf cost 100 ip ospf interface-retry 0
Теперь команда show ip route отображает три пути равной стоимости к сети 194.168.20.0.
RouterB#show ip route 194.168.20.0 Routing entry for 194.168.20.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Redistributing via ospf 1 Last update from 10.10.10.1 on Serial1, 00:00:01 ago Routing Descriptor Blocks: * 20.20.20.1, from 204.204.204.1, 00:00:01 ago, via Serial2 Route metric is 74, traffic share count is 1 30.30.30.1, from 204.204.204.1, 00:00:01 ago, via Serial3 Route metric is 74, traffic share count is 1 10.10.10.1, from 204.204.204.1, 00:00:01 ago, via Serial1 Route metric is 74, traffic share count is
Теперь посмотрим, как балансировка загрузки Cisco Express Forwarding использует сведения из таблицы маршрутизации для пересылки пакетов.
Распределение нагрузки при экспресс-пересылке Cisco выполняется с помощью таблицы распределения нагрузки. Также как и со всеми другими решениями балансировки нагрузки на маршрутизаторах Cisco, решение о балансировке нагрузки принимается на исходящих интерфейсах. В отличие от других методов коммутации, пути каналов экспресс-пересылки Cisco основаны на адресе как источника, так и места назначения пути. Чтобы упростить эту схему, можно назвать путь IP-сеансом, каждый из которых логически определяется как уникальная пара адресов "источник-место назначения".
Для пояснения принципов работы распределения нагрузки нужно сначала понять, как связаны таблицы. Таблица Cisco Express Forwarding указывает на 16 хеш-ячеек (таблица распределения нагрузки), которые, в свою очередь, указывают на примыкающую таблицу для параллельных маршрутов. Подробнее см. "Внутренний механизм балансировки пересылаемой нагрузки Cisco Express Forwarding". Каждый пакет, который необходимо переслать, разбивается на пару адресов источник-место назначения и проверяется по таблице распределения нагрузки.
Примечание. Есть два главных типа коммутации Cisco Express Forwarding: пересылка по месту назначения и пакетная. Если на маршрутизаторе используются оба типа, каждый из них имеет свою таблицу распределения нагрузки.
Распределение нагрузки по месту назначения позволяет маршрутизатору использовать несколько путей для распределения загрузки. Балансировка нагрузки по месту назначения включается по умолчанию, если включена функция Cisco Express Forwarding, причем это предпочтительный метод балансировки нагрузки для большинства ситуаций. Поскольку балансировка нагрузки по месту назначения зависит от статистического распределения трафика, эффективность распределения нагрузки увеличивается по мере увеличения количества пар "источник-место назначения".
Распределение нагрузки по пакетам позволяет маршрутизатору распределять последовательные пакеты данных по разным путям, не учитывая адреса отдельных узлов и пользовательские сеансы. Маршрутизатор использует метод карусели для определения пути каждого пакета к месту назначения. Пакетная балансировка нагрузки гарантирует распределение нагрузки по нескольким каналам передачи. Удобно использовать пути с балансировкой нагрузки по пакетам, но пакеты для определенной пары узлов “исходный-конечный” могут использовать разные пути, что может привести к реорганизации пакетов. По этой причине пакетная балансировка нагрузки не подходит для некоторых типов трафика данных, таких как VoIP, где прибытие пакетов в пункт назначения должно происходить в определенной последовательности. Используйте пакетную балансировку, чтобы убедиться, что путь для отдельной пары источник-место назначения не перегружается.
Используйте команду ip load-sharing для перехода между пакетным методом и методом по месту назначения
7200-1.3(config)#interface fast 0/0 7200-1.3(config-if)#ip load-sharing ? per-destination Deterministic distribution per-packet Random distribution 7200-1.3(config-if)#ip load-sharing per-packet
Используйте команду show cef interface для подтверждения изменений.
7200-1.3#show cef interface fast 0/0 FastEthernet0/0 is up (if_number 3) Corresponding hwidb fast_if_number 3 Corresponding hwidb firstsw->if_number 3 Internet address is 172.16.81.13/24 ICMP redirects are always sent Per packet load-sharing is enabled IP unicast RPF check is disabled Inbound access list is not set Outbound access list is not set IP policy routing is disabled Hardware idb is FastEthernet0/0 Fast switching type 1, interface type 18 IP CEF switching enabled IP Feature Fast switching turbo vector IP Feature CEF switching turbo vector Input fast flags 0x0, Output fast flags 0x0 ifindex 1(1) Slot 0 Slot unit 0 VC -1 Transmit limit accumulator 0x0 (0x0) IP MTU 1500
Проанализируем внутренний механизм балансировки нагрузки при экспресс-пересылке Cisco Express Forwarding.
Каждому сеансу (см. таблицу выше) назначается активный путь.
Назначение session-to-path assignment выполняется при помощи хэш-функции, которая использует IP-адреса источника и получателя, а в последних версиях Cisco IOS и уникальный хэш-идентификатор, который распределяет случайным образом место назначения в сквозном маршруте.
Активные пути назначаются внутренне, для некоторых из 16 хэш-областей. Назначение пути к ячейке изменяется в зависимости от типа выравнивания нагрузки и числа активных путей.
Результат хэш-функции используется для выбора одного из разрешенных "ведер" , а затем для выбора маршрута, который будет использоваться в этом сеансе.
Для всех сеансов, переправляемых на маршрутизатор, каждый активный путь поддерживает одно и то же число сеансов.
Пример таких внутренних действий Cisco Express Forwarding.
Используйте команду maximum-paths для снижения количества активных путей в префиксе места назначения до двух.
RouterB(config)#router ospf 1 RouterB(config-router)#maximum-paths 2
Используйте команду show ip cef {prefix} internal для просмотра назначений путей областям памяти (ведрам).
RouterB#show ip cef 194.168.20.0 internal 194.168.20.0/24, version 66, per-destination sharing 0 packets, 0 bytes via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency 0 packets, 0 bytes switched through the prefix Load distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (refcount 1) !--- В строке распределения нагрузки показано, каким образом каждый путь !--- назначен хэш-областям памяти. Hash OK Interface Address Packets 1 Y Serial2 point2point 0 2 Y Serial3 point2point 0 3 Y Serial2 point2point 0 4 Y Serial3 point2point 0 5 Y Serial2 point2point 0 6 Y Serial3 point2point 0 7 Y Serial2 point2point 0 8 Y Serial3 point2point 0 9 Y Serial2 point2point 0 10 Y Serial3 point2point 0 11 Y Serial2 point2point 0 12 Y Serial3 point2point 0 13 Y Serial2 point2point 0 14 Y Serial3 point2point 0 15 Y Serial2 point2point 0 16 Y Serial3 point2point
16 хэш-областей памяти настраиваются в зависимости от типа балансировки нагрузки и количества активных маршрутов. Самый простой случай касается четного количества путей. 16 "ведер" поровну заполнены активными путями. Если 16 не делится на количество активных путей, последние несколько ведер, представляющие остаток деления, будут отключены. В следующей таблице показано, как выглядят хэш-области памяти для двух и трех активных путей.
Область памяти/Пути |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
3 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
1 |
2 |
x |
В следующем примере представлены три пути к месту назначения. Обратите внимание, как Cisco Express Forwarding удалит хэш-область памяти 16, и как три последовательных канала поровну распределены среди хэш-областей с 1 по 15.
RouterB#show ip cef 194.168.20.0 interface 194.168.20.0/24, version 64, per-destination sharing 0 packets, 0 bytes via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency 0 packets, 0 bytes switched through the prefix Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1) !--- Активные пути назначаются хэш-областям памяти !--- по карусельному методу. Hash OK Interface Address Packets 1 Y Serial2 point2point 0 2 Y Serial3 point2point 0 3 Y Serial1 point2point 0 4 Y Serial2 point2point 0 5 Y Serial3 point2point 0 6 Y Serial1 point2point 0 7 Y Serial2 point2point 0 8 Y Serial3 point2point 0 9 Y Serial1 point2point 0 10 Y Serial2 point2point 0 11 Y Serial3 point2point 0 12 Y Serial1 point2point 0 13 Y Serial2 point2point 0 14 Y Serial3 point2point 0 15 Y Serial1 point2point 0 !--- Хэш-область памяти 16 удалена.
Примечание. Хотя механизм пересылки по месту назначения и механизм быстрой коммутации Cisco Express Forwarding оба выбирают для места назначения один путь, они различаются в том, как именно они выбирают этот путь. Cisco Express Forwarding принимает во внимание оба IP-адреса, и источника, и места назначения, а быстрая коммутация использует только IP-адреса места назначения.
Используйте следующие шаги для проверки балансировки нагрузки при экспресс-пересылке Cisco Express Forwarding на своем маршрутизаторе.
Убедитесь, что функция экспресс-пересылки Cisco Express Forwarding глобально включена на маршрутизаторе.
S3-4K-2#show ip cef %CEF not running Prefix Next Hop Interface !--- Из выходных данных следует, что функция Cisco Express Forwarding не включена. !--- Используйте команду ip cef в глобальной конфигурации для ее включения.
Убедитесь, что пакетная коммутация или коммутация по месту назначения включена на конкретных исходящих интерфейсах. По умолчанию установлена коммутация по месту назначения.
RouterA#show cef interface s1 Serial1 is up (if_number 3) Internet address is 10.10.10.1/24 ICMP redirects are always sent Per packet loadbalancing is disabled IP unicast RPF check is disabled Inbound access list is not set Outbound access list is not set Interface is marked as point to point interface Hardware idb is Serial1 Fast switching type 4, interface type 40 IP CEF switching enabled !--- Функция Cisco Express Forwarding включена на интерфейсе. IP CEF Fast switching turbo vector Input fast flags 0x0, Output fast flags 0x0 ifindex 5(5) Slot 0 Slot unit 1 VC -1 Transmit limit accumulator 0x0 (0x0) IP MTU 1500
Убедитесь, что таблица маршрутизации и таблица Cisco Express Forwarding содержит все параллельные пути, используя команду show ip route.
RouterB#show ip route 192.168.20.0 Routing entry for 192.168.20.0/32, 1 known subnets O 192.168.20.1 [110/65] via 20.20.20.1, 00:06:54, Serial1 [110/65] via 10.10.10.1, 00:06:54, Serial2 [110/65] via 30.30.30.1, 00:06:54, Serial3
Проверьте таблицу экспресс-пересылки FIB Cisco с помощью команды show ip cef.
RouterB#show ip cef 192.168.20.0 192.168.20.0/24, version 18, per-destination sharing 0 packets, 0 bytes via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency 0 packets, 0 bytes switched through the prefix tmstats: external 0 packets, 0 bytes internal 0 packets, 0 bytes RouterB#show ip cef 192.168.20.0 internal 192.168.20.0/24, version 18, per-destination sharing 0 packets, 0 bytes via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency 0 packets, 0 bytes switched through the prefix tmstats: external 0 packets, 0 bytes internal 0 packets, 0 bytes Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1) Hash OK Interface Address Packets 1 Y Serial3 point2point 0 2 Y Serial2 point2point 0 3 Y Serial1 point2point 0 4 Y Serial3 point2point 0 5 Y Serial2 point2point 0 6 Y Serial1 point2point 0 7 Y Serial3 point2point 0 8 Y Serial2 point2point 0 9 Y Serial1 point2point 0 10 Y Serial3 point2point 0 11 Y Serial2 point2point 0 12 Y Serial1 point2point 0 13 Y Serial3 point2point 0 14 Y Serial2 point2point 0 15 Y Serial1 point2point 0
Примечание. Таблица распределения нагрузки, приведенная выше, показывает распределение нагрузки 0 1 2 0 1 2 . . . , а доля трафика равна 1 для каждого маршрута. Это означает равное разделение нагрузки между тремя маршрутами одинаковой стоимости с коммутацией по месту назначения.
Проверьте смежности Cisco Express Forwarding.
RouterB#show adjacency detail Protocol Interface Address IP Serial1 point2point(11) 0 packets, 0 bytes 0F000800 CEF expires: 00:02:31 refresh: 00:00:31 IP Serial2 point2point(11) 0 packets, 0 bytes 0F000800 CEF expires: 00:02:31 refresh: 00:00:31 IP Serial3 point2point(11) 0 packets, 0 bytes 0F000800 CEF expires: 00:02:31 refresh: 00:00:31
Убедитесь, что нужный механизм балансировки нагрузки Cisco Express Forwarding настроен на всех исходящих интерфейсах.
RouterB#show ip cef 194.168.20.0 194.168.20.0/24, version 89, per-destination sharing 0 packets, 0 bytes via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency [output omitted]
Включите учет хэш-областей памяти (ведер) для сбора статистики, которая позволяет лучше понять шаблоны поведения функции экспресс-пересылки Cisco Express Forwarding в сети. Например, можно собирать такие сведения, как число пакетов и байтов, пересланных к месту назначения, или число пакетов, пересланных через место назначения. Используйте следующую команду:
router(config)# ip cef accounting load-balance-hash
Проверьте поток пакетов, отследив значения в поле Packet.
RouterB#show ip cef 192.168.20.0 internal [...] Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1) Hash OK Interface Address Packets 1 Y Serial point2point 0 2 Y Serial2 point2point 0 3 Y Serial1 point2point 0 4 Y Serial3 point2point 0 5 Y Serial2 point2point 35 6 Y Serial1 point2point 0 7 Y Serial3 point2point 0 8 Y Serial2 point2point 60 9 Y Serial1 point2point 0 10 Y Serial3 point2point 0 11 Y Serial2 point2point 0 12 Y Serial1 point2point 0 13 Y Serial3 point2point 0 14 Y Serial2 point2point 30 15 Y Serial1 point2point 0
125 пакетов прошло через Serial 2. При использовании команды ping для генерации трафика убедитесь в том, что пакеты эхо-теста пересылаются на маршрутизатор с включенной функцией коммутации Cisco Express Forwarding. Другими словами, необходимо, чтобы пакеты эхо-теста поступали с одного интерфейса с включенной функцией коммутации Cisco Express Forwarding, коммутировались с помощью данной функции и передавались с помощью другого интерфейса с включенной функцией коммутации Cisco Express Forwarding.
Примечание. Распределение нагрузки по месту назначения становится более эффективным при увеличении количества пар источник-место назначения.
При пересылке трафика префиксу следует получить несколько раз выходные данные с помощью команды show interface. Проанализируйте значения "txload" и "rxload". (Некоторые интерфейсы показывают общее значение "load", что подразумевает и прием, и передачу). Хотя пакетная балансировка нагрузки обеспечивает равное распределение по числу пакетов, параллельные каналы могут показывать несколько разную скорость в зависимости от размера пакетов.
Serial1/0:0 is up, line protocol is up reliability 255/255, txload 10/255, rxload 3/255 Serial1/1:0 is up, line protocol is up reliability 255/255, txload 18/255, rxload 3/255
При балансировке нагрузки с помощью функции Cisco Express Forwarding по месту назначения можно определять, какому пути назначен сеанс, с помощью следующей команды. Добавьте ключевое слово internal, чтобы увидеть, какая хэш-область памяти используется.
show ip cef exact-route {source-ip-address} {dest-ip-address} [internal] RouterB# show ip cef exact-route 50.50.50.2 192.168.20.1 internal 50.50.50.2 -> 192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 4 from 15, total 3 paths RouterB# show ip cef exact-route 5.5.5.1 192.168.20.1 internal 5.5.5.1 ->192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 7 from 15, total 3 paths RouterB# show ip cef exact-route 6.6.6.1 192.168.20.1 internal 6.6.6.1 -> 192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 7 from 15, total 3 paths RouterB# show ip cef exact-route 8.8.8.1 192.168.20.1 internal 8.8.8.1 -> 192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 13 from 15, total 3 paths
Если результат нечетный, выполните следующее:
Число уникальных пар адресов или сеансов "источник-место назначения", проходящих по параллельным каналам;
Число и размер пакетов в каждом сеансе. Может ли в одном сеансе обрабатываться большое количество пакетов? Поскольку целевая балансировка нагрузки зависит от статистического распределения трафика, эффективность распределения нагрузки увеличивается по мере увеличения количества пар "источник-место назначения".
Когда изменения в таблице маршрутизации приводят к коррекции числа активных путей к месту назначения, Cisco Express Forwarding обновляет структуру балансировки нагрузки, которую можно увидеть в выходных данных команды show ip cef {prefix} internal. Cisco Express Forwarding затем соотносит новые прибывающие пакеты со смежностью и соответствующей областью хэширования. Выбранная область памяти может совпадать (а может и не совпадать) с используемой ранее.
Следующие шаги описывают, как обновляется информация о балансировке нагрузки Cisco Express Forwarding после изменения в числе активных маршрутов к префиксу места назначения.
Предположим, что префикс места назначения может быть достигнут двумя путями. Путь 1 неактивен, а путь 2 активен и по нему проходит весь трафик.
Когда путь 1 снова станет доступным, он отправит запрос на выполнение процесса повторной сходимости IP-маршрутизации.
Функция экспресс-пересылки Cisco распределяет нагрузку по обоим путям, не сохраняя существующие потоки, проходящие по пути 2. В противном случае путь 1 остался бы незадействованным. Другими словами, технология Cisco Express Forwarding не учитывает возможность пересылки пакетов в одном сеансе по допустимому пути. Может быть выбран новый путь для потока, в зависимости от указанной области хэширования.
После внесения изменений в таблицу маршрутизации функция Cisco Express Forwarding удаляет структуры распределения нагрузки, назначающие активные пути для областей хеширования, а потом создает их заново. Во время процесса восстановления некоторые пакеты могут быть утеряны, и команда show ip cef {prefix} internal покажет Load sharing information due for deletion (Данные о распределении нагрузки для удаления).
router#show ip cef 10.10.128.0 int 10.10.128.0/28, version 63, per-destination sharing 0 packets, 0 bytes via 10.8.0.31, 0 dependencies, recursive next hop 10.8.2.49, POS0/0/0 valid adjacency Load sharing information due for deletion
Изменения, производимые с помощью исправления Cisco CSCdm87127, минимизируют потери пакетов во время изменения числа активных путей для маршрута по умолчанию 0.0.0.0. Cisco Express Forwarding размещает запись FIB с пространством для максимального количества возможных активных путей для данного маршрута.
Балансировка нагрузки Cisco Express Forwarding выполняется неравномерно для четырех маршрутов. Подробнее см. исправление с идентификатором CSCdm87756 (только для зарегистрированных пользователей).
В более ранних версиях Cisco IOS, чем 12.0(16)S, ввод команды show ip cef exact-route может вызвать перезагрузку процессора маршрутизации (RP) в Интернет-маршрутизаторе Cisco серии 12000 и маршрутизаторе серии 7500/RSP. Данная ситуация складывается в том случае, когда префикс направления рекурсивный, а маршрутизатор распределяет нагрузку на следующий переход. Подробнее см. исправление с идентификатором CSCdt80914 (только для зарегистрированных пользователей), где описано решение данной проблемы.
Пакетная балансировка нагрузки Cisco Express Forwarding изначально поддерживалась платформами, использующими программную пересылку. Такие платформы включают маршрутизаторы Cisco серии 2600, 3600 и 7200. Попакетное распределение нагрузки теперь поддерживается в аппаратных средствах, использующих PXF (Parallel Express Forwarding), на сериях 7200 с NSE-1, а также 10000. В продуктах серии Catalyst 6000 команды Cisco IOS Cisco Express Forwarding ip load-sharing per-packet, ip cef accounting per-prefix и ip cef accounting non-recursive на MSFC2 применяются только к трафику, который обрабатывается функцией коммутации Cisco Express Forwarding в программном обеспечении на MSFC2. Команды не влияют на трафик, коммутируемый на третьем уровне на PFC2 или модулях коммутации, оснащенных DFC. Подробнее см. "Настройка одноадресной IP-коммутации третьего уровня на управляющем модуле Supervisor Engine 2".
Примечание. Маршрутизатор Cisco 7300 с платой процессора NSE-100 не поддерживают пакетную балансировку нагрузки CEF в PXF. PXF поддерживает только целевую балансировку нагрузки. Однако, вероятно, это возможно благодаря командам конфигурации, которые доступны в CLI маршрутизатора. Эта проблема описана в исправлении с идентификатором Cisco CSCdx63389.
В продуктах серии 12000 пакетная балансировка нагрузки доступна во всех модулях пересылки уровня три, кроме модулей 3 и 4. Каждая линейная плата принимает независимые решения о пересылке. Чтобы просмотреть точный маршрут каждого IP-потока, используйте команду exec slot X show ip hardware-cef exact-route src dst на линейной плате, которая использует аппаратные таблицы Cisco Express Forwarding.