{"id":4236,"date":"2019-07-01T15:51:31","date_gmt":"2019-07-01T15:51:31","guid":{"rendered":"https:\/\/tst-amo.net.ua\/blog\/?p=4236"},"modified":"2019-09-09T12:23:26","modified_gmt":"2019-09-09T12:23:26","slug":"ttaffic-control-%d0%b4%d0%bb%d1%8f-%d0%bd%d0%b5%d0%b1%d0%be%d0%bb%d1%8c%d1%88%d0%be%d0%b9-%d1%81%d0%b5%d1%82%d0%b8","status":"publish","type":"post","link":"https:\/\/tst-amo.net.ua\/blog\/?p=4236","title":{"rendered":"Ttaffic Control \u0434\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0435\u0442\u0438"},"content":{"rendered":"<p><strong>\u041e\u0447\u0435\u0440\u0435\u0434\u0438<\/strong><\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u043e\u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u043c \u0438\u0437 \u0442\u0435\u043e\u0440\u0438\u0438 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0442\u0435\u043b\u0435\u0442\u0440\u0430\u0444\u0438\u043a\u0430:<\/p>\n<p>CBQ (Class-Based Queueing) \u2013 \u041e\u0447\u0435\u0440\u0435\u0434\u044c, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430\u0445. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430\u043c\u0438. \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043d\u0430\u043b\u0430.<\/p>\n<p>HTB (Hierarchical Token Bucket) \u2013 \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u044b\u0440\u044f\u0432\u043e\u0433\u043e \u0432\u0435\u0434\u0440\u0430. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043d\u0430\u043b\u0430. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b.<\/p>\n<p>PRIO \u2013 \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043d\u0435 \u0432\u043b\u0438\u044f\u044e\u0449\u0430\u044f \u043d\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c. \u041f\u0430\u043a\u0435\u0442\u044b \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0445 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u0443\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432.<\/p>\n<p>\u0415\u0449\u0451 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0435\u0441\u043a\u043b\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u0432\u0438\u0434\u043e\u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439:<\/p>\n<p>[P|B]FIFO \u2013 First In, First Out \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0432 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u0438\u043b\u0438 \u0431\u0430\u0439\u0442\u0430\u0445.<\/p>\n<p>RED (Random Early Detection) \u2013 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u0442\u043e\u0440\u044b, \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044f \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0438 \u043a \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f.<\/p>\n<p>SFQ (Stochastic Fairness Queueing) \u2013 \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u0438. \u0422\u0440\u0430\u0444\u0438\u043a \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e FIFO \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 round-robin. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: perturb \u2013 \u0432\u0440\u0435\u043c\u044f, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432 (\u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0442\u0430\u0432\u044f\u0442 10 \u0441), quantum \u2013 \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0430\u0435\u043c\u044b\u0445 \u0438\u0437 \u043f\u043e\u0442\u043e\u043a\u0430 \u0437\u0430 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e MTU).<\/p>\n<p>TBF (Token Bucket Filter) \u2013 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u0442\u0440\u0430\u0444\u0438\u043a \u043f\u043e \u0442\u043e\u0447\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043b\u0438\u043c\u0438\u0442\u0443. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435: rate \u2013 \u043d\u0443\u0436\u043d\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, latency \u2013 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, burst \u2013 \u0440\u0430\u0437\u043c\u0435\u0440 \u201c\u0432\u0435\u0434\u0440\u0430\u201d \u0432 \u0431\u0430\u0439\u0442\u0430\u0445.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u0432\u0435\u0441\u0442\u0438 \u0438\u0442\u043e\u0433, \u0442\u043e TBF \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0435\u0441\u043b\u0438 \u043d\u0430\u0434\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043e\u0442 \u0443\u0437\u043b\u0430 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u0430 HTB \u2013 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0448\u0435\u0439\u043f\u0438\u043d\u0433\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u044d\u0442\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c CBQ \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0440\u044f\u0434\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0443\u0442\u0451\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e.<\/p>\n<p>**************<\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0443 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u043d\u0430\u0431\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u043e\u0432-\u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u043e\u0432:<\/p>\n<div class=\"code\">\n<div id=\"highlighter_130209\" class=\"syntaxhighlighter \">\n<div class=\"lines\">\n<pre>1.tc qdisc add dev eth0 root handle 1:\u00a0 htb default 3\r\n2.tc class add dev eth0 parent 1: classid 1:1 htb rate 64kbit\r\n3.tc class add dev eth0 parent 1: classid 1:2 htb rate 4mbit burst 15k\r\n4.tc class add dev eth0 parent 1: classid 1:3 htb rate 4mbit ceil 100mbit<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 qdisc \u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c 1: , \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u043e\u0439 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f HTB, \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c eth0 \u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1:3. \u0418 \u0434\u043b\u044f \u043d\u0435\u0433\u043e 3 \u043a\u043b\u0430\u0441\u0441\u0430: \u043e\u0434\u0438\u043d \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u043e\u0439 64kbit, \u0432\u0442\u043e\u0440\u043e\u0439 \u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u043e\u0439 4mbit \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, 15k, \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0442\u0440\u0435\u0442\u0438\u0439 \u0441 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 4mbit \u0438 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<div class=\"code\">\n<div id=\"highlighter_211853\" class=\"syntaxhighlighter \">\n<div class=\"lines\">\n<pre class=\"line alt1\">1.tc qdisc add dev eth0 parent 1:1 red min 1600 max 3210 burst 2 limit 32100 avpkt 1000\r\n2.tc qdisc add dev eth0 parent 1:2\u00a0 sfq perturb 10<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438.<\/p>\n<p><strong>\u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0432\u044b\u0439 \u2013 tc filter.<\/strong> \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u0432 \u043a\u043b\u0430\u0441\u0441 1:1<\/p>\n<div class=\"code\">\n<div id=\"highlighter_782815\" class=\"syntaxhighlighter \">\n<div class=\"bar\"><span style=\"font-family: Consolas, Monaco, monospace;\"># <\/span><span style=\"font-family: Consolas, Monaco, monospace;\">tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 192.168.0.1 flowid 1:1<\/span><\/div>\n<\/div>\n<\/div>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b, \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u043a\u0430\u0437\u0430\u043d ip 192.168.0.1.<\/p>\n<p><strong>\u0421\u043f\u043e\u0441\u043e\u0431 \u0432\u0442\u043e\u0440\u043e\u0439 \u2013 \u043f\u043e\u043c\u0435\u0442\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e iptables<\/strong><\/p>\n<div class=\"code\">\n<div id=\"highlighter_988316\" class=\"syntaxhighlighter \">\n<div class=\"bar\"><span style=\"font-family: Consolas, Monaco, monospace;\">#<\/span><span style=\"font-family: Consolas, Monaco, monospace;\">iptables -A OUTPUT -t mangle -p tcp\u00a0 -d 192.168.0.2 &#8211;dport 80 -j MARK &#8212;<\/span><span style=\"font-family: Consolas, Monaco, monospace;\">set<\/span><span style=\"font-family: Consolas, Monaco, monospace;\">-mark 20<\/span><\/div>\n<div>\n<pre># tc filter add dev eth0 protocol ip parent 1: prio 2 handle 20 fw classid 1:2<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0421\u043f\u043e\u0441\u043e\u0431 \u0442\u0440\u0435\u0442\u0438\u0439 \u2013 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0440\u0430\u0437\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e iptables<\/strong><\/p>\n<div class=\"code\">\n<div id=\"highlighter_575145\" class=\"syntaxhighlighter \">\n<div class=\"bar\"><span style=\"font-family: Consolas, Monaco, monospace;\"># iptables -t mangle -A POSTROUTING -p tcp -d 192.168.0.3 -j CLASSIFY &#8212;<\/span><span style=\"font-family: Consolas, Monaco, monospace;\">set<\/span><span style=\"font-family: Consolas, Monaco, monospace;\">-class 1<\/span><span style=\"font-family: Consolas, Monaco, monospace;\">:3<\/span><\/div>\n<\/div>\n<\/div>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 1<\/strong><\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0443 \u043f\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044e \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0442\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438:<\/p>\n<div class=\"code\">\n<div id=\"highlighter_828482\" class=\"syntaxhighlighter \">\n<div class=\"lines\">\n<pre class=\"line alt1\">#tc qdisc add dev eth0 root handle 1:\u00a0 htb default 1\r\n#tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit\r\n#iptables -t mangle -A POSTROUTING -p tcp -d 192.168.0.3 -j CLASSIFY\u00a0 --set-class 1:1<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p>\u041f<span style=\"font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;\">\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 iptables:<\/span><\/p>\n<pre># iptables -L -n -v -t mangle<\/pre>\n<p>\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430:<\/p>\n<pre># tc qdisc del dev eth0 root\r\n# iptables -t mangle -F<\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0443:<\/p>\n<pre># tc qdisc\r\nqdisc noqueue 0: dev lo root refcnt 2\r\nqdisc pfifo_fast 0: dev enp0s3 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1\r\nqdisc pfifo_fast 0: dev enp0s8 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1<\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b:<\/p>\n<pre># tc -d -s qdisc show dev enp0s8\r\nqdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1\r\nSent 1028 bytes 14 pkt (dropped 0, overlimits 0 requeues 0)\r\nbacklog 0b 0p requeues 0<\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<pre># tc qdisc\r\nqdisc noqueue 0: dev lo root refcnt 2\r\nqdisc pfifo_fast 0: dev enp0s3 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1\r\nqdisc htb 1: dev enp0s8 root refcnt 2 r2q 10 default 6 direct_packets_stat 0 direct_qlen 1000<\/pre>\n<pre># tc -d -s class show dev enp0s8\r\nclass htb 1:1 root rate 2Mbit ceil 2Mbit linklayer ethernet burst 1600b\/1 mpu 0b cburst 1600b\/1 mpu 0b level 7\r\nSent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)\r\nbacklog 0b 0p requeues 0\r\nlended: 0 borrowed: 0 giants: 0\r\ntokens: 100000 ctokens: 100000\r\n\r\nclass htb 1:5 parent 1:1 prio 0 quantum 12500 rate 1Mbit ceil 1500Kbit linklayer ethernet burst 1600b\/1 mpu 0b cburst 1599b\/1 mpu 0b level 0\r\nSent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)\r\nbacklog 0b 0p requeues 0\r\nlended: 0 borrowed: 0 giants: 0\r\ntokens: 200000 ctokens: 133328\r\n\r\nclass htb 1:6 parent 1:1 prio 0 quantum 6250 rate 500Kbit ceil 1500Kbit linklayer ethernet burst 1600b\/1 mpu 0b cburst 1599b\/1 mpu 0b level 0\r\nSent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)\r\nbacklog 0b 0p requeues 0\r\nlended: 0 borrowed: 0 giants: 0\r\ntokens: 400000 ctokens: 133328\r\n\r\nclass htb 1:7 parent 1:1 prio 0 quantum 2500 rate 200Kbit ceil 1Mbit linklayer ethernet burst 1600b\/1 mpu 0b cburst 1600b\/1 mpu 0b level 0\r\nSent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)\r\nbacklog 0b 0p requeues 0\r\nlended: 0 borrowed: 0 giants: 0\r\ntokens: 1000000 ctokens: 200000<\/pre>\n<p>&nbsp;<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441:<\/p>\n<pre># tc -s -d qdisc show dev eth0<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"pdfprnt-buttons pdfprnt-buttons-post pdfprnt-bottom-right\"><a href=\"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=wpv2posts4236&print=pdf\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/tst-amo.net.ua\/blog\/wp-content\/plugins\/pdf-print\/images\/pdf.png\" alt=\"image_pdf\" title=\"View PDF\" \/><\/a><a href=\"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=wpv2posts4236&print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/tst-amo.net.ua\/blog\/wp-content\/plugins\/pdf-print\/images\/print.png\" alt=\"image_print\" title=\"Print Content\" \/><\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>\u041e\u0447\u0435\u0440\u0435\u0434\u0438 \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0434\u043e\u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u043c \u0438\u0437 \u0442\u0435\u043e\u0440\u0438\u0438 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0442\u0435\u043b\u0435\u0442\u0440\u0430\u0444\u0438\u043a\u0430: CBQ (Class-Based Queueing) \u2013 \u041e\u0447\u0435\u0440\u0435\u0434\u044c, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0430\u0445. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430\u043c\u0438. \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043d\u0430\u043b\u0430. HTB (Hierarchical Token Bucket) \u2013 \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u044b\u0440\u044f\u0432\u043e\u0433\u043e \u0432\u0435\u0434\u0440\u0430. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 &#8230;<\/p>\n<p><a href=\"https:\/\/tst-amo.net.ua\/blog\/?p=4236\" class=\"more-link\">Continue reading &lsquo;Ttaffic Control \u0434\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0435\u0442\u0438&rsquo; &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48,45,80,47,275,274],"tags":[],"class_list":["post-4236","post","type-post","status-publish","format-standard","hentry","category-centos","category-firewall","category-iptables","category-linux","category-traffic-control","category-274"],"_links":{"self":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4236"}],"collection":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4236"}],"version-history":[{"count":4,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4236\/revisions"}],"predecessor-version":[{"id":4415,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4236\/revisions\/4415"}],"wp:attachment":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}