rc.firewall
Код: Выделить всё
# Загрузка необходимых модулей ядра
$MODPROBE imq
$MODPROBE ipt_IMQ
tc qdisc del dev imq0 root
#Ициализация виртуальных сетевых интерфейсов
$IP link set dev imq0 up
#Создаем классы и фильтры для виртуального устройства
/sbin/tc qdisc add dev imq0 root handle 1: htb default 0 r2q 100
/sbin/tc class add dev imq0 parent 1: classid 1:2 htb rate 4096kbps ceil 4096kbpsip-up:
Код: Выделить всё
#!/bin/sh
# Путь к используемым программам
IP=/sbin/ip
TC=/sbin/tc
IPTABLES=/usr/local/sbin/iptables
# Количество пользователей
USERS=4
# Общая скорость интерфейса (kbps)
CEIL=4096
# Гарантируемая скорость каждому пользователю
RATE=$[$CEIL/$USERS]
# IP адрес клиента
IP_ADDRESS=$5
RANGE_ADDRESS=192.168.169.
SUBCLASS=${IP_ADDRESS##$RANGE_ADDRESS}
# Переименование интерфейса из ppp+ в vpn_ppp+
if [ $1 != "ppp0" ]
then
$IP link set dev $1 down
$IP link set dev $1 name vpn_$1
$IP link set dev vpn_$1 up
fi
# Маркировка исходящего трафика
$IPTABLES -t mangle -A TRAFFIC-OUT -o vpn_$1 -j MARK --set-mark $SUBCLASS
# Установка ограничений на исходящий трафик
$TC class add dev imq0 parent 1:2 classid 1:$SUBCLASS htb rate ${RATE}kbps ceil ${CEIL}kbps prio 5
$TC qdisc add dev imq0 parent 1:$SUBCLASS handle $SUBCLASS sfq perturb 10
$TC filter add dev imq0 parent 1:0 protocol ip prio 100 handle $SUBCLASS fw classid 1:$SUBCLASSip-down:
Код: Выделить всё
#!/bin/sh
# Путь к используемым программам
IP=/sbin/ip
TC=/sbin/tc
IPTABLES=/usr/local/sbin/iptables
# Количество пользователей
USERS=5
# Общая скорость интерфейса (kbps)
CEIL=4096
# Гарантируемая скорость каждому пользователю
RATE=$[$CEIL/$USERS];
# IP адрес клиента
IP_ADDRESS=$5
RANGE_ADDRESS=192.168.169.
SUBCLASS=${IP_ADDRESS##$RANGE_ADDRESS}
# Удаление ограничений на исходящий трафик
$TC qdisc del dev imq0 parent 1:$SUBCLASS handle $SUBCLASS sfq perturb 10
$TC filter del dev imq0 parent 1:0 protocol ip prio 100 handle $SUBCLASS fw classid 1:$SUBCLASS
$TC class del dev imq0 parent 1:2 classid 1:$SUBCLASS htb rate ${RATE}kbps ceil ${CEIL}kbps prio 5
# Удаление маркировки исходящего трафика
$IPTABLES -t mangle -D TRAFFIC-OUT -o vpn_$1 -j MARK --set-mark $SUBCLASSЗаранее благодарю всех откликнувшихся!