[Перевод] ASIC'и на границе
В Cloudflare мы гордимся своей сетью, которая охватывает более 200 городов в 100+ странах мира. Мы используем разные технологии, чтобы пропустить весь трафик, проходящий через нашу сеть. Сегодня давайте рассмотрим один из столпов этих технологий — ASIC’и. И нет, речь не про беговые кроссовки (в русскоязычной терминологии обычно говорят «асики», а по-английски читается «асиксы», что сходно с брендом «Асикс» — прим. пер.).
От переводчика:
если вы не первый день работаете с коммутаторами и маршрутизаторами, или если вы читали прекрасную статью «ASIC и FPGA: сорок лет эволюции», то рекомендую вам сразу перейти к обзору производителей ASIC’ов.
Что такое ASIC?
ASIC расшифровывается как Application Specific Integrated Circuit (специализированная интегральная схема). Как понятно из названия, это микросхема для специального использования, выполняющая определённую функцию. Полной противоположностью будет ЦП (CPU) или ГП (GPU). ЦП спроектирован выполнять универсальные вычисления, и неплохо справляется с широким спектром задачам. ГП больше заточен под графику (поэтому так и называется), но в последние 15 лет развитие ГП сдвинулось в сторону графических процессоров общего назначения (General Purpose GPU, GPGPU), в которых такие технологии как CUDA или OpenCL позволяют производить универсальные вычисления на ГП. Хороший пример этого — использование ГП для кодирования видео, или для компьютерного зрения в беспилотных автомобилях.
В отличие от ЦП или ГП, ASIC’и призваны выполнять только одну функцию. Их яркий представитель — тензорный процессор Google (TPU) [1], используемый для ускорения функций машинного обучения, или для маневрирования на орбите <Земли> [2], когда в микросхеме кодируются специальные расчёты. Такие как гóмановская траектория, используемая для сдвига ракет (и их полезной нагрузки) на новую траекторию или орбиту. Похожие микросхемы массово используются в отрасли сетевого оборудования. Технически, в сетевой отрасли надо бы называть микросхемы ASSP (Application Specific Standard Product — задаче-специфичный стандартный продукт), но сетевые инженеры — ребята простые, так что мы их называем ASIC [3].
Почему именно ASIC?
ASIC’и выигрывают за счёт огромной эффективности. Чем сложнее оборудование, тем больше питания и охлаждения оно требует. ASIC’и содержат только те компоненты, которых достаточно для выполнения требуемых функций, поэтому их размер и энергопотребление можно сократить. Это положительно влияет на общий размер сетевой части (устройствам не требуется большой объём для эффективного охлаждения), и помогает сократить потребление электропитания в ЦОДе.
Сокращение сложности аппаратной части снижает ошибки в процессе производства, и, в целом, упрощает его.
Минус в том, что много функций необходимо реализовать «в железе», а когда появляется новая технология (VXLAN, к примеру), микросхемы, изготовленные до выхода этой технологии, не смогут её поддерживать.
Однако, для сетевого оборудования это не проблема. Сетевая отрасль развивается неспеша, и проходит значительное время, пока новые технологии появятся на рынке (как это видно на примере IPv6, реализации MPLS, доступности xDSL, и т.п.). Это значит, что не требуется выпускать новое поколение микросхем каждый год, а цикл получается гораздо длиннее, совершая большие скачки в технологическом развитии. Например, компании «Бродком» (Broadcom) потребовалось два года на переход от »Tomahawk 3» к »Tomahawk 4», но зато они удвоили производительность микросхем. Указанные выше особенности помогают сетевому обрудованию, оставаясь компактным, обрабатывать большие потоки информации.
Создание ASIC
Как в случае с любой другой СБИС, проектирование ASIC — долговременный процесс. Так же как с ЦП, если есть ошибка в аппаратном дизайне, приходится начинать с нуля, перестраивая производственную линию. Поэтому цикл разработки невероятно долог. Всё начинается с прототипа в ПЛИС (FPGA), на которой дизайнеры микросхемы могут задать необходимую функциональность, и убедиться в её соответствии требованиям. Обычно это выполняется на языке описания аппаратуры (HDL), например, на Verilog.
Как только закончена стадия прототипирования, начинается изготовление нового «конвейера обработки пакетов» в виде микросхем на фабрике. После чего никакие изменения в микросхему внести нельзя, т.к. её схема вытравливается в кремнии (в отличие от ПЛИС, которую можно перепрограммировать). Дополнительная сложность ещё в том, что очень небольшое число компаний закупает ASIC’и оптом для изготовления обрудования. Поэтому стоимость сетевого оборудования на ASIC’ах может неприятно вырасти.
Всё это означает, что итерационный цикл ASIC’а достаточно медленный (по сравнению с ежегодной моделью обновления «Интелом» своих ЦП посредством техпроцесса → архитектуры → оптимизации, например), и обычно идёт небольшими шажками. К примеру, увеличение линейной скорости порта происходит эволюционно (1G → 10G → 25G → 40G → 100G → 400G → 800G → …), и связано с обновлениями в схеме параллельно-последовательного и последовательно-параллельного преобразователя (serializer/deserializer).
Внедрение поддержки нового протокола значительно сложнее, и может потребоваться несколько циклов разработки, пока она не появится в микросхеме.
Чем занимаются ASIC’и
ASIC’и в сетевом оборудовании отвечают за коммутацию и маршрутизацию пакетов данных, а также служат первой линией защиты в виде файрвола без сохранения состояния (stateless firewall). Из-за требований к скорости обработки пакетов, первейшим требованием будет доступ к быстрой памяти. Бóльшая часть ASIC’ов использует специальный вид памяти под названием «троичная ассоциативная память» (TCAM). Этот вид памяти используется для хранения всех видов таблиц для поиска. Это могут быть таблицы адресации — куда направить пакет; списки контроля доступа (ACL) — куда пакету можно; или таблицы класса обслуживания (CoS).
Ассоциативная память (АП) или ассоциативное запоминающее устройство (АЗУ), и её старшая сестра ТАП — потрясающий вид памяти, работающий совершенно иначе, чем оперативная память (ОЗУ). При доступе к данным в ОЗУ вам необходимо обращаться по адресу в памяти, в то время как в АП или ТАП вы ищете содержимое своего запроса. Это буквальное воплощение системы класса «ключ-значение».
В ТАП вы отправляете запрос в двоичном виде. Для сетевого приложения это будет скорее всего IP адрес, например, 11001011.00000000.01110001.00000000 (203.0.113.0). Это определённо удобно, но в сетях с огромным количеством IP адресов хранить каждый отдельно потребует огромного объёма памяти. Чтобы обойти ограничение буквального поиска, ТАП умеет хранить три состояния ячейки памяти (0, 1, X) вместо привычных двух. Третье состояние, иногда называемое «пропуск», позволяет хранить большой массив последовательных значений как единую запись.
В компьютерных сетях такими массивами являются IP префиксы. Возьмём предыдущий пример IP адреса и представим, что хотим сохранить массив 203.0.113.0 + 254 последовательных адреса за ним. В ТАП будет следующая запись: 11001011.00000000.01110001.XXXXXXXX (203.0.113.0/24). Такой способ хранения подразумевает, что мы можем спросить у ASIC «куда отправлять пакеты для адреса назначения 203.0.113.19?», и он выдаст ответ в один такт. Потому что ему не нужно искать по всей памяти, а он напрямую запрашивает ключ. Ответ скорее всего будет ссылкой на адрес в ОЗУ, где хранится больше информации (такой как исходящий порт или правила файрвола для пакета данных).
Чтобы лучше разобраться в том, чем занимаются ASIC’и в сетевом оборудовании, давайте вкратце «пробежимся» по основным положениям.
Сетевые процессы можно поделить на две основных составляющих: маршрутизация и коммутация. Коммутация позволяем вам напрямую соединить несколько устройств, так что они могут общаться друг с другом через сеть. К примеру, вы на телевизоре показываете с телефона новое видео из отпуска. Маршрутизация — следующий, более сложный уровень. Это метод, соединяющий коммутируемые сети между собой, и, в конечном итоге, с интернетом.
Поэтому, маршрутизаторы — устройства, ответственные за направление трафика через сложный лабиринт сетей так, чтобы он добрался в пункт назначения безопасно, и, по-возможности, как можно скорее. В интернете маршрутизаторы обычно используют протокол BGP, чтобы обмениваться информацией о префиксах (массивах IP адресов). Эту информацию часто называют NLRI (Network Layer Reachability Information — информация сетевого уровня о доступности).
Как и в случае с обычными дорогами, в интернете есть множество способов добраться из точки А в точку Б. Чтобы принять решение о выборе маршрута, маршрутизатор хранит информацию о доступности сетей в RIB (Routing Information Base — база маршрутной информации). При таком подходе если что-то случается с одним маршрутом, у маршрутизатора ещё есть выбор из оставшихся вариантов.
Имея информацию о маршрутах, BGP «демон» может вычислить идеальный (со своей точки зрения) маршрут к любой точке назначения. Документация Cisco подробно объясняет процесс выбора при вычислении идеального маршрута.
Как только мы высчитали этот самый идеальный маршрут, его необходимо где-нибудь сохранить, потому что будет ужасно не эффективно вычислять его каждый раз, когда нам нужно отправить туда данные. База для хранения расчётов называется FIB (Forwarding Information Base — база информации о переадресации/пересылке). FIB можно назвать подклассом RIB, потому что FIB в один момент времени хранит информацию только о лучшем пути к точке назначения, в то время как RIB хранит все доступные пути, даже не идеальные.
Используя эти базы, маршрутизаторы отправляют пакеты из точки А в точку Б в мгновение ока.
Чуть подробнее про те задачи, которые выполняют ASIC’и:
Инсталляция маршрута. Как только маршрутизатор рассчитал базу FIB, ему становится важна скорость доступа к рассчитанному результату. Для этого ASIC инсталлирует (записывает) рассчитанный FIB в ТАП, чтобы поиск происходил так быстро, как только возможно.
Поиск пути пересылки пакета. Когда нам нужно понять, куда отправлять полученный пакет данных, мы ищем эту информацию в ТАП, которая, как было сказано выше, невероятно быстрая.
Файрвол без сохранения состояния. Когда маршрутизатор занимается пересылкой пакеты данных, некоторые их них лучше бы не пересылать. Эту задачу можно решить файрволом с сохранением состояния (stateful) или без сохранения состояния (stateless). Здесь мы имеем ввиду состояние TCP сессии, по которому маршрутизатор может понять это новое подключение, или уже работающее. Т.к. отслеживание состояния — сложный процесс, требующий хранения таблиц, то он может быстро израсходовать большой объём памяти, и большинство маршрутизаторов поддерживают файрвол только без сохранения состояния. Если вам нужен файрвол с сохранением состояния, то для этой задачи выпускается специальное оборудование. В Cloudflare мы вынесли задачу хранения состояния на наши компьютерные мощности, что значительно уменьшает таблицу хранения состояний (сравните: один маршрутизатор на все сессии или N серверов, у каждого из которых немного сессий). Файрвол без сохранения состояния на маршрутизаторе тоже использует ТАП, чтобы хранить правила обработки пакетов. Например, одним из правил, которые мы применяем на границе сети, является »DENY-BOGON-RANGES», которым отбрасывается трафик из подсетей, перечисленных в RFC1918 (и другие немаршрутизируемые диапазоны). Т.к. используется ТАП, то эта операция выполняется на линейной скорости порта.
Дополнительные операции, как GRE инкапсуляция. Современные сети — это не просто коммутация и маршрутизация пакетов, т.к. требуются дополнительные функции. Одна из них — инкапсуляция пакетов. Инкапсуляция — процесс упаковки пакета данных в другой пакет. С помощью этой технологии возможно новую одну сеть поверх существующей сети (overlay — оверлей). Оверлейная сеть может быть использована, например, для построения виртуальной опорной сети (backbone), в которой множество разных точек присутствия вирутально соединены через интернет. Конечно, можно это делать и на уровне ЦП (мы так делаем для услуги »Magic Transit»), но на уровне ПО на это тратится больше ресурсов. Поэтому, ASIC’и могут иметь встроенный функционал инкапсуляции пакетов в ряд протоколов (GRE как пример). Такое ускорение встраивают в микросхемы, чтобы для инкапсуляции не отправлять пакет к ЦП, а потом не прогонять его по цепочке выбора пути маршрутизации ещё раз.
MPLS, EVPN, VXLAN, SDWAN, SDN, … У меня закончились громкие аббревиатуры, которые тут можно перечислить. И хотя MPLS далеко не нов (первый RFC написан в 2001 году), это довольно продвинутая технология, так что не все производители ASIC’ов реализуют обработку этих протоколов на аппаратном уровне из-за усложнения микросхем.
Прим.пер.: подробнее про разделение функций вычисления маршрута и передачи трафика читайте в статье «Разделение control и data plane в сетевом оборудовании».
Обзор производителей
В Cloudflare мы ежедневно общаемся с производителями аппаратных и программных платформ, эксплуатируя нашу глобальную сеть. Но т.к. сегодня речь про ASIC’и, мы рассмотрим производителей «железа». Хотя у некоторых производителей есть и свои сетевые ОС (NOS). Выбор аппаратного обеспечения сейчас огромен: под любые требования и любой кошелёк. И может оказаться очень сложно разглядеть лес за деревьями, так что мы сосредоточимся на 4-х отличительных параметрах:
производительность (throughput) — сколько бит может обработать ASIC;
размер буфера (buffer size) — сколько бит может удержать в памяти ASIC в случае задержки обработки;
возможность программирования (programmability) — насколько легко стороннему программисту (как сотрудник Cloudflare) напрямую взаимодействовать с ASIC’ом;
набор функций (feature set) — сколько дополнительных возможностей, кроме маршрутизации/коммутации, заложены в ASIC.
Обширное разнообразие оборудования объясняется тем, что у разных компаний разные требования. У компаний вроде Cloudflare требования будут отличаться от магазина продуктов у дома. Даже в нашей сети у нас разные требования к оборудованию, составляющие её разные части.
Broadcom
Слон в сетевом шкафу (или джамбо-фрейм в коммутаторе?) — »Broadcom». Это компания-производитель полупроводниковых микросхем, которая получает основной доход (>50% валового дохода [4]) от сегмента проводных компонентов. Хотя они на рынке с 1991 года, их стало не остановить в последние 10 лет (статья 2020 года — прим. пер.), в частности из-за контрактов с «Эпплом» (25% их доходов). Как производитель полупроводниковых микросхем, «Бродком» главенствуют на рынке, скупая другие компании. Хороший пример — покупка »Dune Networks», приносящие прибыль своей серией »StrataDNX» ASIC’ов (Arad, QumranMX, Jericho). Так «Бродком» стала крупнейшим поставщиком ASIC’ов, занимая 59% рынка интегрированных микросхем обработки ethernet пакетов [5].
Как крупнейший поставщик, они отгружают много интегральных микросхем для »Cisco»,»Juniper»,»Arista», и др. До последнего времени, если бы вы захотели использовать пакет разработчика «Бродком» (Broadcom SDK) для ускорения обработки пакетов, вам бы пришлось подписать столько соглашений о неразглашении данных (NDA), что вам бы свело руку. Однако, недавно «Бродком» опубликовали свой пакет разработчика в открытом доступе. Давайте быстро взглянем на некоторые их разработки.
Tomahawk
Серия «Tomahawk» («томагавк») — хлеб насущный для корпоративного рынка. Дешёвые и очень быстрые микросхемы. Первое поколение микросхем «Tomahawk» обрабатывало 3,2 Тбит/с данных на канальной скорости с низкой задержкой коммутации. Последнее поколение микросхем (»Tomahawk 4») обрабатывает 25,6 Тбит/с (до 64 × 400GbE портов) в микросхеме, изготовленной по 7 нм техпроцессу [6]. Так как нельзя получить одновременно дешёвое, быстрое, и функциональное решение, это означает, что функций вы недосчитаетесь. В данном случае, не будет поддержки продвинутых сетевых технологий как VXLAN, да и буфера тоже. Если вам нужен пример, куда устанавливаются эти микросхемы, посмотрите на серию коммутаторов Juniper QFX5200.
(прим. пер.: последнее поколение «Tomahawk 5» имеет пропускную способность до 51,2 Тбит/с в конфигурации 256 × 200G портов)
Trident
Этот ASIC — боле развитое семейство микросхем, чем »Tomahawk», содержащее широкий набор функций, но сохраняющее высокую производительность. Последнее поколение »Trident 4» имеет пропускную способность в 12,8 Тбит/с с невероятно маленькими задержками [7], делая его платформой с нереально гибкими возможностями. К сожалению, у этих микросхем почти нет буфера, что уменьшает возможности их применения в Cloudflare, т.к. нам необходим запас, чтобы иметь возможность переключаться между портами на разных скоростях, которые есть на наших пограничных маршрутизаторах. На этом семействе микросхем построены коммутаторы Arista 7050X и 7300X.
(прим. пер.: последнее поколение «Trident 5» пропускает до 16 Тбит/с трафика в конфигурации 8 × 800G, и имеет встроенный нейронный процессор для машинного обучения в анализе трафика)
(прим.пер.: микросхемы серии «Tomahawk» вместе с сериями «Maverick» и «Trident» — «Томагавк», «Маверик» и «Трезубец» названы по сериям американских ракет — входят в линейку микросхем StrataXGS)
StrataDNX (Arad, QumranMX, Jericho)
Эти наборы микросхем были приобретены вместе с покупкой «Dune Networks» и представляют из себя высокоскоростные микросхемы с вместительным буфером, позволяющие применять их в разноплановых решениях, в том числе на границе сети Cloudflare. Маршрутизаторы Arista DCS-7280SR, которые работают на некоторых наших точках присутствия как пограничные маршрутизаторы, основаны на микросхеме «Jericho». С момента своего появления, эти наборы микросхем развивались, и у «Jericho2» канальная скорость — 10 Тбит/с и вместительный пакетный буфер [8]. С помощью их конвейера микросхем (несколько ASIC’ов, соединённых вместе) можно легко собрать коммутатор в конфигурации 48×400G портов [9]. Cisco построили свою линейку маршрутизаторов NSC5500 на микросхемах »QumranMX» [10].
(прим. пер.: Arad, Qumran, Jericho — Арад, Кумран, Иерихон — названия древних городов на территории современного Израиля)
Intel
«Интел» известна в сетевом мире как производитель стабильных и производительных 10G сетевых контроллеров. ASIC’ами не богаты. Они сделали первый подход, купив компанию »Fulcrum» [11], которые выпускали серию FM6000 [12], но на их основе так ничего и не выпустили. «Интел» сделали второй заход, купив »Barefoot». Это небольшая компания, выпустившая »Barefoot Tofino ASIC», который может быть причиной большого изменения в сетевой отрасли.
Barefoot Tofino
»Tofino» [13] построен, используя PISA (Protocol Independent Switch Architecture — протокол-независимая архитектура коммутации). А воспользовашись »P4» (Programming Protocol-Independent Packet Processor — программируемые протокол-независимые обработчики пакетов) [14], вы можете запрограммировать дата-плейн (пересылку пакетов) так, как вам хочется. Это радикальное изменение по сравнению с традиционными возможностями сетевого оборудования, где непосредственное перепрограммирование ASIC вряд ли вообще возможно, тем более на стандартном языке программирования. В качестве дополнительного преимущества, P4 позволяет проводить строгую проверку алгоритма пересылки, чтобы проверить, что ваши ожидания совпадут с реальностью. Оговорка:»OpenFlow» пытались так делать, но у них не очень получилось.
Существует множество доступных вариантов »Tofino 1», но самый производительный ASIC обрабатывает 6,5 Тбит/с канальной скорости. Т.к. ASIC программируемый, то его набор возможностей будет настолько широк, насколько вам захочется. К сожалению, у микросхемы маленький буфер, так что мы (пока) не можем использовать их на границе сети. На этих микросхемах построены коммутаторы Arista серии 7170 [15] и Cisco серии Nexus 34180YC, 3464C [16].
Mellanox
Как некоторые из вас знают, «Мелланокс» — производитель, которого недавно (в 2019 г.) купила »Nvidia», и который поставляет 25G сетевые интерфейсы для наших серверов. Кроме сетевых интерфейсов, у «Мелланокса» есть устоявшаяся серия ASIC’ов, в основном для коммутаторов.
Spectrum
Последнее поколение этой серии ASIC’ов,»Spectrum 3» предлагает производительность коммутации в 12,8 Тбит/с с расширенными возможностями обработки пакетов, включая DPI и NAT. Эти микросхемы позволяют создавать устройства с компактно расположенными высокоскоростными портами общей производительностью до 25,6 Тбит/с [17]. Про пакетный буфер при этом говорить почти не приходится (64 МБ). «Мелланокс» также производят и свои аппаратные решения. В отличие от других производителей (ниже), они предлагают для своего оборудования выбор из целого ряда операционных систем, включая »Cumulus Linux» (которую тоже купила »NVidia» в мае 2020 г.).
И хотя мы активно пользуемся их сетевыми картами, на нашей сети пока нет ни одного устройства на Mellanox ASIC.
Juniper
«Джунипер» — производитель сетевого оборудования, и, на данный момент, крупнейший поставщик для Cloudflare. Как было сказано выше в секции про «Бродком», «Джунипер» покупает некоторые микросхемы у «Бродкома», но у них есть и крупная линейка разработанных внутри компании микросхем, которые можно поделить на два семейства: «Trio» и «Express».
(прим. пер.: juniper — англ. «можжевельник»)
Express
Серия »Express» — семейство ориентированных на коммутацию микросхем, у которых приоритет — пропускная способность, хотя они и не обделены рядом дополнительных возможностей. Эта серия играет на том же поле, что и серия »StrataDNX» от «Бродкома».
Paradise (Q5)
»Q5» — новое поколение ASIC’ов для коммутации пакетов [18]. Несмотря на то, что производительность одной микросхемы не бьёт рекорды (500 Гбит/с), будучи собранными в конвейер с микросхемой «фабрики» (в топологии сети Клоза), на них можно построить коммутатор (или линейную карту) с коммутационной ёмкостью до 12 Тбит/с [19]. В дополнение к высокой пропускной способности, плотной упаковке портов, микросхема поставляется с пакетным буфером потрясающего объёма (4 ГБ на ASIC), выделенный в »HMC» (Hybrid Memory Cube). В этом »HMC» они решили также разместить FIB, MAC и другие таблицы (не используя ТАП). Микросхема »Q5» работает в серии коммутаторов QFX1000x, включая коммутаторы QFX10002–36Q, QFX10002–60C, QFX10002–72Q и QFX10008, которые установлены в наших ЦОДах в роли пограничных маршрутизаторов или агрегаторов ядра.
(прим.пер.: paradise — англ. «рай»)
ExpressPlus (ZX)
»ExpressPlus» («Экспресс-плюс») — серия микросхем более богатая функциями, и более скоростная, чем »Paradise». Они обеспечивают в два раза большую полосу пропускания на микросхему (1 Тбит/с), а собранные в Клоз-фабрику, позволяют обработать до 6 Тбит/с в оборудовании форм-фактора 2U (пример: модель PTX10002). Также на этих микросхемах увеличено количество транзисторов, так что они идут с бóльшими буферами, бóльшим местом для хранения как FIB, так и ACL.
»ExpressPlus» являются сердцем »PTX» линейки IP маршрутизаторов наряду с младшим братом »Triton».
(прим. пер.: последнее поколение «Express 5» пропускает до 28,8 Тбит/с трафика в конфигурации 36 × 800G; используется в коммутаторах серии PTX1000x)
Triton (BT)
«Triton» («Тритон») — ASIC последнего поколения из семейства »Express», имеющий коммутационную ёмкость в 3,6 Тбит/с на микросхему, позволяя проектировать устройства с очень высокой плотностью портов. Как »Triton» так и »ExpressPlus» поддерживают 400GE интерфейсы.
Trio
Серия микросхем »Trio», сейчас уже в 5-м поколении, в основном используется семействе маршрутизаторов »MX», богатых функционалом.
линейная плата Juniper MPC4E-3D-32XGE
Trio Eagle (Trio 4.0) (EA)
«Trio Eagle» — четвёртое поколение микросхем «Trio», которое можно найти, например, в линейных платах MPC7E. Это богатый возможностями ASIC с пропускной способностью в 400 Гбит/с, а также значительными пакетным буфером и размером TCAM (чего, впрочем, и ожидаешь от ASIC’ов для маршрутизаторов).
Trio Penta (Trio 5.0) (ZT)
«Penta» — новое поколение микросхем для маршрутизаторов, созданное для семейства »MX». Кроме того, что это — очень мощное семейство микросхем, способные обрабатывать 500 Гбит/с на ASIC, позволяя «Джуниперу» производить карты ёмкостью портов до 4 Тбит/с, в этом семействе заложено много функций на аппаратном уровне (к примеру, MACSec или Layer 3 IPsec).
Микросхемы «Penta» установлены на линейных платах серий «MPC10E» и «MPC11E», которые можно установить в множество шасси маршрутизаторов серии «MX» (включая и «MX480»).
(прим. пер.: последнее поколение «Trio 6» пропускает до 1,6 Тбит/с трафика на ASIC и оптимизировано для работы с 400G портами; заявленная производительность одной линейной платы серии MX10K — до 9,6 Тбит/с; доступны возможности ML)
Прим.пер.: подробнее про архитектуру маршрутизаторов «Джунипер» читайте в статье «Juniper Hardware Architecture».
Cisco
Последняя компания в обзоре (но не по значимости) — «Cisco». Как говорится, «ваша киска купила бы «Циску» (в оригинале: «никого ещё не увольняли за покупку «Циско»). Они — крупнейший производитель сетевого оборудования. Как и «Джунипер», «Циско» выпускает оборудование как на покупных микросхемах, так и на микросхемах собственного производства. Раньше мы использовали маршрутизаторы »Cisco» на границе сети (серия Cisco ASR9000), но сейчас с этой роли мы их убрали, оставив их в качестве »ToR» (Top-of-Rack — наверху стойки) коммутаторов вместе с сериями коммутаторов «Nexus 5000» и «Nexus 9000».
Bigsur
«Bigsur» — микросхемы, разработанные для коммутаторов серии «Nexus 6000» (чтобы всех запутать, в эту серию входят «Cisco Nexus 5672UP» и «Cisco Nexus 6001»). В используемой у нас модели, «Nexus 5672UP», собрано 7 микросхем, обслуживающие 10G и 40G линии. К сожалению, в «Циско» держат рот на замке по поводу возможностей своих ASIC’ов, так что я не могу рассказать столько подрбностей, как про «Джунипер». Глядя на их характеристики, мы не требуем от них чего-то особенного. Они выполняют роль обычных коммутаторов 2-го уровня без лишней нагрузки. Для буферизации пакетов в них встроена система под названием «Virtual Output Queueing» («виртуальное формирование выходных очередей»), сродни микросхемам «Juniper Express». Но, в отличие от них, в ASIC’ах «Bigsur» нет большого TCAM или большого пакетного буфера.
(прим. пер.: «Биг-Сур» — район побережья в центральной части штата Калифорния, США)
Tahoe
Микросхемы «Tahoe» можно найти в коммутаторах «Cisco 9300-EX», также известные как LSE (Leaf Spine Engine). Они предлагают бóльшую плотность, в сравнении с «Bigsur», размещения портов (1,6 Тбит/с) [20]. В целом, эти микросхемы — развитие семейства «Bigsur», предлагающие дополнительные функции вроде обработки VXLAN+EVPN, больший выбор линейных скоростей портов (10G, 25G, 40G и 100G), и увеличенный пакетный буфер (40 МБ). Мы широко используем этот ASIC как в ЦОДах на границе сети, так и и в ЦОДах в ядре сети.
(прим. пер: Тáхо — озеро в штате Калифорния, на границе со штатом Невада)
Заключение
При выборе следующего поколения сетевого оборудования для «Cloudflare» приходится брать в расчёт множество факторов. Эта публикация отражает только основные технические особенности, которые мы рассматриваем, не учитывая другие факторы вроде защиты окружающей среды, открытость, совместимость с другими производителями, или цену. Этот обзор не вышел бы без материалов, написанных другими сетевыми инженерами — мы стоим на плечах гигантов. В частности, хочу выразить благодарность за великолепную работу Джима Уорнера (Jim Warner) из Калифорнийского университет в Санта-Крузе, захватывающую книгу про семейство «MX», написанную Дэвидом Роем (David Roy, «В первый день: внутри «MX 5G»), а также лучшую книгу про линейку «Juniper QFX» «Juniper QFX10000 Series» авторства Дугласа Ричарда Хэнкса мл. (Douglas Richard Hanks Jr), ну и закончу список публикацией «В целом про ASIC’и» Джастина Питша (Justin Pietsch).
Материалы к статье
[1]: «Почему TPU так хорошо подходят для глубинного обучения?» https://habr.com/ru/articles/422317/
[2]: https://angel.co/company/spacex/jobs/744408-sr-fpga-asic-design-engineer
[3]: Understanding the Difference Between ASSP and ASIC https://www.reddit.com/r/vlsi_enthusiast/comments/1dk4o7y/understanding_the_difference_between_assp_and_asic/
[4]: https://marketrealist.com/2017/02/wired-infrastructure-segment-protects-broadcom/
[5]: https://www.wsj.com/articles/broadcom-lands-deals-to-place-components-in-apple-smartphones-11579821914
[6]: https://www.globenewswire.com/news-release/2019/12/09/1958047/0/en/Broadcom-Ships-Tomahawk-4-Industry-s-Highest-Bandwidth-Ethernet-Switch-Chip-at-25–6-Terabits-per-Second.html
[7]: https://www.broadcom.com/products/ethernet-connectivity/switching/strataxgs/bcm56880-series
[8]: https://www.broadcom.com/products/ethernet-connectivity/switching/stratadnx/BCM88690
[9]: https://www.ufispace.com/products/telco/core-edge/s9705–48d-400g-disaggregated-core-router
[10]: https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2019/pdf/BRKSPG-2900.pdf
[11]: https://newsroom.intel.com/news-releases/intel-to-acquire-fulcrum-microsystems/
[12]: https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/ethernet-switch-fm5000-fm6000-datasheet.pdf
[13]: https://barefootnetworks.com/products/brief-tofino/
[14]: http://www.sigcomm.org/node/3503
[15]: https://www.arista.com/assets/data/pdf/Whitepapers/7170_White_Paper.pdf
[16]: https://www.barefootnetworks.com/press-releases/barefoot-networks-to-showcase-technologies-to-build-fast-and-resilient-networks-using-deep-insight-and-tofino-powered-cisco-nexus-switches-at-cisco-live-us-2019/
[17]: https://www.mellanox.com/products/ethernet-switches/sn4000
[18]: https://www.juniper.net/assets/us/en/local/pdf/whitepapers/2000599-en.pdf
[19]: https://www.juniper.net/assets/us/en/local/pdf/datasheets/1000531-en.pdf#page=7
[20]: https://www.cisco.com/c/dam/global/fr_ch/solutions/data-center-virtualization/pdf/Cisco_Nexus_9300_EX_Platform.pdf#page=8