Jak używać klasyfikacji iptables

Jak używać klasyfikacji iptables
IPTABLES CLASIFY Zezwala administratorom zarządzanie ruchem sieciowym poprzez przydzielanie pożądanej ilości zasobów przepustowości do określonego rodzaju ruchu, zdefiniowanego arbitralnie.
Wdrażając IPTABLES CLISIFIF, możesz przypisać określoną przepustowość pobierania/przesyłania do określonego rodzaju pakietów, źródeł/miejsc docelowych, portów itp.

Na przykład, wdrażając IPTABLES CLISIFIF, możesz ustalić priorytety swojej przepustowości konferencji zoomu, gier itp., ograniczając przepustowość sieci społecznościowych, torrent itp.

Ta funkcja IPTables nie jest związana z bezpieczeństwem, ale z QoS (jakość usług), która jest wydajnością przepustowości wpływającą na doświadczenie użytkownika.

IPTABLES CLISIFIFA może być stosowany tylko do łańcucha poststrouting. Jeśli nie wiesz, co to jest pointrouting, prawdopodobnie możesz przeczytać ten samouczek IPTABLES przed kontynuowaniem tego artykułu.

Po co używać klasyfikacji iptables

Domyślnie ruch internetowy jest zorganizowany zgodnie z ogólną polityką FIFO (pierwszy w pierwszym miejscu). FIFO oznacza, że ​​pierwszy pakiet, który przybywa, będzie pierwszym odpowiedzią, drugi przybywający pakiet będzie drugim odpowiedzią, a najstarszym przybyciem pakietu będzie ostatnio odpowiedził.

Na przykład, jeśli otrzymasz rozdrobnione pakiety należące do konferencji wideo, gier, e -maili i sieci społecznościowych jednocześnie, twój system odpowiada zgodnie z zamówieniem przyjazdu.
To zachowanie jest sprawiedliwe i pozwala Internetowi działać prawidłowo, ale FIFO może być regularnym problemem na poziomie wewnętrznym i możesz go regulować za pomocą iptables. Możesz na przykład zdefiniować, że konferencja wideo lub ruch gier będzie miał priorytetowe przesyłki lub ruch P2P.

FIFO jest przykładem podstawowego Qdisc (dyscyplina w kolejce). Możesz pomyśleć o QDISC jako o wdrożeniu zasad dołączonym do urządzenia sieciowego, określając kolejność, w jakiej pakiety przejdą do urządzenia sieci. Nasze polecenia w tym samouczku rozpoczną się od zmodyfikowania dyscypliny w kolejce (QSIC).

QoS (jakość usług) można zarządzać z jądra za pomocą TC (Kontrola ruchu lub zaawansowane kolejki), ale ta funkcja jest bezstanowa, podczas gdy IPTables może zapewnić złożone funkcje stanowe. W każdym razie IPTABLES Classify musi być wdrażany z TC i QDISC, funkcjonalność umożliwiającą dystrybucję lub ograniczenie przepustowości zgodnie z własnymi kryteriami.

Jak używać klasyfikacji iptables

Przed rozpoczęciem od IPTABLES Classify musimy utworzyć poziomy Lub ruch drogowy Typy do klasyfikowania dla iptables.

Z poniższym poleceniem zmodyfikujemy dyscyplinę kolejkowania dla nazwanego urządzenia sieciowego ENP2S0. Jest to stosowane w przypadku ruchu wychodzącego (root), ale ponieważ najpierw odpowiada na priorytety ruch, odpowiedzą i pobrano najpierw. Opóźniając określony ruch wychodzący, pobranie wolniej, ponieważ pojawi się późno do miejsca docelowego.

TC QDISC Dodaj Dev Enp2S0 Root uchwyt 1: HTB domyślny 13

Wyjaśniono powyższe polecenie:

  • TC QDISC: Prowadzimy TC, aby zmodyfikować dyscyplinę kolejkowania (QDISC).
  • Dodaj dev : Tutaj dołączamy QDISC do określonego urządzenia sieciowego; W takim przypadku moja karta sieciowa jest ENP2S0.
  • Źródło: Ruch wychodzący.
  • uchwycić 1: Format tej sekcji może być „Obsługuj 1:13„Gdzie nieletni (1) jest klasą i 13 jest uchwytem. Stwarza to klasę 1 i poziom 13, abyśmy mogli podzielić przepustowość w następnym kroku.
  • HTB: HTB (hierarchiczne wiadro tokena) służy do kontrolowania nadchodzącej przepustowości poprzez symulację różnych wolniejszych linków zamiast prawdziwego i szybkiego linku fizycznego. Dzięki tej opcji mówimy systemowi, że podzielimy nasz fizyczny związek między kilkoma symulowanymi linkami. Następnie zdefiniujemy parametry podziału za pomocą iptables.
  • domyślnie 13: Jak wspomniano wcześniej, uchwyt Można być zdefiniowane jako „Obsługa 1:13”, nie zrobiliśmy tego, ponieważ ustaliliśmy go na końcu polecenia, poziom 13 jako domyślny.

Poniższe linie dodają klasę, poziomy i zdefiniuj przydział przepustowości dla każdego.

Jak widać, te pakiety będą oznaczać, że 1:10 z IPTABLES będzie cieszył się 50 mbibitą dostępną.
Pakiety sklasyfikowane jako 1:11 będą miały do ​​30 MBIT, ale jeśli nie ma konkurencyjnego ruchu, a przepustowość jest bezpłatna, mogą eskalować do 50 mbits prędkości.
1:12 Pakiety mogą wykorzystać do 10 mbibit, gdy ruch jest używany, ale jeśli nie ma innego ruchu, jego prędkość może wzrosnąć do 20mbitów.
Wreszcie, pakiety sklasyfikowane jako 1:13 zawsze będą miały do ​​5 MBIT, niezależnie od tego, czy dodatkowy ruch wymaga przepustowości.

Klasa TC Dodaj Dev ENP2S0 Parent 1: ClassID 1: 1 HTB RATA 50 mbit Ceil 50 mbit
Klasa TC Dodaj Dev ENP2S0 Parent 1: ClassID 1:10 HTB Szybkość 50mbit Ceil 50mbit Prio 0
Klasa TC Dodaj Dev ENP2S0 Parent 1: ClassID 1:11 HTB Resieta 30mbit Ceil 50mbit Prio 1
klasa
klasa

Zdefiniowaliśmy więc niektóre poziomy, a teraz musimy je egzekwować za pomocą iptables. Powyższe wiersze powinny być zapisane jako skrypt i wykonane przed uruchomieniem reguł IPTABLES.

W pierwszym przykładzie użyję iPtables do ustalenia priorytetów połączeń SSH i przesyłania plików SCP, klasyfikując port 22 jako 1:10. Oznacza to, że połączenia SSH lub SCP będą cieszyć się maksymalną prędkością zgodnie z definicją wcześniej (50/50).

sudo iptables -t mangle -a posttrouting -o enp2s0 -p tcp - -sport 22 -j classify -set -klasa 1:10

Powiedzmy teraz, że przesyłając duże pliki SCP, nie chcesz, aby ruch internetowy konkurował o przepustowość 50 MB; definiujesz, gdy istnieje ruch SCP, ruch HTTP ma mniejsze priorytet, z maksymalnie 30 MB. Może osiągnąć 50 MB tylko wtedy, gdy nie ma innego konkurencyjnego ruchu. Następujący wiersz robi to, klasyfikując pakiety HTTP jako 1:11.

iptables -t mangle -a posttrouting -o enp2s0 -p tcp - -sport 80 -j klasyfikuj -set -klasę 1:11

A teraz, w poniższym przykładzie, załóżmy z jakiegoś powodu, aby pozwolić tylko do 5 MB na ruch FTP, niezależnie, jeśli istnieje dodatkowy ruch, reguła IPTABLES musi być:

iptables -t mangle -a posttrouting -o enp2s0 -p tcp - -sport 21 -j classify -set -klasa 1:13

Istnieje rozszerzenie Netfilter dla Warstwa 7, które można pobrać i dodać do swojego jądra. L7 umożliwia klasyfikowanie ruchu warstwy 7, co oznacza, że ​​można klasyfikować ruch według aplikacji.

Możesz pobrać L7 z https: // sourceforge.Net/Projects/L7-Filter/Files/.

Na przykład polecenie ograniczenia ruchu torrentów za pomocą L7 jest następujące.

iptables -t mangle -a posttrouting -m warstwa7 - -L7proto BitTorrent -j Classify -Set -Class 1:13

Jak widać, klasyfikacja IPTABLES jest doskonałą funkcją, która może poprawić twoją jakość życia, jeśli masz ograniczone zasoby lub wyłączne zapotrzebowanie na przepustowość.

Wniosek:

IPTABLES CLISIFIF to doskonała metoda zwiększania wydajności sieci. Jest doskonały dla firm i użytkowania domu. Użytkownicy krajowi mogą priorytetowo traktować swoje inteligentne telewizory lub konsole do gier w zakresie komputerów lub odwrotnie. Wydaje się szczególnie przydatne w sieciach umożliwiających gościom lub w biurze w celu zapobiegania niechcianym zachowaniu. Na poziomie technicznym klasyfikowanie składni iptables jest dość proste.

Mam nadzieję, że ten samouczek wyjaśniający, jak korzystać z IPTABLES Classify, był przydatny. Śledź nas, aby uzyskać dodatkowe samouczki i wskazówki Linux.