table of contentsbeta.eaict.ap.be/wp-content/uploads/2016/06/scriptie...hierbij aan zaken zoals...

Post on 15-Oct-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1.1

1.1.1

1.1.2

1.1.3

1.1.4

1.1.4.1

1.2

1.2.1

1.2.2

1.3

1.3.1

1.3.1.1

1.3.2

1.4

1.4.1

1.4.2

1.4.3

1.4.4

1.5

1.6

TableofContents0.Introduction

0.1Dankwoord

0.2Abstract

0.3Hetbedrijf

0.4RaspberryPi

RaspberryPiSetupGuide

1.VoIPBasics

1.1SIPenRTP

1.2MOS

2.Python

2.1Sockets

SocketsVoorbeeld

2.2Scripts

3.MonitoringViaTools

3.1PortMirrorvsNetworkTap

3.2NTOPNG

3.3Smokeping

3.4MTR

4.BroadbandMonitoring

5.Conclusie

2

Network&VoIPMonitoringUsingRaspberryPiByJonasCaers

DepartementWetenschappenenTechniek

OpleidingElektronica-ICT

Academiejaar2015-2016

Internepromotor:MaartenLuyts

Externepromotor:ThijsVandecasteele

0.Introduction

3

0.1DankwoordEerstenvooralzouikIntellinetwillenbedankenommijdekanstegevenombijhunstagetedoen.VervolgenswilookzekerThijsVandecasteelebedankenvoordebegeleidingtijdensdestageenhetingoedebanenleidenvanhetproject.OokwilikRahulMalik,MinaMalikenBartMichielsbedankenvoordeaangenamewerksfeer.VerderwilikookMaartenLuytsbedankenvoordenodigefeedbackopdeveleverslagen.

Antwerpen,10juni2016

JonasCaers

0.1Dankwoord

4

0.2AbstractMijnOpdrachtishetmonitorenvannetwerkenbijklanten.SpecifiekmoetikervoorproberenzorgendatdekwaliteitvandeVoiceoverIPgesprekkengegarandeertkanworden.Ditdoortekijkenwanneereennetwerkproblemenondervindtendatdeklantenhetbedrijfhiervaneenmeldingkrijgenmetinformatieoverwatermisgaat.DitmonitorenmoetgebeurenviaeenRaspberrypizodatdezemakkelijkbijeenklantgeplaatstkanworden.WegaanhierbijgebruikproberenmakenvanToolsdieervoorkunnenzorgendatwebelangrijkezakenkunnenmonitorendieeeninvloedkunnenhebbenopeenVoiceoverIPgesprek.DenkhierbijaanzakenzoalsLatency,packetLoss,bandbreedte,etc.

0.2Abstract

5

0.3HetbedrijfBijaanvangvandestagezijnwegestartmeteenintroductietotdewerkingvanhetbedrijfendeverschillendestageopdrachten.hetbedrijfmaaktgebruikvanfreePBXvoorhetbeherenvandeVOIPnetwerken.freePBXiseenweb-basedopensourcegraphicaluserinterfacedatAsterisk(voiceoverIPserver)beheerd.Asteriskiseensoftwareimplementatievaneen"telephoneprivatebranchexchange"ofPBX.hetlaatonstoeommetaangekoppeldetelefoonsgesprekkennaarelkaartestartenenomconnectietemakenmetanderetelefoonserviceszoalshetpublicswitchedtelephonenetwork(PSTN)enVoiceoverInternetProtocol(VoIP).Hetbeschiktoverveelfeatureszoalsvoicemail,conferencecalling,interactivevoiceresponseenautomaticcalldistribution.AsteriskondersteuntverschillendestandaardVoiceoverIPprotocols,maarvooronsisdemeestbelangrijkedeSessioninitiationprotocolofkortwegSIP.Ditiseencommunicatieprotocoldatgebruiktwordtvoorsignaleringencontrollerenenhetregelenvanmultimediacommunicatiesessies.SIPmaakthoofdzakelijkgebruikReal-timeTransportProtocol(RTP),ditnetwerkprotocolwordtgebruiktvoorhetleverenvanaudioenvideooverIPnetwerken.NogeenbelangrijkbegripisTrunking,ditiseenmethodevooreensysteemomnetwerkaccessteverschaffenaanmeerdereclientsdooreensetlijnenoffrequenciestedelen.Eentrunkiseensingletransmissionchanneltussen2eindpunten,waarbijelkpunthetswitchingcenterisofweldenode.

0.3Hetbedrijf

6

0.4RaspberryPi

Ikweetdatmeestemensendieditzullenlezenhoogstwaarschijnlijkalwelincontactzijngeweestmetderaspberrypioferopzenminsttochalvanhebbengehoord.Maarvoorzijdiehetnietkennenwiliktochkortuitleggenwathettoesteljuistisenwaartoehettotinstaatis,aangeziendittocheenenormbelangrijkonderdeelisvanhetproject.DeraspberryPiheeftbijwijzevansprekengezordvooreenrevolutiebinnendeinformatica.Dekleinemicro-computerheeftopeenzeerkorteperiodeeenenormgrotefanbaseingepalmdenwordtsteedsmeerenmeergebruiktbinnenbedrijven.Hetdevicewasorigineelontworpenomkinderenkennistelatenmakenmetprogrammerenzonderhetrisicotelopenprijzigecomputersdefecttekrijgen.

Deraspberrypikangebruiktwordenvooreenenormerangevanverschillendeapplicaties,inclusiefeenmini-PC.Hetisnietenormkrachtig,maarmeerdankrachtiggenoegomenkelebasistakentedoenofgewoonomophetinternettebrowsen.Hetisookenormpopulairbijmensendiehetwillengebruikenvoorretrogamingenemulaties.DeraspebrrypiissterkgenoegomdeklassiekeNESenSNESgamestespelenendeonlangsaangekondigdeOpenGLondersteuningzouervoorkunnenzorgendathetgamesvandevroegejaren2000zoukunnendraaien.IoTprojectenzijnookenormpopulairenzozijnermensenuitdecommunitydieerbijvoorbeeldeenmonitoringsysteemvanhetweerhebbengemaakt.

ErzijnverschillendemodellenvandeRaspberryPimaarvooronszijndebelangrijkstedeRaspberrypi2en3.DitvanwegedeethernetpoortenendeCPUsnelheden.Raspberrypi2heefteengeheugenvan1GBeneenCPUsnelheidvan900MHZ,Raspberrypi3isde

0.4RaspberryPi

7

meestegeavanceerdemeteen1.2GHz64-bitCPU,maarhetheeftookingebouwdeBluetoothenWi-Fi.

0.4RaspberryPi

8

RaspberryPiSetupGuideHettoestelzieterinhetbeginmisschieningewikkelduitomwerkendetekrijgen,maarnietsisminderwaar.Hetmoeilijkstedeeliswaarschijnlijkhetladenvanhetoperatingsystemophetdevice.DePiheeftgeeningebouwdeopslagruimteenmenmoetdaaromgebruikmakenvaneenmicroSDkaart.Dezewerktdanalsjeharddrive.

AlsjedePigeformatteerdhebtzuljeeenoperatingsystemmoetenklaarmakenomteladenopdePi.OmdatdePi"lowpowered"isvannature,zalgebruikmoetengemaaktwordenvanaangepastesofwaregebasseerdopdepopulaireLinuxDistro's.VeelmensenzullenomtebeginnengebruikmakenvandeNewOutOftheBoxSoftwareinstaller(NOOBS)(download),alraadikhetsterkaanomgebruiktemakenvanRaspbian(download).

WanneerdezedownloadsklaarzijnzaljedecontentnaardeSDmoetentransferen(ditkandoorgebruiktemakenvanbijvoorbeeldwin32diskmanager).Alsjeditprogrammastartzaljeeenimageendevicemoetenselecteren,selecteerdefilediejenetgedownloadhebtenjeSDkaartendrukdanopWrite.Hiernakanjejemonitor,muisentoetsenbordaandePikoppelen.StartdanhetDeviceopenjebentklaaromtebeginnenwerken.VergeetzekerooknietomhetgeheugenvandeSDuittebreiden,ditkanjedoendoorhetcommando"sudoraspi-config"integevenendan"expand"teselecteren.HetisookgewoonmogelijkomvanopjeeigenPCopdeRaspberryPitewerken,ditkanviaSSH.DownloadPutty,geefhetIPadresvanjePienmaakverbinding.

RaspberryPiSetupGuide

9

VoIPBasicsVoorwekunnenbeginnenmetmonitorenishethandigomeersttebegrijpenhoeVoIPjuistwerkt,oftochalleszinsdebasis.

ErzijndriehoofdVoIPprotocolsfamilies,voornamelijkgebasseerdop:StandaardprotocolszoalsSIP/RTP/H.323ofproprietaryprotocolszoalsCiscoSkinnyofSkype.belangrijkpuntisdathetgebruikenvaneenstandaardprotocolsnietaltijdwilzeggendathetmogelijkisomallestemonitoren,wantprotocolszoalsRTP(gebruiktvoorvideoenaudio)kunnendatavervoerendatencodedismeteenproprietarycodec.InhetAlgemeenzijnalleprotocolsbijVoIPgebasseerdopeenconnectionlessprotocolzoalshetUserDatagramProtocol,UDP.UDPisonbetrouwbaarenhetprotocolbiedtgeengarantiedatdegegevenswerkelijkgaanaankomen.hetprotocolwordtvooralgebruiktbijapplicatiesdiesnelgegevensmeteenkortereactietijdmoetenkunnenoverdragenenhetnietzoergisdatereenpakketjeverlorengaat,denkhierbijaantelefonie,streamsendergelijken.depacketlossmaguiteraardniettegrootzijnzodatdepersoonaandeanderekantnietmeerverstaanbaarisofdestreamnietmeertebekijkenis.Ditisduswatwegaanproberentemonitorenmetderaspberrypi.

ElkecommunicatiebijVoIPbestaatuit3basisstappen:

1. wanneereenbellerwilcommunicerenmeteenanderepartijdanzalheteencommunicatiebeginnenmetderemotepartyofwelmeteengateway/PBX(ditisafhankelijkvanhetprotocoldatgebruiktwordtendesetupvanhetlokaalnetwerk)doorgebruiktemakenvaneensignalingprotocol.dezestapisverantwoordelijkvoor:verifiërenvancredentials,uitzoekenofhetvoiceisofvoice&video,overeenkomenwelkecodecgebruiktwordtenovereenkomenwelkepoortengebruiktzullenworden.

2. hetgesprekvindtplaatsopdepoortendieweeerderovereengekomenzijn,depayloadwordtencodedmetdecodecdiewehebbengespecificeerd.RTPstandaardhetprotocolzijndatgeselecteerdisenbijeenvideocallzullenertweeonafhankelijkeRTPstreamszijn,eenvoorvoiceeneenvoorvideo.

3. wanneeriemandbeslistomhetgesprektebeëindigen,danzalhetgesprekafgeslotenwordendoorgebruiktemakenvanhetsignalingprotocol.

Vanhettrafficmonitoringstandpunt:

hetsignalingprotocolbevatbelangrijkeinformatiezoalstypecall(voiceofvideo-call),codecs,duur,eninformatieoverdeRTPsessie.devoice/videotransportprotocolisgebruiktominformatiezoalsjitterpacketlossenpacketlatencyeruittehalen.

1.VoIPBasics

10

protocollenzoalsRTCPXSwordengebruiktominformatieoverdertpstreamsweertegeven,zoalspacketloss,delayencallandtransmissionqualitymetrics.

1.VoIPBasics

11

1.1SIPenRTPVoormensenmetgeenachtergrondinnetwerkenkanSIPenRTPopheteerstezichtbijzonderingewikkeldlijken,ikzaldaaromdetweeprotocolsproberenuitteleggenzodatdittocheenbeetjeduidelijkerwordtenjezalmerkendatditallemaalnogwelgoedmeevalt.

Zoalsdenaamzegt,SessionInitiationprotocolwordtgebruiktomeensessietestartentussen2eindpunten.SIPvervoertzelfhelemaalgeenvideoofvoicedata,hetgaatsimpelweg2eindpuntentoelateneenconnectietemakenmetelkaarengaandanviahetReal-Timetransportdatanaarelkaarversturen.StructuurvaneenSIPpacket:

Uitlegnummersvanafbeelding:

1. DittoontdesourceendestinationipadresvanhetSIPpakketje.(belangrijkomtewetenisdatditzalveranderenwanneerhetandereSIPproxyserverspasseert)

2. Transportprotocolenpoort.(inditgevalpoort5060,destandaardpoortvoorSIP)3. DitisdeSIPrequestheaderdatzegtoverwelktypeSIPmessagehetgaat.4. deViaheaderbevatalleinformatieoverwelkeSIPproxyservershetheeftgepasseerd.5. deToisdeSIPpacketdestination.6. From*geeftaanvanwiehetpakketheeftverstuurd.7. DitspecifiekpakketjeiseenSIP/SDpacket,ditwilzeggendathetinformatiebevatdat

1.1SIPenRTP

12

deremoteclienteenRTPsessionmoetopenenvoorhetgesprek8. HetIPadresvandeSIPClient9. HetIPadresdatdedestinationSIPclientmoetcontacterenomeenRTPsessiete

openen.10. Debelangrijkstezakenindezeheaderzijnaudio,33438enRTP/AVP.

integenstellingtotSIP,datluistertoppoort5060,maaktRTPgebruikvanvaneendynamicportrange(enisaltijdUDP),normaalgezientussen10000en20000.RTPsessieswordenrechtstreeksopgezettussenSIPclients.

Nu,SIPiseenenormhandigprotocolmaarzakenwordeningewikkelderwanneerNATerbijwordtbetrokken.SIPpakketjeszelfbewegenzichzonderveelproblemenvandeeneservernaardeandere.BijRTPisditniethetgeval.ofwelzijnbeideclientszichervanbewustdatzeachterNATzittenenwisselenzehunIPadressenuitvoorhunpubliekeIP'sinhunSessiondescriptionmessagesenopenenzedenodigefirewallpoorten.ofandersmoeterietswordenaangepastindeSIPpakketjesterwijlzeonderwegzijn.Ditiswaareenback-to-backuseragentzoalsAsteriskvanpaskomt,dezekandienenalseenproxyvandeRTPtrafiek.

AsteriskkanSIPpakketjeswijzigenzodatdecallerendestinationeenRTPsessiemetzichzelftotstandbrengen,inplaatsvanmetelkaar.Ditishandiginsituatieswaar2SIPclientsgeendirectaccesshebbenmetelkaar.Bijtroubleshootingvanpacketcaptureskanjebestaandachthebbenvoordeze2zaken:

1. DepoortenenIPadressenindeSIPmessageheader(to,from,via).2. depoortenenipadressenindesessiondescription.

1.1SIPenRTP

13

1.1SIPenRTP

14

1.2MOSMOSstaatvoorMeanOpinionScore.Nu,watiseenMeanOpinionScoreenwaaromkanhetbelangrijkzijnbijVoiceoverIP.MeanOpinionscoreiseenrelatieveschaaldierekeninggaathoudenmetmeerderefactorendieinvloedkunnenhebbenopeennetwerk,dieeventueeldekwaliteitvaneenVoiceoverIPgesprekkunnenbeïnvloeden(hetwoordrelatiefishierbelangrijkomdatditsoorttestenormsubjectiefis).Erzijnveelfactorenwaarmenrekeningmetkanhouden,eeneersteisBandbreedte,jebandbreedtezalgaanbepalenhoeveelgesprekkenjesimultaanzalkunnendoen,wanneerjemeergesprekkenvoertdanjebandbreedteaankandanzuljedekwaliteitvanhetgesprekdrastischhorendalen.VervolgenskanookdeHardwarediejegebruikteeninvloedhebbenopdekwaliteitvaneengesprek,maarookzakenzoalsJitter(meeruitleghieroverlater),LatencyenpacketlosshebbeneenenormgroteinvloedopdekwaliteitvanjevoiceoverIPgesprek.DeCodecdiewegebruikenkanookzorgenvooreenslechteofbeterekwaliteitvaneengesprek.Zozaldeg711codec(noncompressed)zorgenvooreenbetereresultaatzorgenomdatomdatcompressieendecompressiehiernietnodigis.G711heeftookminderkansoppacketloss,zelfseenkleinbeetjepacketlosskanleidentoteenminderekwaliteitvanjegesprek.Hetnadeelbijdezecodecisdanweerdathetveelmeerbandbreedtegaatgebruikentenopzichtevandeg729codec.

DeMeanOpinionScorezalaltijdeenwaardehebbenvan1tot5,waar1enormslechtisen5debestmogelijkkwaliteitis.Voordeg711codecis4.4demaximummogelijkeMOS.vanaf3.9zaljeziendatmensenalmerkendatereendalingisvandekwaliteitvanhetgesprek.

hiereenvoorbeeldvanhoelatencyinvloedheeftopdeMeanOpinionScorebijdeG711enG729codec:

1.2MOS

15

1.2MOS

16

2.PythonAangezienderaspberrypiwerktopeenlinuxbaseddistrohebikgekozenomeenstekijkenofikzelfnietietskanprogrammereninpythondatmijkanhelpenbijhetmonitorenvaneennetwerk.Pythoniseentaaldatzeermakkelijktegebruikenisopeenlinuxbasedoperatingsystem,meestalhoefjezelfnietsmeerteinstallerenenkanjemeteenbeginnen.MomenteelbenikbezigaaneenPINGscriptdatmijkanhelpenomzotegaankijkennaardestatusvaneenhostofclient.OokhebikeeneenUDPSENDenRECEIVEscriptdatmijkanhelpenomdestabiliteitvaneenconnectietetestenenomtekijkenoferpacketlossisoverdelijn.NuvoorweietskunnenprogrammereninPythonvoornetwerken,moetenweeerstwetenhoeSocketswerken.Ditligtnamelijkaandebasisvanallesenhetlijktmedaarombesthandigomtocheenbasiskennistehebbenhierover.

2.Python

17

2.1SocketsSocketszijnenormbelangrijkvoorwanneerjeietswilprogrammereninverbandmetnetwerken.latenwebeginnenmetsneleenseensimpelsocketaantemaken,ditkandooreerstdesocketlibraryteimporterendoor"importsocket"endandesocketineenvariabeletesteken.desyntaxhiervoorgaatalsvolgt:"s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)".Wehebbenhierduseensocketinstanceaangemaaktenhet2parametersmeegegeven.deeersteparameterisAF_INETendetweedeisSOCK_STREAM.AF_INETverwijstnaarhetaddressfamilyipv4.vooripv6isditookmogelijkenmoetjenamelijkinplaatsAF_INETerAF_INET6vanmaken.DandeSOCK_STREAMgeeftweerwelkprotocoljewiltgebruiken,inditgevalgebruikenwedushetTCPprotocol.laterwordtookuitgelegdhoejebijvoorbeeldeenUDPpakketjeaanmaakt,ditisnamelijkideaalalsjemetVoIPbezigbent.Nugaanwetrachtenommetdezesocketeenconnectietemakenmeteenserver.Alserenigeerrorswarenmethetaanmakenvandesocketdanzalereensocket.errorgegevenwordenenzaljeenkelmetdeserverconnectiekunnenmakenalsjehetIPweet.stelnudawemetdeservervangooglewillenconnecterendankanjeeensimpelepingdoeninjecommandpromptofdoorinjecodedelijn"ip=socket.gethostbyname('google.com')"toetevoegen.

2.1Sockets

18

SocketsVoorbeeldInditdeelgaikaandehandvaneenvoorbeeldproberenomdewerkingvansocketsduidelijkertemaken.

Latenwenuevendecodevanhetscriptomconnectietemakenmetgooglebekijken:

importsocket

importsys

try:

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

print"Socketsuccessfullycreated"

exceptsocket.erroraserr:

print"socketcreationfailedwitherror%s"%(err)

port=80

try:

host_ip=socket.gethostbyname('www.google.com')

exceptsocket.gaierror:

#thismeanscouldnotresolvethehost

print"therewasanerrorresolvingthehost"

sys.exit()

s.connect((host_ip,port))

print"thesockethassuccessfullyconnectedtogoogle\

onport==%s"%(host_ip)

depoort80diewenemenisdedefaultportvoordesocket.Slahetscriptjenuopenlaathetrunnen,nuzoujenormaalmoetekunnenziendatdesocketsuccesvolisaangemaaktgeweest.

nuwathebbenwehierpreciesgedaan,eersthebbenwedesocketaagemaakt,danhebbenwegooglezijnipgenomenendeconnectiemetdeservergemaakt.Nuditisallemaalzeerinteressant,maarwatweechtwillenwetenishoedatasturendoorzoeensocket.voorhetsturenvandatadooreensocketheeftdelibraryeen'sendall'function.dezefunctielaatjetoeomdatateversturennaardeserverwaardesocketismetverbondenendeserverkanookdataversturennaardeclientaandehandvandezefunctie.

Laatonsnukortzienhoezo'nserver-clientprogrammainzijnwerkgaatomdeverschillendeconceptentochnognetietsduidelijkertemaken.

SocketsVoorbeeld

19

eerstmisschienwatmeeruitlegoverdeserver.eenserverheefteenbind()methodediehetbindaaneenspecifiekeipenpoortzodathetkanluisterennaarinkomenderequestsopdieipenpoort.vervolgensheeftdeserverookeenlisten()methodediedeserverinlistenmodezet.ditlaatdeservertoeomteluisterennaarinkomendeconnecties.alslaatsteheeftdeserverookeenaccept()enclose()methode.theacceptmethodeopenteenconnectiemetdeclientendeclosemethode,raarmaarwaar,sluitdeconnectiemetdeclient.Nugaanweeenszienhoedecodevandeservererkanuitzien.

importsocket

s=socket.socket()

print"Socketsuccessfullycreated"

port=12345

s.bind(('',port))

print"socketbindedto%s"%(port)

s.listen(5)

print"socketislistening"

whileTrue:

c,addr=s.accept()

print'Gotconnectionfrom',addr

c.send('Thankyouforconnecting')

c.close()

watdoenwehiernujuist?eerstenvooralgaanweopnieuwdesocketlibraryimporteren,ditiszowathetbelangrijkstedatjemoetdoen.DangaanwenogmaalseensocketobjectaanmakeneneenportreserverenoponzePC.Naditbindenweonzeserveropdiepoort.hetdoorgevenvaneenlegestringwilzeggendatdeserverookkanluisterennaarconnectiesvananderecomputers.Alswebijvoorbeeld127.0.0.1zoudenmeegevendanzoudeserverenkelluisterennaarcallsindelocalcomputer.hiernazettenweonzeserverinlistenmode.Bijdelistenzienwenuhetgetal5staan,ditwilzeggendat5connectiesinde"wacht"kunnenwordengezetalsdeserverbezigis,een6connectiezaldusgeweigerdworden.alslaatstegaanweeenwhileloopaanmakendieinkomendeconnectiesgaataccepterenendieconnectiesgaatsluitennahet"thankyou"berichtje.Watonsnunogrestishetaanmakenvandeclient.

Declientiswatgaatpratenmetonzeserver.wekunnennatuurlijkeerstproberenomeentelnettedoennaaronzeserveromzekertezijndatonzeserverwelwerkt.voordatjeditdoet,vergeetnietdeservereerstaanstaatdoorhetscriptterunnenmet"pythonserver.py"of"sudopythonserver.py"omalsroottestarten.

nulatenweonzeclientgaanaanmaken;

SocketsVoorbeeld

20

importsocket

s=socket.socket()

port=12345

s.connect(('127.0.0.1',port))

prints.recv(1024)

s.close()

hetscripthierbovenspreektvoorzichzelf,maarikgahettochsneleventoelichten.eerstenvooralgaanwenogmaalshetsocketobjectaanmaken,dangaanweverbindingmakenmetdelocalhostoppoort12345(ditisdepoortwaardeserveroploopt)enalslaatstegaanwededatavandeserverontvangenendandeconnectiesluiten.nuslaaghetscripjeopenstarthetvandeterminal.alsallesgoediszoujenutekstmoetenzienverschijnendatdeconnectieinordeis.

nuikweetdatdezeuitlegmisschiennogwattebasicis,maarhetzoujetochaleengoedideemoetengevenvanhoesocketswerkeninpython.

SocketsVoorbeeld

21

2.2ScriptsVoorweverdergaanwiliktochevenvermeldendatiktijdensdeloopvanmijnstagemijnfocusvandezescriptsverlegthebnaarhetwerkenmettoolsinplaatsvanverderdezescriptsuittebreiden.Dithebikvooralgedaanomdatmijnkennisvanpythontochietstebeperktwasvooreenprojectalsdit.Tochgaikdescriptseventoelichtenomdatdebasisertochisenerzekernogopverderkangegaanworden.

PINGscript

Heteerstescriptdatwehierhebben,gaanwegebruikenomnategaanofdedevicesvandeklantnogbereikbaarzijnenofdeklantdeservervanintellinetnogkanbereiken.hetscriptkanzoveelclientspingenalsjezelfwilt,erisdusweldegelijkruimtevooraanpassingen.

ErzitookalIPV6functionaliteitin,ditkanjeziendoorhetgebruikvandeAF_INET6(zoalseerderhierbovenaluitgelegdis).Bijhetaanmakenvandesocketzienwedatwe"socket.SOCK_RAW"gebruikeninplaatsvande"_STREAM",een"_RAW"wiltzeggendajedeapplicatietoelaatomcustomheadersaantemakeninplaatsvandeheadersvanhetonderliggendeoperatingsystem.

UDPSENDscript

IkhadeerderalvermelddatweviaeenUDPscriptgaankijkennaardekwaliteitenpacketlossvaneenlijn.MetditscriptgaanwebijdeklantUDPpakketjesaanmakenviasockets,zoalseerdervermeld,endezedanversturennaardepbxdiedepakketjesdanzalontvangen.Nuwegaanpakketjesversturendieingroteverschillenenwegaandusaandereceiverviaeentrigger(datadiewemeesturenineenpakketje)latenwetenhoeveeldatawegaansturenoverdelijn.

UDPRECEIVEscript

AangezienUDPeenconnectionlessprotocolisgaathetscriptdatdedataverstuurtgeenideehebbenvanhoeveelergaanaankomen.daarommakenwedusgebruikvaneenUDPreceivescriptomzodedatadieverstuurtwordtvanbijdeklantopdeserverteontvangen.Nudezenderstuurtentriggermeewaarinstaathoeveeldatahijzalversturen,opdezemanierkunnenwedusheelmakkelijkberekenopdereceiverhoeveelpacketlossisdoorgewoontegaanzienhoeveeldezenderverstuurtenhoeveelpacketserzijnaangekomenopdePBX.

2.2Scripts

22

Crontab

Crontabiseenzeerhandigetooldiewekunnengebruikenomdeverschillendescriptsopbepaaldeintervalstelatenlopenofomzeopbepaaldetijdsstippentelatenlopen.Ditisbijzonderhandigaangezienwenietwillendatdescriptscontinublijvendraaienbijdeklantenzomisschienhetnetwerkonnodigveelbelast.

2.2Scripts

23

3.MonitoringViaToolsVoorhetmonitorenvaneennetwerkopderaspberrypikanmengebruikmakenvanenkeletoolsdiehetwerkvoorudoen.DeeerstetooldieiktegenkwamwasNagios,maarhebbeslotenomdezeniettegebruikenomdatnagiosvooralbedoeltisomgegevensvaneenservertemonitorenendatvoornetwerktemonitorenerwaarschijnlijkbeteretoolszijn.DaaromhebikopaanradenvanmijnbegeleideropdestagemijevenverdieptinMunin.MuninmaaktgebruikvanPlug-insomeennetwerktemonitoren.NuMuniniseenenormhandigetoolvoorhetmonitorenvaneennetwerk,zoheefthetbijvoorbeeldeenpluginomeenasteriskservertemonitoren,maarMuninisnaarmijnmeningenormbeperktenbiedtweinigruimteomuittebreidentenzijjeeengoedekennishebtvandetaalPearl.VeellaterbenikNTOPNG(deopvolgervanNTOP)tegengekomenendezetoolleekmijexactwatiknodighebenhebdaarombeslotenommehierinteverdiepen.

Nuhetprobleemmetditsoortmonitoringtoolsopderaspberrypiisdatdezeenkeldedataoverzijneigeninterfacezalmonitoren.NawatresearchhebikgevondendatomditprobleemoptelossendatmenkandoenaanPortMirroringofeenPortTapkangebruiken.ikgaproberenombeidetechniekeninvolgendedelenzoduidelijkmogelijkuitteleggenomzojetocheenideetegevenvanwaterjuistgebeurt.

Verderhebikookgebruikgemaaktvandetool"Smokeping".Dezetoolgaatproberenomgegevenszoalslatency,jitterenpacketlossbijtehoudenendezedangrafischweergevenviazijngrafischeuserinterface.Ikgaproberenomdewerkingeninstallatievandezetoolzogoedmogelijktoetelichten.

OokMTRof"matt'straceroute"gaikproberenuitteleggen.Viadezetoolkanjeaannetwerkdiagnosedoenvanopderaspberrypi.

3.MonitoringViaTools

24

3.1PortMirrorvsNetworkTapOmuitteleggenhoedezetechniekenwerkenenwatdeverschillenzijntussendetweeishetbelangrijkomtebegrijpenhoeEthernetjuistwerkt.bij100Mbitenmeer,sprekenhostsmeestalinfullduplex,ditwilzeggendathostszowelkunnenzendenalsontvangenopdezelfdemoment.Overeen100Mbitkabelverbondenmeteenhost,isdetotalhoeveelheiddatadateenhostkanverzenden/ontvangen2x100Mbit(200Mbit).

PortMirror

Eenportmirroriseen"activepacketduplication",ditwilzeggendateennetworkdevicedepacketsfysiekmoetgaankopieërenopdemirrorport.

Ditwilzeggendathetdevicedezetaakmoetdoendoorgebruiktemakenvanresources(bvCPU)endatbeidetrafficdirectionsopdezelfdepoortgekopiëerdzullenworden.Infullduplexkandedatavananaarbenbnaaraniethogerzijndandesnelheidvanhetnetwerkvoordaterpacketlosszichvoordoet.Ditomwillevandatergeenfysiekeplaatsisomdepacketsnaartekopieëren.Hetgevolghiervanisdatneenportmirroreengoedetechniekisdatdoorvelenswitchesgedaankanworden(nietallemaal)methetenigenadeeldatvanpacketlossalsjeeenlinkmonitoredmetmeerdan50%load,ofdepoortmirroredmeteensnellerepoort(bijvoorbeeldeen100Mbiutpoortmeteen1Gbitpoort).Ookkanportmirroringtotgevolghebbendatmeerresourcesgebruiktmoetenendatzodeperformantievandeswitchnaarbenedengaat.

NetworkTap

Eennetworktapisintegenstellingtotdeportmirroreen"fullpassive"device.

3.1PortMirrorvsNetworkTap

25

Elektrischofoptisch,packetswordengekopiëerdopdetapports.Eentapheefteentappoortperrichting(tenzijjeeenaggregatietapgebruikt).Ditbetekentdatalsje1linkwilmonitoren,jetweeNIC'snodiggaathebben,eenvoordeeersterichtingeneenvoordetegengestelderichting.inditgevalzaljenooiteenpacketverliezenintegenstellingtotdeportmirror,omdatelkerichtingeenlinkgebruiktinplaatsbeiderichtingentemergenopdezelfdelink.alsjebeiderichtingenwilmergennaareenenkelepoort,kanjedenetwerkswitchgebruiken;

Tappoortenontvangengeendatamaargaanenkeldatauitsturen,deswitchheeftgeenenkelideewieerachterdepoortzit.hetgevolghiervanisdathetdatazalbroadcastennaarallepoorten.alsjedusjemonitoringdeviceverbindmetdeswitchzaldezedusalledataontvangen.belangrijkenotitieisdatdezetechniekenkelwerktalshetmonitoringdeviceGEENdatanaardeswichstuurt,anderszaldeswitchdenkendatdetappedpacketsnietvoorzulkdevicezijn.OmdittebereikenkanjeeennetwerkkabelgebruikenwaaropjedeTXdraadennietverbondenhebtofjekaneenIP-lessnetworkinterfacegebruikendatgeenpacketstransmit.

Conclusie

zowelpacketmirroringenTaphebbenpossitieveennegatievekanten.Hetisdusaanjouomteexperimenterenwelkemethodehetbestevoorjouofjeinfrastructureuitkomt.

NuZoalseerdervermeldwerkendezetechniekennietopalleswitchen,vooralbijkleinereklantenkanditvoorproblemenzorgen.

3.1PortMirrorvsNetworkTap

26

3.2NTOPNGIkgaproberenomzoduidelijkmogelijktoetelichtenwaterwelennietmogelijkismetNTOPNG,ookzalikhetinstallatieproceservankorttoelichtenalsookhetgebruikvandeapplicatie.

EerstenvooralishetbelangrijkdatmenbeschiktovereenrouterofswitchdiePortmirroringondersteunt,omdatandersderaspberrypimetntopngenkeloverzijneigeninterfacezalkunnenmonitoren.Ditwiltduszeggendatdeapplicatienietaltijdoptimaalgebruiktzalkunnenwordenomdatnietelkerouterofswitchdezeportmirroringzalondersteunen.nogeenpuntisdatwanneerjeportmirroringdoetopeenswitchinplaatsvanopderouter,jedewi-fitrafieknietzalkunnenmonitorenmetdeapplicatie.NTOPNGiseenenormuitgebreidetooldieenormveelkanenenormveelnutkanhebben,maarhetzalmaarinbeperktesituatiesoptimaalgebruiktkunnenworden.Alsjedusnietbeschiktovereenswitchofrouterdieportmirroringondersteuntzalhetvolgendestukjemisschienietsminderinteressantzijn.

Ntopng,deopvolgervanNTOP,iseenpassievetooldieaanmonitoringdoetendefocuslegtophetweergevenvanflowsenstatistieken.NTOPNGheeftdeoudeNTOPvervangenomdatdemanierwaaropNTOPontworpeniservoorzorgdedatnietmeerdaneenpaarMbitbehandeltkonworden.Ookbeschikthetovereengrafischeuserinterfacedieenormoutdatedis.NTOPNGgaatdusverderopNTOPmaarmaaktgebruikvaneennieuweenmeermoderneGrafischeuserinterface.VerdermaakthetgebruikvaneennieuwereenmeeruitgebreideDPI.DPIstaatvoorDeepPacketInspectioneniseenmethodedieonstoelaatomaanpacketfilteringtedoen,DPIfunctioneertopdeapplicatielaagvanhetOSI(OpensSystemInterconnection)referentiemodel(omjegeheugenevenoptefrissenvanhetOSImodelkanjedezeLinkeenbekijken).HetgebruikvanDeeppacketinspectionmaakthetmogelijkompakketjestevinden,identificeren,reroute,blokkerendieanderepacketfilteringmethodesnietzoudenvindenomdatdezeenkeldepacketheadersgaancontroleren.

HetinstallatieprocesvanNTONGisvrijeenvoudigeninenkelestappenkanjehetalwerkendehebbenenkanjebeginnenmethetmonitoringvanjenetwerk.

heteerstecommandodatwegaaningevenis"wgethttp://packages.ntop.org/apt/ntop.key"enditvolgenweopdoor"apt-keyaddntop.key".Vervolgensgaanwe2echocommando'smoeteningeven,namelij:"echo"debhttp://apt.ntop.org/jessie_piarmhf/">/etc/apt/sources.list.d/ntop.list"en"echo"debhttp://apt.ntop.org/jessie_piall/">>/etc/apt/sources.list.d/ntop.list".Hiernagaanweeenupdatedoenvia"apt-getupdate".Nugaanwentopngennprobeinstalleren,ditdoenwesimpelwegmetvolgendcommando:"apt-getinstallntopngnprobe".Nudatntopnggeïnstalleerdiszijnernogenkelezakendie

3.2NTOPNG

27

wemoetendoen,zogaanwe2servicesmoetenstarten,wegaandentopngenredisserverdaemonstarten.Ditdoenwemetvolgendecommando's:"serviceredis-serverstart"en"servicentopngstart".

Hierzijnwelnogeenaantalzakendiezeerbelangrijkzijn,dezeinstallatieisbedoeldvoorhetRaspbianoperatingsysteemenvooranderelinuxdistro'szuljeduseenanderinstallatieprocesmoetenvolgen(dezezullenwelnietenormveelverschillenvandezeinstallatie,maarhetiswelbelangrijkdatjeweetvoorwelkoperatingsystemjedeinstallatiewildoen),meerinfooverdeverschillendeinstallatieprocessenvindjeopdesitezelfteruglink.Eentweedebelangrijkpunthierisdatallecommando'smoeteningegevenwordenals"superuser',ditdoejesimpeldoor"sudo"voorjecommando'steplaatsen.

Nudatntopngisgeïnstalleerdenjeservicesgestartzijnkunnenweonsbegevennaardegrafischeuserinterface,ditdoejedoorinjewebbrowserhetIPvanjeraspberrypiintegevenenhieraanookpoort3000aantoetevoegen(bijvoorbeeld:http://192.168.1.115:3000).Poort3000wordtstandaardgebruiktdoorntopng,maarditkunjezelfwelnogaanpassendoorditinjeconfigfilesgaanaantepassen.Deeerstekeerdatjemoetinloggenkunjeditdoendooradminintegevenvoorzowelhetpaswoordalsdeusername,ditzijndestandaardwaardentelkenswanneerjentopnginstalleerd.Hetisaanteradenomjeusernameenpaswoordaantepassenzodrajevoordeeerstekeerhebingelogd.

Eensdatweopdehoofdpaginazittenvandegrafischeuserinterfacedangaanwemeteenbovenaandehoofdtoolbarzienstaan,dezebevatonderhanden:Home,Flows,hosts,protocolsenandere.ErzalhierookeenAlerttevoorschijnkomenwanneereenvandetriggersgeactiveerdword,dezeAlertskunnenindeuserconfigurationingesteldwordenzoalsjezelfwilt.

Vanonderopdepaginazaljeeenmeterzienstaan,dezegaatdesaturatievanjebandbreedteweergeven.RechtshiervanzaljeookjeDownloadenUploadzienstaan,ditgeeftjemeteeneengoedideevanhoeveelDataeroverjenetwerkgaat.

3.2NTOPNG

28

AlswedanvanHomenaaronsDashboardgaan,danzuljemeteenietstegenkomendatweeen"SankeyDiagram"noemen.DitSankeydiagramhaateenvisueleweergavebiedenvanallehostsdieophetmomentactiefzijnophetnetwerk.2hostszijnhiermetelkaarverbondenmeteenlijn,deClinethostwordttelkenslinksweergegevenendeserverhostrechts.Debreedtevandelijngeeftaanhoeveeldataertussenbeidehostsuitgewisseldwordt.Hetdiagramwordtstandaardomde5secondenvernieuwd,maarditkunjezelfinstellennaarjeeigenvoorkeur.Hetdiagramisuiterraardookinteractive(ditishetleukeaandenieuweversievanNTOP,allesisnamelijkinteractive),alsjedubbelkliktopeenvandehostszaljeinmeerdetailkunnenzienwatergaandeistussende2hosts.

voorbeeldvanzoeensankeydiagramhieronder:

zoalsjekanziengaatheteenmooioverzichtgevenvanwelkehostsermetelkaaraanhetcommunicerenzijnoverhetnetwerk.

AlsweverdergaanopdeinhetDashboardennaar"Hosts"gaan,dankrijgenweeenPiecharttezien,hierkrijgenweeenrepresentatievandetrafiek.Ditwordtgedaanperhost,gelijkaardigmethetSankeydiagramdatweeerderbesprokenhebben.depiechartgaatzichzelfookrefreshen.Verderhebbenwehierook"ports"enditgaatweergevenwelkepoortenhetmeestgebruiktworden,zowelvoordeclientsalsvoordeservers.Het"Application"gedeeltegaateenvisueleweergavebiedenvanhetbandbreedteverbruikengaatditopslitsenperapplicatieprotocol.DeidenticatiewordtgedaanviadenDPI(herrinerudeDeepPacketInspection)enprotocolsdienietherkendwordenzullenals"onbekend"wordenweergegeven.

VerderinhetdashboardvindenweonderhandennogASNenSendersterug,bijSendersgaanweeenoverzichtkrijgenvandemeestactievehostsophetnetwerk(vergelijkbaarmetwatwetezienkrijgenbijhetSankeyDiagram).

3.2NTOPNG

29

AlsweterugnaardeToolbargaandanzienwenog"Flows"en"Hosts"staan.BijflowsgaanweinRealtimedetraffiekinformatiegaanweergeven,hierbijgaaninfogevenoverwelkeapplicationergebruiktwordt,hetL4protocol,clientetc.BijHostshebbenweeendropdownmenuwaarjeeenaantalleukeeninteressanteinteractievepagina's.Nuechtveelvalthiernietovertezeggenhetisleukeromditzelfeenstebekijkenomtezienwathetallemaalkan.

Hieronderenkelevoorbeeldenvanhoezulkeinteractievepagina'seruitzien(dezescreenshotszijnvanophetnetwerkbijmezelfthuisgenomen):

3.2NTOPNG

30

3.2NTOPNG

31

3.3SmokepingOmdatikeenbeetjeafstandwoudoenvanPython,benikgaanzoekennaareventuelealternatievenenikbendaniemandtegengekomendiemewisttezeggendatbijnaalleswatikprobeertedoeninPython,gedaankanwordenopdeRaspberryPimetdetoolSmokeping.

DezetoolisgebasseerdopdeRRDTool(zelfdemaker)engaatonsinstaatstellenopICMP(internetcontrolmessageprotocol)delay,maarookserviceszoalsdievanHTTP,SMTPofDNSetcetc.HetgaateengrootaantalstatistiekenweergevenenhetgaatjeooktoelatenAlertstegenerenzoalsjezelfwilt.Hetinstallatieproceservanisvrijeenvoudigmaarerzijntocheenaantalzakenwaarjezekerrekeningmetmoethouden(meerhieroverlaten).

Smokepinggaatdusdelatencyvanjenetwerkbijhoudenendezezogoedmogelijkvisueelweertegeven.eenvoorbeeldhiervanhieronder:

Nuhoemoetjeditsoortgrafiekevalueren,SmokepinggaatmeederepingsuitvoerenengaatdeRTTwaardenbijhouden,dezeorderenendaneenmedianbepalen.DeverschillendewaardenvanRTTgaanweweergevenalsverschillendeShadesofGrey(punintended),ditgeeftonsideevanJitteroverhetnetwerk(meerhieroverlater).Dehoeveelheidpacketlossdiewehebbengaatwordenweergegevendoordekleurvandehorizontalenlijnteveranderen(alsjenaardeafbeeldingteruggaatkijkendanziejedatdekleurverandert,ditwilzeggendaterduspacketlossis).Degroenekleurwilzeggendatergeenpacketlossisenhoedonkerderditwordthoemeerpacketlosserisoverhetnetwerk.

Hetinstallatieprocessverlooptalsvolgt,eensweverbondenzijnmetderaspberrypigaanweeersteenseenUpdatedoenvoordezekerheid,doetdieviahet"apt-getupdate".Ditdoenweomzekertezijndatjepackageindexdelaatsteversieis.Dankunnenweverdergaandoor"apt-getinstallsmokepingsendmail"integevenvoordeinstallatie.Deredendat

3.3Smokeping

32

wehierook"sendmail"gaaninstallerenkomtdooreenfoutdieervoorzorgtdatsmokepingnietcorrectwerkttenzijditgeïnstalleerdis.Nuikhebweleenmaniergevondenhoeditzondersendmailkan,ditkandoorindemap"/etc/smokeping/config.d/pathnames"delijnwaar'/usr/bin/sendmail"staatincommentaartezetten.Ditisechtnietaanteradenenjebentbeterafdoorgewoonsendmailmeeteinstalleren,ookalverlengddithetinstallatieproceseenkleinbeetje.Verdergaanweindemap"/etc/apache2/conf-available",hetcommandoln-s../../smokeping/apache2.confsmokeping.conf"ingeven.Omhetinstallatieprocestebeëindigengaanwedecommando's"a2enconfigsmokeping"en"a2enmodcgid"ingevenenvervolgensgaanwedaapache2serviceherstartendoor"serviceapache2restart".Zoalsikbijeeneerdereinstallatiealhadvermeld,moetendecommando'singegevenwordenalssuperuser,gebruikdustelkens"sudo"voorjecommando.alsditgedaaniskanjejewebbrowseropenen"hostname/cgi-bin/smokeping"ingevenomnaardegrafischeuserinterfacetegaan.

HetleukeaanSmokepingishoeveelmogelijkhedenhetbiedtomzakentecustomizenzoalsjezelfwilt.jekanletterlijkallesaanpassen;deTargetsdiejewiltmonitoren,Hettypepingdatjewilgebruiken,wanneerjeAlertswilkrijgeninjemailboxenzelfshetuiterlijkvandegrafischeuserinterfacekanjeaanpassenmetHTMLcode.Aldezemogelijkhedenmaakthetvoormijenorminteressantommettewerken.Aldefilesdiejekancustomizenvindjeterugindemap"/etc/smokeping/config.d".Defilesdiejehierterugvindtzijn;Alerts,Database,General,pathnames,Presentation,Probes,Slaves(isvooronsnietbelangrijkwantwerdnietgebruikt)enTargets.

3.3Smokeping

33

Deeerstefile,Alerts,zieteruitalsvolgt:

Watwehierzienisvrijsimpeluitteleggen.AlseerstegaanwezeggennaarwiedeAlertsgestuurdmoetenwordenwanneerdezevoorkomenenwegaanookzeggenvanwelkmailadresdezeverstuurdmoetenworden.JekandeAlertsnaarzoveelmensensturenalsjezelfwilt.

Watwehiergaandoenisdusookdealertsconfigureren,ditgebeurtzoalsjehierbovenkanzien,doortebeginnenjealerteennaamtegeven.Vervolgensgajehettypemoetenmeegeven,ditkanbijvoorbeeld'loss'zijnof'rtt'.Bij'pattern'gaanweaansmokepingzeggennaarwelksoortpatroonhetmoetgaankijkenvooraleerheteenalertstuurtnaardecontactpersonendieweeerderhaddeningesteld.Hetleukehierisdatjeditpatroonzoveelkuntcustomizenalsjezelfwilt.Inhetvoorbeeldhierboven,bij'alertTest'bijvoorbeeld,gaanweziennaarhetpatroon"==0%,==0%,>20%,>20%,>20%".Ditwiltzeggendatwanneererna2keerdatwepingengeenpacketlossisendatdevolgende3pingseenpacketlossvertonenvanmeerdan20%,wehiereenalertvankrijgen.Zoalsjeookinhetvoorbeeldhierbovenkanzienzijndemogelijkepatroneneindeloos,ditishetleukeaansmokeping,erisenormveelplaatsomzakentenaarjeeigenvoorkeurteconfigureren.

Eenmailvanzo'nSmokepingAlertzieteralsvolgtuit:

3.3Smokeping

34

Zoalsjekanziengaatdemailookheelwatinformatiemeegeven,jekanzoziennaarwelkpatroondesmokepinggezochtheeftenhetgaatdanookdeeffectieveresultatenmeegeven.Ookzalheteencommentmeegeven(diejezelfuiteraardkaninstellen)omzomeerinformatietegevendiejezelfessentieelvindt.

DevolgendefileisdeDatabasefileendezezieteralsvolgtuit:

zoalsjekanzienstaathiernietveelinformatieinmaartochwelbijzondebelangrijkeinformatie.Jegaathiermetde"step"variabelemeegevenomdehoeveelsecondenerpingsmoetenuitgevoerdworden.Inde"pings"variabelegajemeegevenhoeveelpingserjuistmoetenuitgevoerdworden.Jemoethierwelmetopletten,alsjeeerstjesmokepinglaatwerkenmetstepgelijkaan60enjegaatdanditaantalverhogenofverlagen,danzaljesmokepingnietmeerwerkenomdatnudewaardenvanjegrafiekennietmeerovereenkomen.Jezaldande".rdd"filesmoetenverwijderenendesmokepingherladen,erzullendannieuwegrafiekenwordenaangemaaktmetdenieuwestepwaarden.

3.3Smokeping

35

HierbovenziejedeGeneralfile,hierstaatooknietbijzonderzeerveelinformatie.watjehiergaatdoenisspecifiërenwatdemailhostisdiejegaatgebruikenvoordesmokepingalerts,inonsgevalisdatdesmtpservervangmail.Ookgajehierenkelecontactgegevensmeegeven.

Depathnamesfilebevatooknietveelinformatiemaarzieteralsvolgtuit:

Devolgendefile,Presentation,isaleenstukinteressantervoorons,hiergaanwemeegevenwatweallemaalgrafischwillenzienoponzegrafiek.Alleswatjehierdusaanpastzalzichtbaarzijnopdegrafiek.jekanhierbijvoorbeelddehoogte,breedteofrangevandegrafiekaanpassen.Inonsvoorbeeldzietdefileeralsvolgtuit:

3.3Smokeping

36

3.3Smokeping

37

DevolgendeenvoorlaatstefileisdeProbesfile.Hiergaanwegaanmeegevenwatvoortypepinggebruiktgaatworden.afhankelijkvanwatvoorpingjehiergebruiktgajebepaaldevariabelemoetenmeegeven.Standaardvoorelkeprobeisdatjedevariabele"step"gaatmoeteninvullen,dezegeeftaanomdehoeveelsecondendepingmoetwordenuitgevoerd.anderemogelijkevariabelenzijnbijvoorbeeld;offset,forks,size,port,protocol,etc.VooreenvolledigelijstvanProbesdiesmokepingkangebruikenkanjedezelinkeensbekijken.opdezesitezaljeallebruikbareprobesvindenmetdenodigeuitlegerbij.hieronderkanjedeProbesfileziendieikzelfhebgebruiktopderaspberrypi.

3.3Smokeping

38

3.3Smokeping

39

Dandelaatstefilediewegebruikthebbenuitde"config.d"map,isdeTargetsfile.watjehiergaatdoenisinstellenwelkehostsjewiltpingen,welkepinggebruiktmoetworden,watdenaamervanisenwelkeAlertsergebruiktmoetenwordenopdezehosts(ditkanverschillenvanhosttothost,ookisergeenlimietophoeveelalertserperhostgebruiktmogenworden).HetgebruiktvandeplustekenskanjevergelijkenmetdemappenstructuuropjePC,eenplusisdanbijvoorbeelddenaamvandemapentweeplussenisdandefilehierin.Erisookgeenlimietophoeveelhostserindezefilestaan,jekanzoveelhostsbijvoegen(ofverwijderenalshetnodigis)alsjezelfwilt.Alraadikhetwelaanomhetaantalhostsrelatiefbeperkttehouden.

3.3Smokeping

40

Sendmail

3.3Smokeping

41

VooronzeAlertsvansmokepingkunnenwerken,ishetbelangrijkdatsendmailjuistgeconfigureerdis.eerstgaanwedenodigezakenisntallerendoorhetvolgendecommandointegeven"apt-getinstallsendmailmailutilssendmail-bin".Vervolgensgaanweonzegmailauthenticatiefileaanmaken,ditdoenwesimpeldooreersthetcommando"mkdir-m700/etc/mail/authinfo/"endanindezemapeenfileaantemakenwaaronzeauthenticatiegegevensinkomen(dezefilekaneenderwelkenaamhebben).Deinfodatindefilemoetzieteralsvolgtuit:"AuthInfo:"U:root""I:YOURGMAILEMAILADDRESS""P:YOURPASSWORD"".Daninonzesendmailconfiguratiefilegaanwevolgendelijnenmoetentoevoegen:

define(SMART_HOST',[smtp.gmail.com]')dnldefine(RELAY_MAILER_ARGS',TCP$h587')dnldefine(ESMTP_MAILER_ARGS',TCP$h587')dnldefine(confAUTH_OPTIONS',Ap')dnlTRUST_AUTH_MECH(EXTERNALDIGEST-MD5CRAM-MD5LOGINPLAIN')dnldefine(confAUTH_MECHANISMS',EXTERNALGSSAPIDIGEST-MD5CRAM-MD5LOGINPLAIN')dnlFEATURE(authinfo',`hash-o/etc/mail/authinfo/gmail-auth.db')dnl

Omdeconfiguratievansendmailtevervolledigengaanwenogtweecommando'smoeteningeven.Eerstgaanwedeconfiguratiemoetenrebuilden:"make-C/etc/mail"enalslaatstegaanwesendmailmoetenherladen:"/etc/init.d/sendmailreload".

Jitter

NuzoalsikaleerderhadvermeldgingikmeeruitleggevenoverwatJitterisenwaaromheteffectkanhebbenopdekwaliteitvaneenVoiceoverIPgesprek.

wanneercomputersmetelkaargaancommunicerenovereennetwerk,maaktnietuittussenwatvooraparaathetis(kantussen2pc's,tussenPCentablet,eenderwatismogelijk),gaanzepakketjesnaarelkaarversturen.Nubijzakenzoalshetopenenvaneenemailofhetladenvaneenwebpagina(zakendiedusnietechtgevoeligzijnaanlatency)maakthetnietuitofeenpakketjein30msaankomtenhetvolgendeer80msoverdoet.hetverschilhiertussenistekleinomietsvanbelangtehebbenbijditsoortzaken.

AnderezakenzijndanwelmeergevoeligvoorlatencyenditiswaarJitterenenormeinvloedkanhebben.LatencykanmengelijkstellenaandetijddateenpakketjenodigheeftomzichtussentweepuntenteverplaatsenenJittergaatdeveranderingweergevenvanhoeveeltijdnodigisvooreenpakketjeomzichtussentweeeindpuntenteverplaatsen.

EensimpelemanieromtedemonstrerenhoeJitterjuistwerktisdoorutweecomputersintebeeldendiecontinunaarelkaarpacketssturen,laatonszeggenomde10ms.WanneerdeeerstePCzijnpakketjesverstuurdendetweedePCantwoordophieropzonderenigedelay,Danspreektmenvangeenjitterophetnetwerk.NuineenandergevalwaardeeerstePCnogsteedszijnpakketjesaanhetversturenisomde10msmaariemandophetnetwerkiseenzwaredownloadaanhetdoenofmeerderestreamsaanhetbekijken,ditkanervoor

3.3Smokeping

42

zorgendatdepakketjesnietmeeromde10msaankomenmaarbijvoorbeeldpasna50msensomszelfsdatevengeenaankomenendanplotsmeerderetegelijk.DitiswanneermenJitterervaart.

IedereendieooitaleenseenstreamonlineheeftgezienofooitonlineeenspelheeftgespeeldzalJitteralervarenhebben.wanneerjestreamplotswegvaltofjespelevenblijfthangenendanlijkthetnetalsofiemandopdefastforwardknopduwt,dithebjetedankenaanJitter.Ditkomtdoordatdusmeerdereclient-servercommunicatiesplotsallemaaltegelijkaankomen.

BijVoIPishetbelangrijkdatergeenJitteris,hetminstejitteropeennetwerkkandekwaliteitdrastischdoendalen.Doordatpakketjes(dieaudiobevatten)opverschillendeintervallengaanaankomen,wiltditzeggendatwezenietzomaarkunnenafspelenwanneerzeaankomen.WatwekunnengebruikenomdittevoorkomeniseenJitterBuffer.hiermeegaanweervoorzorgendatinplaatsvanelkpakketjeeenverschillendedelayheeft,elkpakketjeeenconstanteDelaykrijgt.

3.3Smokeping

43

3.4MTREensdatderaspberrypigeplaatstis,ishetookhandigdatjevanophettoestelzelfterplaatseaandiagnosekandoen.DitiswaarMTRofMatt'sTraceroutevoorgebruiktkanworden.MTRiseenkrachtigediagnosetooldieonskanhelpenomproblemeninhetnetwerkkanisoleren.MTRkanmenzienalseenevolutieopdedooriedereengekende"traceroute".VoormensendievooralmetwindowswerkenkanjedetoolvergelijkenmetdeWindowsvariant"pingplotter",beidetoolshebbendezelfdewerking.InditdeelgaikproberenomzogoedmogelijkdewerkingvanMTRuitteleggenenhoejedeinformatiedieMTRgenereertmoetinterpreteren.

MTRgaatICMPpakketjesversturenmeteensteedstoenemendeTTL(timetolive)omzoweertegevenwelkeroutehetpakketjeneemtofwelkeserievanhopshetpasseerdevanzijnvertrekpunttotzijneindpunt.JeTTLgaatdusbepalenhoeveel"hops"eenpakketjezaldoenendanterugkeertnaardeclient.Telkenswanneereenpakketjebijvorbeeldeenrouterpasseert(eenhop)zaldeTTLmetéénverminderdworden,wanneerdeTTLop0komt"sterft"hetenkeerthetterugnaardeclientdiehetverstuurdheeft.Mengaatduszoeersteenpakketjesturendatéénhopdoetenterugkeert,danstuurtheteenpakketjedattweehopsdoet,enzovoort.DitgaatMTRherhalentothetdehostbereiktheeft.Opdezemaniergaatdeclientduswetenwelkeroutehetheeftgenomenenhoeveelhopshetgepasseerdheeft.MTRgaatveelmeerdoendanenkelderouteweergeventussentweeeindpunten,zogaathetookinformatieweergevenvanbijvoorbeelddestatus,packetloss,latency,etc.

VoorwekunnenwerkenmetMTRmoethetnatuurlijkeerstgeïnstalleerdworden.AangezienwijmetRaspbian(variantvanDebian)hebbengewerkt,doenweditsimpeldoorhetcommando"sudoapt-getinstallmtr-tiny".Hetiswelaltijdaanteradenvoorjeietsnieuwinstalleertomeersteenseen"sudoapt-getupdate"tedoen.Ditzorgtervoordatdepackagesvanaljerepositoriesuptodatezijn.

NudatweMTRhebbengeïnstalleerdkunnenwedewerkingervantestendoorhetcommando"mtr-rwgoogle.com"indecommandlinetegeven.Detweeargumentendiewemeegevenzijn"r"en"w",ditwilzeggendatwevandemtreenreportwillenvanhetresultaatendatweookdevolledigehostnameswillenvanelkehopdiewepasseren.Hetbekomenresultaatzalerzoalsvolgtuitzien:

3.4MTR

44

zoalsjekanziengenereertmtrenormveelinformatieenisopeerstezichtmisschieneenbeetjeonduidelijk.Hetcommandohierheeft10packetsgestuurdnaardehost"google.com"engeefthierhetresultaatvanweer.alswehierniethetargument"r"meegevenzalmtrgewooncontinupacketsblijvensturen.Hetgenererenvanzoeenreportduurtmeestalmaareenpaarseconden.Hetreportbestaatuiteenaantalhops,inonsgeval13.Hopszijndusderoutersofnodesdiewepasserenomaanonstargettegeraken.Naastdehopszienweooknog7kolommendieverschillendeinformatiegaangeven.Deeerstekolomgaatweergevenhoeveelpacketlosserisbijelkeindividuelehop."snt"gaatbijhoudenhoeveelpakketjeserverstuurdzijngeweest.Devolgendevierkolommendiewezijngaaninformatieweergevenoverdelatencyvandepakketjesenditdoethetinmilliseconden."Last"geeftdelatencyweervanhetlaatstverstuurdepakketje,"best"en"worstgevenweerwatdekorsteenlangstetijdwaren."Average"geeftzoalsdenaamzegtweerwathetgemiddeldewasvoorallepakketjes,dezekolomisdanookdebelangrijkstevande4.Delaatstekolom"stdev"geeftdestandaarddeviatieweer.alsdezestandaarddeviatiehoogis,wiltditzeggendaterveelfluctuatieistussendeverschillendemetingenendatdeconnectieonstabielis.Wewillendusdatdeze"StDev"zolaagmogelijkis.

Nudezetoolispashandigalswewetenhoealdezeinformatiedatmtrgenereertmoeteninterpreteren.wanneerwehetreportvanMTRgaananalyserenkijkenwenaartweezaken:lossenlatency.Alsjebijvoorbeeldpacketlosszietbijéénspecifiekehost,danzaldithoogstwaarschijnlijkkomendoorICMPlimitatie.Alsjedusbijéénhopplotsveelpacketlossziet,maarbijdevolgendehopsziejenietsverkeerd,danisdekansgrootdatwehiertemakenhebbenICMPlimitatie.Voorbeeldhierondergeeftditweer:

3.4MTR

45

Zoalsjehierkanzienmelddetweedehopplotsdaterpacketlossis,maarderestvandehopsmerkthiernietsvan.DitkomtdoorICMPTlimitatieeninrealiteitiserdushelemaalgeenpacketloss.Hetispaswanneerermeerdereopeenvolgendehopspacketlossgaanmeldendatweonszorgenmoetenmaken,zoalsinhetvolgendevoorbeeld:

Bijdederdehopkanjeziendaterplotspacketlossis,maarookdevolgendehopsgaanmeldendaterpacketlossis.Ditverteltonsdaterweldegelijkeenprobleemistussende2eindpunten.Wezienhierweldatdewaardenhiertussen40%en60%ligt,maarwatisnudeeffectievepacketloss?inditgevalgaanwealtijddewaardenemenvandelaatstehopalsdeeffectievepacketloss(hierdus40%).

Alsweterugevennaardeeersteafbeeldinggaankijken,danzienwenogietsinteressant:

3.4MTR

46

Wezienhierplotsenkelevraagtekens"???"verschijnenen100%packetloss.Ditwiltnietzeggendaterpacketlossis,wantwekunnennamelijkziendatdevolgendehopsnietmelden.Ditkanhetresultaatzijnvaneen"residentialgateway".

NogeeninteressantvoorbeeldvaneenMTRreportishetvolgende:

Hiergaateenslechtgeconfigureerderouterervoorzorgendatpacketsineenloopgestuurdgaanworden.

VoormeerinformatieoverhoedesyntaxvanMTRjuistwerktkanjealtijddezeLinkvolgen.DitzaljeeenbeterideegevenvanhoejeMTRgebruikt.

3.4MTR

47

4.BroadbandMonitoringZoalsikinhetdeelvanMeanOpinionScore(MOS)hadvermeld,heeftdebandbreedteeeninvloedopdekwaliteitvaneengesprekenhetaantalsimultanegesprekkenergevoerdkunnenworden.Daaromishetdusbelangrijkdatweditkunnenmonitorenendatweeenmeldingkrijgenvanwanneerdezebandbreedtetelaagis.

Voorlinuxisereenzeerleuketooldiedebandbreedtekantestenvanopderaspberypi,namelijkde"speedtest-cli".Dezetoolwerktviadecommandlineinterfaceeniseenvoudigteinstallerendoorhetcommando"sudoapt-getspeedtest-cli",meerisnietnodigomditwerkendetekrijgen.Nuishethandigomdeinformatiedatdezetestgenereertbijtehoudenendezegrafischweertegeven.Doordezeinformatiegrafischgaanweertegevenishetvooronsveelgemakkelijkerombepaaldepatronentezien.Zokunnenwebijvoorbeeldziendatdebandbreedtetelkensophetzelfdetijdstipplotsnaarbenedengaat.Nuwillenweooknietdatdezetestcontinuloopt.Daaromgaanwegebruikmakenvande"Crontab"omdezetestopeenbepaaldintervaltelatenlopen.Ookgaanweviadezecrontabervoorzorgendatertelkensnadatdespeedtestgebruiktisgeweest,datweviaeenpythonscriptdezedatagaanwegschrijvennaareensqlitedatabase.Ditscriptzorgterookvoordatdedatawordtweggeschrevennaar"plot.ly".Ditiseenwebsitedieervoorzorgtdatdatagrafischkanwordenweergegeven.

Decrontabdewegebruikenzieteralsvolgtuit:

Misschieneventoelichtenwathierjuistgebeurt.Eerstenvooralgaanwehierelkuurdespeedtest-cliaanroepenendezestarten.Vervolgensgaatdedatadathetgenereertwegschrijvennaareenlogfile,inditgevalde"speed.txt"file,dezezieteralsvolgtuit:

Hierwordtgewoonbijgehoudenwatdelatency,downloadenuploadwasvandelaatstetestdieisuitgevoerdgeweest.

Danhettweededeelvandecrontabzal5minutennadeeerstecrontabwordenaangeroepen.Ditishetpythonscriptdatgaatzorgenvoorhetwegschrijvenvandedatanaardesqlitedatabaseendanhetgrafischweergevenervan.HetisookbelangrijkdatweviaditscriptkunnenzienwanneerdewaardevanDownloadofdewaardevanuploadte

4.BroadbandMonitoring

48

laagis.Daaromgaanweinditscriptviaeen"if-loop"controlerenofdewaardenvanuploadofdownloadondereenbepaaldelimietgaat.WanneerdithetgevaliszaleenAlertgestuurdwordenviamailnaardecontactpersonen.Zoeenmailalertzieterdanalsvolgtuit:

Zoalsjekanziengaatindemaildeinformatiewordenmeegevenvanwatdedownloadenuploadisvanhetnetwerk.Ookzalhetdelinkvandegrafiektoevoegen.delinkmaaktgebruikvaneen"sharedkey".

Ditishetresultaatvandegrafiekdieonzedatavanuitdesqlitegrafischgaatweergeven:

ZoalsjekanzienzaldegrafiekdeDownloadenuploadsnelheidsamenvoegeninééngrafiek.VoordeDownloadkijkenwenaardeschaallinksenvoordeuploadnaarschaalrechts.

Voordeduidelijkheidgaikookevendecodeuitleggendiehiergebruiktwordt.alseerstegaanwealdeimportsdoendienodigzijn:

4.BroadbandMonitoring

49

Vervolgensgaanweconnectiemakenmetdesqlitedatabaseendegegevensvandespeedtesthiernaarwegschrijven:

NadatdedataisweggeschrevennaardesqlitedatabasegaanwecontroledoenviadeIF-loopomzotezienofdewaardenvandedownloadofuploadtelaagis.AlsdithetgevalisgaanwehiereenAlertvansturenviamail.Dezecodezieteralsvolgtuit(Deblauwelijniswaarhetpaswoordkomt):

Deinformatiediejehiermeegeeftofdemailvanwaarjestuurtkanjeduszelfaanpassenzoalsjezelfwilt.

Hetlaatstedatwegaandoenismeegevenhoewewillendatonzedatawordtweergegevenopde"plot.ly"website.Wegaanhieruiteraardookonzeaccountgegevensmeegevenenwatdenamenvandefilesmoetenzijn:

4.BroadbandMonitoring

50

4.BroadbandMonitoring

51

5.ConclusieToenikdestagebegonhadikzogoedalsgeenkennisvanVoiceoverIPendatwaszekertemerken.Deeerstedagenenmisschienzelfswekenwasaldeinformatiedieikkreegi.v.mVoiceoverIPenormoverweldigend,maarheeftmijwelenormveelbijgeleerd.Ikhadgekozenvoordezestageommeertelerenovernetwerkenendatishiertochzekerhetgevalgeweest.Ikwasookblijdatikalsstagiairmeemochtnaarklantenominstallatiestedoen,hierdoorvoeldeikmijtochmeedeelvanhetbedrijfenhetleerdemijtochookwelhoejemet-somsmoeilijke-klantenmoetomgaan.

MijnopdrachtwasomteproberenmetderaspberrydekwaliteitvaneennetwerktemonitrenomzotekijkenofdekwaliteitvanVoiceoverIPgesprekkenhieronderlijdt.Ikwasbegonnenmethetzelfschrijvenvanenkelepythonscripts.Dezezoudendanopderaspberrypidraaieneninformatiebijhoudenoverhetnetwerk.Ikhadinitieelgekozenvoorpythonomdatdetaalmijenormhardinteresseerdeenookomdatikmezelfeenuitdagingwildegeven.Laterbleekechterdathetgezegde"hoogmoeddoetzeldegoed"tocheenvormvanwaarheidbevat.MijnkennisvanPythonbleeknamelijknietgoedgenoegomechtuitgebreidescriptsteschrijvenendatwasvoorditprojecttochechtwelnodig.Ditisderedendatikmijnfocushebverlegdnaarhetwerkenmettoolsenikbenzoincontactgekomenmetsmokepingenditiswaarikveelvanmijntijdhebgespendeerd.Hetleukeaansmokepingisdatwemetdezetoolpacketloss,jitterenlatencykunnenmonitoren.Aldezegegevenswordenookmooigrafischweergegevenviaeengrafischeuserinterface.smokepingbiedtookenormveelcustomization,jekanhetaanpassenzoalsjezelfwiltendezevrijheidisaltijdeenenormemeerwaarde.

InmijndeelvanMeanOpinionScorevermeldikdatzakenzoalsjitter,latency,packetlossenbandbreedtegaatbepalenwatdeuiteindelijkekwaliteitvanjeVoiceoverIPgesprekis.Nudeeerste3hierkunnenwemonitorenmetSmokepingmaarvoorbandbreedtemoestikeenanderemaniergaanzoekenomditbijtehouden.Dithebikverwezenlijktviaeencombinatievaneenbestaandetoolvanlinux(speedtest-cli),eenpythonscriptdatdegegevensgaatwegschrijvennaareensqlitedatabaseendanuiteindelijkgaatdedatagrafischwordenweergegevenviadewebservice"plot.ly".Metntopngkunnenweviaderaspberrypizienwelkeenhoeveeltrafiekerjuistoverhetnetwerkgaat.OokkunnenweMTRgebruikenvanopderaspberryomzoaandiagnosetedoen.

DebelangrijkstezakendiedekwaliteitvaneenVoiceoverIPgesprekkunnenbeïnvloedenkunnenmomenteelgemonitordworden.Hetnadeelmomenteelisweldaterverschillendeapplicatiesopderaspberrypimoetendraaieninplaatsvandatallesviaéénapplicatiegedaanwordt.Albijalkanikterugkijkenopeenzeeraangenameenleerrijkestage.Niet

5.Conclusie

52

alleswasaltijdevensuccesvol,maarhetbelangrijkstevaneenstage(naarmijnmening)isdatjezoveelmogelijkbijleerdendatishiertochzekerhetgevalgeweest.ikhebnietalleenveelbijgeleerdoptechnischvlak,maarookveeloverhetbedrijfsleven.

5.Conclusie

53

top related