Пусть есть шлюз с eth0, смотрящим в локалку и с eth1 - на провайдера.
Трафик идущий ОТ провайдера к клиентам локалки на eth1 безусловно является входящим и резать его можно только с помощью ingress или IMQ.
Но тот же трафик на eth0 уже является ИСходящим и его можно резать как душе угодно. Преимущество очевидно - на eth0 можно повешать HTB, сделать rate=ceil=достаточно_низким, т.е. делать то же, что и с помощью ingress, но с наличием буферов. Таким образом, уже пришедший трафик будет тормозиться, но не уничтожаться.
А мой вопрос вот в чем: почему НИГДЕ это толком не описано и не используется? Andy Gorev на atmsk.ru мельком об этом обмолвился и все, хотя где он это вычитал я не знаю. Ни в одном из виденных мною скриптов для контроля трафика это не используется.
Единственное, что приходит на ум - тут есть какая-то лажа, и вот об этом-то я и хочу узнать.
ЗЫ. Но вот только если лажа имеется, почему тогда это работает у меня?.. :)
###Кусок:
# Outbound Shaping (limits total bandwidth to RATEUP)
# set queue size to give latency of about 2 seconds on low-prio packets
ip link set dev $DEV qlen 30
###Конец куска
Почему у него "qlen 30" - это около двух секунд лов-прио трафика? Каким образом автор это вычислил?
5.6. Can I limit my own FTP or WWW server in a manner similar it is shown in the question above?
Generally you can, but usually these servers have got their own bandwidth limiting configurations, so you will probably want to look into their documentation.
Вот, задался вопросом, как это вообще реализуется. Точнее, меня интересуют... э-э, средства администрации этого хозяйства, если так можно выразиться.
Я так понимаю, у "правильных пацанов" где-то там, как-то там настраивается умная Cisco, т.е. на этот вот и-фейс столько-то и все на этом заканчивается.
Но я неправильный, у меня денег мало. Выделить кому-то кусок полосы я могу на Linux, а вот как это делать красиво, т.е., не переписывать на каждого нового желающего скрипт с командами tc, а как-то это систематизировать, что ли?
На мое 2.4.27 патч ложится без напильника, на код iproute (свежий) - ложится, но потом не собирается. Правда я не сильно разбирался.
На http://fatooh.org/esfq-2.6 есть другой, тут автор пишет, что в оригинальном есть реализация IMQ, ему это не нравится. А у меня уже наложен IMQ-патч, конфликт выйдет? IMQ меня больше устраивает с linuximq.net, он посвежее, да проработанней думаю. Но ляжет ли этот код (без IMQ) на мое 2.4.*?
Короче, не понял я толком ничего. Может оно и так выйдет, если поковырять, но решил уточнить, может есть у кого разумное объяснение :)
Сколько не чешу репу, никак не могу понять для чего он добавляет эти строки:
########## downlink #############
# slow downloads down to somewhat less than the real speed to prevent
# queuing at our ISP. Tune to see how high you can set it.
# ISPs tend to have *huge* queues to make sure big downloads are fast
#
# attach ingress policer:
tc qdisc add dev $DEV handle ffff: ingress
# filter *everything* to it (0.0.0.0/0), drop everything that's
# coming in too fast:
tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1
Зачем резать уже пришедший трафик и каким образом он может приходить быстрее максимальной скорости модема?