Jump to content

Recommended Posts

Posted

Очередной раз хочу поднять эту тему, так как вразумительного решения так и не нашел (по форуму искал, нашел тока обсуждения, но не решение)

 

Есть сервер pptp под linux. eth0 смотрит во внутреннюю стеку, eth1 на канал провайдера. У всех клиентов разная скорость, и при подключении pppd запускает скрипт который выставляет эту скорость.

 

Сейчас это делается таким скриптом:

 

#!/bin/sh



DOWNLINK=$1

UPLINK=$2

IFNAME=$3



/sbin/tc qdisc del dev $IFNAME root    > /dev/null

/sbin/tc qdisc del dev $IFNAME ingress > /dev/null



###### uplink

# install root HTB, point default traffic to 1:20:

/sbin/tc qdisc add dev $IFNAME root handle 1: htb default 20 r2q 1

/sbin/tc class add dev $IFNAME parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 4k

/sbin/tc class add dev $IFNAME parent 1:1 classid 1:10 htb rate ${UPLINK}kbit burst 4k prio 1

/sbin/tc class add dev $IFNAME parent 1:1 classid 1:20 htb rate ${UPLINK}kbit burst 4k prio 2

/sbin/tc qdisc add dev $IFNAME parent 1:10 handle 10: sfq perturb 10 quantum 1500

/sbin/tc qdisc add dev $IFNAME parent 1:20 handle 20: sfq perturb 10 quantum 1500

/sbin/tc filter add dev $IFNAME parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10

/sbin/tc filter add dev $IFNAME parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10

/sbin/tc filter add dev $IFNAME parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10



########## downlink #############

/sbin/tc qdisc add dev $IFNAME handle ffff: ingress

/sbin/tc filter add dev $IFNAME parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNLINK}kbit burst 12k drop flowid :1

 

Но ingress дает довольно нестабильную, скачкообразную скорость, да и хотелось бы приоритезацию как и на уходящий клиенту трафик. Понятно что для этого нужно шейпить на интерфейсе eth1, который уходит в инет, так как трафик от клиентов на нем будет уходящим. Но как динамически создавать классы и очереди htb просто абсолютно не ясно... Поделитесь опытом, если кто смог решить.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.