
एक tc कमांड रैपर। किसी नेटवर्क इंटरफ़ेस/Docker-container(veth) पर नेटवर्क बैंडविड्थ/विलंबता/पैकेट हानि/पैकेट भ्रष्टाचार/आदि का ट्रैफिक नियंत्रण सेट करना आसान बनाता है।
.. contents:: tcconfig :backlinks: top :depth: 2
tcconfig <https://github.com/thombashi/tcconfig>__ एक tc कमांड रैपर है। यह नेटवर्क बैंडविड्थ/लेटेंसी/पैकेट-लॉस/पैकेट-करप्शन/आदि के ट्रैफिक कंट्रोल को नेटवर्क-इंटरफ़ेस/डॉकर-कंटेनर(veth) पर सेट करना आसान बनाता है।
|PyPI pkg ver| |Supported Python ver| |CI status| |CodeQL|
.. |PyPI pkg ver| image:: https://badge.fury.io/py/tcconfig.svg :target: https://badge.fury.io/py/tcconfig :alt: PyPI package version
.. |Supported Python ver| image:: https://img.shields.io/pypi/pyversions/tcconfig.svg :target: https://pypi.org/project/tcconfig :alt: Supported Python versions
.. |CI status| image:: https://github.com/thombashi/tcconfig/actions/workflows/ci.yml/badge.svg :target: https://github.com/thombashi/tcconfig/actions/workflows/ci.yml :alt: Test CI status
.. |CodeQL| image:: https://github.com/thombashi/tcconfig/actions/workflows/build_and_release.yml/badge.svg :target: https://github.com/thombashi/tcconfig/actions/workflows/build_and_release.yml :alt: Build CI status
ट्रैफिक शेपिंग नियम सेट करें ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ विशिष्ट नेटवर्कों पर ट्रैफिक शेपिंग नियम लागू करना आसान:
उपलब्ध पैरामीटर ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ निम्नलिखित पैरामीटर नेटवर्क इंटरफ़ेस पर सेट किए जा सकते हैं:
[G/M/K bps][microseconds/milliseconds/seconds/minutes][%][%][%][%][COUNT]लक्ष्य ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
eth0veth).. image:: docs/gif/tcset_example.gif
tcset कमांड)tcset एक कमांड है जो नेटवर्क इंटरफ़ेस (डिवाइस) में ट्रैफिक नियंत्रण नियम जोड़ने के लिए है।
उदा. बैंडविड्थ को 100Kbps तक सीमित करें ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console
# tcset eth0 --rate 100Kbps
उदा. नेटवर्क लेटेंसी सेट करें ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ आप विलंब समय निर्दिष्ट करने के लिए समय इकाइयों (जैसे us/sec/min/आदि) का उपयोग कर सकते हैं।
100 मिलीसेकंड नेटवर्क लेटेंसी सेट करें ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console
# tcset eth0 --delay 100ms
10 सेकंड नेटवर्क लेटेंसी सेट करें ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console
# tcset eth0 --delay 10sec
0.5 मिनट (30 सेकंड) नेटवर्क लेटेंसी सेट करें ''''''''''''''''''''''''''''''''''''''''''''''''''' .. code-block:: console
# tcset eth0 --delay 0.5min
आप निम्नलिखित समय इकाइयों का भी उपयोग कर सकते हैं:
.. table::
+------------+----------------------------------------------------------+
| इकाई | उपलब्ध निर्दिष्टकर्ता (str) |
+============+==========================================================+
|घंटे |``h``/``hour``/``hours`` |
+------------+----------------------------------------------------------+
|मिनट |``m``/``min``/``mins``/``minute``/``minutes`` |
+------------+----------------------------------------------------------+
|सेकंड |``s``/``sec``/``secs``/``second``/``seconds`` |
+------------+----------------------------------------------------------+
|मिलीसेकंड|``ms``/``msec``/``msecs``/``millisecond``/``milliseconds``|
+------------+----------------------------------------------------------+
|माइक्रोसेकंड|``us``/``usec``/``usecs``/``microsecond``/``microseconds``|
+------------+----------------------------------------------------------+
उदा. 0.1% पैकेट हानि सेट करें ^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console
# tcset eth0 --loss 0.1%
उदा. उपरोक्त सभी सेटिंग्स एक साथ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console
# tcset eth0 --rate 100Kbps --delay 100ms --loss 0.1%
उदा. ट्रैफिक नियंत्रण का IP पता निर्दिष्ट करें ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console
# tcset eth0 --delay 100ms --network 192.168.0.10
उदा. ट्रैफिक नियंत्रण का IP नेटवर्क और पोर्ट निर्दिष्ट करें ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console
# tcset eth0 --delay 100ms --network 192.168.0.0/24 --port 80
डॉकर कंटेनर को ट्रैफिक नियंत्रण सेट करें
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
डॉकर होस्ट पर --docker विकल्प के साथ tcconfig निष्पादित करें:
.. code-block:: console
# tcset <container name or ID> --docker ...
आप स्रोत/गंतव्य कंटेनर निर्दिष्ट करने के लिए --src-container/--dst-container विकल्पों का उपयोग कर सकते हैं।
डॉकर कंटेनर के अंदर ट्रैफिक नियंत्रण सेट करें
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
यदि आप कंटेनर के अंदर एक tc नियम सेट करना चाहते हैं तो आपको --cap-add NET_ADMIN विकल्प के साथ एक कंटेनर चलाने की आवश्यकता है:
.. code-block:: console
docker run -d --cap-add NET_ADMIN -t <docker image>
एक कंटेनर इमेज जिसमें बिल्ट-इन tcconfig है, https://hub.docker.com/r/thombashi/tcconfig/ पर उपलब्ध है।
tcdel कमांड)tcdel एक कमांड है जो नेटवर्क इंटरफ़ेस (डिवाइस) से ट्रैफिक शेपिंग नियमों को हटाता है।
उदा. eth0 का ट्रैफिक नियंत्रण हटाएं
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
आप -a/--all विकल्प के साथ eth0 के सभी शेपिंग नियमों को हटा सकते हैं:
.. code-block:: console
# tcdel eth0 --all
tcshow कमांड)tcshow एक कमांड है जो नेटवर्क इंटरफ़ेस(स) के लिए वर्तमान ट्रैफिक नियंत्रण सेटिंग्स प्रदर्शित करता है।
उदाहरण ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: console
# tcset eth0 --delay 10ms --delay-distro 2 --loss 0.01% --rate 0.25Mbps --network 192.168.0.10 --port 8080
# tcset eth0 --delay 1ms --loss 0.02% --rate 500Kbps --direction incoming
# tcshow eth0
{
"eth0": {
"outgoing": {
"dst-network=192.168.0.10/32, dst-port=8080, protocol=ip": {
"filter_id": "800::800",
"delay": "10.0ms",
"delay-distro": "2.0ms",
"loss": "0.01%",
"rate": "250Kbps"
}
},
"incoming": {
"protocol=ip": {
"filter_id": "800::800",
"delay": "1.0ms",
"loss": "0.02%",
"rate": "500Kbps"
}
}
}
}
More examples are available at https://tcconfig.rtfd.io/en/latest/pages/usage/index.html
tcconfig को pip <https://pip.pypa.io/en/stable/installing/>__ (Python पैकेज मैनेजर) कमांड के माध्यम से PyPI <https://pypi.python.org/pypi>__ से स्थापित किया जा सकता है।
.. code:: console
sudo pip install tcconfig
.. code:: console
curl -sSL https://raw.githubusercontent.com/thombashi/tcconfig/master/scripts/installer.sh | sudo bash
Python पैकेज निर्भरताएँ (स्वचालित रूप से स्थापित) <https://github.com/thombashi/tcconfig/network/dependencies>__tc कमांड के लिए आवश्यक:
Ubuntu/Debian: iproute2Fedora/RHEL: iproute-tc--iptables विकल्प का उपयोग करते हैं तब आवश्यक:
iptablessch_netemPygments <http://pygments.org/>__|chasbecker| |shiguredo| |b4tman| |Arturi0| |github|
.. |chasbecker| image:: https://avatars.githubusercontent.com/u/44389260?s=48&u=6da7176e51ae2654bcfd22564772ef8a3bb22318&v=4 :target: https://github.com/chasbecker :alt: ex-sponsor: Charles Becker (chasbecker) .. |shiguredo| image:: https://avatars.githubusercontent.com/u/2549434?s=48&v=4 :target: https://github.com/shiguredo :alt: ex-sponsor: 時雨堂 (shiguredo) .. |b4tman| image:: https://avatars.githubusercontent.com/u/3658062?s=48&v=4 :target: https://github.com/b4tman :alt: onetime: Dmitry Belyaev (b4tman) .. |Arturi0| image:: https://avatars.githubusercontent.com/u/46711571?s=48&u=57687c0e02d5d6e8eeaf9177f7b7af4c9f275eb5&v=4 :target: https://github.com/Arturi0 :alt: onetime: Arturi0 .. |github| image:: https://avatars.githubusercontent.com/u/9919?s=48&v=4 :target: https://github.com/github :alt: onetime: GitHub (github)
प्रायोजक बनें <https://github.com/sponsors/thombashi>__