我有以下设置:
- 网络命名空间,
ns1
- 一对虚拟接口,
ns_ext1
和ns_int1
。ns_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
。但是,在 中ns1
,ns_int1
并没有gre1
像路由表所说的那样将此流量转发到 。相反,它正在为 进行 ARP 处理10.0.2.1
。我怀疑,通过在全局路由表中将设备指定ns_ext
为10.0.2.0/24
子网的下一跳,我让内核认为子网直接连接到ns_ext1
。有什么方法可以让它仅通过该接口转发而不是进行 ARP 处理?