Linux Server Рязка рана - Как да Лимит трафик с Линукс, ТК, и iproute2!

от не повече от четвъртък, 25-ти септември 2008 г.

Запомни го направих един бърз пост за това как да напишете натоварването скрипт (или широчина на честотната лента дроселиране)?

Е, днес аз открих друг хладен скрипт за ограничаване на честотната лента. Вярвам, че това един вариант, ако по-сложно, но ако имате нужда от него, той може да бъде много полезен.

Ето код чрез Adamsinfo.com:


# Set some variables
#!/bin/bash
EXT_IFACE=”eth0″
INT_IFACE=”eth1″
TC=”tc”
UNITS=”kbit”
LINE=”10000″ #maximum ext link speed
LIMIT=”5000″ #maximum that we'll allow


# Set някои променливи за отделни "класове", която ще използвате, за да форма вътрешния скорост на качване, т.е. оформяне ETH0
CLS1_RATE = "200" # Висок Първенство трафик класа 200kbit
CLS2_RATE = "300" # Приоритетна среден клас е 300kbit
CLS3_RATE = "4500" # насипни класа 4500kbit
# (Ние ще определени кои от тях могат да вземат назаем от които по-късно)

# Set някои променливи за отделни "класове", която ще използвате, за да изтеглите форма вътрешната скорост, т.е. оформяне eth1
INT_CLS1_RATE = "1000" # Приоритетна
INT_CLS2_RATE = "4000" # насипни

# Изтриване на текущата qdiscs. т.е. изчисти
$ (TC qdisc дел Dev) $ () INT_IFACE корен
$ (TC qdisc дел Dev) $ () EXT_IFACE корен

# Прикачване на корен qdiscs. Ние се използва HTB тук, и този, свързани qdisc на двата интерфейса. Ние ще го етикет "1:0"
$ (TC qdisc добави Dev) $ () INT_IFACE корен дръжка 1:0 HTB
$ (TC qdisc добави Dev) $ () EXT_IFACE корен дръжка 1:0 HTB

# Създаване корен класове, с максимално допустимите стойности, определени
# Един за eth1
$ (TC клас добави Dev) $ () INT_IFACE майка 1:0 classid 1:1 HTB курс LIMIT $ () $ () ГРУПИ достигам пределна точка LIMIT $ () $ () ГРУПИ
# Един за ETH0
$ (TC клас добави Dev) $ () EXT_IFACE майка 1:0 classid 1:1 HTB курс LIMIT $ () $ () ГРУПИ достигам пределна точка LIMIT $ () $ () ГРУПИ

Създайте # дете класове
# Те са за вътрешния ни интерфейс eth1
# Създаване на клас с надпис "1:2" и да го ограничи определени по-горе
$ (TC клас добави Dev) $ () INT_IFACE майка 1:1 classid 1:2 HTB курс INT_CLS1_RATE $ () $ () ГРУПИ достигам пределна точка LIMIT $ () $ () ГРУПИ
# Създаване на клас с надпис "1:3" и да го ограничи определени по-горе
$ (TC клас добави Dev) $ () INT_IFACE майка 1:1 classid 1:3 HTB курс INT_CLS2_RATE $ () $ () ГРУПИ достигам пределна точка INT_CLS2_RATE $ () $ () ГРУПИ

# EXT_IF (качване) сега. Ние също така класове, които могат да заемат и да кредитира.
# Този клас е гарантирано 200kbit и може да пръсване до 5000kbit ако има такива
$ (TC клас добави Dev) $ () EXT_IFACE майка 1:1 classid 1:2 HTB курс CLS1_RATE $ () $ () ГРУПИ достигам пределна точка LIMIT $ () $ () ГРУПИ
# Този клас е гарантирано и може да 300kbit разрушаване до 5000kbit-200kbit = 4800kbit ако има такива
$ (TC клас добави Dev) $ () EXT_IFACE майка 1:1 classid 1:3 HTB курс CLS2_RATE $ () $ () ГРУПИ достигам пределна точка "Хуманитарна помощ" $ (LIMIT) - $ (CLS1_RATE) | ж.к. "$ () ГРУПИ
# Този клас може да се гарантира 4500kbit и може да се разрушава, миналото нея (5000kbit-200kbit-300kbit = 4500kbit).
# Т.е. дори и ако нашите трафик полудява насипно състояние, на два класа по-горе, са все още гарантирана достъпност.
$ (TC клас добави Dev) $ () EXT_IFACE майка 1:1 classid 1:4 HTB курс CLS3_RATE $ () $ () ГРУПИ достигам пределна точка "Хуманитарна помощ" $ (LIMIT) - $ (CLS1_RATE) - $ (CLS2_RATE) | ж.к. "$ () ГРУПИ

# Добави pfifo. Прочетете повече за pfifo другаде, това е извън обхвата на това HOWTO.
$ (TC qdisc добави Dev) $ () INT_IFACE майка 1:2 дръжка 12: pfifo ограничение 10
$ (TC qdisc добави Dev) $ () INT_IFACE майка 1:3 дръжка 13: pfifo ограничение 10
$ (TC qdisc добави Dev) $ () EXT_IFACE майка 1:2 дръжка 12: pfifo ограничение 10
$ (TC qdisc добави Dev) $ () EXT_IFACE майка 1:3 дръжка 13: pfifo ограничение 10
$ (TC qdisc добави Dev) $ () EXT_IFACE майка 1:4 дръжка 14: pfifo ограничение 10

# # # Съставено добавяне на всички класове, вече създаде някои правила! # # #
# INT_IFACE
# Забележка посока на "DST". Трафик, който излиза на нашия вътрешен интерфейс и до нашите сървъри е вън Download Speed сървър, така SOME_IMPORTANT_IP са разпределени за 1:2 клас за изтегляне.
$ (TC) филтър добави Dev $ () INT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP SOME_IMPORTANT_IP/32 DST flowid 1:2
$ (TC) филтър добави Dev $ () INT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP SOME_OTHER_IMPORTANT_IP/32 DST flowid 1:2
# Всички други сървъри Download Speed отива при 1:3 - не е толкова важно, тъй като двете
$ (TC) филтър добави Dev $ () INT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP DST 0.0.0.0 / 0 flowid 1:3

# EXT_IFACE
# Искания приоритет на DNS
$ (TC) филтър добави Dev $ () EXT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP SRC IMPORTANT_IP/32 спорт среща IP 53 0xffff flowid 1:2
# SSH е важно
$ (TC) филтър добави Dev $ () EXT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP SRC IMPORTANT_IP/32 спорт среща IP 22 0xffff flowid 1:2
# Нашите ИВ SMTP сървъра е от голямо значение
$ (TC) филтър добави Dev $ () EXT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP SRC 217.10.156.197/32 мач IP спорт 25 0xffff flowid 1:3
# По-голямата част
$ (TC) филтър добави Dev $ () EXT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP SRC 0.0.0.0 / 0 flowid 1:4

Оценявам

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

20000 GPS POI's $ 9,99

Свързани Новини и ресурси

  • Ярон
    Здрасти,
    Големите обяснява, че работи много добре:).
    Аз имам един въпрос:
    Какво ще стане с потоци, които вече съществуват? филтъра ще ги брои?
    (тъй като спорта и зрог вече са се променили, преди поставяне на филтър)

    Например:
    $ (TC) филтър добави Dev $ () EXT_IFACE майка 1:0 Prio протокол IP 1 u32 мач IP SRC 217.10.156.197/32 мач IP спорт 25 0xffff flowid 1:3

    пристанището източник не може да бъде 25 за една връзка, която вече е започнала.
Блог коментари, задвижвани от Disqus
Ако ви харесва този пост тогава моля се абонирате за моята пълна RSS емисия.

Можете също така да се абонирате по пощата чрез попълване на вашето име и имейл по-долу:

Име: Email:


Имаш ли нова рязка рана, DIY, HOWTO, или притурки? Съвет нас тук.

Опитайте Goohack да се намери нова Рязка рана:


Featured Sites From Zedomax Blog Network