小编Cyb*_*ran的帖子

在一个接口上禁用 rp_filter

我有一个 Ubuntu 16.04 服务器,它充当具有多个(VLAN)接口的路由器。默认情况下,rp_filter对所有接口启用(反向路径过滤)。我想保持这种方式,但只有一个接口例外。(应该允许来自该接口的数据包具有不对应于该接口的任何路由目的地址的源 IP 地址。)

假设这个接口有 name ens20.4,它的 vlan-raw-device 是ens20,并且目标接口(用于测试数据包流)被命名ens20.2(尽管它应该适用于任何目标接口)。

我试图只设置rp_filter属性ens20.4,但没有成功:

echo 0 > /proc/sys/net/ipv4/conf/ens20.4/rp_filter
Run Code Online (Sandbox Code Playgroud)

因此,出于测试目的,我还禁用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
Run Code Online (Sandbox Code Playgroud)

仍然没有成功,带有“欺骗”源 IP 地址的数据包仍然被丢弃。只有当我关闭rp_filter所有的接口,数据包打通:

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
Run Code Online (Sandbox Code Playgroud)

但是,我仍然希望为所有其他接口保留反向路径过滤 - 我错过了什么?

linux routing kernel filtering ubuntu-16.04

13
推荐指数
1
解决办法
3万
查看次数

标签 统计

filtering ×1

kernel ×1

linux ×1

routing ×1

ubuntu-16.04 ×1