У меня есть сервер 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
Однако я все еще хочу сохранить фильтрацию обратного пути для всех остальных интерфейсов - что мне не хватает?