我有一台Ubuntu 16.04服务器,它充当具有多个(VLAN)接口的路由器。默认情况下,rp_filter
所有接口都启用(反向路径过滤)。我想保持这种状态,但要为一个接口做一个例外。(应该允许来自此接口的数据包具有与该接口的任何路由目标地址都不对应的源IP地址。)
假设此接口的名称为ens20.4
,其vlan-raw-device为ens20
,并且命名了目标接口(用于测试数据包流)ens20.2
(尽管它适用于任何目标接口)。
我尝试仅设置该rp_filter
属性ens20.4
,但没有成功:
echo 0 > /proc/sys/net/ipv4/conf/ens20.4/rp_filter
因此,出于测试目的,我还禁用rp_filter
了vlan-raw-device和测试目标界面:
echo 0 > /proc/sys/net/ipv4/conf/ens20/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/ens20.2/rp_filter
仍然没有成功,带有“欺骗”源IP地址的数据包仍然会被丢弃。只有当我关闭rp_filter
了所有的接口,数据包打通:
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
但是,我仍然要为所有其他接口保留反向路径筛选-我缺少什么?
进一步的测试表明,如果将全部或入站接口的rp_filter设置为1,则反向路径过滤将处于活动状态。虽然仍在寻找确定的答案或文档参考,但到目前为止我还找不到。
—
Cybran