Følgende beskriver en netværksudforskningsapplikation, der også fungerer som et datavarehus, og har en indbygget analyseplatform. Systemet indhenter selvstændigt status fra netværksswitche, opsamler informationer om deres geografiske placering og deres tilstand samt forbindelsernes status. Formålet med systemet er at give et omfattende overblik over netværksinfrastrukturen, muliggøre hurtig fejlidentifikation og tilbyde historiske dataanalyser.
Netmap Systemet er opdelt i flere moduler, der hver især varetager specifikke opgaver.
Netmap platformen er derfor en dataindsamlings- og lagringsapplikation i samme grad som et netværksvisualiseringsværktøj. Applikationen er designet til at være letvægt, samt at kunne let integreres mod andre applikationer. Den fulde datarejse fra primærkilde til slutbruger ses nedenfor:
Dataindsamlingsprocessen starter med SNMP-agenten, der er ansvarlig for at kommunikere med netværksswitchene. Ved hjælp af Simple Network Management Protocol (SNMP) sender agenten periodiske forespørgsler (polling) til de konfigurerede switche. Formålet med disse forespørgsler er at hente detaljerede oplysninger om switchenes aktuelle status, herunder:
SNMP-agenten konfigureres med vigtige parametre som community strings, der sikrer autorisation af forespørgsler, og en liste over IP-adresser for de switche, der skal overvåges. Polling-intervallet bestemmes for at finde en balance mellem dataaktualitet og systembelastning, typisk med en frekvens på hvert 5. minut.
Udover SNMP-agenten anvender systemet en geolokationsservice til at indhente geografisk information baseret på switchenes IP-adresser. Denne service bruger eksterne geolokations-API'er eller interne databaser til at bestemme og tilføje geografisk placering til de indsamlede data.
Når data er indsamlet, overgår de til databehandlingsfasen, som består af flere trin. Det første trin i databehandlingen er parsering. Parseren fortolker de SNMP-responser, som SNMP-agenten har modtaget fra switchene. Under parseringen omdannes rådata til et struktureret format, der kan lagres i datavarehuset. Parseren er designet til at håndtere forskellige MIBs (Management Information Bases) for at udtrække relevante oplysninger såsom switchens status, portstatus og trafikdata.
Efter parsering gennemgår data en berigelsesproces, hvor yderligere information tilføjes. Berigelsen omfatter flere vigtige aspekter:
Den kombinerede dataindsamlings- og databehandlingsproces sikrer, at de rå data, der indhentes fra netværksswitchene, omdannes til rige og strukturerede datasæt. Disse datasæt er klar til at blive lagret i datavarehuset, hvor de kan anvendes til videre analyse, visualisering og rapportering. Resultatet er et omfattende, nær-realtidsbillede af netværksinfrastrukturen, der giver mulighed for dybdegående indsigt og effektiv netværksstyring.
Datavarehuset anvender en MariaDB til at lagre oplysninger om netværket. Alle modifikationer i databasen foretages af poller-komponenten, og der findes derfor ikke noget forretningslogik i datavarehuset i sig selv.
Datavasehusets struktur tager afsæt i Microsofts' best practice anvendelse af meta-kolonner til at lagre data over tid (Se Sandbox eksempel her). Der er dog foretaget designvalg, der afviger fra Microsofts struktur. Der findes herved fire metadatakolonner:
Herved kan nutidsrelevante data hentes fra datavarehuset ved at adspørge mod meta_is_current:
SELECT * FROM nodes WHERE meta_is_current = TRUE
Historisk data hentes fra datavarehuset ved at forsyne et datotidsstempel:
SET @point_in_time = NOW(); // Erstat med eget datotidsstempel
SELECT * FROM nodes
WHERE meta_valid_from > @point_in_time
AND meta_valid_to <= @point_in_time;
Netmap tilgår datavarehuset direkte gennem en SQL bruger. Det fulde databaseskema for datavarehuset ses nedenfor:
Netmap Analytics er et webbaseret interface, der giver brugere realtidsadgang til netværksstatus og forretningsvendte analyser. Funktionaliteter inkluderer:
Netmap analytics er designet til at integrere med datotids-kolonnerne fra datavarehuset, således at alle sider kan vises, som de fremstod på et tidligere tidspunkt. Der er derfor både mulighed at se et nu-og-her operationelt overblik over netværket, såvel som et tilbageblik på en given driftssituation.
Netværkstypen for en klynge defineres ud fra de forbindelser der eksisterer i netværksklyngen. Der findes fire typer af netværk, slange, cirkel, hub-and-spoke og mesh. Alle typer beskrives her sprogligt og matematisk. Der introduceres til dette formål følgende definitioner:
$n$: Dette repræsenterer antallet af noder i en netværksklynge.
$\sigma_i$: Dette repræsenterer antallet af forbindelser, som en node $i$ har. Da kun netværksenheder forbundet til klyngen inkluderes, vil denne aldrig være 0.
$ \vec {v [\sigma_i]} $: Dette repræsenterer en vektor, der indeholder antallet af forbindelser for hver node i klyngen.
Snake
En netværksklynge er en slange, hvis alle netværksenheder i klyngen har to forbindelser, med undtagelse af to. Disse to er enderne på slangen. En klynge defineres som en slange hvis nedenstående udtryk er sandt.
$$\frac{(\sum_{i=1}^n \sigma_i) + 2}{n} = 2$$
Circle
En netværksklynge er en cirkel, hvis alle netværksenheder i klyngen har to forbindelser. En klynge defineres som en cirkel hvis nedenstående udtryk er sandt.
$$ \max{( \vec {v [\sigma_i]} )} = \min{( \vec {v [\sigma_i]} )} = 2 $$
Hub-and-spoke
En netværksklynge er en hub-and-spoke, hvis en enkelt node har forbindelser til alle andre noder i klyngen.
Bemærk at netværksklyngen kun defineres som en hub-and-spoke, hvis der kun er
$$ \text{count}(1, \frac{\vec {v [\sigma_i]}}{(n-1) \vec {1}_{v [\sigma_i]}}) = 1 $$
Mesh
Hvis ikke en af de tre ovenstående netværkstyper passer, vil netværket være et mesh-netværk.Der udregnes i forbindelse med netværksrobustheden to udtryk. Netværkets samlede robusthed er derfor en funktion af de to variable. Denne beregning foretages som det eneste i Netmap Analytics kun én gang i døgnet, da den er beregnelsesmæssigt tung.
Redundansen af en node defineres til at være antallet af enheder, noden er forbundet til. Der er derfor et udtryk for hvor mange indfaldsveje en given datapakke vil have til den givne node. Redundansscoren udtrykkes som et heltal der repræsenterer antallet af noder, der er forbundet med noden.
Vigtigheden af en enkelt node udregnes ved at sammenholde distancen mellem alle noder i netværket iterativt. På baggrund af dette udregnes der en samlet gennemsnitlig rejsetid for en given datapakke et tilfældigt sted i netværket. Herefter fortages der en simulering af netværken uden en given node, og forskellen i de to værdier er det samlede effektivitetstab ved at fjerne den given node. Denne process gentages for samtlige noder i netværket.
Se matematisk redegørelse her.
Dette netværksovervågningssystem med datavarehus giver en omfattende løsning til at overvåge og analysere netværksinfrastruktur. Ved at kombinere realtidsdataindsamling, geografisk information og historisk analyse, tilbyder systemet en stærk platform for netværksadministration og beslutningstagning.
Der er taget afsæt i følgende paper: Se her.
Matematisk udledning. Der opstilles følgende definitioner:
$$ D := \text{Degree matrice} $$
$$ A := \text{Adjacency matrice} $$
$$ L := \text{Laplasisk matrice} = D - A $$
Da den laplasiske matrice er singulær, fortages der en Single-Value Decomposition på den med henblik på at udregne den pseudoinverse matrice:
$$ V, D, U = \text{SVD}(L) $$
$$ A^+ = V*D^+*U^T $$
Hvor $ U^T $ denoterer den transponerede matrice $ U $ af de orthonormale eigenvectorer af $ AA^T $, $ D^+ $ denoterer den reciprokke af alle ikke-nul værdier i matricen $ D $, $ V $ denoterer matricen af orthonormale eigenvectorer af $ A^TA $ og den pseudoinverse matrice udtrykkes ved $ A^+ $.
Denne process gentages for all noder i netværket for at finde et udtryk for rejsetiden for en datapakke til en tilfældig slutnode i netværket. Det samlede udtryk der derfor ovenstående matriceudregning itereret over alle noder:
$$ \text{Vigtighed} = \sum_{i=1}^n \sum_{j=1}^n A^+_{ij} $$
Effektivitetstab ved nedetid på en node udregnes herefter ved at udføre alle ovenstående beregniner igen på et subset af netværket uden node k, $ n_k $
$$ \text{Effektivitetstab} = \sum_{i=1}^{n-1} \sum_{j=1}^{n-1} A^+_{ij} $$