URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 68454
[ Назад ]

Исходное сообщение
"FreeBSD + PF + ALTQ Как правильно зашейпить?"

Отправлено KES , 24-Авг-06 19:02 
Есть канал Сириус tun0.
Есть две сети
rl0 192.168.0.0/24
rl1 192.168.1.0/24

Так как AltQ не может зашейпить входящий трафик, то нужно это сделать на rl0 и rl1

Я хочу ограничить вход tun0 скоростью 10Кбайт.
Остальное оставить на исход.
Исходящие Ack пакеты должны иметь МАКС приоритет.

а) Если поставить bandwidth 10Kb на rl0 и на rl1, то получится что у меня вход какбы 20Кб
б) Если поставить bandwidth 5Kb на rl0 и на rl1, то когда на rl0 качают с 100% загрузкой, а на rl1 никто не качает (загрузка 0%) получается что 50% канала простаивает

Как правильно настроить в этой ситуации?

вопрос 2:
имею:
altq on tun0 cbq bandwidth 20Kb queue { tun0_std }
queue tun0_std on tun0 cbq (default)

у меня нет ниодного правила
pass ....... queue tun0_std

Но если посмотреть статиситку по очередям:
#pfctl -sq -v
queue root_tun0 bandwidth 20Kb priority 0 cbq( wrr root ) {tun0_std}
  [ pkts:        188  bytes:      20017  dropped pkts:      0 bytes:      0 ]
  [ qlength:   0/ 50  borrows:      0  suspends:      0 ]
  [ measured:    15.0 packets/s, 13.06Kb/s ]
queue  tun0_std bandwidth 20Kb cbq( default )
  [ pkts:        188  bytes:      20017  dropped pkts:      0 bytes:      0 ]
  [ qlength:   0/ 50  borrows:      0  suspends:      0 ]
  [ measured:    15.0 packets/s, 13.06Kb/s ]

то можно видеть как течёт трафик. С какого перепугу он тут появился???


ПРОСТО РАЗМЫШЛЕНИЯ О ШЕЙПИНГЕ
Зачем привязывать очередя к конкретным интерфейсам? Почему бы не сделать понятие очереди более виртуальным. Например очередь HTTP трафика, FTP, mail, LAN и т.д.

Шейпинг я себе представляю след образом (синтаксис не ALTQ):
queue main bandwidth 100% { qHTTP qFTP qGAMES}
queue qGAMES pri 7

queue qHTTP bandwidth 100% pri 1 { qHTTP_rl0 qHTTP_rl1 }
  queue qHTTP_rl0 (default)
  queue qHTTP_rl1 bandwidth 300Kb (borrow)

queue qFTP bandwidth 100% pri 1 { qHTTP_rl0 qHTTP_rl1 }
  queue qFTP_rl0 pri 2 (default)
  queue qFTP_rl1 pri 1


И проблема, описанная в вопросе 1 решилась бы след образом:
queue main bandwidth 115200b ( qIN qOUT )
queue qIN bandwidth 70%
queue qOUT bandwidth 30%
pass on tun0 from any to any

Таким образом трафик УХОДИЛ бы с ОЧЕРЕДИ (не с интерфейса) с нужной скоростью.


Содержание

Сообщения в этом обсуждении
"FreeBSD + PF + ALTQ Как правильно зашейпить?"
Отправлено KES , 24-Авг-06 19:30 
>И проблема, описанная в вопросе 1 решилась бы след образом:
>queue main bandwidth 115200b ( qIN qOUT )
> queue qIN bandwidth 70%
> queue qOUT bandwidth 30%
>pass on tun0 from any to any
>
Исправляюсь:
pass on tun0 from any to any  queue main