Linux设备路由没有广播

我有以下设置:

  • networking名称空间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

当我尝试从全局命名空间(即GRE隧道另一端存在的IP地址)ping通10.0.2.1 ,出现奇怪的现象。 stream量被转发到ns_ext1 。 但是,在ns1ns_int1不会将此stream量转发到gre1 ,正如路由表所示。 相反,它是10.0.2.1 10.0.2.1 。 我的怀疑是,通过将设备ns_ext指定为全局路由表中的10.0.2.0/24子网的下一跳,我已经让内核认为该子网直接连接到ns_ext1 。 有什么办法可以让它通过这个接口而不是ARP'ing?