Sådan begrænses netværksbåndbredden, der bruges af applikationer i et Linux-system med Trickle


Har du nogensinde stødt på situationer, hvor en applikation dominerede al din netværksbåndbredde? Hvis du nogensinde har været i en situation, hvor en applikation spiste al din trafik, så vil du sætte pris på rollen som vedligeholdelsesbåndbredde-applikationen. Enten er du systemadministrator eller bare en Linux-bruger, du skal lære at kontrollere upload- og downloadhastighederne for applikationer for at sikre, at din netværksbåndbredde ikke brændes af en enkelt applikation.

Hvad er trickle?

Trickle er et netværksbåndbreddeformeringsværktøj, der giver os mulighed for at styre upload- og downloadhastighederne på applikationer for at forhindre en enkelt af dem til at hogge hele (eller det meste) af den tilgængelige båndbredde. I få ord giver trickle dig mulighed for at styre netværkstrafikhastigheden pr. Applikationsbasis i modsætning til kontrol pr. Bruger, hvilket er det klassiske eksempel på båndbreddeformning i et klientservermiljø, og det er sandsynligvis den opsætning, vi er mere Bekendt med.

Hvordan Trickle fungerer?

Derudover kan trickle hjælpe os med at definere prioriteter pr. Applikationsbasis, så når prioriterede apps er indstillet til hele systemet, får prioritetsapps stadig mere båndbredde automatisk. For at udføre denne opgave sætter man ved hjælp af TCP-forbindelser trafikgrænser for, hvordan data sendes til og modtages fra stikkontakter. Vi skal bemærke, at, bortset fra dataoverførselshastighederne, ændrer sive ikke på nogen måde opførslen af den proces, den formes på et givet tidspunkt.

Hvad kan ikke trickle gøre?

Den eneste begrænsning, så at sige, er, at trickle ikke fungerer med statisk linkede applikationer eller binære filer med SUID- eller SGID-bitsættet, da det bruger dynamisk sammenkædning og indlæsning til at placere sig mellem den formede proces og dens tilknyttede netværksstik. Trickle fungerer derefter som en proxy mellem disse to softwarekomponenter.

Da trickle ikke kræver superbrugerrettigheder for at køre, kan brugerne indstille deres egne trafikgrænser. Da dette muligvis ikke er ønskeligt, vil vi undersøge, hvordan man sætter overordnede grænser, som systembrugere ikke kan overskride. Med andre ord vil brugerne stadig være i stand til at styre deres trafikrater, men altid inden for de grænser, der er fastsat af systemadministratoren.

I denne artikel vil vi forklare, hvordan man begrænser netværksbåndbredden, der bruges af applikationer på en Linux-server med trickle. For at generere den nødvendige trafik bruger vi ncftpput og ncftpget (begge værktøjer er tilgængelige ved at installere ncftp) på klienten (CentOS 7-server - dev1: 192.168.0.17) og vsftpd på serveren (Debian Wheezy 7.5 - dev2: 192.168. 0,15) til demonstrationsformål. De samme instruktioner fungerer også på RedHat, Fedora og Ubuntu-baserede systemer.

1. For RHEL/CentOS 7/6 skal du aktivere EPEL-arkivet. Ekstra pakker til Enterprise Linux (EPEL) er et lager af gratis kvalitetssoftware og open source-software, der vedligeholdes af Fedora-projektet, og er 100% kompatibel med dets spinoffs, såsom Red Hat Enterprise Linux og CentOS. Både trickle og ncftp stilles til rådighed fra dette arkiv.

2. Installer ncftp som følger:

# yum update && sudo yum install ncftp		[On RedHat based systems]
# aptitude update && aptitude install ncftp	[On Debian based systems]	

3. Opret en FTP-server på en separat server. Bemærk, at selvom FTP i sagens natur er usikker, bruges den stadig i vid udstrækning i tilfælde, hvor sikkerhed ved upload eller download af filer ikke er nødvendig. Vi bruger det i denne artikel til at illustrere fordelene ved sipling, og fordi det viser overførselshastighederne i stdout på klienten, og vi vil efterlade diskussionen om, om det skal eller ikke skal bruges til en anden dato og et klokkeslæt :).

# yum update && yum install vsftpd 		[On RedHat based systems]
# aptitude update && aptitude install vsftpd 	[On Debian based systems]

Rediger nu filen /etc/vsftpd/vsftpd.conf på FTP-serveren som følger:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

Derefter skal du sørge for at starte vsftpd til din nuværende session og aktivere den til automatisk start på fremtidige støvler:

# systemctl start vsftpd 		[For systemd-based systems]
# systemctl enable vsftpd
# service vsftpd start 			[For init-based systems]
# chkconfig vsftpd on

4. Hvis du vælger at oprette FTP-serveren i en CentOS/RHEL 7-dråbe med SSH-nøgler til fjernadgang, skal du bruge en adgangskodebeskyttet brugerkonto med den relevante biblioteks- og filtilladelse til upload og download af det ønskede indhold UDEN FOR ROTS hjemmekatalog.

Du kan derefter søge i dit hjemmekatalog ved at indtaste følgende URL i din browser. Et login-vindue vises, hvor du bliver bedt om en gyldig brugerkonto og adgangskode på FTP-serveren.

ftp://192.168.0.15

Hvis godkendelsen lykkes, vil du se indholdet af din hjemmekatalog. Senere i denne vejledning vil du være i stand til at opdatere den side for at vise de filer, der er blevet uploadet under tidligere trin.