LINUX.ORG.RU
ФорумAdmin

Как перенаправлять исходящий трафик, необходимо дополнить скрипт

 ,


0

1

Добрый день!

Мне необходимо перенаправить исходящий трафик, который идет через интерфейс 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"

Через какой интерфейс пойдет пакет определяется правилами роутинга. А если для пакета уже выбран интерфейс eno3, то с чего бы ему проходить роутинг повторно? Похоже задачу придется переформулировать

cobold ★★★★★
()
Ответ на: комментарий от Razred

Это бессмысленное действие запихивать исходящие пакеты в ifb.
Нет проблемы манипулировать исходящими пакетам.
Исходящие пакеты идут в eno3, так что мешает там для некоторых пакетов менять обработку?
Создать отдельный класс и прицепить к нему дисциплину netem, фильтрами загнать туда интересующий трафик.

https://stackoverflow.com/questions/24729545/how-to-tc-filter-with-netem

vel ★★★★★
()