# ограничение скорости на ppp интерфейсе

## unaos

Добрый день. Сам еще не лез во все эти премудрости с tc и далее, но задача стоит и решать надо: конкретно выставить 1,5 mbit/s на входящий трафик для клиентов, которые используют vpn.

К вопросу подошел через гугл и в ip-up.d/60-shaper.sh теперь лежат следующие строчки:

```

#!/bin/bash

DOWNSPEED=256

 UPSPEED=1472

 if [ "$(echo $4 |cut -b 1-9)" == "172.16.71" ] ; then

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

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

               ##### speed server->client

  if [ "$UPSPEED" != "0" ] ;

                       then

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

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

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

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

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

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

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

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

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

[color=red]/sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10   0xff at 32 flowid 1:10[/color]

fi

                                                                     ##### speed client->server

   if [ "$DOWNSPEED" != "0" ] ;

     then

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

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

fi

fi

```

с этим возникает 2 ньюанса:

строка выделенная красным дает ошибку illegal match 

при установке UPSPEED=1536 скорость режется на уровне до 260-280 Kbit/s, т.е. 260*8=2080 kbit/s. че за нафиг?  :Smile:  хотя, возможно, это последствия ошибки, но все-равно нужны максимально близкие к тз результаты.

----------

## vitaliy_mad

 *Quote:*   

> /sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10   0xff at 32 flowid 1:10

 

match u160x0000 0xffc0 at 2 

должно быть так:

match u16 0x0000 0xffc0 at 2

----------

## unaos

спасибо, но результаты все-равно ужасные   :Evil or Very Mad:   - ниже 309 kbit/s в iptraf так и не опускается  :Sad: 

а команда  

```
tc qdisc add dev ppp0 root tbf rate 184kbit burst 1kb latency 70ms minburst 1400
```

вообще ниже 409 kbit/s спустить не может

```

eth1      Link encap:Ethernet  HWaddr 00:02:44:3f:c4:4a

          inet addr:10.21.60.163  Bcast:10.21.60.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:34616624 errors:0 dropped:0 overruns:0 frame:0

          TX packets:13061307 errors:0 dropped:0 overruns:6 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2125304010 (1.9 GiB)  TX bytes:1224155378 (1.1 GiB)

          Interrupt:10 Base address:0x2000

eth2      Link encap:Ethernet  HWaddr 00:02:44:bf:fb:5d

          inet addr:172.16.72.3  Bcast:172.16.72.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:5501112 errors:0 dropped:0 overruns:0 frame:0

          TX packets:4738133 errors:0 dropped:0 overruns:6 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:698812076 (666.4 MiB)  TX bytes:2795389733 (2.6 GiB)

          Interrupt:10 Base address:0xa000

ppp0      Link encap:Point-to-Point Protocol

          inet addr:172.16.71.1  P-t-P:172.16.71.21  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1400  Metric:1

          RX packets:97145 errors:0 dropped:0 overruns:0 frame:0

          TX packets:55467 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:3

          RX bytes:78980757 (75.3 MiB)  TX bytes:11111327 (10.5 MiB)

```

eth1 - слушает pptpd - клиентская зона

eth2 - uplink

----------

