Поиск по этому блогу

понедельник, 5 мая 2014 г.

Juniper EX3300 ограничение скорости на порту

Необходимо зарезать скорость на access коммутаторе Juniper EX3200, сделать это необходимо в рамках одного устройства. Я находил несколько способов настройки, но выбрал свой (может оно конечно и коряво вышло, но пока работает и клиент не жалуется).

В моем варианте сначала используется механизм shaping-rate, ограничивающий скорость передачи пакетов, установив максимальную ширину канала С уровня иерархии edit ограничим максимальную скорость в 4MB/s на 26 порту:
{master:0}[edit]
juniper@acc-5# set class-of-service interfaces ge-0/0/26 shaping-rate 4000000

Проверяем результат
{master:0}[edit]
juniper@acc-5# show class-of-service 
interfaces {
    ge-0/0/26 {
        shaping-rate 4m;
    }
}

Механизм shaping-rate дает примерно вот такой результат (использовалась программа Iperf и графическая оболочка для нее Jperf, на компах с двух сторон стояла Windows 7 64 bit)

Затем использовались механизм policer. Policerпозволяет контролировать максимальную скорость приема и передачи на интерфейсе, позволяет решить, как дальнейшим образом поступить с трафиком. Пакеты, которые соответствуют ограничению или отбрасываются, или с другим классом передачи.
{master:0}[edit]
juniper@acc-5# set firewall policer 4m if-exceeding bandwidth-limit 4m burst-size-limit 250000
{master:0}[edit]
juniper@acc-5# set firewall policer 4m then discard

policer 4m - задается имя для policer-а, будит использоваться в дальнейшем.
Проверяем результат
{master:0}[edit]
juniper@acc-5#show firewall
...................
policer 4m {
    if-exceeding {
        bandwidth-limit 4m;
        burst-size-limit 250000;
    }
    then discard;
}
.................

Используем механизм firewall filters - позволяет управлять пакетами, проходящими через устройство к сети назначения, а также принятыми и переданными пакетами на самом устройстве.
{master:0}[edit]
juniper@acc-5#set firewall family ethernet-switching filter 4m 
term limit4m then accept policer 4m

Посмотрим результат
{master:0}[edit]
juniper@acc-5#show firewall 
.............................
family ethernet-switching {
        filter shaping {
        term limit4m {
            then {
                accept;
                policer 4m;
            }
        }
    }
}

policer 4m {
    if-exceeding {
        bandwidth-limit 4m;
        burst-size-limit 250000;
    }
    then discard;
}
.......................

Осталось применить это правило к интерфейсу
{master:0}[edit interfaces ge-0/0/26]
juniper@acc-5#set unit 0 family ethernet-switching filter input 4m

Посмотрим результат
{master:0}[edit ]
juniper@acc-5#show interfaces ge-0/0/   26 
unit 0 {
    family ethernet-switching {
        filter {
            input 4m;
        }
    }
}

Механизм shaping-rate дает примерно вот такой результат (использовалась программа Iperf и графическая оболочка для нее Jperf, на компах с двух сторон стояла Windows 7 64 bit)

Получается, что shaping-rate отвечает за ограничение скорости принятых пакетов, а policer - отвечает за ограничение скорости отправленных пакетов, если смотреть со стороны клиента.

Самая сложная вещь была для меня это расчет burst-size-limit. Я так до конца и не понял, что это за механизм и для чего он нужен. Если считать по формуле, приведенной на официальном сайте, то скорость у меня не поднималась выше 300Kb/s. Как я понял, каждый ее подбирает эмпирическим путем. Я для расчета брал вот такую формулу (4000000*0,5)/8 = 250000



Комментариев нет:

Отправить комментарий