Consola Akvorado cu grafic de flow-uri de retea
Retea

Akvorado: vezi cine iti trimite trafic, flux cu flux

Intrebarea care bantuie orice operator de retea e simpla si greu de raspuns: cine imi trimite, de fapt, tot traficul asta? Contorul de pe uplink iti spune ca intra 8 Gbps, dar nu-ti spune ca jumatate vine de la un singur AS pe care ai putea sa-l peer-uiesti direct si sa scazi factura de tranzit. Fara vizibilitate pe flow-uri, deciziile de peering si de capacitate sunt ghicit informat. Cu ea, sunt aritmetica.

Akvorado , colectorul de flow-uri open-source construit si folosit in productie de Free (un ISP mare din Franta), exista exact pentru intrebarea asta. E licentiat sub AGPLv3, aduna peste 2.300 de stele pe GitHub, si il rulam noi pe propria retea, in datacenterul nostru din Bucuresti, in fata lui AS57050 si a exchange-ului nostru DSIX. Acest articol e raportul de teren.

Ce este, mai exact, Akvorado

Akvorado e un colector, imbogatitor si vizualizator de flow-uri de retea. Routerele si switch-urile tale exporta metadate despre trafic (cine cu cine vorbeste, pe ce porturi, cat de mult) prin protocoale standard: NetFlow, IPFIX si sFlow. Akvorado le primeste, le adauga context, le stocheaza intr-o baza optimizata pentru agregari, si iti da o consola web in care raspunzi la intrebari despre traficul tau in cateva secunde.

Partea de “imbogatire” e ce transforma un flux brut intr-o informatie utila. Un pachet de flow spune “IP-ul X a trimis 4 GB catre IP-ul Y pe interfata 12”. Nu prea folositor. Akvorado ii adauga:

  • Nume de interfata prin SNMP: interfata 12 devine “transit: telia” sau “peering: franceix”, cu descriere si viteza, interogand routerul prin SNMP.
  • Geo si ASN: IP-ul X devine “AS2906 Netflix” cu tara, folosind baze de date GeoIP (IPinfo).
  • Context BGP: AS-path, comunitati, tipul de granita (intern vs extern).

Dintr-un flux anonim iese o propozitie citibila: “AS2906 Netflix mi-a trimis 4,7 Gbps prin tranzit-ul telia, iesind pe th2-edge1”. Exact genul de propozitie pe care o folosesti ca sa iei decizii.

Cum e construit pe dedesubt

Akvorado nu e un singur binar, e o mica arhitectura orientata pe scala, si merita inteleasa in trei bucati:

  • Inlet: procesul care asculta pachetele de flow (UDP) si le decodeaza. Aici intra sFlow-ul si NetFlow-ul de la routere.
  • Orchestrator: creierul de configurare, gestioneaza schema din ClickHouse si topicele Kafka, si serveste configuratia catre celelalte componente.
  • Console: interfata web, unde tu, omul, pui intrebari si vezi grafice.

In spate, fluxurile trec printr-un Kafka (buffer care absoarbe rafalele) si aterizeaza intr-un ClickHouse, baza de date columnara care poate agrega miliarde de randuri de flow in milisecunde. Alegerea asta e cheia: un flow analyzer sta sau cade pe cat de repede raspunde la “aduna-mi tot traficul pe ultimele 24 de ore, grupat pe AS sursa”. ClickHouse e monstruos de bun exact la asta.

Ce vezi in consola

Consola e locul unde Akvorado straluceste. Alegi cateva dimensiuni (AS sursa, nume exporter, provider de intrare, tara, port) si un filtru intr-un limbaj simplu (InIfBoundary = external), iar Akvorado iti deseneaza:

  • Diagrama Sankey: coloane de la stanga la dreapta care arata cum curge traficul, de la AS-ul sursa, prin tipul de conexiune (tranzit / peering / ix), prin providerul concret (telia, cogent, franceix), pana la routerul de edge. Dintr-o privire vezi ce proportie din trafic vine de unde si pe ce cale iese. E cea mai buna imagine pentru decizii de peering pe care ai vazut-o vreodata.
  • Serii temporale: acelasi trafic desenat in timp, ca sa vezi varfuri, tipare zi/noapte si evenimente.
  • Tabel: cifrele exacte, sortabile, in spatele graficelor.

Pentru un ISP sau un LIR, asta raspunde la intrebari care valoreaza bani reali: “cat tranzit as economisi daca as peer-ui direct cu AS-ul asta?”, “cine sunt primii 10 vorbitori catre reteaua mea?”, “traficul acesta ciudat de la 3 dimineata e un backup legitim sau inceputul unui atac?”.

Instalare Akvorado

Akvorado nu e un serviciu de o linie, tocmai pentru ca aduce cu el ClickHouse, Kafka si Redis. Vestea buna: repo-ul oficial vine cu un docker compose complet care ridica tot stack-ul dintr-o comanda. Clonezi, configurezi, ridici:

git clone https://github.com/akvorado/akvorado
cd akvorado/docker
cp ../config/akvorado.yaml akvorado.yaml
docker compose up -d

Compose-ul porneste ClickHouse, Kafka, Redis, plus cele trei componente Akvorado. Consola devine disponibila pe portul configurat (implicit prin proxy-ul din compose), iar demo-ul public de la demo.akvorado.net iti arata exact cum arata cu date reale, inainte sa investesti in propriul setup.

Pasul important dupa ce e sus: spune routerelor sa exporte flow-uri catre Akvorado. Pe un router configurezi sFlow sau NetFlow catre IP-ul si portul inlet-ului. La noi, routerele de edge trimit sFlow catre Akvorado pe un port dedicat, separat de restul pipeline-ului nostru de telemetrie, ca sa nu se calce.

Ca la orice consola de management, nu o expune public fara un layer de autentificare, pentru ca dezvaluie topologia si tiparele de trafic ale retelei tale. Noi o punem in spatele SSO-ului nostru; tu, minim, restrictioneaz-o prin firewall:

ufw allow from IP_BIROU_TAU to any port 8080 proto tcp
ufw deny 8080

Portul de ingestie a flow-urilor (UDP) trebuie insa deschis catre routerele tale, si numai catre ele, ca sa nu-ti trimita oricine flow-uri false.

Daca rulezi asta pe un VPS DreamServer , ClickHouse iti va cere ceva disc si RAM, deci dimensioneaza corespunzator retentiei pe care o vrei.

Tipare de configurare care merita stiute

Cateva lucruri utile dincolo de default-uri.

Descrierile de interfata sunt totul

Puterea Sankey-ului sta in numele interfetelor. Daca routerele tale au interfetele descrise clar (transit: X, peering: Y, ix: DSIX), Akvorado le preia prin SNMP si graficele devin instant citibile. Investeste zece minute in descrieri bune pe routere si castigi luni de rapoarte clare.

Foloseste-l pentru decizii de peering

Cel mai valoros raport pe care il poti trage: grupeaza pe AS sursa, filtreaza pe traficul care intra prin tranzit (nu prin peering existent), si sorteaza descrescator. Primele AS-uri din lista sunt candidatii tai de peering, cei cu care, daca te conectezi direct la un exchange ca DSIX, muti volum de pe tranzit-ul platit pe peering gratuit.

Retentia costa disc

ClickHouse comprima excelent, dar flow-urile la rezolutie mare pe termen lung tot ocupa. Pastreaza rezolutie fina pe termen scurt (ultimele saptamani) si agregate pe termen lung. Akvorado suporta tabele cu rezolutii multiple exact pentru asta.

Separa ingestia de restul telemetriei

Daca ai deja un colector de sFlow pentru altceva (la noi, protectia anti-DDoS), ruleaza Akvorado pe un port de ingestie diferit. Un router poate exporta acelasi flux catre mai multi colectori simultan, fiecare cu scopul lui.

Unde Akvorado nu e raspunsul potrivit

Merita sa fim onesti despre limite.

  • Nu e monitoring de sanatate. Akvorado iti spune despre trafic, nu despre CPU-ul routerului, temperatura sau starea unui link. Pentru aia ai nevoie de SNMP clasic si un Grafana peste el.
  • Nu e captura de pachete. Flow-urile sunt esantionate si agregate; vezi “AS2906 mi-a trimis 4 GB”, nu continutul pachetelor. Pentru forensics la nivel de pachet ai nevoie de alt tool.
  • Cere hardware care exporta flow-uri. Daca routerele tale nu suporta NetFlow/IPFIX/sFlow, Akvorado nu are ce colecta.
  • ClickHouse + Kafka nu sunt “usoare”. E un stack real, nu un binar. Pe o retea mica functioneaza lejer, dar il tratezi ca infrastructura, cu backup si tuning, nu ca pe un container aruncat si uitat.

Alternative pe care le-am luat in calcul

Pentru completitudine: ne-am uitat si la ntopng (excelent pentru vizibilitate in timp real si deep packet inspection, dar mai putin orientat pe analiza istorica la scala), pmacct (motorul clasic si extrem de flexibil de colectare, dar fara UI, tu construiesti vizualizarea), si Elastiflow pe stiva Elastic (capabil, dar mai greu si cu parti comerciale). Pentru un ISP care vrea in special analiza de peering si de trafic cu diagrame Sankey citibile, Akvorado e cel mai direct la tinta.

Deci, sa-l rulezi?

Daca operezi o retea cu tranzit si peering, sau macar un router prin care trece trafic pe care vrei sa-l intelegi, Akvorado merita weekend-ul de setup. Prima data cand tragi un Sankey si vezi negru pe alb ca 40% din tranzit-ul tau platit vine de la trei AS-uri pe care le-ai putea peer-ui gratuit la un exchange local, vei sti ca ti-a intrat in stack pentru totdeauna.

Noi rulam Akvorado in fata retelei AS57050, alimentat de routerele noastre de edge, si il folosim exact pentru deciziile de peering la DSIX , exchange-ul nostru din Bucuresti. Daca vrei sa-l incerci pe infrastructura pe care nu trebuie sa o construiesti tu intai, planurile noastre VPS sunt suficient de mari cat sa duca un ClickHouse de test, iar serviciul de administrare server acopera instalarea si tuning-ul daca preferi sa sari peste curba de invatare.

Oricum ai alege, sa vezi in sfarsit cine iti trimite traficul e o revelatie pe care graficul de bytes de pe uplink nu ti-o va da niciodata. Codul e pe GitHub, exista un demo public pe care il poti atinge acum, si vei sti intr-o ora daca isi castiga un loc in fata retelei tale.

Avem Incredere & Suntem Membri

Suntem membri ai principalelor organizatii de infrastructura internet.

RIPE NCC MANRS PeeringDB RoTLD DSIX SBIX 4IXP LOCIX Euro-IX RIPE NCC MANRS PeeringDB RoTLD DSIX SBIX 4IXP LOCIX Euro-IX