Kā ierobežot tīkla joslas platumu, ko lietojumprogrammas izmanto Linux sistēmā ar


Vai esat kādreiz saskāries ar situācijām, kad viena tīkla lietojumprogramma dominēja jums visiem tīkla joslas platumā? Ja kādreiz esat nonācis situācijā, kad viena lietojumprogramma apņēma visu jūsu datplūsmu, jūs novērtēsiet noplūdes joslas platuma formētāja lietojumprogrammas lomu. Vai nu jūs esat sistēmas administrators, vai vienkārši Linux lietotājs, jums jāiemācās kontrolēt lietojumprogrammu augšupielādes un lejupielādes ātrumu, lai pārliecinātos, ka tīkla joslas platums nav sadedzināts vienā lietojumprogrammā.

Kas ir Trickle?

Trickle ir tīkla joslas platuma noformētāja rīks, kas ļauj mums pārvaldīt lietojumprogrammu augšupielādes un lejupielādes ātrumu, lai novērstu to, ka kāds no tiem varētu aizsprostot visu (vai lielāko daļu) pieejamo joslas platumu. Dažos vārdos, trickle ļauj jums kontrolēt tīkla trafika ātrumu, pamatojoties uz katru lietojumu, atšķirībā no lietotāja vadības, kas ir klasisks joslas platuma veidošanas piemērs klienta-servera vidē, un, iespējams, tas ir iestatījums, kas mums ir vairāk pazīstams ar.

Kā Trickle darbojas?

Turklāt ieplūšana var palīdzēt mums noteikt prioritātes, pamatojoties uz katru lietojumu, lai tad, kad visai sistēmai būs noteikti kopējie ierobežojumi, prioritārās lietotnes joprojām automātiski saņems lielāku joslas platumu. Lai veiktu šo uzdevumu, trickle nosaka datplūsmas ierobežojumus veidam, kādā dati tiek nosūtīti un saņemti no ligzdām, izmantojot TCP savienojumus. Mums jāatzīmē, ka, izņemot datu pārraides ātrumus, strūkla nekādā veidā nemaina tā uzvedības procesu, kuru tā veido attiecīgajā brīdī.

Ko Trickle nevar darīt?

Vienīgais, tā sakot, ierobežojums ir tāds, ka trickle nedarbosies ar statiski saistītām lietojumprogrammām vai bināriem failiem ar iestatītiem SUID vai SGID bitiem, jo tas izmanto dinamisko sasaisti un ielādi, lai ievietotu sevi starp formas procesu un ar to saistīto tīkla kontaktligzdu. Tad Trickle darbojas kā starpnieks starp šiem diviem programmatūras komponentiem.

Tā kā norīkojumam nav nepieciešamas superlietotāja privilēģijas, lietotāji var iestatīt savus trafika ierobežojumus. Tā kā tas var nebūt vēlams, mēs izpētīsim, kā noteikt vispārējos ierobežojumus, kurus sistēmas lietotāji nevar pārsniegt. Citiem vārdiem sakot, lietotāji joprojām varēs pārvaldīt savus trafika ātrumus, taču vienmēr sistēmas administratora noteiktajās robežās.

Šajā rakstā mēs izskaidrosim, kā ierobežot tīkla joslas platumu, ko lietojumprogrammas izmanto Linux serverī, ar tekošu. Nepieciešamās datplūsmas ģenerēšanai klientā (CentOS 7 serveris - dev1: 192.168.0.17) un serverī vsftpd (Debian Wheezy 7.5 - dev2: 192.168) mēs izmantosim ncftpput un ncftpget (abi rīki ir pieejami, instalējot ncftp). 0,15) demonstrācijas nolūkos. Tās pašas instrukcijas darbojas arī sistēmās RedHat, Fedora un Ubuntu.

1. Operētājsistēmai RHEL/CentOS 7/6 iespējojiet EPEL krātuvi. Extra Packages for Enterprise Linux (EPEL) ir augstas kvalitātes bezmaksas un atvērtā koda programmatūras krātuve, kuru uztur Fedora projekts, un tā ir 100% saderīga ar tās spinoffiem, piemēram, Red Hat Enterprise Linux un CentOS. Gan trickle, gan ncftp ir pieejami šajā repozitorijā.

2. Instalējiet ncftp šādi:

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

3. FTP serveri iestatiet atsevišķā serverī. Lūdzu, ņemiet vērā, ka, lai arī FTP pēc savas būtības ir nedrošs, to joprojām plaši izmanto gadījumos, kad nav nepieciešama failu augšupielādes vai lejupielādes drošība. Mēs to izmantojam šajā rakstā, lai ilustrētu noplūdes bagātības un tāpēc, ka tas klientam parāda pārsūtīšanas ātrumus standarta veidā, un mēs atstāsim diskusiju par to, vai to vajadzētu vai nevajadzētu izmantot citam datumam un laikam :).

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

Tagad FTP serverī rediģējiet failu /etc/vsftpd/vsftpd.conf šādi:

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

Pēc tam noteikti startējiet vsftpd pašreizējai sesijai un iespējojiet to automātiskai palaišanai nākamajos zābakos:

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

4. Ja attālinātai piekļuvei izvēlējāties iestatīt FTP serveri CentOS/RHEL 7 pilieniņā ar SSH taustiņiem, jums vajadzēs ar paroli aizsargātu lietotāja kontu ar atbilstošu direktoriju un failu atļaujām, lai augšupielādētu un lejupielādētu vēlamo saturu OUTSIDE root mājas direktorija.

Pēc tam varat pārlūkot savu mājas direktoriju, pārlūkprogrammā ievadot šādu URL. Tiks parādīts pieteikšanās logs ar aicinājumu uz FTP serveri norādīt derīgu lietotāja kontu un paroli.

ftp://192.168.0.15

Ja autentifikācija izdosies, tiks parādīts jūsu mājas direktorija saturs. Vēlāk šajā apmācībā varēsit atsvaidzināt šo lapu, lai parādītu failus, kas augšupielādēti iepriekšējo darbību laikā.