Hvordan du bruker iptables klassifiserer

Hvordan du bruker iptables klassifiserer
Iptables Classify lar administratorer administrere nettverkstrafikk ved å tildele ønsket mengde båndbredderessurser til en bestemt type trafikk, definert vilkårlig.
Ved å implementere iptables klassifisering, kan du tilordne spesifikk nedlasting/laste opp båndbredde til en bestemt type pakker, kilder/destinasjoner, porter osv.

Ved å implementere iptables klassifisering kan du for eksempel prioritere båndbredden din for zoomkonferanser, spill osv., mens du begrenser båndbredde for sosiale nettverk, torrent osv.

Denne iptables -funksjonen er ikke relatert til sikkerhet, men til QoS (kvalitet på tjenesten), som er båndbreddeytelsen som påvirker brukerens opplevelse.

Iptables klassifisering kan bare brukes med postroutingkjeden. Hvis du ikke vet hva postrouting er, kan det være lurt å lese denne opplæringen i Iptables før du fortsetter med denne artikkelen.

Hvorfor å bruke iptables klassifiserer

Som standard er internetttrafikken organisert i henhold til FIFOs generelle policy (først inn, først ut). FIFO betyr at den første pakken som ankommer vil være den første som blir svart på, den andre ankomne pakken vil være den andre som blir svart, og den eldste pakken som ankommer vil være den siste som blir svart på.

Hvis du for eksempel mottar fragmenterte pakker som tilhører videokonferanser, spill, e -post og sosiale nettverk samtidig, vil systemet ditt svare i henhold til ankomstordre.
Denne oppførselen er rettferdig og lar internett fungere ordentlig, men FIFO kan være et vanlig problem på et internt nivå, og du kan regulere det ved hjelp av iptables. Du kan for eksempel definere at videokonferansen eller spilltrafikken vil glede seg over poster eller P2P -trafikk.

FIFO er et eksempel på en grunnleggende Qdisc (i kø -disiplin). Du kan tenke på QDISC som en policy -implementering som er knyttet til en nettverksenhet, og definerer rekkefølgen som pakker vil passere til nettverksenheten. Våre kommandoer i denne opplæringen vil starte med å endre kø -disiplinen (QSIC).

QoS (kvalitet på tjenesten) kan administreres fra kjernen ved å bruke tc (Trafikkontroll eller avansert kø) Verktøy, men denne funksjonen er statsløs mens iptables kan gi komplekse statlige funksjoner. I alle fall må iptables klassifisere implementeres med TC og QDISC, funksjonaliteten som lar deg distribuere eller begrense båndbredden i henhold til dine egne kriterier.

Hvordan du bruker iptables klassifiserer

Før vi begynner med iptables klassifisering, må vi opprette Nivåer eller trafikk typer å klassifisere for iptables.

Med kommandoen nedenfor vil vi endre køens disiplin for nettverksenheten som heter ENP2S0. Dette blir brukt om utgående trafikk (rot), men siden din prioriterte trafikk svarer først, vil de bli svart og lastet ned først. Ved å utsette viss utgående trafikk, vil den laste ned saktere fordi den kommer sent til destinasjonen.

TC QDISC Legg til Dev ENP2S0 Rothåndtak 1: HTB Standard 13

Kommandoen ovenfor forklarte:

  • TC QDISC: Vi kjører TC for å endre kø -disiplinen (QDISC).
  • Legg til Dev : Her knytter vi QDISC til en bestemt nettverksenhet; I dette tilfellet er nettverkskortet mitt ENP2S0.
  • Rot: Utgående trafikk.
  • håndtak 1: Formatet til denne delen kan være “Håndtak 1:13”Der mindreårig (1) er klassen, og 1. 3 er håndtaket. Dette skaper klasse 1 og nivå 13 for oss å dele båndbredden i følgende trinn.
  • HTB: HTB (Hierarchical Token Bucket) brukes til å kontrollere resultatene. Med dette alternativet forteller vi systemet at vi vil dele vår fysiske kobling mellom flere simulerte lenker. Da vil vi definere divisjonsparametrene med iptables.
  • Standard 13: Som tidligere sagt, håndtak kunne defineres som "håndtak 1:13", det gjorde vi ikke fordi vi etablerte det på slutten av kommandoen nivå 13 som standard.

Linjene nedenfor legger til klasse, nivåer og definerer båndbreddefordelingen for hver.

Som du ser, vil de pakkene vi vil flagge som 1:10 med iptables, glede seg over 50 over 50 mbit båndbredde tilgjengelig.
Pakker klassifisert som 1:11 vil ha opptil 30 Mbits, men hvis det ikke er noen konkurrerende trafikk og båndbredden er gratis, kan de eskalere til opptil 50 Mbits hastighet.
1:12 pakker kan bruke opptil 10mbit når trafikken blir brukt, men hvis det ikke er noen annen trafikk, kan hastigheten øke opptil 20 millioner.
Til slutt vil pakker klassifisert som 1:13 alltid ha opptil 5mbit, uavhengig av om ekstra trafikk trenger båndbredden.

TC Class Legg til Dev ENP2S0 Foreldre 1: Classid 1: 1 HTB Rate 50 Mbit CEIL 50mbit
TC Class Legg til Dev ENP2S0 Foreldre 1: Classid 1:10 HTB Rate 50Mbit CEIL 50MBIT PRIO 0
TC Class Legg til Dev ENP2S0 Foreldre 1: Classid 1:11 HTB Rate 30Mbit CEIL 50MBIT PRIO 1
TC Class Legg til Dev ENP2S0 Foreldre 1: Classid 1:12 HTB Rate 10mbit Ceil 20Mbit Prio 2
TC Class Legg til Dev ENP2S0 Foreldre 1: Classid 1:13 HTB Rate 5mbit Ceil 5mbit Prio 3

Så vi definerte noen nivåer, og nå må vi håndheve dem ved hjelp av iptables. Linjene ovenfor skal lagres som skript og utføres før du kjører dine iptables -regler.

I det første eksemplet vil jeg bruke iptables for å prioritere SSH -tilkoblinger og SCP -filoverføring ved å klassifisere port 22 som 1:10. Dette betyr at SSH- eller SCP -tilkoblinger vil glede seg over maksimal hastighet som definert tidligere (50/50).

sudo iptables -t mangle -a postrouting -o enp2s0 -p tcp - -sport 22 -j klassifisering -sett -klasse 1:10

La oss nå si at når du overfører store SCP -filer, vil du ikke at netttrafikken skal konkurrere om 50MB -båndbredden; Du definerer, når det er SCP -trafikk, har HTTP -trafikken mindre prioritet, med maksimalt 30 MB. Den kan nå 50 MB bare hvis det ikke er noen annen konkurrerende trafikk. Følgende linje gjør det ved å klassifisere HTTP -pakker som 1:11.

Iptables -t Mangle -A postrouting -o ENP2S0 -P TCP - -Sport 80 -J Classify -Sett -klasse 1:11

Og nå, for følgende eksempel, la oss anta av en eller annen grunn at du bare vil tillate opptil 5 MB for FTP -trafikk, uavhengig hvis det er ekstra trafikk, må Iptables -regelen være:

Iptables -t Mangle -a Postrouting -o ENP2S0 -P TCP - -Sport 21 -J Classify -Sett -klasse 1:13

Det er en Netfilter -utvidelse for Layer7, som du kan laste ned og legge til i kjernen din. L7 tillater klassifisering av lag 7 -trafikk, noe som betyr at du kan klassifisere trafikk etter applikasjoner.

Du kan laste ned L7 fra https: // sourceforge.nett/prosjekter/l7-filter/filer/.

For eksempel er kommandoen for å begrense torrenttrafikk ved hjelp av L7 følgende.

iptables -t mangle -a postrouting -m Layer7 - -L7Proto BitTorrent -J Classify -Sett -Class 1:13

Som du kan se, er klassifisering av iptables en flott funksjon som kan forbedre livskvaliteten din hvis du har begrensede ressurser eller eksklusiv etterspørsel.

Konklusjon:

Iptables klassifisering er en utmerket metode for å øke nettverksytelsen. Det er utmerket for selskaper og hjemmebruk. Innenlandske brukere kan prioritere sine smarte TV -er eller spillkonsoller over datamaskiner eller omvendt. Det virker spesielt nyttig for nettverk som tillater gjester eller på kontoret å forhindre uønsket atferd. På teknisk nivå er det ganske enkelt å klassifisere Iptables Syntax.

Jeg håper denne opplæringen som forklarer hvordan du bruker klassifisering av iptables var nyttig. Fortsett å følge oss for flere Linux -opplæringsprogrammer og tips.