无广播的 Linux 设备路由

无广播的 Linux 设备路由

我有以下设置:

  • 网络命名空间,ns1
  • 一对虚拟接口,ns_ext1ns_int1ns_ext存在于全局命名空间中,并且ns_int1存在于 中ns1
  • GRE 设备,gre1,存在于 中ns1
  • 这些设备均未分配 IP 地址。
  • 中的路由表ns1如下
    • 10.0.2.0/24 -> gre1
    • 0.0.0.0/0 -> ns_int1
  • 全局命名空间中的路由表包括:
    • 10.0.2.0/24 -> ns_ext1

当我尝试10.0.2.1从全局命名空间(即 GRE 隧道另一端的 IP 地址)执行 ping 操作时,出现了奇怪的行为。流量被转发到ns_ext1。但是,在 中ns1ns_int1并没有gre1像路由表所说的那样将此流量转发到 。相反,它正在为 进行 ARP 处理10.0.2.1。我怀疑,通过在全局路由表中将设备指定ns_ext10.0.2.0/24子网的下一跳,我让内核认为子网直接连接到ns_ext1。有什么方法可以让它仅通过该接口转发而不是进行 ARP 处理?

相关内容