Hetzner Cloud 提供虚拟机托管服务,可靠的网络连接对于客户从任何地方访问其应用程序至关重要。该公司的方法始终倾向于将网络功能放置在主机系统中,而不是放置在物理网络基础设施中,认为这能提供更大的灵活性以及团队之间更清晰的职责分离。这一理念塑造了从早期使用原生 Linux 桥梁和静态路由的 vServer 产品(2011)演变而来,经过了基于 Ceph 的超融合设置并带有 BGP 路由(2015),最终到 Hetzner Cloud 在 2018 年推出时采用的直接 IPv4 路由。
此图示说明了文中描述的初始网络设计,其中 Hetzner Cloud 将网络功能放置在主机系统上,使用原生 Linux 桥梁和静态路由来支持其早期 vServer 产品。
Hetzner Cloud 当前网络栈的核心是 Open vSwitch(OVS),这是一个数据路径位于 Linux 内核的开源多层虚拟交换机。Hetzner 没有采用如 Open Virtual Network(OVN)这样的标准编排方案,而是开发了一个名为 Flusskrebs 的基于 Python 的自定义控制器,用于配置每个虚拟机所需的特定 OpenFlow 规则。这些规则实现了公共网络访问、私有 VXLAN 封装网络(每个网络使用唯一的 VNI),以及用户配置的防火墙规则,包括默认的出站 SMTP 阻断。每个主机通过双路 10 Gb/s 上行链路接口连接(目前通过 LACP/LAG 聚合,但正在迁移至独立的 BGP 路由路径),这些接口先经过 Linux 系统,然后到达虚拟机附加其网络接口的中央 OVS 桥接器。

此图示所示为文中解释的 Hetzner Cloud 现代网络栈的核心组件,包括 OVS、Flusskrebs 以及基于 VXLAN 的私有网络。
尽管目前支持超过一百万台云服务器,但基于 OVS 的当前架构在可扩展性、韧性和灵活性方面面临挑战,这促使 Hetzner 的 SDN 团队正在构建一种全新的、完全自行设计的网络栈。这些限制的一个具体例子是连接跟踪限制:为防止 netfilter 表溢出并确保公平的资源共享,内部工具 ctcount 会强制每台服务器最多 80,000 个活跃并发连接。达到此上限后,无法建立新连接,直至现有连接关闭。正在进行的开发旨在创建符合 Hetzner 运营需求的解决方案,同时提升可扩展性并实现如私有网络 IPv6 支持等特性。