DOCA HBN 服务指南
本指南介绍如何在 NVIDIA® BlueField® 网络平台之上使用 DOCA HBN 服务容器。
超出本页范围,HBN 服务指南的内容分布在以下子页面中
基于主机的网络 (HBN) 是一项 DOCA 服务,允许网络架构师基于第 3 层 (L3) 协议设计网络。HBN 通过使用 BlueField 作为 BGP 路由器,使路由能够在服务器端运行。HBN 解决方案将一组网络功能封装在容器内,该容器作为服务 pod 部署在 BlueField 的 Arm 内核上。
HBN 解决方案将一组网络功能打包在容器内,该容器本身打包为服务 pod,以便在 BlueField Arm 上运行。HBN 的核心是 Linux 网络 BlueField 加速驱动程序 Netlink-to-DOCA 或 nl2docad。此守护程序使用 DOCA API 无缝加速 Linux 网络,以在 BlueField 硬件中编程特定的数据包处理规则。
该驱动程序通过使用 Linux Netlink API 发现配置的 Linux 网络对象,将 Linux 内核路由和桥接表镜像到 BlueField 硬件表中。动态网络流(由 Linux 内核网络堆栈学习)也由驱动程序通过监听 Linux 内核网络事件编程到 BlueField 硬件中。

下图概述了 HBN 以及 HBN 各个组件之间的交互。

ifupdown2 是接口管理器,它将所有接口相关状态推送到内核
路由堆栈在 FRR 中实现,并将所有控制状态(EVPN MAC 和路由)通过 netlink 推送到内核
内核维护整个网络状态,并使用 netlink 中继信息。内核还参与 punt 路径,并处理与 eSwitch 中任何规则都不匹配的流量。
nl2docad 通过 netlink 监听网络状态,并调用 DOCA 接口以加速 BlueField 硬件表中的流。nl2docad 还将这些流卸载到 eSwitch。
服务功能链
HBN 是一项“线路中间突跳”服务,需要在 BlueField 上进行特定的网络配置,称为服务功能链 (SFC)。SFC 配置用于重定向源自主机或 BlueField 本身或转发到主机或 BlueField 本身的网络流量,通过 HBN 数据平面。
下图显示了带有 SFC 的 HBN 的完整详细默认配置。
在此设置中,HBN 容器配置为使用子功能端口 (SF) 而不是实际的上行链路、PF 和 VF。为了说明,例如
上行链路 – 使用
p0_if
而不是p0
PF – 使用
pf0hpf_if
而不是pf0hpf
VF – 使用
pf0vf0_if
而不是pf0vf0
SF 和实际端口之间的间接层通过 br-hbn
OVS 网桥进行管理,该网桥在 BlueField 上安装了启用 HBN 的 BFB 映像时自动配置。此间接层允许其他服务链接到现有 SF,并为传输流量提供额外的功能。
