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

30.04.2024 75
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 зберігає свою цілісність.

Схема 1: підсистема таблиць FIB

Схема 1: підсистема таблиць FIB

Для пересилання IP-адреси на її відповідну адресу використовується набір масок префіксів, заснованих на результатах фільтра Блума, які потім перевіряються в FIB. Цей процес складається із послідовної перевірки кеша на співпадіння з різними довжинами префіксів, під час якої обирають найоптимальніший варіант. У разі відсутності запису в кеші, дані отримують із основної пам’яті та оновлюють у кеші.

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