Город с двумя столицами: роль ASIC и CPU в L3-коммутаторе

Внутри коммутатора два физических устройства: CPU и ASIC. CPU принято называть Control Plane, там крутится сетевая операционная система, как правило, Linux. ASIC также называют Data Plane.
CPU (Control Plane) отвечает за:
-
сложную логику,
-
обработку служебного трафика,
-
управление ASIC.
ASIC (Data Plane) ответственен за:
-
простую логику на основе таблиц,
-
быструю обработку большого числа пакетов,
-
разбор заголовков, выбор выходного порта и выходного набора заголовков,
-
буферизацию, очереди, политики.
Администратор, который сидит в CLI, находится на CPU, а интерфейс, который он конфигурирует, — на соседнем устройстве ASIC.
Для простоты понимания можно думать о физическом устройстве коммутатора как о двух соседних городах. Первый город CPU — административный центр, он управляет своим соседом. Второй город ASIC — промышленный центр с крупными транспортными развязками и светофорами.
Физические порты находятся в ASIC, но управлять ими надо на CPU. На CPU крутятся сетевые демоны и разные алгоритмы, которые обрабатывают сетевой трафик. Его можно разделить на два вида:
-
Пользовательский. Например, фотографии котиков, которые при наличии всех маршрутов проходят через ASIC транзитом.
-
Служебный. ARP или протоколы маршрутизации, которые как раз должны обрабатываться демонами или алгоритмами на CPU.
Еще больше про устройство коммутатора читайте в статьях Антона Гузарева, тимлида команды, которая разрабатывает ПО для управления сетевыми устройствами в YADRO. Через кейс с ошибкой в коммутаторе он последовательно рассмотрела каждый его уровень в двух статьях:
→ Разбираемся с железом и настройками конфигурации
→ Ищем проблему с доставкой картинок с котиками на разных уровнях L3-коммутатора: от CLI до SDK