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:
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.