Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux Advanced Routing & Traffic Control HOWTOΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 15

Автор Bert Hubert

rate

ЖСлаСмая Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° пропускной способности. Для Π΄Π°Π½Π½ΠΎΠΉ дисциплины β€” это "пСдаль Π³Π°Π·Π°"!

ВнутрСння рСализация CBQ ΠΈΠΌΠ΅Π΅Ρ‚ ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… настроСк. НапримСр, классы, Π² очСрСдях ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ. Для классов, Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠ²ΡˆΠΈΡ… ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ, пониТаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ эффСктивного ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ всС достаточно Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ, хотя ΠΈ ΠΎΡ‡Π΅Π½ΡŒ слоТно.

9.5.4.2. Π₯арактСристики классов Π² CBQ.

ΠšΡ€ΠΎΠΌΠ΅ ограничСния полосы пропускания, CBQ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ дисциплинС PRIO, ΠΈ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ классам ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚, запускаСтся процСсс взвСшСнной цикличСской Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (WRR) ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ, начиная с высокоприоритСтных классов. ΠšΠ»Π°ΡΡΡ‹ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌ, Π·Π°Ρ‚Π΅ΠΌ, послС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ количСства Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, выполняСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ процСссом Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:

allot

Когда производится Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, CBQ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ свои подклассы Π² соотвСтствии с ΠΈΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ. Когда классу прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, выбираСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ объСм Π΄Π°Π½Π½Ρ‹Ρ…. Базовая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° этого объСма опрСдСляСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ allot.

prio

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Дисциплина CBQ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ классам ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹. Π§Π΅ΠΌ мСньшС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. Пока Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ с Π²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, Ρ‚Ρ€Π°Ρ„ΠΈΠΊ с мСньшим ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π½Π΅ обрабатываСтся.

weight

ВСс. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ классов прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Если Ρƒ вас Π΅ΡΡ‚ΡŒ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ полосой пропускания, ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ классам с большой пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ Π·Π° Ρ€Π°Π· большС Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π΅ΠΌ классам с нСбольшой пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ

Дисциплина CBQ вычисляСт сумму вСсов всСх классов ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, потэому, Π² качСствС вСсов, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ значСния: Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ простоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: вСс = полоса пропускания / 10. Для опрСдСлСния количСства Π΄Π°Π½Π½Ρ‹Ρ…, посылаСмых классом Π·Π° Ρ€Π°Π·, Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ умноТаСтся Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ allot.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: всС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ классы дисциплины Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ дСскриптора!

9.5.4.3. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ CBQ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΎΠΌ заимствования.

ΠšΡ€ΠΎΠΌΠ΅ простого ограничСния полосы пропускания для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ классам Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ полосы пропускания Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов.

Isolated/sharing

Π£ класса, созданного с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ isolated, нСльзя Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ полосу пропускания. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы, настроСнныС Π½Π° Π·Π°Π΅ΠΌ доступной полосы пропускания Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ смогут Π·Π°Π½ΡΡ‚ΡŒ полосу этого класса, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ свободной.

Наоборот, класс созданный с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ sharing Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ своСй пропускной способности Π΄Ρ€ΡƒΠ³ΠΈΠΌ классам.

bounded/borrow

Π­Ρ‚ΠΈ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ класс Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ bounded Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚, Π° borrow Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ полосы пропускания классов, сконфигурированных с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ sharing.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ классы с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ bounded ΠΈ isolated, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ситуация использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° двумя организациями. Π’ этом случаС ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ полосой пропускания.

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ подклассы с опциями sharing ΠΈ borrow. Π’ этой ситуации Π·Π°Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.

9.5.4.4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ конфигурирования.

               1:           корнСвая дисциплина

               |

              1:1           Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс

             /   \

            /     \

          1:3     1:4       ΠΊΡ€Π°Π΅Π²Ρ‹Π΅ классы

           |       |

          30:     40:       дисциплины

         (sfq)   (sfq)           

Рассмотрим Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ сцСнария. НСобходимо ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ полосу пропускания Π²Π΅Π±-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π΄ΠΎ 5 ΠΌΠ΅Π³Π°Π±ΠΈΡ‚, Π° SMTP β€” Π΄ΠΎ 3 ΠΌΠ΅Π³Π°Π±ΠΈΡ‚. Буммарная полоса пропускания Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 6 ΠΌΠ΅Π³Π°Π±ΠΈΡ‚. На сСрвСрС стоит 100-мСгабитная сСтСвая ΠΊΠ°Ρ€Ρ‚Π°, классы ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Ρƒ Π΄Ρ€ΡƒΠ³Π°.

# tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit \

 avpkt 1000 cell 8

# tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit \

 rate 6Mbit weight 0.6Mbit prio 8 allot 1514 cell 8 maxburst 20 \

 avpkt 1000 bounded

Π’ этой части устанавливаСтся корнСвая дисциплина ΠΈ класс 1:1, пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π² 6 ΠΌΠ΅Π³Π°Π±ΠΈΡ‚.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, CBQ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ большС настроСк ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с HTB.

# tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit \

 rate 5Mbit weight 0.5Mbit prio 5 allot 1514 cell 8 maxburst 20 \

 avpkt 1000

# tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit \

 rate 3Mbit weight 0.3Mbit prio 5 allot 1514 cell 8 maxburst 20 \

 avpkt 1000

Π—Π΄Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° класса, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π²Π΅Π± ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ вСса классов. ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ классов Π½Π΅ ограничиваСтся, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Ρ‹ классу 1:1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ полосС пропускания. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сумма пропускных способностСй этих классов Π½Π΅ смоТСт ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Π‘Ρ‚Π°Ρ€ΡˆΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° дСскрипторов Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов (classid) Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.

# tc qdisc add dev eth0 parent 1:3 handle 30: sfq

# tc qdisc add dev eth0 parent 1:4 handle 40: sfq

ΠŸΡ€ΠΈ создании, ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· классов, ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ присоСдиняСтся дисциплина FIFO, ΠΎΠ΄Π½Π°ΠΊΠΎ, для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ распрСдСлСния пропускной способности ΠΌΠ΅ΠΆΠ΄Ρƒ соСдинСниями, присоСдиним ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· классов дисциплину ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ SFQ.

# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip \

 sport 80 0xffff flowid 1:3

# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip \

 sport 25 0xffff flowid 1:4

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚Ρ€Π°Ρ„ΠΈΠΊ классифицируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΈ направляСтся Π² Π½ΡƒΠΆΠ½Ρ‹Π΅ классы.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΊΠΎΠΌΠ°Π½Π΄Π° tc class add Π‘ΠžΠ—Π”ΠΠ•Π’ класс Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… дисциплины, Π° tc qdisc add – добавляСт дисциплину ΠΊ классу.

Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΠΎΠ½Π½Ρ‹ΠΉ вопрос: "Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ с Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ΄ условия установлСнных Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²?". Π’ этом случаС Ρ‚Ρ€Π°Ρ„ΠΈΠΊ останСтся нСклассифицированым ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ дисциплиной 1:0, Ρ‚.Π΅. ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

Если сумма SMTP+web Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² прСвысят сконфигурированныС 6 ΠΌΠ΅Π³Π°Π±ΠΈΡ‚, Ρ‚ΠΎ вся полоса пропускания Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ классами, Π² соотвСтствии с ΠΈΡ… вСсами. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ WEB-сСрвСр ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ 5/8 ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΊΠ°Π½Π°Π»Π°, Π° SMTP-сСрвСр β€” 3/8.

Π’ соотвСтствии с Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ WEB-сСрвСр всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ полосу, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 5/8*6=3.75 ΠΌΠ΅Π³Π°Π±ΠΈΡ‚Π°.

9.5.4.5. ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ настройки CBQ: split ΠΈ defmap.

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, для классификации Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, полноклассовыС дисциплины ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹.

Но ΠΊΡ€ΠΎΠΌΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², CBQ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ split ΠΈ defmap. Π₯отя Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² достаточно слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ….

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто классификация Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° производится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° основС поля TOS, Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚ΠΎ прСдусматриваСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис ΠΊΠΎΠΌΠ°Π½Π΄. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° CBQ сталкиваСтся с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ опрСдСлСния β€” Π² ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΎΠ½Π° провСряСт β€” являСтся Π»ΠΈ этот ΡƒΠ·Π΅Π» "ΡƒΠ·Π»ΠΎΠΌ разбиСния" ΠΈ Ссли это Ρ‚Π°ΠΊ, Ρ‚ΠΎ выбираСтся ΠΏΠΎΠ΄ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рассчитан исходя ΠΈΠ· значСния поля TOS.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° складываСтся ΠΏΠΎ "И" с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ defmap ΠΈ провСряСтся β€” Π΅ΡΡ‚ΡŒ Π»ΠΈ совпадСниС. ΠŸΡ€ΠΎΡ‰Π΅ говоря β€” это самый простой способ создания высокоскоростных Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ числом ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ². Π‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ defmap, Ρ€Π°Π²Π½Ρ‹ΠΌ 0xFF Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ любой ΠΏΠ°ΠΊΠ΅Ρ‚, 0x00 β€” Π½ΠΈ ΠΎΠ΄ΠΈΠ½. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ настройки ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½Π΅Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅:

# tc qdisc add dev eth1 root handle 1: cbq bandwidth 10Mbit allot 1514 \

 cell 8 avpkt 1000 mpu 64

# tc class add dev eth1 parent 1:0 classid 1:1 cbq bandwidth 10Mbit \

 rate 10Mbit allot 1514 cell 8 weight 1Mbit prio 8 maxburst 20 \

 avpkt 1000

Π‘Π°ΠΌΠΎΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ для CBQ. ЗначСния для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° defmap ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

TC_PRIO.. Число Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля TOS BESTEFFORT 0 Maximize Reliablity (0x04) (Максимальная Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ) FILLER 1 Minimize Cost (0x02) (Минимальная ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ) BULK 2 Maximize Throughput (0x08) (Максимальная пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ) INTERACTIVE_BULK 4 INTERACTIVE 6 Minimize Delay (0x10) (Минимальная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°) CONTROL 7

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° TC_PRIO.. рассчитываСтся исходя ΠΈΠ· значСния поля TOS (Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ значСниях ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ pfifo_fast).