【问题标题】:Configuring multiple gateways in a batman-adv mesh network在 batman-adv 网状网络中配置多个网关
【发布时间】:2020-07-26 14:28:40
【问题描述】:

我已经能够使用在几个 Raspberry Pi 上运行的 batman-adv 设置无线网状网络。如果网络上的任何 Pi 充当网关,Pi 能够在网格上相互检测、相互通信并共享 Internet 连接。

我面临的问题是,如果网络上存在多个网关,客户端(通过网关接收互联网连接的设备)将永远不会切换到从他们最初获得的网关以外的任何其他网关获取互联网连接即使路由算法检测到它们与另一个网关的连接更好。

每个网关都运行一个 DHCP 服务器,为通过它们访问互联网的客户端分配 IP 地址。我使用的 DHCP 服务器是 dnsmasq。

预期的行为是:

  • 客户端向能够提供更好连接的网关发送 DHCP 请求并结束与当前 DHCP 服务器的租约,或者
  • 客户端保留从 DHCP 服务器分配的 IP,并(神奇地?)开始通过能够提供更好连接的网关访问互联网。

这些情况都不会发生。如果出于某种原因向客户端提供 Internet 的网关中断,客户端将不会尝试创建新连接,直到 DHCP 租用超时。然而,这与 wiki 上关于此包的声明相矛盾:https://www.open-mesh.org/projects/batman-adv/wiki/Gateways

请告知如何配置此网状网络,以便发生任何一种预期行为。

【问题讨论】:

    标签: mesh-network


    【解决方案1】:

    这正是 IP 层的预期行为。

    如果 DHCP 服务器提供默认网关,则该网关在租约期内保持不变。根据设计,DHCP 客户端无法确定默认网关是否已关闭。

    DHCP 是一种基于轮询的协议;在 DHCP 客户端请求更新之前,DHCP 服务器无法主动更改租用参数。您问题链接中的说明表明(强调):

    通知拥有有效 DHCP 租约的客户端有关网关的信息 更改(到网关的链接质量可能已经下降或 客户端正在漫游)batman-adv 还将检查传入的 DHCP 更新数据包。 如果它们的目的地不是当前选择的 网关并低于某个 TQ 阈值(当前默认为 TQ 50),DHCP更新包不转发,从而强制 客户端从连接更好的网关请求新的 DHCP 租约。

    请注意,更改发生是通过检查传入的续订数据包。由于 DHCP 的性质,您一直在等待更新网关的租约更新请求。

    您可以设置较短的租用时间来提高轮询率,但如果您需要对故障网关做出实时反应,则需要使用实际的路由协议。

    【讨论】:

      猜你喜欢
      • 2022-08-19
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多