Process switching - самая первая технология и самая ресурсоемкая. Каждый входящий пакет обрабатывается CPU. В этом случаи для каждого входящего пакета маршрутизатор по порядку сверяет записи в route table, пока не найдет подходящую. Разумеется, что на участках с высокой интенсивностью трафика и/или таблицами маршрутизации с обширным количеством префиксов это приводит к деградации других сервисов маршрутизатора и в целом его производительности.
Fast switching - следующий этап в развитии технологий L3 коммутации пактов. В отличии от process switching технологии, в данном случаи CPU обрабатывает только 1-ый пакет из потока, результаты сохраняются в кэш. Все последующие пакеты из этого же потока используют результат из данного кэша для дальнейшей коммутации.
CEF - технология высокоскоростной коммутации пакетов, являющаяся разработкой кампании Cisco. В основе быстродействия данной технологии лежат две заранее просчитанные таблицы содержащие всю необходимую информацию (L2 и L3) для быстрой пересылки пакетов: FIB (forwardig information base) и Adjacency table.
FIB - таблица содержащая необходимую для коммутации L3 информацию: префикс, адрес next-hop'a, куда следует переслать пакет и исходящий интерфейс, кудою этот пакет должен уйти на netxt-hop.
Prefix Next Hop Interface3.3.3.0/24 40.0.0.3 FastEthernet0/0
Adjacency table - таблица содержащая необходимую для коммутации L2 информацию (необходимый для формирования фрейма MAC-заголовок и исходящий интерфейс) для каждой записи в FIB и формируется отдельно от FIB. Источником для заполнения выступает mac-address table.
R1#sh adjacency detail Protocol Interface Address IP FastEthernet0/1 40.0.0.3(10) 0 packets, 0 bytes epoch 0 sourced in sev-epoch 1 Encap length 14 AABBCC000210AABBCC0001100800
где
AABBCC000210 - MAC-address получателя (aabb.cc00.0210)
AABBCC000110 - MAC-address нашего исходящего интерфейса FastEthernet 0/1 (aabb.cc00.0110)
0800 - EtherType ( 0x800 = IPv4)
По умолчанию CEF активирован на большинстве современных маршрутизаторах. В случаи необходимости CEF можно отключить:
- глобально
- на интерфейсе
Балансировка
В случаи наличия в RIB двух и более равнозначных путей к сети назначения CEF может балансировать нагрузку между данными путями в соответствии с заданным алгоритмом.
где вместо name необходимо вставить один из следующих алгоритмов:
По умолчанию CEF активирован на большинстве современных маршрутизаторах. В случаи необходимости CEF можно отключить:
- глобально
(config)# no ip cef
- на интерфейсе
(config-if)# no ip route-cache cef
Балансировка
В случаи наличия в RIB двух и более равнозначных путей к сети назначения CEF может балансировать нагрузку между данными путями в соответствии с заданным алгоритмом.
(config)# ip cef load-sharing algorithm "name"
где вместо name необходимо вставить один из следующих алгоритмов:
- original - алгоритм в основе которого лежит поточная балансировка (per source-destination HASH);
- universal - рекомендуемый Cisco и активный по умолчанию поточный алгоритм балансировки. В основе лежит более комплексная система вычисления hash'a в которой задействованы ip source + ip destination + ID.
- tunneling - алгоритм в основе которого лежит "per-packet" балансировка по принципу round-robin (пакет через 1-ый канал, пакет через 2-ой канал, снова пакет через 1-ый, снова через 2-ой и т.д.). Рекомендуемый к использованию в случаях где есть только несколько источников и получателей.
- include-ports - алгоритм поточной балансировки в котором учитывается src-ip , dst-ip и L4 информация (src-port, dst-port).