OpenWrt: ограничить входящий и исходящий траффик на интерфейсе

Информация, статьи, патчи, исходные коды и т.д.
Post Reply
sva
Администратор
Posts: 125
Joined: 01 May 2015, 19:56

OpenWrt: ограничить входящий и исходящий траффик на интерфейсе

Post by sva »

Встала задача на OpenWrt ограничить входящий и исходящий траффик на wifi-интерфейсе для гостевого доступа в интернет. Или другимми словами - зашейпить канал (shaping). К сожалению, или к счастью, OpenWrt построен таким образом, что простым образом можно ограничить только исходящий траффик. Для шейпинга в OpenWrt используется - TC (Traffic Control). Опционально можно поставить ещё другой пакет, расширяющий его функциональность: kmod-sched.
Далее - скрипт, который ограничивает входящий траффик на интерфейсе до 256kbit (для клиентов - исходящий) и исходящий на интерфейсе до 512Kbit (для клиентов - входящий).

Code: Select all

#!/bin/ash
tc qdisc add dev wlan0-1 handle ffff: ingress
tc filter add dev wlan0-1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate 256Kbit burst 5k drop flowid :1

tc qdisc add dev wlan0-1 root tbf rate 512Kbit latency 20ms buffer 5120
И скрипт, который удаляет установленные правила:

Code: Select all

#!/bin/ash
tc qdisc del dev wlan0-1 handle ffff: ingress
tc qdisc del dev wlan0-1 root
Post Reply