Перейти к содержимому
Калькуляторы

harry390625

Пользователи
  • Публикации

    5
  • Зарегистрирован

  • Посещение

О harry390625

  • Звание
    Абитуриент
    Абитуриент
  1. Спасибо большое за помощь. Посмотрю на поведение сети среди недели - отпишусь по результатам
  2. Спасибо большое за разъяснения! Если переделать мои скрипты с учетом ваших замечаний - получится такой вариант: root@TestServer:/# grep -v "^#" /etc/init.d/shaper.sh | sed -e '/^$/d' modprobe imq ip link set dev imq0 up tc qdisc del dev imq0 root 2> /dev/null > /dev/null tc qdisc del dev imq0 ingress 2> /dev/null > /dev/null tc qdisc add dev imq0 root handle 1: htb default 10 r2q 10 tc class add dev imq0 parent 1: classid 1:1 htb rate 21mbit (0.9 * 24 мб/с на аплинке) tc class add dev imq0 parent 1:1 classid 1:10 htb rate 3mbit ceil 5mbit prio 3 tc qdisc add dev imq0 parent 1:10 handle 10: sfq perturb 15 tc class add dev imq0 parent 1:1 classid 1:20 htb rate 7mbit ceil 10mbit prio 4 tc qdisc add dev imq0 parent 1:20 handle 20: sfq perturb 15 tc class add dev imq0 parent 1:1 classid 1:30 htb rate 11mbit ceil 15mbit prio 5 tc qdisc add dev imq0 parent 1:30 handle 30: sfq perturb 15 ip link set dev imq1 up tc qdisc del dev imq1 root 2> /dev/null > /dev/null tc qdisc del dev imq1 ingress 2> /dev/null > /dev/null tc qdisc add dev imq1 root handle 2: htb default 10 r2q 10 tc class add dev imq1 parent 2: classid 2:2 htb rate 21mbit tc class add dev imq1 parent 2:2 classid 2:10 htb rate 3mbit ceil 5mbit prio 3 tc qdisc add dev imq1 parent 2:10 handle 10: sfq perturb 15 tc class add dev imq1 parent 2:2 classid 2:20 htb rate 7mbit ceil 10mbit prio 4 tc qdisc add dev imq1 parent 2:20 handle 20: sfq perturb 15 tc class add dev imq1 parent 2:2 classid 2:30 htb rate 11mbit ceil 15mbit prio 5 tc qdisc add dev imq1 parent 2:30 handle 30: sfq perturb 15 При поднятии ppp интерфейса буду с помощью фильтров назначать юзеру нужный класс скорости (в зависимости от должности). Только возникает еще один вопрос: получается три класса скоростей. Если в 10 классе будет один пользователь, то скорость у него будет гарантированно 3 мб/с. Получается многовато для рабочего, а поставить Rate=512 я не могу, т.к. в пиковые моменты в данном классе может быть до 30 человек... Как возможно решить такую задачу?
  3. т.е. грубо говоря если подключилось 60 человек с грантированной скоростью 512 кб/с, то 512 * 60 = 30 мб/с, а канал у меня 24 мб/с - отсюда и проблемы?.. Тогда нет смысла создавать на каждого клиента свой класс... А с другой стороны если несколько клиентов заворачивать в один класс, то не будет у них гарантированной скорости. Подскажите пожалуйста как правильно решить тогда мою задачу (каждому пользователю гарантированная скорость в зависимости от должности с возможностью увеличения скорости до определенного предела в случае простоя канала)?
  4. Подскажите пожалуйста из-за чего так происходит - для каждого клиента (ip) я же создаю свой класс
  5. После долгих изучений данного форума удалось поднять следующую конфигурацию: root@TestServer:/# uname -rms Linux 2.6.32.28+drm33.13imq1 i686 eth0 - провайдер 1 (временно не используется) eth1 - провайдер 2 (подключение по pppoe) eth2 - внутрення сеть Инет юзерам раздается по средством pptp подключений. Установлен radius + squid transparent + nat. Скорость шейпится через imq интерфейсы следующими образом: root@TestServer:/# iptables -t mangle -nvxL Chain PREROUTING (policy ACCEPT 257371872 packets, 148567043931 bytes) pkts bytes target prot opt in out source destination 429204 40571952 IMQ all -- ppp+ * 0.0.0.0/0 !195.x.x.x IMQ: todev 0 Chain INPUT (policy ACCEPT 167552178 packets, 89828138499 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 89575625 packets, 58695542283 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 180530469 packets, 136566062795 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 269795668 packets, 195212974934 bytes) pkts bytes target prot opt in out source destination 619491 687022728 IMQ all -- * ppp+ !195.x.x.x 0.0.0.0/0 IMQ: todev 1 root@TestServer:/# grep -v "^#" /etc/init.d/shaper.sh | sed -e '/^$/d' modprobe imq ip link set dev imq0 up tc qdisc del dev imq0 root 2> /dev/null > /dev/null tc qdisc del dev imq0 ingress 2> /dev/null > /dev/null tc qdisc add dev imq0 root handle 1: htb default 10 r2q 10 tc class add dev imq0 parent 1: classid 1:1 htb rate 24mbit tc class add dev imq0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 3 tc qdisc add dev imq0 parent 1:10 handle 10: sfq perturb 15 ip link set dev imq1 up tc qdisc del dev imq1 root 2> /dev/null > /dev/null tc qdisc del dev imq1 ingress 2> /dev/null > /dev/null tc qdisc add dev imq1 root handle 2: htb default 10 r2q 10 tc class add dev imq1 parent 2: classid 2:2 htb rate 24mbit tc class add dev imq1 parent 2:2 classid 2:10 htb rate 512kbit ceil 512kbit prio 3 tc qdisc add dev imq1 parent 2:10 handle 10: sfq perturb 15 root@TestServer:/# grep -v "^#" /etc/ppp/ip-up | sed -e '/^$/d' PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin export PATH PPP_IFACE="$1" PPP_TTY="$2" PPP_SPEED="$3" PPP_LOCAL="$4" PPP_REMOTE="$5" PPP_IPPARAM="$6" export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM PPP_TTYNAME=`/usr/bin/basename "$2"` export PPP_TTYNAME if [ -f /var/run/radattr.$1 ] then Download_rate_speed=`/usr/bin/awk '/Download-rate-speed/ {print $2}' /var/run/radattr.$1` Download_ceil_speed=`/usr/bin/awk '/Download-ceil-speed/ {print $2}' /var/run/radattr.$1` Upload_rate_speed=`/usr/bin/awk '/Upload-rate-speed/ {print $2}' /var/run/radattr.$1` Upload_ceil_speed=`/usr/bin/awk '/Upload-ceil-speed/ {print $2}' /var/run/radattr.$1` Class_speed=`/usr/bin/awk '/Class-speed/ {print $2}' /var/run/radattr.$1` /sbin/tc class add dev imq1 parent 2:2 classid 2:${Class_speed} htb rate ${Download_rate_speed}kbit ceil ${Download_ceil_speed}kbit burst 40k /sbin/tc qdisc add dev imq1 parent 2:${Class_speed} handle ${Class_speed}: sfq perturb 15 /sbin/tc filter add dev imq1 parent 2: protocol ip prio 5 u32 match ip dst $5 flowid 2:${Class_speed} /sbin/tc class add dev imq0 parent 1:1 classid 1:${Class_speed} htb rate ${Upload_rate_speed}kbit ceil ${Upload_ceil_speed}kbit burst 40k /sbin/tc qdisc add dev imq0 parent 1:${Class_speed} handle ${Class_speed}: sfq perturb 15 /sbin/tc filter add dev imq0 parent 1: protocol ip prio 5 u32 match ip src $5 flowid 1:${Class_speed} fi if [ -x /etc/ppp/ip-up.local ]; then exec /etc/ppp/ip-up.local "$*" fi run-parts /etc/ppp/ip-up.d \ --arg="$1" --arg="$2" --arg="$3" --arg="$4" --arg="$5" --arg="$6" if [ -e /var/run/ppp-quick ]; then rm /var/run/ppp-quick wait kill $PPPD_PID fi root@TestServer:/var/log# grep -v "^#" /etc/ppp/ip-down | sed -e '/^$/d' PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin export PATH PPP_IFACE="$1" PPP_TTY="$2" PPP_SPEED="$3" PPP_LOCAL="$4" PPP_REMOTE="$5" PPP_IPPARAM="$6" export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM if [ -f /var/run/radattr.$1 ] then Download_rate_speed=`/usr/bin/awk '/Download-rate-speed/ {print $2}' /var/run/radattr.$1` Download_ceil_speed=`/usr/bin/awk '/Download-ceil-speed/ {print $2}' /var/run/radattr.$1` Upload_rate_speed=`/usr/bin/awk '/Upload-rate-speed/ {print $2}' /var/run/radattr.$1` Upload_ceil_speed=`/usr/bin/awk '/Upload-ceil-speed/ {print $2}' /var/run/radattr.$1` Class_speed=`/usr/bin/awk '/Class-speed/ {print $2}' /var/run/radattr.$1` for h in `/sbin/tc filter show dev imq1 | grep ":${Class_speed}" | cut -d" " -f10`; do /sbin/tc filter del dev imq1 parent 2: protocol ip prio 5 handle $h u32 done /sbin/tc qdisc del dev imq1 parent 2:${Class_speed} handle ${Class_speed}: sfq perturb 15 /sbin/tc class del dev imq1 parent 2:2 classid 2:${Class_speed} htb rate ${Download_rate_speed}kbit ceil ${Download_ceil_speed}kbit burst 40k for h in `/sbin/tc filter show dev imq0 | grep ":${Class_speed}" | cut -d" " -f10`; do /sbin/tc filter del dev imq0 parent 1: protocol ip prio 5 handle $h u32 done /sbin/tc qdisc del dev imq0 parent 1:${Class_speed} handle ${Class_speed}: sfq perturb 15 /sbin/tc class del dev imq0 parent 1:1 classid 1:${Class_speed} htb rate ${Upload_rate_speed}kbit ceil ${Upload_ceil_speed}kbit burst 40k fi PPP_TTYNAME=`/usr/bin/basename "$2"` export PPP_TTYNAME if [ -x /etc/ppp/ip-down.local ]; then exec /etc/ppp/ip-down.local "$*" fi run-parts /etc/ppp/ip-down.d \ --arg="$1" --arg="$2" --arg="$3" --arg="$4" --arg="$5" --arg="$6" Все работает вроде бы правильно, и скорость режется как надо. Только временами возникает увеличение пинга на внешние ресурсы до 1500-2000 мс. У меня подозрения на шейпер. Подскажите как выяснить что может давать такую картину. Может где допустил ошибку...