ПредишенСледващото

Реших да напиша една малка HOWTO за конфигуриране на НТВ шейпър на рутер (маршрутизатор) на Linux с помощта htb.init скрипт. Задачата е следната: има офис мрежа, има връзка към Интернет с определена скорост, в конкретния случай е 20 мегабита вход и 5 мегабита за резултатите, скоростта трябва да бъде разделена еквивалент между офис компютри, но в случая, когато каналът не е зареден - да се даде възможност да работят при максимална скорост , Това HOWTO форма не е само входящ, но и изходящ трафик, с връзка към Интернет става чрез ПЧП, което налага някои от нюансите на настройката.

Задаването на пример е показан на CentOS разпределение (RHEL, Fedora), за Debian (Ubuntu) също ще бъде дадено обяснение, тъй като някои системни инструменти се различават.

Първо трябва да изтеглите и настроите сценария за изграждане на правила шейпър да дам един пример да не се оригиналния сценарий, както и промяна от мен (поправя някои бъгове, добави изтриете кеша при рестартирането на шейпър, т.е.. А. е в кеша са записи, които вече не съществуват в конфигурацията файлове, версия 0.8.4):

Сценарият е заредена, направен изпълнима, символична връзка се поставя там, където искате, сега трябва да го включи в стартиране на CentOS (RHEL, Fedora):

Същото важи и за Debian (Ubuntu):

След това трябва да се създаде директории за конфигурационни файлове шейпър:

Допълнително описание файл корен интерфейс клас, уточни физическото скоростта на интерфейса, в този случай 100 мегабита.

Първо, трябва да намали лихвите за трафик, произтичащ от рутера, например, ако тя е инсталирана на файловия сървър, можете да се даде по-голяма от скоростта на интернет, с тази скорост няма да се отрази на скоростта на Интернет. 100 - 20 мегабита, добре 10 могат да бъдат оставени на пакети от услуги и т.н., така че да не се образуват ивица (пълно зареждане интерфейс) и да остане удобна работа се получава 70 мегабита ... Speed ​​файлов сървър може също разделени по равно между членовете на мрежата, но в този случай се пропуска.

Сега всичко клас трафик описание от Интернет. Един мегабит трафик няма да се удари в правило 19 мегабита остава описано. Тук приоритет е посочен в повече от местния трафик от рутера, че е по-, тези, лекувани по-късно.

Трафик, който не се класира в предишните правила - SHAPE на 1 мегабит.

Сега, изходящ трафик. По принцип същото като ppp0 на интерфейса, скоростта на 5 мегабита, трафикът не идва по правилата, дадени до 128 килобита (последно на файлове), останалата част от 512 килобита до 5 мегабита. Трафик от рутера и ще оформя.

Сега за етикети. В IPTABLES трябва да маркирате изходящия трафик, това е направено от следното правило в таблицата с маш:

За всеки компютър - на своето управление. Правилата за CentOS (RHEL, Fedora) защитната стена обикновено се намират във файла / и т.н. / sysconfig / IPTABLES. след промените, които искат да влязат в сила промените командата:

В Debian (Ubuntu), можете да го направите. Премахване на текущия конфигурационния файл:

Подобряване и се прилагат:

Тези команди работят и в CentOS (RHEL, Fedora), ако е необходимо. Напред. Setting е направено, сега е необходимо да се провери правилността на нашата конфигурация:

Ако няма грешки - ще видим какво е изградена htb.init скрипт за системата въз основа на конфигурационните файлове. Сега можете да стартирате шейпър:

Вие трябва да направите, за да стартирате файла:

Той ще се проведе на Крон, във всеки един момент, за този следните редове се добавят към файл / и т.н. / старица:

Добре дошли! да ви кажа за настройка, мрежова конфигурация, например, eth0 интерфейс търси в света на 1.5 мегабита, eth1 = 1Gbit LAN порта към 192.168.2.100, eth2 = 1Gbit портал 192.168.2.99, има 2 вида потребители на интернет потребителите eth1 адрес без ограничения 1 Mbit за ресурси, както и врата eth2 клиенти онлайн игри 512Kbit с достъп само пристанищата на игри, а не някакви страници, lokalku от 30 машини на една и съща подмрежа

Каква е вашата външна ширина на канала? Както е посочено в клас скоростта на корен? И като цяло каква скорост сте регистрирани и CEIL RATE в основата на класа и на личността? Защото, ако имате негарантирани CEIL = 512Kbit на всички, и на корен (споделена) клас също е на 512, а след това всичко е наред, скоростта трябва да се споделя, пропорционално на две / три, и така нататък. Н. От пациентите, в зависимост от техния брой.

Погледнете внимателно моя пример, там е в основата на този клас е регистрирана максимална скорост на връзката, и клиентът вече е регистрирана в максималния негарантиран скоростта CEIL и гарантирана скорост вече е писано в цената.

Ситуацията е както следва:
маршрутизатор, fc14, 2 интерфейс, eth0 - гледа към клиенти, IP = 172.20.10.1, Network 172.20.10.0/24
eth1 интерфейс - посветен канал до интернет, IP White

в директорията / и т.н. / sysconfig / НТВ пътека. файлове:
eth0:
По подразбиране = 9

eth0-2: 9.default:
RATE = 256Kbit
PRIO = 5
КРИЛОТО = SFQ

eth1-2: 9.default:
RATE = 256Kbit
PRIO = 5
КРИЛОТО = SFQ

и прави
/ И т.н. / sysconfig / НТВ рестартиране

Когато един клиент прекъсне, този файл се изтрива.

клиент със същата скорост от 512 вместо 256.
Това, което забравих да направя?

Един получава впечатлението, от който се добавя правило не се прилага, или правило в нея не попада в трафик на потребителя, тоест, до 256 - .. Има ли DEFAULT класа, в който движението, без да удря други правила. Погледнете реалната ситуация на интерфейса:

TC-S клас шоу Дев eth0

Тя трябва да бъде първа класа за това правило, и второ, трябва да пакети в броячи, и на отпадъци от опаковки, когато превишаване на скоростта.

класа е, броячите са празни:

клас НТВ 1: 9 родител 1: 2 листа 9: PRIO 5 скорост 256000bit CEIL 256000bit нахлу 1600b cburst 1600b
Изпратени 10,920 байта 174 пакетен (спадна 0, overlimits requeues 0 0)
скорост 2128bit 4pps неизпълнените 0Б 0пу requeues 0
отпусна кредити: 174 назаем: 0 гиганти: 0
жетони: 765,641 ctokens: 765641

клас НТВ 1: 2 корен скорост 100000Kbit CEIL 100000Kbit нахлу 1600b cburst 1600b
Изпратени 10,920 байта 174 пакетен (спадна 0, overlimits requeues 0 0)
скорост 2128bit 4pps неизпълнените 0Б 0пу requeues 0
отпусна кредити: 0 назаем: 0 гиганти: 0
символи: 1969 ctokens: 1969

> Cat / и т.н. / sysconfig / НТВ / eth0-2: 5, 1010
CEIL = 5Mbit
RATE = 512Kbit
КРИЛОТО = SFQ
PRIO = 5
ПРАВИЛО = 172.20.10.10

И Tcpdump -nni eth0 DST домакин 172.20.10.10 показва трафика?

Очевидно не се правилото за движение, и поради това не може да shapefiles интерфейс или вход / изход трябва да се бърка?

ПРАВИЛО = 172.20.10.10 - показва DST домакин, но
ПРАВИЛО = 172.20.10.10, - показва SRC приемащата

NDA ...
всичко е много по-зле ...
тези числа на скоростта, които цитирах са за изходящ трафик (Мерил iperf ома текущата сървър, преди да може да достигне, в обратното - не)
Така се оказва, - изходяща скорост, се регулира до eth1-2 файл стойност: 9.default.
Ами идва не ми пука, но хубавото е винаги един и същ и равен на 128kbit / и, което не съм направил ...
Отидох да се обеси

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

Виждам, че си човек запознат. Създаване на схема чрез danuyu ТС, целия трафик, свързан по някаква причина клас по подразбиране, че аз не съм писал във филтъра. Намерих тези инструкции, всички създават един, както е показано. Както и да е, целия трафик отива в класа по подразбиране. Какво може да е проблема? Distro Ubuntu 10.04

Аз преправяна наново, с надеждата, че някъде все още е грешно. Проблемът остава, ако не е трудно да се навирам с пръст къде да копаят)

създаването на доклади, както следва:

TC qdisc дел Дев eth0 корен
TC qdisc добавите Дев eth0 корен дръжка 1 НТВ подразбиране 9

TC клас добавка Дев eth0 родител 1: classid 1: 2 НТВ 100Mbit скорост

TC клас добавка отклонение eth0 родител 1: 2 classid 1: 4 НТВ скорост 90Mbit PRIO 4
TC qdisc добавите Дев eth0 родител 1: 4 4 SFQ обезпокоят справят 10
TC филтър добави Дев eth0 родител 1: 0 протокол IP PRIO 100 u32 мач IP SRC 192.168.0.0/24 classid 1: 4

TC клас добавка Дев eth0 родител 1: 2 classid 1: 5 НТВ процент 100Kbit PRIO 5

TC клас добавка Дев eth0 родител 1: 5 classid 1: 1010 курс НТВ 50Kbit достигам пределна точка 100Kbit PRIO 5
TC qdisc добавите Дев eth0 родител 1: 1010 дръжка 1010 SFQ обезпокоят 10
TC филтър добави Дев eth0 родител 1: 0 протокол IP PRIO 100 u32 мач IP DST 10.8.0.10 classid 1: 1010

TC клас добавка Дев eth0 родител 1: 5 classid 1: 1011 курс НТВ 50Kbit достигам пределна точка 100Kbit PRIO 5
TC qdisc добавите Дев eth0 родител 1: 1011 дръжка 1011 SFQ обезпокоят 10
TC филтър добави Дев eth0 родител 1: 0 протокол IP PRIO 100 u32 мач IP DST 10.8.0.11 classid 1: 1011

TC клас добавка отклонение eth0 родител 1: 2 classid 1: 9 НТВ скорост 20Kbit PRIO 5
TC qdisc добавите Дев eth0 родител 1: 9 9 SFQ обезпокоят справят 10

Възстановяване на всички една и съща помощ, като в същото време Открили сте грешка в линията
TC филтър добави Дев eth0 родител 1: 0 протокол IP PRIO 100 u32 мач IP SRC 192.168.0.0/24 classid 1: 4
И аз имам една и съща мрежа 10.8.0.0/16 🙂

Благодаря ви много за статията Александър.

🙂 не за това, е просто жалко, печатна грешка ...

Шейкове, но труден за скоростта, в това, което би могло да бъде в училище?

Ето как аз гледам на потребителя:

RATE = 1Mbit
CEIL = 10Mbit
PRIO = 5
КРИЛОТО = SFQ
ПРАВИЛО = 10.8.0.10

Заключение Кампильо последния доклад.

Не, първо дава процент по-близо до CEIL, няколко секунди по-късно попада на курс и лежи обратно (

Вие сте в 100 килобит като цяло скоростта е в списъка:

TC клас добавка Дев eth0 родител 1: 2 classid 1: 5 НТВ процент 100Kbit PRIO 5

И след това, което засяване гарантирани 50, 100 необезпечени (килобита). Аз не знам какво си "висока скорост" :), но е описано 3 клиент, въпреки че 2 вече могат да вкара общо трафик бар. А ивица на тази цел е лесно. Мисля, че това е така. И това е добре, че скоростта пада до едва процент и не го прави още по-ниска.

Сложих тези до скоростта на изпитване, след което nebylo върху това, което potrenirovatsya)

И когато той решава да създаде такъв, който е сериозно, това не променя общата. скорост, благодаря отново)

Добър ден! Питай какво не толкова да направя:
Интерфейс към LAN eth0, eth1 към доставчика издига ppp0 за интернет.
Всичко създадено за употреба, а не живота на мен Shape

/ Sbin / TC qdisc дел Дев eth0 корен
/ Sbin / TC qdisc добавите Дев eth0 корен дръжка 1 НТВ подразбиране 9

/ Sbin / TC qdisc дел Дев ppp0 корен
/ Sbin / TC qdisc добавите Дев ppp0 корен дръжка 1 НТВ подразбиране 9

/ Sbin / TC клас добавка отклонение eth0 родител 1: 2 classid 1: 4 НТВ скорост 100 Mbit PRIO 4
/ Sbin / TC qdisc добавят отклонение eth0 родител 1: 4 4 SFQ смущава дръжка 10
/ Sbin / TC филтър добавят отклонение eth0 родител 1: 0 протокол IP PRIO 100 u32 мач интраперитонеално DST 192.168.0.0/16 classid 1: 4

/ Sbin / TC клас добавка отклонение eth0 родител 1: 5 classid 1: 1002 скорост НТВ 512Kbit CEIL 1Mbit PRIO 5
/ Sbin / TC qdisc добавят отклонение eth0 родител 1: 1002 дръжка 1002 SFQ обезпокоят 10
/ Sbin / TC филтър добави Дев eth0 родител 1: 0 протокол IP PRIO 100 u32 мач IP DST 192.168.0.11 classid 1: 1002

/ Sbin / TC клас добавка отклонение eth0 родител 1: 2 classid 1: 9 НТВ скорост 512Kbit PRIO 5
/ Sbin / TC qdisc добавят отклонение eth0 родител 1: 9 9 SFQ смущава дръжка 10

/ Sbin / TC клас добавка отклонение ppp0 родител 1: 2 classid 1: 5 НТВ скорост 5Mbit PRIO 5

/ Sbin / TC клас добавка отклонение ppp0 родител 1: 5 1 classid 1001 скорост НТВ 512Kbit CEIL 5Mbit PRIO 5
/ Sbin / TC qdisc добавят отклонение ppp0 родител 1 1001 дръжка 1001 SFQ обезпокоят 10
/ Sbin / TC филтър добавка отклонение ppp0 родител 1: 0 протокол IP PRIO 200 1001 дръжка 1 FW classid 1001

/ Sbin / TC клас добавка отклонение ppp0 родител 1: 2 classid 1: 9 НТВ скорост 128Kbit PRIO 5
/ Sbin / TC qdisc добавят отклонение ppp0 родител 1: 9 9 SFQ смущава дръжка 10

Пакети отбелязани:
Chain PREROUTING (политика ACCEPT)
насочване на протежето дестинация неучастие източник
Маркиране на всички - 192.168.0.11 навсякъде MARK xset 0x3e9 / 0xffffffff

Така че не резултатите от форми? Дайте изходните IPTABLES-спести частта, която поставя на етикета, мисля, че има проблем.

POSTROUTING ПРИЕМА [78714397: 34898500393]
-А PREROUTING -s 192.168.0.11/32 -j MARK -set-xmark 0x3e9 / 0xFFFFFFFF
COMMIT

Аз го направи всичко на сървъра Ubuntu, ядро ​​2.6.32-39

Визуално прав. Можете да опитате да се види как трафик стига до какви правила:

TC -s qdisc шоу Дев eth0
TC -s qdisc шоу Дев ppp0

Още в ядрото 06.02.32 променило в някои версии на механизма на формиране, което ни води до подценяване на скоростта на входяща и изходяща рязането може да свързан по някакъв начин с него. Можете да опитате друга версия на ядрото, например 06.02.36?

TC -s qdisc шоу Дев eth0
qdisc pfifo_fast 0: корен refcnt 2 ленти priomap 3 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Изпратени 13365370 14,533 байта PKT (отпаднали 0, overlimits requeues 0 0)
неизпълнените 0b 0пу requeues 0

Но имаше един позьор, не знам дали не влияе шейпър - интернет спадна до 2 Mbps и вече не се увеличава, въпреки че iperf предавания [3] 0.0-10.1 сек 12.9 мегабайта 10.8 Mbits / сек
но клиентите spidtestom - 1-2mbita и всичко, и е възможно 30-50 🙁
Стоях на кабела, който отива към сървъра - при максимална скорост го, т.е. се губи някъде в сървъра, НТВ скрипт отстрани за изпитването, и папка / и т.н. / НТВ, също - не помогна ....

Ако искате да изключите шейпър, тя не трябва да бъдат премахнати, а stopnut.

Аз stopal НТВ, не реши проблема. Сложи като Ubuntu само за конфигуриране на ПЧП и маскиран, вие все още не разполагат със скоростта, проблемът не е в шейпър беше 🙁 на CentOS 6 - максимална скорост ... чудеса и повече!
Сега ние с нетърпение в посока на вземане ideco.
Благодаря ви много за съвета!

Да, няма съмнение, моля :).

Подкрепете проекта - споделете линка, благодаря!