Ubuntu虚拟机路由问题

Ubuntu虚拟机路由问题

定义问题有点复杂。所以我将尝试绘制案例: 在此输入图像描述

2 号是一个 ubuntu 路由器(虚拟机 Vm),具有三个接口。 1 号是模拟路由器,3 号是某些路由器后面的远程主机。当从 number-1 ping number-3 时,ping 请求会经过“a”和“c”路径,但回复来自“b”路径。在这种情况下,number-2 不会将 ping 回复路由到 number-1,因此 ping 失败。但如果 ping 回复来自“c”路径,则 number-2 路由回复数据包。第一种情况有什么问题?

答案1

这是由于 Linux 称之为反向路径过滤(也可以看看维基百科)。

基本上,如果流量来自某个接口上的主机,而该主机的流量不会使用该接口,则内核会丢弃该流量。

修复它很简单

sysctl -w net.ipv4.conf.$iface_b.rp_filter=2
sysctl -w net.ipv4.conf.$iface_c.rp_filter=2

$iface_b将和替换$iface_c为适当的接口名称。

(在较旧的内核上2可能不可用,因此请使用0

相关内容