Шейпинг интернет трафика. Как отключить ограничение скорости в локальной сети
Форум — Admin
Добрый день форумчане, нужна ваша помощь, сам новичок пока.
Используя маны в интернете написал вот такой скрипт для шейпинга интернета, скрипт работает и трафик шейпится, но подскажите плиз, как отключить шейпирование локального трафика, а интернет трафик шейпить согласно скрипту. У нас интернет канал 100Мбит, а локалка 1Гб.
Сам скрипт:
#!/bin/bash
################################################################
TC="/sbin/tc"
MODPROBE="/sbin/modprobe"
PROVIDER_SPEED="100Mbit"
SPEED_LAN_MAX="1024Mbit"
SPEED_Lan_RATE="800Mbit"
################################################################
###
stop(){
for var in $(cat ./list | grep -v "^\#")
do
NUMBER=$(echo "$var" | cut -d ":" -f 1)
VLAN=$(echo "$var" | cut -d ":" -f 2)
IFB=$(echo "$var" | cut -d ":" -f 3)
VLAN_DOWN_RATE=$(echo "$var" | cut -d ":" -f 4)
VLAN_DOWN_CEIL=$(echo "$var" | cut -d ":" -f 5)
VLAN_UP_RATE=$(echo "$var" | cut -d ":" -f 6)
VLAN_UP_CEIL=$(echo "$var" | cut -d ":" -f 7)
NO_CLASS_TRAFFIC_RATE=$(echo "$var" | cut -d ":" -f 8)
NO_CLASS_TRAFFIC_CEIL=$(echo "$var" | cut -d ":" -f 9)
$TC qdisc del dev $VLAN root
$TC qdisc del dev $IFB root
$TC qdisc del dev $VLAN ingress
done
$MODPROBE ifb -r
}
start(){
# Считаем строки, создаем интерфейсы EFB и включаем их
LINE=$(cat ./list | grep -v "^\#" | wc -l)
$MODPROBE ifb numifbs=$LINE
i=0
while [ $i -lt $LINE ]
do
ifconfig ifb$i up
i=$((i+1))
done
# читаем построчно файл "list"
for var in $(cat ./list | grep -v "^\#")
do
NUMBER=$(echo "$var" | cut -d ":" -f 1)
VLAN=$(echo "$var" | cut -d ":" -f 2)
IFB=$(echo "$var" | cut -d ":" -f 3)
VLAN_DOWN_RATE=$(echo "$var" | cut -d ":" -f 4)
VLAN_DOWN_CEIL=$(echo "$var" | cut -d ":" -f 5)
VLAN_UP_RATE=$(echo "$var" | cut -d ":" -f 6)
VLAN_UP_CEIL=$(echo "$var" | cut -d ":" -f 7)
NO_CLASS_TRAFFIC_RATE=$(echo "$var" | cut -d ":" -f 8)
NO_CLASS_TRAFFIC_CEIL=$(echo "$var" | cut -d ":" -f 9)
# Удаляем все обработчики на интерфейсе
#$TC qdisc del dev $VLAN root
#$TC qdisc del dev $IFB root
#$TC qdisc del dev $VLAN ingress
## Перенаправляем весь исходящий от пользователей трафик на виртуальный интерфейс ifb0
$TC qdisc add dev $VLAN ingress
$TC filter add dev $VLAN parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev $IFB
## DOWNLOAD CLASSES
#############################################################
# Создаем корневой обработчик очереди
$TC qdisc add dev $VLAN root handle $NUMBER: htb default 900
# Описание классов для входящего к пользователям трафика (пропускная способность самого интерфейса)
$TC class add dev $VLAN parent $NUMBER: classid $NUMBER:1 htb rate $SPEED_LAN_MAX burst 15k
# Локльный трафик (SERVER -> CLIENTS) (пропускная способность всего локального трафика)
$TC class add dev $VLAN parent $NUMBER:1 classid $NUMBER:10 htb rate $SPEED_Lan_RATE ceil $SPEED_LAN_MAX burst 15k
# Трафик от провайдера (SERVER -> CLIENTS) (пропускная способность канала провайдера)
$TC class add dev $VLAN parent $NUMBER:1 classid $NUMBER:100 htb rate $PROVIDER_SPEED burst 15k
# Неклассифицированный трафик будет отправлен в этот класс (SERVER -> CLIENTS)
$TC class add dev $VLAN parent $NUMBER:1 classid $NUMBER:900 htb rate $NO_CLASS_TRAFFIC_RATE ceil $NO_CLASS_TRAFFIC_CEIL
#############################################################
## UPLOAD CLASSES
#############################################################
# Создаем корневой обработчик очереди
$TC qdisc add dev $IFB root handle $NUMBER: htb default 900
# Описание классов для исходящего от пользователей трафика
$TC class add dev $IFB parent $NUMBER: classid $NUMBER:1 htb rate $SPEED_LAN_MAX burst 15k
# Локльный трафик (SERVER -> CLIENTS) (пропускная способность всего локального трафика)
$TC class add dev $IFB parent $NUMBER:1 classid $NUMBER:10 htb rate $SPEED_Lan_RATE ceil $SPEED_LAN_MAX burst 15k
# Трафик от провайдера (SERVER -> CLIENTS) (пропускная способность канала провайдера)
$TC class add dev $IFB parent $NUMBER:1 classid $NUMBER:100 htb rate $PROVIDER_SPEED burst 15k
# Неклассифицированный трафик будет отправлен в этот класс (SERVER -> CLIENTS)
$TC class add dev $IFB parent $NUMBER:1 classid $NUMBER:900 htb rate $NO_CLASS_TRAFFIC_RATE ceil $NO_CLASS_TRAFFIC_CEIL
##############################################################
done
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
start
;;
*)
msg_usage "${0##*/} {restart|start|stop}"
RETVAL=1
esac
Файл в котором хранятся все переменные
#№:VLAN:IFB:DOWNLOAD:CEIL:UPLOAD:CEIL:NOCLASS:CEIL
1:enp4s0:ifb0:10Mbit:10Mbit:10Mbit:10Mbit:10Mbit:10Mbit