The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Ограничение скорости на интерфейсе средствами netgraph во FreeBSD
Пример того как можно ограничить скорость на интерфейсе:

#!/bin/sh

kldload ng_ether
kldload ng_car

ngctl -f- <<-EOF
mkpeer re0: car lower lower
name re0:lower re0_car
connect re0: re0_car: upper upper
msg re0_car: setconf { upstream={ cbs=8192 ebs=65535 cir=100000 greenAction=1
yellowAction=1 redAction=2 mode=2 } downstream={ cbs=8192 ebs=65535 cir=1000000
greenAction=1 yellowAction=1 redAction=2 mode=2 } }
EOF


Если считать что к re0 у нас подключен клиент, то upstream это трафик от клиента в инет,
downstream - трафик из инета к клиенту.

cir - скорость в битах в секунду (в мане опечатка)

mode=2 - это RED

цифры для cbs/ebs взяты с потолка. Рекомендации по поводу этих 
параметров можно поискать в инете по ключевым словам random early detection
можно тут посмотреть например
http://www.icir.org/floyd/REDparameters.txt
 
01.12.2007 , Автор: Anton Yuzhaninov , Источник: http://ospf-ripe.livejournal.com/25...
Ключи: netgraph, shaper, bandwidth, freebsd
Раздел:    Корень / Администратору / Система / FreeBSD специфика / Установка и апгрейд FreeBSD и приложений.

Обсуждение [ RSS ]
  • 1.1, Alexander Motin (?), 12:22, 04/12/2007 [ответить]  
  • +/
    Параметры RED в ng_car фиксированные и не настраиваются. Описание cbs/ebs можно читать в мануалах циски. cbs при shape рекоментуется порядка 4-8К, ebs не используется.

    Для скоростей более 5-10Мбит/с может быть оправдано применение rate-limit (mode=3) вместо shape для экономии ресурсов. При этом рекомендуемый cbs - объем трафика за секунду, ebs - объем трафика за полторы секунды.

     
  • 1.2, greg (??), 22:54, 13/12/2007 [ответить]  
  • +/
    А смысл этого, если есть pipe/altq?
     
     
  • 2.3, Alexander Motin (?), 00:14, 14/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >А смысл этого, если есть pipe/altq?

    Pipe и altq это весьма мощные и точные инструмент, однако они по определению жестко привязаны к обработке IP трафика фаерволом (ipfw или pf).

    Netgraph же по определению не имеет жестких структур и позволяет на уровне ядра строить любые конфигурации из имеющихся составных частей. Модуль ng_car - это еще один кубик в этот конструктор. Сам по себе он предельно прост и имеет стандартный интерфейс, что позволяет использовать его ведзе, где требуется ограничение скорости передачи, вне зависимости от контекста. Он может работать с чем угодно, от IP до езернетных или PPP фреймов, или вообще с абстрактного потоком байтов.

    Лично я использую связку ng_bpf+ng_car под управлением mpd5 для дифференцированного по типу трафика ограничения скорости PPPoE подключений. Простая замена связки ipfw+pipe на эквивалентную связку ng_bpf+ng_car при 500 активных интерфейсах и 50Мбит/c трафика дала двухкратное снижение загрузки роутера за счет избавления от обхода длинного списка ipfw правил. И это еще в режиме shape. Если же перевести ng_car в режим rate-limit, его ресурсоемкость станет вообще нулевой, на уровне нескольких арифметических операций на пакет.

     
     
  • 3.4, touch (?), 01:19, 16/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Скажите, а это можно использовать на ng интерфейсах которые создаёт mpd?.. В примере так понимаю использовался физический.
     
     
  • 4.5, Alexander Motin (?), 01:22, 16/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Скажите, а это можно использовать на ng интерфейсах которые создаёт mpd?.. В
    >примере так понимаю использовался физический.

    Можно, но вот так, руками, этого делать не стоит, сложно. У свежих mpd есть встроенная поддержка ng_car.

     
  • 2.6, guest (??), 17:18, 16/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    pfctl: vlan37: driver does not support altq
     
     
  • 3.7, Andrew Kolchoogin (?), 18:29, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Впрочем, Цискины сабинтерфейсы тоже не умеют traffic-shape. :) police умеют, а traffic-shape -- нет. :)
     
     
  • 4.8, Konstantin (??), 23:04, 22/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    > Впрочем, Цискины сабинтерфейсы тоже не умеют traffic-shape. :) police умеют, а traffic-shape -- нет. :)

    SB'шные ios'ы умеют (это те что с ISG)

     
  • 3.9, zeon (?), 23:11, 25/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Потому как нужно применять altq на физический интерфейс
    altq on bge0 cbq bandwidth 100Mb queue { default_int, test_in, test_out}
    queue default_int cbq(default)
    queue test_in bandwidth 5Mb cbq(ecn)
    queue test_out bandwidth 5Mb cbq(ecn)

    pass in on vlan222 from <customers> to any queue test_in
    pass out on vlan222 from <customers> to any queue test_out

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру