Шейпер на Solaris

Нормального (с очередями, borrow и прочим) шейпера на Solaris — не существует. Зато есть отдельные сервисы flowadm и crossbow. Оба они не слишком идеально подходят для в качестве шейпера, но ограничивать полосу они могут. Рассмотрим только flowadm, так как crossbow больше подходит для виртуализации (кстати, именно им можно ограничивать скорость на виртуальных интерфейсах vnic).

Тестовый стенд: Solaris 11

$ scp 10.5.5.116:/export/home/skeletor/firefox.tar ../tmp/
Password:
firefox.tar       82%   81MB  15.7MB/s   00:01 ETA

Скорость приличная, 15.7 Мбайт/с

Установим скорость в 10 Мбит/с:

#flowadm add-flow -l net0 -a remote_ip=10.5.5.55 -p maxbw=10M skel-flow

где net0 — сетевой интерфейс, на который вешаем ограничение, remote_ip — удалённый IP на который действует ограничение, maxbw — собственно ограничение по скорости, skel-flow — имя для ограничения.

Смотрим текущие ограничения:

# flowadm show-flow
FLOW        LINK                IPADDR                   PROTO  LPORT   RPORT   DSFLD
skel-flow   net0                RMT:10.5.5.55/32         --     --      --      --

И более подробно:

# flowadm show-flowprop skel-flow
FLOW         PROPERTY        VALUE          DEFAULT        POSSIBLE
skel-flow    maxbw              10          --             --

Проверяем скорость:

skeletor@skeletor:~/git$ scp 10.5.5.116:/export/home/skeletor/firefox.tar ../tmp/
Password:
firefox.tar   12%   12MB   1.2MB/s   00:58 ETA

Как видим скорость упала больше, чем в 10 раз.

Для удаления используейте flowadm remove-flow:

# flowadm remove-flow skel-flow
# flowadm show-flow
#

Примечание.

Для не глобальных зон, есть некоторые ограничения: если у вас ip-type=shared, то все правила нужно писать только в global зоне. Иначе получите сообщение:

# flowadm show-flow
flowadm: could not open /dev/dld: object not found

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *