BGP

BGP(多协议边界网关协议)主要用于 OpenLAN 网关之间实现动态路由互通。通过 BGP 协议,不同网关可以自动交换路由信息,实现跨网关的网络互联和路由学习。

应用场景

  • 多网关动态路由学习:当网络中有多个 OpenLAN 网关时,BGP 可自动发现并学习对端网关的路由信息,无需手动在每台网关上静态添加大量路由。

  • 大型或复杂网络互联:适用于拥有多个站点、分支机构或跨地域的网络环境,实现网关之间的路由自动同步和优化。

  • 路由策略灵活控制:支持针对特定网段进行通告和接收,可精细控制哪些路由在网关之间传递。

  • 客户端跨网关访问:客户端拨入某一网关后,可通过 BGP 动态路由访问其他网关上的内网资源。

开启BGP

    开启 BGP 在网关节点界面找到 BGP 功能模块,开启 BGP 服务。开启时需要填写以下信息:

QQ20260417-154859.png

    • 本地 AS 号(纯数字,组网内所有网关的 AS 号不可重复)

    • 路由器 ID(选择网关上的一个 IP 地址,可通过网关命令 ip r 查看所有路由地址,确保该 ID 在组网内可达)

配置 BGP 邻居 

    两端网关均开启 BGP 后,需要在每一端添加对端网关作为邻居。

    • 邻居地址:填写对端网关的路由器 ID

    • 远端 AS 号:填写对端网关的 AS 号

    • 密码(可选):两端需保持一致(可不填)

  QQ20260417-162102.png

     配置完成后,连接状态应变为“成功”。若未成功,可点击“同步”按钮刷新状态。 

QQ20260417-155543.png

    可通过命令 openlan network --name bgp ls 在网关容器中查看邻居列表、Local AS 和 Route ID 是否生效。

配置BGP路由

    在拥有目标网段的网关上添加通告路由,使该网段能够被其他网关学习到。 

        示例:在 14 网关(拥有 192.168.44.0/24 网段)添加通告:

    • 邻居路由器 ID:对端网关的路由器 ID(如 10.10.1.22)

    • 通告网段:192.168.44.0/24 ,点击启用,每个邻居都需要单独添加一次通告路由。

      QQ20260417-160344.png


    添加接收路由(Receive Route) 在需要访问该网段的网关上添加接收路由,明确允许接收对端的特定前缀。 

        示例:在 22 网关添加接收:

    • 邻居路由器 ID:对端网关的路由器 ID(如 10.10.1.14)

    • 前缀:192.168.44.0/24 配置完成后,点击启用,在接收端网关执行 ip route 可看到新增的路由条目。

QQ20260417-160502.png

QQ20260417-160911.png

客户端路由配置 

客户端需拨入支持该路由的网关(例如拨入 22网关)访问14网关的192.168.44.0/24网段。

        在22网关所在的虚拟网络中添加路由:

    • 目标网段:192.168.44.0/24(或使用默认路由 0.0.0.0/0)

    • 下一跳:local(本地网关) 

    • 虚拟网络需开启 OpenVPN 子网(例如 100.255.25.0/24)

    • 如果14网段中没有客户端网段,22网关需要添加客户端网段的通告路由,14网关添加接收路由,接收22网关的客户端网段

    • SNAT 配置 为确保跨网关访问正常,两端网关的虚拟网络均需开启 SNAT 功能,实现地址转换。

    使用默认路由 0.0.0.0/0 时,客户端所有流量都会走 VPN,可能导致本地网络访问中断,请谨慎使用。

QQ20260417-161605.png

注意事项

  • 关闭 BGP 前,需先将所有 BGP 邻居的发送/接收路由进行撤销,避免路由残留。

  • 撤销邻居并重新启用后,需要手动重启本端 BGP 路由才能生效。

  • 确保组网内所有网关的路由器 ID 可以通过现有路由互相可达。

  • BGP 配置完成后,网关会自动与邻居建立会话并交换路由信息。通过 openlan network --name bgp ls 可查看通告路由(advertis)和接收路由(receives)列表。