如何将 Incus 配置为 BGP 服务器

注意

BGP 服务器功能适用于 桥接网络物理网络

BGP 是一种允许在自治系统之间交换路由信息的协议。

如果你想将外部地址直接路由到特定的 Incus 服务器或实例,你可以将 Incus 配置为 BGP 服务器。Incus 将充当 BGP 对等体,并将相关路由和下一跳信息通告给外部路由器,例如你的网络路由器。它会自动与上游 BGP 路由器建立会话,并通告它正在使用的地址和子网。

BGP 服务器功能可用于允许 Incus 服务器或集群通过将特定子网或地址路由到正确的主机来直接使用内部/外部地址空间。这样,流量就可以转发到目标实例。

对于桥接网络,以下地址和网络将被通告

  • 网络 ipv4.addressipv6.address 子网(如果匹配的 nat 属性未设置为 true

  • 网络 ipv4.nat.addressipv6.nat.address 子网(如果匹配的 nat 属性设置为 true

  • 网络转发地址

  • 在实例 NIC 上指定的地址或子网,该 NIC 连接到桥接网络,并位于 ipv4.routes.externalipv6.routes.external

确保将你的子网添加到相应的配置选项。否则,它们将不会被通告。

对于物理网络,物理网络级别不会直接通告任何地址。相反,所有下游网络(通过 network 选项指定物理网络为其上行网络的网络)的网络、转发和路由将以与桥接网络相同的方式通告。

注意

目前,无法仅将某些特定路由/地址通告给特定对等体。如果你需要这样做,请在上游路由器上过滤前缀。

配置 BGP 服务器

要将 Incus 配置为 BGP 服务器,请在所有集群成员上设置以下服务器配置选项

例如,设置以下值

incus config set core.bgp_address=192.0.2.50:179
incus config set core.bgp_asn=65536
incus config set core.bgp_routerid=192.0.2.50

设置这些配置选项后,Incus 会开始监听 BGP 会话。

配置下一跳(仅 bridge

对于桥接网络,你可以覆盖下一跳配置。默认情况下,下一跳设置为用于 BGP 会话的地址。

要配置不同的地址,请设置 bgp.ipv4.nexthopbgp.ipv6.nexthop

为 OVN 网络配置 BGP 对等体

如果你运行一个具有上行网络(physicalbridge)的 OVN 网络,上行网络是保存允许子网列表和 BGP 配置的网络。因此,你必须在上行网络上配置 BGP 对等体,这些对等体包含连接到 BGP 服务器所需的信息。

在上行网络上设置以下配置选项

  • bgp.peers.<name>.address - 下游网络要使用的对等体地址

  • bgp.peers.<name>.asn - 本地服务器的 ASN

  • bgp.peers.<name>.password - 对等会话的可选密码

  • bgp.peers.<name>.holdtime - 对等会话的可选保持时间(以秒为单位)

配置上行网络后,下游 OVN 网络将通过 BGP 公告其外部子网和地址。下一跳被设置为上行网络上 OVN 路由器的地址。