mikä on Verkkoliikennevirta?

traffic_wide

Verkkoliikennevirrat (virtaukset) ovat hyödyllisiä rakennettaessa karkearakeista ymmärrystä Tietokoneverkon liikenteestä, joka tarjoaa kätevän yksikön liikenteen mittaamiseen ja/tai käsittelyyn.

virtoja voidaan mitata, jotta voidaan ymmärtää, mitä isännät puhuvat verkossa, osoitteiden, määrien ja liikennetyyppien tiedot. Tämä verkon näkymä voi olla hyödyllinen vianmäärityksessä, tietoturvahäiriöiden havaitsemisessa, suunnittelussa ja laskutuksessa

, mutta mikä on virtaus ja miten se määritellään?

tämä kysymys Kuulostaa triviaalilta vastattavaksi, mutta syvemmältä kaivauduttaessa löydämme vivahteita ja kulmatapauksia, jotka tekevät virtauksista kiinnostavia ja lopulta vaikeasti määriteltäviä.

Tausta

voidaksemme todella ymmärtää virtauksia, meidän on aloitettava jostain taustasta.

verkot alkoivat piirikytkettyinä. Kun isäntä halusi kommunikoida toisen isännän kanssa, se pyysi verkkoa perustamaan piirin. Kun tiedonkulku oli päättynyt, piiri purettiin.

flow2

Kuva 1-Esimerkki Piirikytkentävillä verkoilla

Piirikytkentävillä verkoilla on perintönsä puhelinverkoissa. Niillä on useita haittoja, kuten huono skaalautuvuus ja alhainen kapasiteetin käyttöaste.

tarvittiin vaihtoehto, jonka avulla voitiin rakentaa lopulta Internetpakettikytkentäisiä verkkoja. Viestit pilkotaan vaihtelevan kokoisiksi paloiksi, jotka osoitetaan yksittäin ja lähetetään paketteina eri puolille verkkoa.

flow3

kuva 2-Esimerkki pakettikytkentäinen Verkko

vastaanottava isäntä kokoaa paketeista tulevan hyötykuorman takaisin viestiin. Huomautus: paketit voivat sisältää myös ohjaustietoja, kuten virtauksen ohjausta ja polkujen ei tarvitse olla symmetrisiä.

virtojen määrittely piirikytketyssä verkossa on helppoa, koska piiri on virtaus ja noudattaa protokollaa muodostaakseen ja poistaakseen (piiri = virtaus); pakettikytketyssä verkossa asiat ovat kuitenkin vähemmän ilmeisiä.

Kuvittele sekunti, että olet Kuvan 1 piirikytkentäisessä verkossa havaintopisteessä A, näkisit:

flow4

kuva 3-Lähennä Piirikytkettyyn verkkoon

kaksi virtaa havaittaisiin-virtapiirit isäntäverkkojen 3 & 4 ja 5 & 6 välillä. Virtojen tarkkailu piirikytketyssä verkossa on suhteellisen helppoa, koska verkko on mukana piirien perustamisessa, joten tietää niiden tilan ja päätepisteet.

Kuvittele nyt, että olet Havainnointipisteessä a Kuvan 2 pakettikytkentäisessä verkossa, näkisit:

flow5

Kuva 4-Zoom in on Packet-Switched Network

Suddenly things are less clear. On paketti tulossa isäntä 5 tarkoitettu isäntä 6. Olettaen, että tarkkailemme jonkin aikaa näemme enemmän paketteja saapuvan ja lähtevän. Virtojen tarkkailu pakettikytkentäisessä verkossa vie aikaa ja vaatii pakettitietojen tallentamista ja analysointia.

ensimmäinen (naiivi) yritys määritellä virtaus

käyttäen pakettikytkettyjen verkkojen tuntemustamme, ensimmäinen yritys vastata “mikä on virtaus” voi olla:

a-virtaus on sarja paketteja, jotka kuljettavat tietoa kahden isännän välillä

tämä määritelmä näyttää:

flow6

kuva 5 – Ensimmäinen yritys määritellä virtaus

on kuitenkin ongelma. Mitä tapahtuu, jos isäntien välillä tapahtuu useampaa kuin yhtä tietoliikennetyyppiä, esimerkiksi A: lla on SSH-ja HTTPS-yhteys B: hen? Ovatko SSH – ja HTTPS-paketit osa samaa virtaa? Intuitiivisesti sanomme ei, ne ovat eri istuntoja, ja jopa täysin erilaisia protokollia. Voimme tehdä paremmin…

toinen yritys määritellä

mitä jos käyttäisimme pakettiotsikoiden protokollatietoja yleisinä ominaisuuksina tunnistaaksemme paketit virtoihin? Tämä erottaa erityyppiset yhteydet eri virtoihin.

suuri osa verkon paketeista on todennäköisesti IP layer-3-protokollaa, jossa TCP tai UDP on layer-4-siirtoprotokolla. Siksi on järkevää harkita TCP-ja UDP-parametrien käyttöä pakettiotsikoiden virtausavaimina.

käytämme 5 parametria pakettien otsikoista; lähde IP, kohde IP, protokolla, TCP – tai UDP-lähdeportti ja TCP-tai UDP-kohdeportti tilattuna luettelona, joka tunnetaan yleisesti nimellä 5-tuple, yhteisinä ominaisuuksina pakettien kartoittamiseksi virtoihin.

flow7

kuva 6-esimerkki 5-tuple

tässä menee yritys 2:

virtaus on kahden isännän välistä tietoa kuljettavien pakettien sarja, jossa paketeilla on yhteisiä ominaisuuksia:

  • kaikki virrassa olevat paketit jakavat saman 5-tuplen

skenaariomme näyttää nyt tältä.:

flow8

Kuva 7 sekunnin yritys määritellä virtaus

Perfect you say. Elämä on hyvää. Meillä on määritelmä virtaukselle, ei muuta nähtävää, – mutta hetkinen, entä pakettien suunta?

kolmas yritys-kaksisuuntainen

a 5-tupla on yksisuuntainen (yksisuuntainen). Oletuksena se vastaa vain yhteen suuntaan matkaavia paketteja, koska päinvastaiseen suuntaan suunnatuissa paketeissa on transponoitu IP-osoitteet ja porttinumerot, ja siten erilainen 5-tuple hash.

on hyviä syitä pitää virtoja kaksisuuntaisina eikä yksisuuntaisina, mukaan lukien kyky määrittää asiakkaan/palvelimen käyttäytyminen ja laskea edestakaiset ajat sekä parantaa tietoturvaloukkausten, kuten skannauksen, havaitsemista.

tarkastellaan yksinkertaista TCP-yhteyttä kuvassa 8, jossa paketit pomppivat edestakaisin isännän a & B välillä:

flow9

Kuva 8-Tikkakaavio yksinkertaisesta TCP-virrasta

näemme klassisen TCP: n 3-suuntaisen kädenpuristuksen (SYN, SYN+ACK, ACK), jota seuraa tiedonvaihto. Yksisuuntainen virtausanalyysi verkon havaintopisteessä näkisi kaksi erillistä virtausta, yhden per suunta, kuvan mukaan 9:

flow10

Kuva 9-yksisuuntaiset tikkaat yksinkertaiselle TCP-virtaukselle

yksisuuntaisen virtausmittauksen ongelma on, että menetämme mahdollisuuden tallentaa joitakin tärkeitä metatietoja virtauksesta. Toki jokainen yksisuuntainen virtaus voi tallentaa suunnattuja metatietoja tavuille ja paketeille tuohon suuntaan. Tähän voi sisältyä pakettien välinen ajoitus (KS.merkityt pisteet kuvassa 9). Mutta menetämme mahdollisuuden kerätä metatietoja, jotka edellyttävät liikenneparametrien mittaamista molempiin suuntiin.

ota kaksisuuntainen havainto huomioon kuviossa 10:

flow11a

Kuva 10-kaksisuuntaisten havaintojen tikkaat yksinkertaiselle TCP-virtaukselle

voimme nyt tarkkailla ja mitata TCP: n 3-suuntaista kättelyä (pisteet F1, B1, F2) ja tarkastella muita mittareita, kuten vasteaikoja.

kaksisuuntaisiin virtoihin tarvitaan kaksi 5-tuplea,joista toinen kääntää sekä IP-osoitteiden että porttinumeroiden tuplejärjestyksen. Alla on esimerkki SSH virtaus eteenpäin ja taaksepäin 5-tuples:

flow12

Kuva 11-5-tuplen kääntäminen

oikein, se ei ollut kovin vaikeaa. Mutta odota, pieni yksityiskohta vaanii, joka vaatii lisää huomiota. Mistä tiedämme, mikä on virtauksen suunta eteenpäin? Määritämme suunnan ensimmäisen havaitun paketin perusteella, jonka oletetaan matkustavan asiakkaan palvelimen suuntaan, mutta tämä ei tule olemaan 100% luotettava, koska paketit voivat olla epäkunnossa ja/tai havainto voi alkaa osittain läpi virtauksen. Käytämme tätä menetelmää, mutta täytyy muistaa, kun katsomme tuloksia, että se ei ole täydellinen.

vaihtoehtoinen menetelmä on kuljetusprotokollan kenttien tarkastaminen. Esimerkiksi TCP: ssä pelkän syn-lipun läsnäolo on kohtuullinen indikaattori siitä, että paketti on ensimmäinen virrassa.

määrittelymme virralle on nyt:

virtaus on kahden isännän välistä tietoa kuljettavien pakettien sarja, jossa paketeilla on yhteisiä ominaisuuksia:

  • kaikki virrassa olevat paketit jakavat saman 5-tuplen tai transponoidun 5-tuplen

neljäs yritys-mukaan lukien ei-TCP IP-liikenne

tähän asti olemme olettaneet, että siirtoprotokolla on TCP. Entä muut IP-protokollat?

UDP on ilmeinen valinta toiseksi yleisimmäksi kuljetusprotokollaksi, erityisesti reaaliaikaisen liikenteen noustessa UDP: n yläpuolelle sekä uusien protokollien, kuten QUIC: n, myötä. UDP sopii helposti samaan malliin kuin se on lähde-ja kohdeportti numerot, kuten kohti QUIC esimerkki alla:

flow13

Kuva 12-UDP 5-tuplen (sama kuin TCP) kääntäminen

Stream Control Transmission Protocol (SCTP) on toinen siirtoprotokolla, joka käyttää porttinumeroita ja toimii siten 5-tuplen kanssa.

mutta entä muut protokollat, esimerkiksi IPsec?

IPsec ESP (encapsulating Security Payload) on protokolla, joka ei sisällä lähde-/kohdeportin numeroita, joten meidän on palattava 3-tupleen, koska protokollan hyötykuorman ymmärtäminen ei todennäköisesti ole käytännöllistä.

flow14

kuva 13-kaksisuuntainen 3-Tuple

määritelmämme virralle on nyt:

virtaus on kahden isännän välistä tietoa kuljettavien pakettien sarja, jossa paketeilla on yhteisiä ominaisuuksia:

  • siirtoprotokollille, joissa on porttinumero (ts. TCP / UDP / SCTP)):

kaikki virrassa olevat paketit jakavat saman 5-tuplen tai transponoidun 5-tuplen

else:

kaikki virrassa olevat paketit jakavat saman 3-tuplen tai transponoidun 3-tuplen

on kuitenkin vielä yksi huomioon otettava tekijä – aika.

viides yritys-virtauksen Päättyminen

virtaus on olemassa vain tietyn ajan. On mahdollista, että samaa 5-tuplea (tai 3-tuplea) voitaisiin käyttää uudelleen eri ajankohtana, eri virtaukseen, samojen isäntien välillä.

tarkastellaan kahta isäntää, joissa toinen käynnistää monia uusia TCP-yhteyksiä toiseen. Jokainen uusi TCP-yhteys saa uuden lähdeportin, jota korotetaan yleensä 1: llä edellisestä jaosta. IANA jakaa vaihteluvälin 49152-65535 näille lyhytaikaisille porteille, jolloin saadaan 16384 porttia. Ajan myötä TCP-lähdeportti rullaa alueen läpi ja alkuperäistä lähdeporttia käytetään uudelleen, ja tämä virtaus on sama 5-tuple kuin alkuperäinen virtaus. Tämä on ongelma, koska se ei ole sama virtaus!

tämän ratkaisemiseksi tarvitsemme vanhentuneita virtoja, joissa paketteja ei näy yli tietyn ajan. Here we go again:

a flow on kahden isännän välistä tietoa kuljettavien pakettien sarja, jossa paketeilla on yhteisiä ominaisuuksia:

  • siirtoprotokollille, joissa on porttinumero (ts.TCP / UDP / SCTP):

kaikki virrassa olevat paketit jakavat saman 5-tuplen tai transposoidun 5-tuplen

muu:

kaikki virrassa olevat paketit jakavat saman 3-tuplen tai transposoidun 3-tuplen

  • kaikki pakettien väliset ajat ovat vähemmän kuin mielivaltainen virtauksen päättymisaika

kuudes yritys-mielivaltaiset parametrit

joskus saatat haluta erilaisia parametreja virtojen tunnistamiseksi, tai nämä voidaan pakottaa sinulle verkon laitteiston/ohjelmiston tyypin mukaan.

esimerkiksi Ciscon reitittimessä virrat tunnistaa 7-Tuplesta, joka lisää standardin 5-Tupleen palvelutyypin (ToS) ja syötteen aliliitännän. Voi myös olla tilanteita, joissa tason 2 kentät, kuten lähde tai kohde MAC-osoite, voivat olla järkeviä virtausavaimina (vaikkakin huomaa, että ne ovat vain paikallisesti merkittäviä).

on muitakin parametreja, joita voitaisiin käyttää yhteisinä ominaisuuksina virtausten tunnistamisessa; Viime kädessä on toiminnanharjoittajan päätettävissä ja laitteiden ominaisuudet. Tämän pohjalta tarkennamme määritelmää:

a-virtaus on kahden isännän välistä tietoa kuljettavien pakettien sarja, jossa paketeilla on yhteisiä ominaisuuksia:

  • siirtoprotokollille, joissa on porttinumero (ts.TCP / UDP / SCTP)):

kaikki virrassa olevat paketit jakavat saman 5-tuplen tai transposed 5-tuplen

else:

kaikki virrassa olevat paketit jakavat saman 3-tuplen tai transposed 3-tuplen

  • kaikki pakettien väliset ajat ovat vähemmän kuin mielivaltainen virtauksen päättymisaika
  • voivat käyttää mitä tahansa mielivaltaisia parametreja virtausavaimina, mukaan lukien ToS, käyttöliittymä jne.

kaiken paketointi

olemme osoittaneet, että yhden kaikenkattavan virtausmääritelmän tuottaminen on vaikea ongelma. Virtausmäärittely on toteutuskohtainen, riippuu käyttäjien vaatimuksista sekä virtoja mittaavien verkkolaitteiden kyvyistä.

tämän blogikirjoituksen osassa 2 käsitellään tarkemmin virtoja, kuten IPv6 – virtausmerkintöjä, pirstoutumista (IPv4 ja IPv6-ongelma..), salaus, ei-IP-paketit ja miten virtoja mitataan ja käytetään muissa järjestelmissä, kuten SDN.

KS.: https://www.eecs.yorku.ca/course_archive/2015-16/W/3214/CSE3214_01_PacketCircuitSwitching_2016_posted_part2.pdf

joidenkin asiaan liittyvien asiakirjojen osalta katso: https://www.researchgate.net/profile/Brian_Trammell/publication/245587221_Bidirectional_Flow_Measurement_IPFIX_and_Security_Analysis/links/0f3175331dd3b49103000000/Bidirectional-Flow-Measurement-IPFIX-and-Security-Analysis.pdf ja https://is.muni.cz/th/hilnn/cse2009.pdf

RFC: n osalta katso: https://tools.ietf.org/html/rfc5103

lisätietoja QUIC: n standardoinnista, KS.: https://datatracker.ietf.org/wg/quic/about/

Katso: https://www.cisco.com/en/US/tech/tk812/technologies_white_paper09186a008022bde8.shtml

Leave a Reply