network performance tools - nanog archive · network performance tools jeff boote internet2/r&d...

62
Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Upload: others

Post on 03-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Network Performance Tools

Jeff Boote Internet2/R&D

June 1, 2008 NANOG 43/ Brooklyn, NY

Page 2: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Overview•  BWCTL

•  OWAMP

•  NDT/NPAD

Page 3: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

BWCTL:Whatisit?Aresourcealloca=onandschedulingdaemonforarbitra=onofiperftests

Page 4: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

ProblemStatement• Userswanttoverifyavailablebandwidthfromtheirsitetoanother.

Methodology– Verifyavailablebandwidthfromeachendpointtopointsinthemiddletodetermineproblemarea.

Page 5: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

TypicalSolu=on• Run“iperf”orsimilartoolontwoendpointsandhostsonintermediatepaths

Page 6: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Typicalroadblocks• NeedsoNwareonalltestsystems• Needpermissionsonallsystemsinvolved(usuallyfullshellaccounts*)

• Needtocoordinatetes=ngwithothers*• NeedtorunsoNwareonbothsideswithspecifiedtestparameters*(*BWCTLwasdesignedtohelpwiththese)

Page 7: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Implementa=onApplica=ons

– bwctlddaemon– bwctlclient

OpensourcelicenseanddevelopmentBuiltuponprotocolabstrac=onlibrary

– Supportsone‐offapplica=ons– Allowsauthen=ca=on/policyhookstobeincorporated

Page 8: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Func=onality(bwctl)bwctlclientapplica=onmakesrequeststobothendpointsofatest

–  Communica=oncanbe“open”,“authen=cated”,or“encrypted”(encryptedreservedforfutureuse)

–  Requestsincludearequestfora=meslotaswellasafullparameteriza=onofthetest

–  Thirdpartyrequests–  Ifnoserverisavailableonthelocalhost,clienthandlestestendpoint

–  *Mostly*thesamecommandlineop=onsasiperf(someop=onslimitedornotimplemented.)

Page 9: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Func=onality(bwctld)bwctldoneachtesthost

– Acceptsrequestsfor“iperf”testsincluding=meslotandparametersfortest

– Respondswithatenta=vereserva=onoradeniedmessage

– Reserva=onsbyaclientmustbeconfirmedwitha“startsession”message

– Resource“Broker”– Runstests– Both“sides”oftestgetresults

Page 10: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

BWCTLExample

Page 11: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

BWCTLData(Dash‐Board)

Page 12: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

BWCTLData–PathHistory

Page 13: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

ResourceAlloca=on(bwctld)• Eachconnec=onis“classified”(authen=ca=on)• Eachclassifica=onishierarchicalandhasanassociatedsetofhierarchicallimits:

– Connec=onpolicy(allow_open_mode)– Bandwidth(allow_tcp,allow_udp,bandwidth)– Scheduling(dura=on,event_horizon,pending)

•  A=meslotissimplya=me‐dependentresourcethatneedstobeallocatedjustlikeanyotherresource.Itthereforefollowstheresourcealloca=onmodel.

Page 14: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

BWCTL:3‐partyInterac=on

Page 15: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

BWCTL:NoLocalServer

Page 16: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

TesterApplica=ons•  Iperfisprimary“tester”

– Wellknown–widelyused

• Problemsintegra=ngexec’dtool– Serverini=aliza=on(portnumberalloca=on)– errorcondi=ons– Noindica=onofpar=alprogress(Howfullwasthesendbufferwhenthesessionwaskilled?)

• thrulay/nubcpareavailableinlatest‘RC’versionofbwctl

Page 17: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

GeneralRequirements• Iperfversion2.0and2.0.2• NTP(ntpd)synchronizedclockonthelocalsystem

–  Usedforscheduling– Moreimportantthaterrorsareaccuratethantheclockitself

• Firewalls:–  Lotsofportsforcommunica=onandtes=ng

• Endhostsmustbetuned!hbp://www.psc.edu/networking/perf_tune.htmlhbp://www‐didc.lbl.gov/TCP‐tuning/buffers.html

Page 18: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

SupportedSystems• FreeBSD4.x,5.x• Linux2.4,2.6• (MostrecentversionsofUNIXshouldwork)

Page 19: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Policy/SecurityConsidera=ons• DoSsource

–  ImaginealargenumberofcompromisedBWCTLDserversbeingusedtodirecttraffic

• DoStarget–  Someonemightabempttoaffectsta=s=cswebpagestoseehowmuchimpacttheycanhave

• Resourceconsump=on–  Timeslots

–  Networkbandwidth

Page 20: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

PolicyRecommenda=ons• Restric=veforUDP• MoreliberalforTCPtests

• Moreliberals=llfor“peers”

• ProtectAESkeys!

Page 21: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Availability• Currentlyavailablehbp://e2epi.internet2.edu/bwctl/

Maillists:

• bwctl‐[email protected]• bwctl‐[email protected]://mail.internet2.edu/wws/lists/engineering

Page 22: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

OWAMP:Whatisit?OWDorOne‐WayPING

• Acontrolprotocol• Atestprotocol• Asampleimplementa=onofboth

Page 23: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

WhytheOWAMPprotocol?• Findproblemsinthenetwork

–  Conges=onusuallyhappensinonedirec=onfirst…–  Rou=ng(asymmetric,orjustchanges)–  SNMPpollingintervalsmaskhighqueuelevelsthatac=veprobescanshow

• Therehavebeenmanyimplementa=onstodoOne‐Waydelayovertheyears(Surveyor,Ripe…)

–  Theproblemhasbeeninteroperability.–  hbp://www.ieo.org/rfc/rfc4656.txt

Page 24: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

OWAMPControlprotocol• Supportsauthen=ca=onandauthoriza=on• Usedtoconfiguretests

–  Endpointcontrolledportnumbers–  Extremelyconfigurablesendschedule

–  Configurablepacketsizes• Usedtostart/stoptests• Usedtoretrieveresults

–  Provisionsfordealingwithpar=alsessionresults

Page 25: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

OWAMPTestprotocol• Packetscanbe“open”,“authen=cated”,or“encrypted”

Page 26: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

SampleImplementa=onApplica=ons

– owampddaemon– owpingclient

OpensourcelicenseanddevelopmentBuiltuponprotocolabstrac=onlibrary

– Supportsone‐offapplica=ons– Allowsauthen=ca=on/policyhookstobeincorporated

Page 27: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Func=onality(owpingclient)– owpingclientrequestsOWDtestsfromanOWAMPserver

– Clientcanbesenderorreceiver– Communica=oncanbe“open”,“authen=cated”,or“encrypted”

– Supportsthesetupofmanytestsconcurrently

– Supportsthebufferingofresultsontheserverforlaterretrieval

Page 28: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Func=onality(owampd)owampd

– AcceptsrequestsforOWDtests

– Respondswithaccepted/denied– TestsareformallystartedwithaStartSessionsmessagefromtheclient.

– Runstests– Sessionswithpacketsreceivedattheserverarebufferedforlaterretrieval

Page 29: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

OWPINGExample

Page 30: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

OWAMPData(Dash‐Board)

Page 31: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

OWAMPData(Path)

Page 32: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

ResourceAlloca=on• Eachconnec=onis“classified”(authen=ca=on)• Eachclassifica=onisassociatedwithasetofhierarchicallimits

–  Bandwidth(bandwidth)–  Sessionbuffer(disk)–  Datareten=on(delete_on_fetch)–  Connec=onpolicy(allow_open_mode)

(no=medependentdimensiontoresourcealloca=oninowampd)

Page 33: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Architecture

Page 34: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

GeneralRequirements• NTP(ntpd)synchronizedclockonthelocalsystem

– Specificconfigura=onrequirementsasspecifiedinNTPtalk…

– Strictlyspeaking,owampwillworkwithoutntp.However,yourresultswillbemeaninglessinmanycases

• gnumakeforbuildprocess

Page 35: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

SupportedSystems• FreeBSD4.7+,5.x,6.0(64‐bit)• Linux2.4,2.6(64‐bit)• MacOSX10.4.X

• Solaris10.4.5• (MostrecentversionsofUNIXshouldwork)

Page 36: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

RecommendedHardware• StableSystemClock

– Temperaturecontrolledenvironment

– NopowermanagementofCPU

• NostrictrequirementsforCPU,Memory,Busspeed

– Moretaskingscheduleswillrequiremorecapablehardware

Page 37: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Opera=onalconcernsTime:

–  NTPissuespredominatetheproblems

–  Determininganaccurate=mestamp“error”isinmanywaysmoredifficultthangesnga“verygood”=mestamp

–  Workingasan“open”serverrequiresUTC=mesource(Forpredefinedtestpeers,otherop=onsavailable)

Firewalls:–  Portfiltertrade‐off

•  Administratorslikepre‐definedportnumbers•  Vendormanufactureswouldprobablyliketo“priori=ze”testtraffic

•  Owampdallowsarangeofportstobespecifiedforthereceiver

Page 38: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Policy/SecurityConsidera=ons• Third‐PartyDoSsource• DoStarget• Resourceconsump=on

– Memory(primaryandsecondary)– Networkbandwidth

Page 39: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

PolicyRecommenda=ons• Restrictoverallbandwidthtosomethingrela=velysmall

– MostOWAMPsessionsdonotrequiremuch

• Limit“open”teststoensuretheydonotinterferewithprecisionofothertests

Page 40: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Availability• Currentlyavailablehbp://e2epi.internet2.edu/owamp/

Maillists:

• owamp‐[email protected]• owamp‐[email protected]://mail.internet2.edu/wws/lists/engineering

Page 41: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Advancedusertools•  NDT

– Allowsuserstotestnetworkpathforalimitednumberofcommonproblems

•  NPAD– Allowsuserstotestlocalnetworkinfrastructurewhilesimula=ngalongpath

Page 42: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

UnderlyingUserAssump=on•  Whenproblemsexist,it’sthenetworksfault!

Page 43: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

SimpleNetworkPicture

Bob’s Host

Network Infrastructure

Carol’s Host

Page 44: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Sw

itch

1

Switch 2 Switch 3

NetworkInfrastructure

R1 R3

R4

R2 R7

R6 R9

R8 R5

Switch 4

Page 45: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NDT:Whatisit?Webbrowserinvokedadvanceduserbaseddiagnos=cs

•  Allowsuserstotestanetworkpathforalimitednumberofcommonproblems–fromtheirdesktop

•  NDTallowsusertogivethenetworkadministratoradetailedviewofexactlywhattheusershostisdoing

•  Allowstheusertobeanac=vepar=cipantinthedebuggingprocess–allowsthemtomoredirectlyseehowhostconfigura=oneffectsperformance

Abemptstoanswertheques=ons:Whatperformanceshouldauserexpect?Whatisthelimi=ngfactor?

Page 46: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NDTGoals•  Iden=fyrealproblemsforrealusers

– Networkinfrastructureistheproblem

– Hosttuningissuesaretheproblem

•  Maketoolsimpletouseandunderstand

•  Maketoolusefulforusersandnetworkadministrators

Page 47: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NDTuserinterface•  Web‐basedJAVAappletallowstes=ngfromanybrowser

•  Command‐lineclientallowstes=ngfromremoteloginshell

Page 48: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NDTsampleResults

Page 49: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

FindingResultsofInterest

•  DuplexMismatch– Thisisaseriouserrorandnothingwillworkright.Reportedonmainpage,onSta's'cspage,andmismatch:onMoreDetailspage

•  PacketArrivalOrder–  InferredvaluebasedonTCPopera=on.ReportedonSta's'cspage,(withlosssta=s=cs)andorder:valueonMoreDetailspage

Page 50: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

FindingResultsofInterest•  PacketLossRates

– CalculatedvaluebasedonTCPopera=on.ReportedonSta's'cspage,(without‐of‐ordersta=s=cs)andloss:valueonMoreDetailspage

•  PathBobleneckCapacity– MeasuredvaluebasedonTCPopera=on.Reportedonmainpage

Page 51: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

FindingNDTServers

Page 52: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NPAD/pathdiag:Whatisit?•  Webbrowserinvokedadvanceduserbaseddiagnos=cs

– Allowsuserstotestalimitedpor=onofthenetworkpathlookingforproblemsthatwouldadverselyeffectlongerpaths

– Abemptstoanswertheques=ons:

•  Whatperformanceshouldauserexpect?•  Whatisthelimi=ngfactor?

Page 53: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NPAD/pathdiag•  AnewtoolfromresearchersatPibsburghSupercomputerCenter

•  Findsproblemsthataffectlongnetworkpaths

•  UsesWeb100‐enhancedLinuxbasedserver

•  WebbasedJavaclient

Page 54: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Sw

itch

1

Switch 2 Switch 3

LongPathProblem

R1 R3

R4

R2 R7

R6 R9

R8 R5

Switch 4

H1

H2

H3 X

1 msec H1 – H2 70 msec H1 – H3

Page 55: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

LongPathProblem•  E2Eapplica=onperformanceisdependantondistancebetweenhosts

•  Fullsizeframe=meat100Mbps– Frame=1500Bytes– Time=0.12msec

–  Inflightfor1msecRTT=8packets–  Inflightfor70msecRTT=583packets

Page 56: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

TCPConges=onAvoidance•  Cutnumberofpacketsby½•  Increaseby1perRTT

– LAN(RTT=1msec)•  Inflightchangesto4packets•  Timetoincreasebackto8is4msec

– WAN(RTT=70msec)•  Inflightchangesto292packets•  Timetoincreasebackto583is20.4seconds

Page 57: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NPADServermainpage

Page 58: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

NPADSampleresults

Page 59: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

FindingNPADservers

Page 60: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

TrythesetoolsNetworkPerformanceToolkit

hbp://e2epi.internet2.edu/network‐performance‐toolkit.html

Knoppixdisk(OSonaCD)thathas:Iperf,thrulay,bwctl,owamp,NDT,NPAD,reverse‐traceroute/ping…

Page 61: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY

Ques=ons?

Page 62: Network Performance Tools - NANOG Archive · Network Performance Tools Jeff Boote Internet2/R&D June 1, 2008 NANOG 43/ Brooklyn, NY