mpd-limit. Не шейпить зада...

roysbike
2012-08-06
2013-03-27
  • roysbike

    roysbike - 2012-08-06

    Добрый вечер . Подскажите пож-ста. Возможно ли используя mpd-limit mpd-filter, шейпить все кроме подсети vk.com? Исключить из шейпинга несколько подсетей. Спасибо.

     
  • roysbike

    roysbike - 2012-08-06

    пытаюсь вот так.
    mpd-filter +="1#1=match dst net 87.245.201.x/27", #эту сеть не шейпить
    mpd-limit += "in#2=flt1 pass",
    mpd-limit += "out#2=flt1 pass",
    mpd-limit += "in#4=all rate-limit 512000 pass",
    mpd-limit += "out#4=all rate-limit 512000 pass"

     
  • Alexander Motin

    Alexander Motin - 2012-08-06

    Такие правила скорее всего исключат сеть из шейпинга только в одну сторону. Врядли одна и та-же сеть будет dst и по входу и по выходу.

     
  • roysbike

    roysbike - 2012-08-06

    Вообще возможно такое? Чтобы весь трафик в инет шейпился , например 2 мбит, а подсеть vk.com не шейпилась? Спасибо за быстрый ответ

     
  • roysbike

    roysbike - 2012-08-06

    По идеи вот так,
    mpd-filter += "1#1=match dst net 87.245.201.x/27"
    mpd-filter += "1#2=match src net 87.245.201.x/27"
    mpd-limit += "in#1=flt1 pass"
    mpd-limit += "out#1=flt2 pass"
    mpd-limit += "in#2=all rate-limit 512000 pass"
    mpd-limit += "out#3=all rate-limit 512000 pass"
    подскажите пож-ста , где ошибка?
    Шейпит все 512 кбит/с

     
  • Alexander Motin

    Alexander Motin - 2012-08-06

    Идея верная, реализация - нет. Вы описали один фильтр из двух строк, а ссылаетесь на два фильтра.

     
  • roysbike

    roysbike - 2012-08-06

    Спасибо  за помощь. Получилось только когда узазываешь маску 31,32. Почему может быть?
    mpd-filter += "1#1=match dst net 87.245.201.x/32"
    mpd-filter += "1#2=match src net 87.245.201.x/32"
    mpd-limit += "in#3=flt1 pass"
    mpd-limit += "out#4=flt1 pass"
    mpd-limit += "in#5=all rate-limit 512000 pass"
    mpd-limit += "out#6=all rate-limit 512000 pass"

     
  • Alexander Motin

    Alexander Motin - 2012-08-06

    Подозреваю что вы не знаете что такое адрес сети и как он связан с маской сети или не умеете считать. Выполните `tcpdump dst net 87.245.201.x/32` (подставив вас секретный x) и получите ответ.

    К слову предыдущую ошибку вы исправили, но не там способом что я ожидал. Я бы сделал таки два отдельный фильтра. Это было бы выгоднее.

     
  • Alexander Motin

    Alexander Motin - 2012-08-06

    Прошу прощения, `tcpdump dst net 87.245.201.x/27` конечно.

     
  • roysbike

    roysbike - 2012-08-07

    да вы правы. С маской полный бред написал.

    mpd-filter += "1#1=match dst net 87.245.203.0/24"
    mpd-filter += "2#2=match src net 87.245.203.0/24"
    mpd-limit += "in#3=flt1 pass"
    mpd-limit += "out#3=flt2 pass"
    mpd-limit += "in#4=all rate-limit 512000 pass"
    mpd-limit += "out#4=all rate-limit 512000 pass"

    Подскажите mpd-filter += "1#1  (1# Это номер правила?)

     
  • Dmitry S. Luhtionov

    В 1#1 - первая единица - номер фильтра, вторая - номер правила в фильтре
    Т.е вполне возможно такое:

    mpd-filter += "1#1=match dst net 87.245.203.0/24"
    mpd-filter += "1#2=match dst net 192.168.0.0/24"
    mpd-filter += "1#3=match dst net 172.16.0.0/24"
    mpd-filter += "2#2=match src net 87.245.203.0/24"
    mpd-limit += "in#3=flt1 pass"
    mpd-limit += "out#3=flt2 pass"
    mpd-limit += "in#4=all rate-limit 512000 pass"
    mpd-limit += "out#4=all rate-limit 512000 pass"

     
  • roysbike

    roysbike - 2012-08-07

    Разобрался. Спасибо!

     
  • roysbike

    roysbike - 2012-08-07

    Подскажите. Чтобы не снизить производительность , как лучше распределить фильтры? Каждую подсеть в отдельный фильтр? или все в одном?
    mpd-filter += "1#1=match dst net 87.245.203.16/28 or dst net 87.240.143.240/28 or dst net 93.186.224.240/29 or dst net 87.240.131.96/28" #vk.com
    mpd-filter += "2#2=match src net 87.245.203.16/28 or src net 87.240.143.240/28 or src net 93.186.224.240/29 or src net 87.240.131.96/28"
    mpd-limit += "in#3=flt1 pass"
    mpd-limit += "out#3=flt2 pass"
    mpd-limit += "in#4=all rate-limit 512000 pass"
    mpd-limit += "out#4=all rate-limit 512000 pass" #Остальной трафик режим до 512 кбит/c

     
  • Alexander Motin

    Alexander Motin - 2012-08-07

    libpcap оптимизирует выражения при компиляции. Один сложный фильтр имеет больше шансов на оптимизацию (одноразовое наложение маски и т.п.) чем несколько мелких. Но следует различать несколько фильтров и несколько строк одного фильтра (которые все равно будут склеены в одно выражение).

     
  • roysbike

    roysbike - 2012-08-07

    большое спасибо за помощь!

     
  • roysbike

    roysbike - 2012-12-05

    Добрый вечер! Помогите пожалуйста оптимизировать шейпер . Мне кажется , что причиной высоких interrupt  по отношению interrupt к uplink порту является в не правильном построении шейпера.
    Traffic filters :
    1#1 'match dst net 172.30.0.24/29'
    2#2 'match src net 172.30.0.24/29'
    Traffic limits  :
    in#3 'flt1 rate-limit 50000000 pass' # скорость для локалки
    in#4 'all rate-limit 2048000 256000 768000 pass' # в интернеты
    out#3 'flt2 rate-limit 50000000 pass' # скорость для локалки
    out#4 'all rate-limit 2048000 256000 768000 pass'  # в интернеты

     
  • roysbike

    roysbike - 2012-12-05

    Может лучше вообще сделать на flt1 просто pass ?

     
  • Alexander Motin

    Alexander Motin - 2012-12-06

    Если вас этой устроит, то понечно лучше. Правда не знаю на сколько сильно это повлияет. Не думаю что у вас может быть значительная часть трафика именно на эту сеть.

     
  • Dmitry S. Luhtionov

    Если совсем уж критично - смотрите в сторону 10-CURRENT. Недавно туда закоммитили новую версию bpfjitter.

     
  • roysbike

    roysbike - 2012-12-06

    спасибо почитаю) может попробую накотить для интереса)

     
  • roysbike

    roysbike - 2012-12-07

    amonit вы правы, это никак картину не изменило . Я отписался в теме про many vlan's о проблеме, посмотрите пож-ста , может подскажите, что может быть.

     

Log in to post a comment.