Масштабированность информационной базы пересылки FIB (Forwarding Information Base) в Express5

30.04.2024 45
FIB Scale in Express5

Благодаря имплементации нового метода использования памяти таблицы маршрутов, Express5 значительно расширил свои возможности в масштабировании маршрутов.

Express 5 — это новая интегральная схема специального назначения (Application-Specific Integrated Circuit, ASIC) компании Juniper Networks, разработанная специально для построения облачных сетей и нудж поставщиков услуг. Интегральная микросхема обеспечивает двукратную энергоэффективность, предоставляет расширенную информацию о трафике, аппаратную выборку, а также дополнительные функции и поддержку высокоскоростных и масштабируемых приложений маршрутизации, включая кластеры для обучения AI/ML с 16М маршрутов IPv4/IPv6 и 8М счетчиков с использованием устойчивой архитектуры на основе чиплетов.

Информационная база пересылки (Forwarding Information Base, FIB) — таблица в маршрутизаторе или коммутаторе, которая содержит информацию о том, куда направлять сетевой трафик для достижения его конечного назначения. FIB используется для принятия решений о пересылке пакетов на основе их IP-адресов.

Поддержка большой информационной базы пересылки (FIB) в ASIC требует поиска решения для балансировки работы между внутренней памятью Silicon и пропускной способностью внешней памяти. Интеграция всей FIB в чиплет физически невозможна для крупных FIB, а размещение всей FIB только во внешней памяти увеличивает стоимость проекта из-за необходимости выделения памяти для поиска маршрутов. Следовательно, в Express5 для решения этой задачи применяется комбинированный подход. Полная таблица маршрутов хранится во внешней основной памяти HBM, в то время как «рабочий» набор маршрутов содержится в достаточно большом внутреннем кэше. Процесс перемещения маршрутов из основной памяти в кэш полностью осуществляется аппаратно, без участия программного обеспечения. Таким образом, данный подход способен обеспечить как масштабируемость, так и хорошую производительность.

Сравнение масштабов FIB

Ниже приведено сравнение масштабов FIB, поддерживаемых различными версиями Express

Чипсет Поддерживаемые размеры ввода Масштабирование FIB без сжатия Масштабирование FIB с сжатием
Express1 и Express2 8, 16 слов 4 миллиона записей по 8 слов недоступно
Express3 5, 10 слов 512 тыс. записей из 5 слов недоступно
Express4 2, 5, 5, 10 слов 2 миллиона записей по 2,5 слова До 4 миллионов записей по 2,5 слова
Express5 2, 5, 5, 10 слов 10 миллионов записей по 10 слов До 16 миллионов записей по 10 слов

Таблица 1: сравнение масштабов FIB

Более подробную информацию о принципах компрессии FIB можете прочитать в этом материале: https://community.juniper.net/blogs/nicolas-fevrier/2022/09/19/ptx-fib-compression.

Кэш FIB

Express5 руководствуется логикой, что в реальных сетях большой процент установленных маршрутов не получают большого трафика, ибо практически весь активный трафик обрабатывает лишь небольшой процент маршрутизаторов. Согласно исследованию, представленному в NANOG (группа сетевых операторов Северной Америки) для сети Comcast https://archive.nanog.org/../20150603_Field_Motivation_Analysis_And_v1.pdf., FIB-таблица из 575 тыс. префиксов показала следующее распределение:

Процент от общего числа установленных маршрутов Процент трафика, передаваемого по этим маршрутам
0,50% 90%
4% 9%
23,50% 0,90%
72% 0,10%

Таблица 2: распределение FIB

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

В Express5 внутренняя разделяемая общая память служит в качестве кэша L1 для базы данных FIB, содержащей разделы для структур данных Nexthops и инкапсуляции. Специальное аппаратное устройство, ответственное за поиск маршрута, обрабатывает входной трафик, чтобы кэш был заполнен наиболее часто используемыми маршрутами.

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

Подсистема таблиц FIB

Рисунок 1: подсистема таблиц FIB

Для пересылки IP-адреса к его соответствующему адресу применяется набор масок префиксов, основанных на результатах фильтра Блума, которые затем проверяются в FIB. Этот процесс включает последовательную проверку кэша на совпадение с различными длинами префиксов, при которой выбирается наиболее подходящее совпадение. В случае отсутствия записи в кэше данные извлекаются из основной памяти и обновляются в кэше.

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