Добрый день!
Мне необходимо перенаправить исходящий трафик, который идет через интерфейс eno3, на виртуальный интерфейс ifb0. Я уже разобрался, как перенаправлять входящий трафик на ifb0, но не удается перенаправить исходящий трафик. Скрипт приведен ниже. Подскажите, что нужно добавить для правильного перенаправления исходящего трафика?
Буду очень признателен за помощь!
#!/bin/bash
INTERFACE="eno3" # Сетевой интерфейс
IFB_INTERFACE="ifb0" # Виртуальный ifb-интерфейс
DELAY="150ms" # Задержка пакетов
LOSS="1%" # Потери пакетов
# Создаем и поднимает вирутальный интерфейс
if ! ip link show $IFB_INTERFACE &>/dev/null; then
modprobe ifb
ip link add $IFB_INTERFACE type ifb
ip link set $IFB_INTERFACE up
fi
# Удаляем старые правила
tc qdisc del dev $INTERFACE ingress 2>/dev/null
tc qdisc del dev $IFB_INTERFACE root 2>/dev/null
# Настраиваем ingress-очередь на основном интерфейсе
tc qdisc add dev $INTERFACE ingress
# Фильтр: перенаправляем только PTP UDP пакеты (на порты 319 и 320) на ifb0
tc filter add dev $INTERFACE parent ffff: protocol ip u32 \
match ip protocol 17 0xff \
match ip dport 319 0xffff \
action mirred egress redirect dev $IFB_INTERFACE
tc filter add dev $INTERFACE parent ffff: protocol ip u32 \
match ip protocol 17 0xff \
match ip dport 320 0xffff \
action mirred egress redirect dev $IFB_INTERFACE
# Применяем задержку и потерю пакетов на ifb-интерфейс
tc qdisc add dev $IFB_INTERFACE root netem delay $DELAY loss $LOSS
echo "Задержка $DELAY и потеря $LOSS применены к PTP-пакетам на интерфейсе $INTERFACE"